From 7f7899137422e7b6fad53d019c91210adee3f1ef Mon Sep 17 00:00:00 2001 From: jespergravgaard Date: Sun, 10 Feb 2019 21:10:40 +0100 Subject: [PATCH] Added next piece --- .../kc/complex/tetris/playfield-screen.gpx | Bin 2733 -> 1153 bytes .../kc/complex/tetris/playfield-screen.imap | Bin 504 -> 504 bytes .../kc/complex/tetris/playfield-screen.iscr | Bin 1024 -> 1024 bytes src/test/kc/complex/tetris/tetris-pieces.kc | 8 +- src/test/kc/complex/tetris/tetris-play.kc | 28 +- src/test/kc/complex/tetris/tetris-render.kc | 29 + src/test/kc/complex/tetris/tetris.kc | 6 +- src/test/ref/complex/tetris/tetris.asm | 210 +- src/test/ref/complex/tetris/tetris.cfg | 1426 +- src/test/ref/complex/tetris/tetris.log | 17871 +++++++++------- src/test/ref/complex/tetris/tetris.sym | 327 +- 11 files changed, 10911 insertions(+), 8994 deletions(-) diff --git a/src/test/kc/complex/tetris/playfield-screen.gpx b/src/test/kc/complex/tetris/playfield-screen.gpx index b8f3f4714639dfa85b4217054f518ff11dd510bc..ed7b9e71b850805b4ac2020a0c1d8862ebf95be7 100644 GIT binary patch literal 1153 zcmV-{1b+K?0qt5lZxcZf9t&_HI0%&$@emC)g!du2fR2Km7GrD$<&v{(LJTrd@((Ea z5h?Ny;_50ZX(Fl!r9u=|WGPZa;hdS>ySbeAJlQ)xz$SdkWp8(OXXo3SefvBBoX6)1 zKDp)hcBNny^6%juM&IP}3vZT-#X`9fj$;m(!)U%>S(T++Ny_rJWtS`OJ{2%F2lwG2 zrY+`5GR4HSrw&@uIvywt@>87ToF1+mlOLFJu2R0kn9JJ5 z*~z5$Yga^%Vh_ikmB)?i^fK{?{jHs?O?!TR9)wQeATh(4!{f_GnM@|!PA!D2OlBKi zID;6Hoe_VX_hDL&<2sHgnazrRGA99zMx!diw&OVMdL7()9Rn9KK1ff?M_s~&sw`dw z=f{!zecK7jRU7qM+NlNg=rH4h>?FHtjzBH2i-T&X>IbOO-rU-0i53ID$>W5m^62vM z;Y^tSsJ^`jiGR|ePvuYjph~2E14fliXUwhj@KV$fV%AfKj<<0SjAw%Uq==WF0y+Q4p6#nWw z82G>Mr)v0*e}CZgjWPeB%u_o4y zwdsS|55c64|HNOHpZM$cf!zE*==x_|_%q`}=Zx{^{D0!c|33YnJHME`{=c~J%3QJK zh6udzzGv99Hg?UurtX|;WaIy+_$S@3s^>G4KL3-wbiNYIf6BZ`a&F%{sr^5xz3RS~ z>;Dt9|4Fp|r*%Jf{;BdG_wTRzvF?1ETlY`u_^&%}*PY+9`+w&AEABc-k5$UZ7 zv*s*f71#G^V{YGtRbw_Q&aG}_t%hqD(5|=BB98lowpjnWjv)$&{ebur;i`};-=E#* zaqC^K-TK{6bNy_TXP;pL%zY5o4sq|h*mmReX!hBW`!t>2nD<7y`!!eN_u6|cO+V7z zkFo8n(c4K{Pttzh?|mHSS8?w(b?vBYznJxL?GvdV{^LyJ(!el$aEV4r0$;rsS*zi_ z7;JgZI^#s#ogpOmRpPs%A76#s|Fr|YhggToQyM2f(a)9dB@b-wtv|#h)ziL!G1?#I zhqWO*enzMzdfBIz?^CYR4{_~}whzyreCE{eL+*9Deog!9zmHb|`Il_}sHZCq{HHKz z|DW=oi}J-wJ=(uhe8GfLqz~bC=@F5 z=Hu{1@*2S+Oe$BkLoLkCdGqcO=EDv6onZ11B zwYj;>;*uHWDcCd*&StXNrTLi!5jUI5<`$PO{XD}%)9mZ)n;e_V%`d-tX=x!l^EwY* znOP9=DW2lnJOyL9tC_{QZ0?%SwlI^;EH7t-Z&4y#Cr|ebJI8|pxFQNW$G*XpKmiL& zvx}mvXV|wm%oq=6GV`Js$gm=OQUznLlhC1vC+>rAD@oCAne0l@E~eLE9dFZP%V$Z? zEcr^2{JWOwTI*%2rv=|@y~^}N>SJraHNMucORptdR{yP!@7~E>ym*m;P8c9Hy7AAx z7bS%CMzQTh4J}&+1UV!;l)(ZLVAdls^B(6l)Q`ajWfaI}WHi_0V zIu5wX+?~50Z$XbS)#bIgT;=0|FFuQ#?Qhnz2UoYh-dA6={dzv^bv)U|S2M@|(_Hqu z{aWA68$wvrtyjMu|F^D#c)Pb|zUy(>ZFK31j(KdR&3 zwXd|`CEGsHHvW%l`&sT<>ip#^^GvppS>4SCsZZa}ZaVhyGsbniS8#MSN>6e`_)Y)7JG=b>ib`}-<4js-(?5d z*8fKLKS!ngmiNQ%6V`s)_;0!Q{~pJ`?fXUR&HpQx&!?{Cgh9mQ`@W*PnSKA$)Pqge zcdn+r|C`nRdhONd_nB5-|8;%!_Z3|KBI~A(x7od|I{)jfZ`AI!&Hom%f9l%*>wUlN z`)9QMNB#Ln$Fb}Cwr$_vs_%c-_jcF!d#n9#`TkYwJ}BD$)bsp}^lFMFQ%Np2`2N1z zpDvcz4L_NN?^fgK>{`k9*-l}n8^YXP*n$0jDexf!*aPqb_XfmAp1;-3v+Z|n{kB(o z+BVOc`R&tefQ1jT^+TmDoVv6T-b7iUC^kW4!NIN?^o; z+rh=JtpAYWvCfs_BQ3GyuM)3&@2JMR>Q9GToaO8*!%4w+*xyq9+Y>NTat6bX}nR{JQxy@Qv~7PEU`H{@tj@Vxyfp=1*bF zdk~Yvm_iuyF2sz87&y3frypZHR>`}Y5NZF|fjI^oIbI$XInIYUh8#KWo)9@c_b|t> zBgb=tBFD8b$A}}xuVW&|NSI^Pk>lTeBFEoF;D4&;l`R6v%DoRenxCMvVGW)m!JlEg zv0;x4sLEXgg*7`tXTusiM}l{H_>_1VPV|MhH_-PS-0q8npQuUJ`h(yDAKLSOXixWX zc*ZOJov;miiHRvoo$DlYPP_o#;@1x+JK@!SnxVrr7$N0wsSm6>0}sjZrEAsK*9Z8a zJG554y}f`Rx+7~9E{d>demK#K+web#jveOLeT`< zesxav=o(%Xm4R)*L#W_ea$(}v)MQ_1O#DQ^OZ@uLK~?$p4Eytp(VqhSG1PIYTcKl& z`@}9z_=FWygHOnB#0-Rk+n-NipN#UkEH`4(D-A2*l`x0&Ji*!_DIZBIg=JznGXdPRUZF*hjT4te!qR1B>8j&4Ju!xO?4S6OT5gj&AVwi|`p*)0x7YY9er+4P>g1a8Zu2DIRp-dT8wg!Onfg~Dc%Oo|%$o3W zMO$1Uc-8SYfy$HT!YdDrOTFT}xvClbbr8|~phDr`xhPHk*Gkk(9xqqb3BsDe;XCEM zUwR}fnrO zMLN(4#PJz9dM>EZWAv%>M0g4nfYnz)ZH=eX2}29C?49G8j#j?1GQ zmx=+7%cC4u)m!o=4&bf)2&p|n^ zsyTq;;yEbCRdpyF56XvfTu%V02OO6Ne3o&01AV}8d6eU7{XsxEuGW9Xz;W@p`Vy<) zTqhyQakbebH=Cqu)zQ%b_@O&Cj!T=ul;iTj*zzgIC9#9JQI1PhkaAo;<+#wIrySRT z)RuBw*q;K`99QE!59PR2A;4x;^-_*Y*A4inX8I||CBMBuOZMuc92X$)>AadtIWD0D zI438EaAMk&XIX$i-LDB-wJ1L3$3wQyXhi*Q^Tr5qQgB^(!)KsYXq zQjSaiPmXe28l@bUMk&XI8VJXQD6!2^FR{%LCAK-1MmR1+EgTo>A{-Z@7LE&ROE@kp zi*Q_s5{?T?ARHI!B^=i=ux*`o58=4-ZjP&lgCXtk0fpO(YGaFPImguj+x{lrD96=i zDUK3Lp*b$qrWMTS&!T(#z^ ni-95>S5sIt!g1AHFT!!{fq@!q5(7mzuBNbPV%Pd5bg=ww#>uGa diff --git a/src/test/kc/complex/tetris/playfield-screen.imap b/src/test/kc/complex/tetris/playfield-screen.imap index acfe81146f4377fda5bf73a877e3758ff378abd0..2383fffb336cb1cda74175ff8ee4fef05af5631d 100644 GIT binary patch delta 23 dcmeyt{DXOe1S5Mxf&&8(OcrNUob1530{~PY20s7* delta 23 dcmeyt{DXOe1mk1{Mg{hU1P2Bnm~79u6986R21ft@ diff --git a/src/test/kc/complex/tetris/playfield-screen.iscr b/src/test/kc/complex/tetris/playfield-screen.iscr index 7e11adbea2bf358b3373ce6c6de507d174d955fe..d715cc1ea1361a3e84f85c463df36a1462ceffdd 100644 GIT binary patch delta 174 zcmZqRXyBM|MnFkfMO6U|B)P@aq|_(gabs3iR-UZND9@-o*_F}OL|GXkFC+}1L8PRH zCJ<;bFfuc6D?k+p32XD{2r4K@=?bb(-p06A5iX9TkChDs*cllZxPg|mFxdfBLCi-n TURnkOWSJR($~He{l4S${%NiP7 delta 174 zcmZqRXyBM|MnG9b0SY9!#Z{%$Cf;#lR##V_tjZ|Qs6N@1(bhy=9il);7^YG|K~h5# z2(%a&nHjhhpbCV9wRv;|6%?d&1=S{RV_d5U7e~^^$_4`Lj0_CiKucPf?0~8u=A#%d SEdv6w%#1)~n;$dDG6DeF^BR%> diff --git a/src/test/kc/complex/tetris/tetris-pieces.kc b/src/test/kc/complex/tetris/tetris-pieces.kc index e53f9f59b..d725877f6 100644 --- a/src/test/kc/complex/tetris/tetris-pieces.kc +++ b/src/test/kc/complex/tetris/tetris-pieces.kc @@ -171,8 +171,12 @@ align($40) byte[4*4*4] PIECE_I = { // The different pieces word[] PIECES = { (word)PIECE_T, (word)PIECE_S, (word)PIECE_Z, (word)PIECE_J, (word)PIECE_O, (word)PIECE_I, (word)PIECE_L }; -// The chars to use for the different pieces -byte[] PIECES_CHARS = { $64, $65, $a5, $65, $64, $64, $a5 }; +// The chars to use for the different pieces - when inside the playing area +byte[] PIECES_CHARS = { $65, $66, $a6, $66, $65, $65, $a6 }; + +// The chars to use for the different pieces - when outside the playing area (eg. the next area). +byte[] PIECES_NEXT_CHARS = { $63, $64, $a4, $64, $63, $63, $a4 }; + // The initial X/Y for each piece byte[] PIECES_START_X = { 4, 4, 4, 4, 4, 4, 4 }; diff --git a/src/test/kc/complex/tetris/tetris-play.kc b/src/test/kc/complex/tetris/tetris-play.kc index 6ea32794c..4a6a612d5 100644 --- a/src/test/kc/complex/tetris/tetris-play.kc +++ b/src/test/kc/complex/tetris/tetris-play.kc @@ -11,6 +11,9 @@ byte*[PLAYFIELD_LINES] playfield_lines; // Indixes into the playfield for each playfield line byte[PLAYFIELD_LINES+1] playfield_lines_idx; +// The index of the next moving piece. (0-6) +byte next_piece_idx = 0; + // The current moving piece. Points to the start of the piece definition. byte* current_piece = 0; @@ -219,21 +222,28 @@ void play_lock_current() { } // Spawn a new piece +// Moves the next piece into the current and spawns a new next piece void play_spawn_current() { + // Move next piece into current + byte current_piece_idx = next_piece_idx; + current_piece = PIECES[current_piece_idx<<1]; + current_piece_char = PIECES_CHARS[current_piece_idx]; + current_orientation = 0; + current_piece_gfx = current_piece + current_orientation; + current_xpos = PIECES_START_X[current_piece_idx]; + current_ypos = PIECES_START_Y[current_piece_idx]; + if(play_collision(current_xpos,current_ypos,current_orientation)==COLLISION_PLAYFIELD) { + game_over = 1; + } + + // Spawn a new next piece // Pick a random piece (0-6) byte piece_idx = 7; while(piece_idx==7) { piece_idx = sid_rnd()&7; } - current_piece = PIECES[piece_idx<<1]; - current_piece_char = PIECES_CHARS[piece_idx]; - current_orientation = 0; - current_piece_gfx = current_piece + current_orientation; - current_xpos = PIECES_START_X[piece_idx]; - current_ypos = PIECES_START_Y[piece_idx]; - if(play_collision(current_xpos,current_ypos,current_orientation)==COLLISION_PLAYFIELD) { - game_over = 1; - } + next_piece_idx = piece_idx; + } // Look through the playfield for lines - and remove any lines found diff --git a/src/test/kc/complex/tetris/tetris-render.kc b/src/test/kc/complex/tetris/tetris-render.kc index fbc643cc4..ab025a35d 100644 --- a/src/test/kc/complex/tetris/tetris-render.kc +++ b/src/test/kc/complex/tetris/tetris-render.kc @@ -176,3 +176,32 @@ void render_moving() { } } +// Render the next tetromino in the "next" area +void render_next() { + + // Find the screen area + word next_area_offset = 40*12 + 24 + 4; + byte* screen_next_area; + if(render_screen_render==0) { + screen_next_area = PLAYFIELD_SCREEN_1+next_area_offset; + } else { + screen_next_area = PLAYFIELD_SCREEN_2+next_area_offset; + } + + // Render the next piece + byte* next_piece_gfx = PIECES[next_piece_idx<<1]; + byte next_piece_char = PIECES_NEXT_CHARS[next_piece_idx]; + for(byte l:0..3) { + for(byte c:0..3) { + byte cell = *next_piece_gfx++; + if(cell!=0) { + *screen_next_area = next_piece_char; + } else { + *screen_next_area = 0; + } + screen_next_area++; + } + screen_next_area += 36; + } +} + diff --git a/src/test/kc/complex/tetris/tetris.kc b/src/test/kc/complex/tetris/tetris.kc index 2e8efafe8..0c3709a7a 100644 --- a/src/test/kc/complex/tetris/tetris.kc +++ b/src/test/kc/complex/tetris/tetris.kc @@ -18,10 +18,13 @@ void main() { sprites_init(); sprites_irq_init(); play_init(); + // Spawn twice to spawn both current & next + play_spawn_current(); play_spawn_current(); render_playfield(); render_moving(); - while(true) { + render_next(); + while(true) { // Wait for a frame to pass while(*RASTER!=$ff) {} //*BORDERCOL = render_screen_show>>4; @@ -41,6 +44,7 @@ void main() { if(render!=0) { render_playfield(); render_moving(); + render_next(); render_score(); render_screen_swap(); } diff --git a/src/test/ref/complex/tetris/tetris.asm b/src/test/ref/complex/tetris/tetris.asm index 2b022b138..d26214775 100644 --- a/src/test/ref/complex/tetris/tetris.asm +++ b/src/test/ref/complex/tetris/tetris.asm @@ -76,41 +76,42 @@ .label PLAYFIELD_SPRITE_PTRS_2 = PLAYFIELD_SCREEN_2+SPRITE_PTRS .const IRQ_RASTER_FIRST = SPRITES_FIRST_YPOS+$13 .const toSpritePtr1_return = PLAYFIELD_SPRITES>>6 - .label keyboard_events_size = $22 - .label render_screen_showing = $24 - .label irq_raster_next = $23 - .label irq_sprite_ypos = $25 - .label irq_sprite_ptr = $26 - .label irq_cnt = $27 + .label keyboard_events_size = $23 + .label render_screen_showing = $25 + .label irq_raster_next = $24 + .label irq_sprite_ypos = $26 + .label irq_sprite_ptr = $27 + .label irq_cnt = $28 .label current_movedown_slow = $18 .label current_ypos = $10 .label current_xpos = $20 .label current_orientation = $1d .label current_piece_gfx = $1e + .label current_piece_char = $1c .label level_bcd = $19 + .label current_piece = $1a + .label game_over = $22 + .label next_piece_idx = $21 .label level = $17 .label render_screen_render = 3 .label render_screen_show = 2 .label current_movedown_counter = 4 .label lines_bcd = $11 .label score_bcd = $13 - .label current_piece = $1a - .label current_piece_char = $1c - .label game_over = $21 - .label current_piece_16 = 5 - .label render_screen_render_30 = 9 - .label current_xpos_57 = $a - .label current_piece_gfx_62 = 5 - .label render_screen_render_64 = 9 - .label current_xpos_124 = $a - .label current_xpos_125 = $a - .label current_piece_gfx_114 = 5 - .label current_piece_gfx_115 = 5 - .label current_piece_90 = 5 - .label current_piece_91 = 5 - .label current_piece_92 = 5 - .label current_piece_93 = 5 - .label current_piece_94 = 5 + .label current_piece_17 = 5 + .label render_screen_render_33 = 9 + .label current_xpos_58 = $a + .label current_piece_gfx_63 = 5 + .label render_screen_render_69 = 9 + .label current_xpos_132 = $a + .label current_xpos_133 = $a + .label current_piece_gfx_122 = 5 + .label current_piece_gfx_123 = 5 + .label current_piece_98 = 5 + .label current_piece_99 = 5 + .label current_piece_100 = 5 + .label current_piece_101 = 5 + .label current_piece_102 = 5 bbegin: lda #0 sta render_screen_showing @@ -132,21 +133,26 @@ main: { jsr play_init lda #0 sta game_over + sta next_piece_idx + jsr play_spawn_current jsr play_spawn_current ldx #$40 jsr render_playfield ldy current_ypos lda current_xpos - sta current_xpos_124 + sta current_xpos_132 lda current_piece_gfx - sta current_piece_gfx_114 + sta current_piece_gfx_122 lda current_piece_gfx+1 - sta current_piece_gfx_114+1 + sta current_piece_gfx_122+1 ldx current_piece_char lda #$40 - sta render_screen_render_30 + sta render_screen_render_33 jsr render_moving - ldy play_spawn_current._3 + ldy play_spawn_current.piece_idx + lda #$40 + jsr render_next + ldy play_spawn_current._0 lda PIECES,y sta current_piece lda PIECES+1,y @@ -190,15 +196,18 @@ main: { jsr render_playfield ldy current_ypos lda render_screen_render - sta render_screen_render_64 + sta render_screen_render_69 lda current_xpos - sta current_xpos_125 + sta current_xpos_133 lda current_piece_gfx - sta current_piece_gfx_115 + sta current_piece_gfx_123 lda current_piece_gfx+1 - sta current_piece_gfx_115+1 + sta current_piece_gfx_123+1 ldx current_piece_char jsr render_moving + lda render_screen_render + ldy next_piece_idx + jsr render_next jsr render_score jsr render_screen_swap jmp b4 @@ -318,6 +327,76 @@ render_bcd: { !: rts } +render_next: { + .const next_area_offset = $28*$c+$18+4 + .label next_piece_char = $a + .label next_piece_gfx = 5 + .label screen_next_area = 7 + .label l = 9 + cmp #0 + beq b1 + lda #PLAYFIELD_SCREEN_2+next_area_offset + sta screen_next_area+1 + jmp b2 + b1: + lda #PLAYFIELD_SCREEN_1+next_area_offset + sta screen_next_area+1 + b2: + tya + asl + tax + lda PIECES_NEXT_CHARS,y + sta next_piece_char + lda PIECES,x + sta next_piece_gfx + lda PIECES+1,x + sta next_piece_gfx+1 + lda #0 + sta l + b3: + ldx #0 + b4: + ldy #0 + lda (next_piece_gfx),y + inc next_piece_gfx + bne !+ + inc next_piece_gfx+1 + !: + cmp #0 + bne b5 + lda #0 + tay + sta (screen_next_area),y + b6: + inc screen_next_area + bne !+ + inc screen_next_area+1 + !: + inx + cpx #4 + bne b4 + lda screen_next_area + clc + adc #$24 + sta screen_next_area + bcc !+ + inc screen_next_area+1 + !: + inc l + lda l + cmp #4 + bne b3 + rts + b5: + lda next_piece_char + ldy #0 + sta (screen_next_area),y + jmp b6 +} render_moving: { .label ypos2 = $b .label screen_line = 7 @@ -352,7 +431,7 @@ render_moving: { bne b1 rts b2: - lda render_screen_render_30 + lda render_screen_render_33 clc adc ypos2 tay @@ -360,13 +439,13 @@ render_moving: { sta screen_line lda screen_lines_1+1,y sta screen_line+1 - lda current_xpos_57 + lda current_xpos_58 sta xpos lda #0 sta c b4: ldy i - lda (current_piece_gfx_62),y + lda (current_piece_gfx_63),y inc i cmp #0 beq b5 @@ -426,7 +505,7 @@ render_playfield: { play_movement: { .label render = 9 .label return = 9 - .label key_event = $28 + .label key_event = $29 lda key_event jsr play_move_down txa @@ -474,9 +553,9 @@ play_move_rotate: { sta play_collision.ypos ldx orientation lda current_piece - sta current_piece_93 + sta current_piece_101 lda current_piece+1 - sta current_piece_93+1 + sta current_piece_101+1 jsr play_collision cmp #COLLISION_NONE bne b3 @@ -504,7 +583,7 @@ play_collision: { .label piece_gfx = 5 .label ypos2 = $b .label playfield_line = 7 - .label i = $29 + .label i = $2a .label col = $f .label l = $d .label i_2 = $e @@ -601,9 +680,9 @@ play_move_leftright: { sta play_collision.ypos ldx current_orientation lda current_piece - sta current_piece_92 + sta current_piece_100 lda current_piece+1 - sta current_piece_92+1 + sta current_piece_100+1 jsr play_collision cmp #COLLISION_NONE bne b3 @@ -623,9 +702,9 @@ play_move_leftright: { sta play_collision.ypos ldx current_orientation lda current_piece - sta current_piece_91 + sta current_piece_99 lda current_piece+1 - sta current_piece_91+1 + sta current_piece_99+1 jsr play_collision cmp #COLLISION_NONE bne b3 @@ -665,9 +744,9 @@ play_move_down: { sta play_collision.xpos ldx current_orientation lda current_piece - sta current_piece_90 + sta current_piece_98 lda current_piece+1 - sta current_piece_90+1 + sta current_piece_98+1 jsr play_collision cmp #COLLISION_NONE beq b6 @@ -677,7 +756,7 @@ play_move_down: { tax jsr play_update_score jsr play_spawn_current - ldy play_spawn_current._3 + ldy play_spawn_current._0 lda PIECES,y sta current_piece lda PIECES+1,y @@ -698,17 +777,15 @@ play_move_down: { jmp b7 } play_spawn_current: { - .label _3 = 4 - ldx #7 - b1: - cpx #7 - beq b2 + .label _0 = 4 + .label piece_idx = $21 + ldx next_piece_idx txa asl - sta _3 + sta _0 lda PIECES_CHARS,x sta current_piece_char - ldy _3 + ldy _0 lda PIECES,y sta current_piece_gfx lda PIECES+1,y @@ -722,22 +799,28 @@ play_spawn_current: { lda current_ypos sta play_collision.ypos lda PIECES,y - sta current_piece_94 + sta current_piece_102 lda PIECES+1,y - sta current_piece_94+1 + sta current_piece_102+1 ldx #0 jsr play_collision cmp #COLLISION_PLAYFIELD - bne breturn + bne b1 lda #1 sta game_over - breturn: - rts + b1: + lda #7 + sta piece_idx b2: + lda piece_idx + cmp #7 + beq b3 + rts + b3: jsr sid_rnd and #7 - tax - jmp b1 + sta piece_idx + jmp b2 } sid_rnd: { lda SID_VOICE3_OSC @@ -745,7 +828,7 @@ sid_rnd: { } play_update_score: { .label lines_before = 4 - .label add_bcd = $2a + .label add_bcd = $2b cpx #0 beq breturn lda lines_bcd @@ -1391,7 +1474,7 @@ sid_rnd_init: { } sprites_irq: { .const toSpritePtr2_return = PLAYFIELD_SPRITES>>6 - .label raster_sprite_gfx_modify = $2e + .label raster_sprite_gfx_modify = $2f sta rega+1 stx regx+1 cld @@ -1503,7 +1586,8 @@ sprites_irq: { PIECE_O: .byte 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0 .align $40 PIECE_I: .byte 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0 - PIECES_CHARS: .byte $64, $65, $a5, $65, $64, $64, $a5 + PIECES_CHARS: .byte $65, $66, $a6, $66, $65, $65, $a6 + PIECES_NEXT_CHARS: .byte $63, $64, $a4, $64, $63, $63, $a4 PIECES_START_X: .byte 4, 4, 4, 4, 4, 4, 4 PIECES_START_Y: .byte 1, 1, 1, 1, 1, 0, 1 MOVEDOWN_SLOW_SPEEDS: .byte $30, $2b, $26, $21, $1c, $17, $12, $d, 8, 6, 5, 5, 5, 4, 4, 4, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 diff --git a/src/test/ref/complex/tetris/tetris.cfg b/src/test/ref/complex/tetris/tetris.cfg index 09ccc61e9..b7a473752 100644 --- a/src/test/ref/complex/tetris/tetris.cfg +++ b/src/test/ref/complex/tetris/tetris.cfg @@ -17,8 +17,8 @@ }} kickasm(location (const byte*) PLAYFIELD_COLORS_ORIGINAL#0) {{ .import binary "playfield-screen.col" }} - to:@22 -@22: scope:[] from @14 + to:@23 +@23: scope:[] from @14 kickasm(location (const byte*) PLAYFIELD_SPRITES#0) {{ .var sprites = LoadPicture("playfield-sprites.png", List().add($010101, $000000)) // Put the sprites into memory .for(var sy=0;sy<10;sy++) { @@ -34,25 +34,25 @@ } } }} - to:@23 -@23: scope:[] from @22 + to:@24 +@24: scope:[] from @23 [6] (byte) irq_raster_next#0 ← (const byte) IRQ_RASTER_FIRST#0 [7] (byte) irq_sprite_ypos#0 ← (const byte) SPRITES_FIRST_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 21 to:toSpritePtr1 -toSpritePtr1: scope:[] from @23 +toSpritePtr1: scope:[] from @24 [8] phi() - to:@38 -@38: scope:[] from toSpritePtr1 + to:@39 +@39: scope:[] from toSpritePtr1 [9] (byte) irq_sprite_ptr#0 ← (const byte) toSpritePtr1_return#0+(byte/signed byte/word/signed word/dword/signed dword) 3 [10] (byte) irq_cnt#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 - to:@37 -@37: scope:[] from @38 + to:@38 +@38: scope:[] from @39 [11] phi() [12] call main to:@end -@end: scope:[] from @37 +@end: scope:[] from @38 [13] phi() -main: scope:[main] from @37 +main: scope:[main] from @38 [14] phi() [15] call sid_rnd_init to:main::@25 @@ -78,1080 +78,1144 @@ main::@29: scope:[main] from main::@28 to:main::@30 main::@30: scope:[main] from main::@29 [26] phi() - [27] call render_playfield + [27] call play_spawn_current to:main::@31 main::@31: scope:[main] from main::@30 - [28] (byte~) current_ypos#100 ← (byte) current_ypos#22 - [29] (byte~) current_xpos#124 ← (byte) current_xpos#28 - [30] (byte*~) current_piece_gfx#114 ← (byte*) current_piece_gfx#21 - [31] (byte~) current_piece_char#102 ← (byte) current_piece_char#16 - [32] call render_moving - [33] (byte*~) current_piece#88 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) + [28] phi() + [29] call render_playfield + to:main::@32 +main::@32: scope:[main] from main::@31 + [30] (byte~) current_ypos#108 ← (byte) current_ypos#5 + [31] (byte~) current_xpos#132 ← (byte) current_xpos#102 + [32] (byte*~) current_piece_gfx#122 ← (byte*) current_piece_gfx#7 + [33] (byte~) current_piece_char#110 ← (byte) current_piece_char#4 + [34] call render_moving + to:main::@33 +main::@33: scope:[main] from main::@32 + [35] (byte~) next_piece_idx#84 ← (byte) play_spawn_current::piece_idx#2 + [36] call render_next + [37] (byte*~) current_piece#96 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$0) to:main::@1 -main::@1: scope:[main] from main::@11 main::@31 main::@39 - [34] (byte) level_bcd#11 ← phi( main::@11/(byte) level_bcd#17 main::@31/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@39/(byte) level_bcd#17 ) - [34] (byte) level#10 ← phi( main::@11/(byte) level#16 main::@31/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@39/(byte) level#16 ) - [34] (dword) score_bcd#18 ← phi( main::@11/(dword) score_bcd#14 main::@31/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@39/(dword) score_bcd#14 ) - [34] (word) lines_bcd#19 ← phi( main::@11/(word) lines_bcd#15 main::@31/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@39/(word) lines_bcd#15 ) - [34] (byte) current_movedown_counter#16 ← phi( main::@11/(byte) current_movedown_counter#14 main::@31/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@39/(byte) current_movedown_counter#14 ) - [34] (byte) keyboard_events_size#19 ← phi( main::@11/(byte) keyboard_events_size#16 main::@31/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@39/(byte) keyboard_events_size#16 ) - [34] (byte) game_over#19 ← phi( main::@11/(byte) game_over#14 main::@31/(byte) game_over#15 main::@39/(byte) game_over#14 ) - [34] (byte) current_ypos#25 ← phi( main::@11/(byte) current_ypos#17 main::@31/(byte) current_ypos#22 main::@39/(byte) current_ypos#17 ) - [34] (byte) current_xpos#113 ← phi( main::@11/(byte) current_xpos#17 main::@31/(byte) current_xpos#28 main::@39/(byte) current_xpos#17 ) - [34] (byte*) current_piece_gfx#103 ← phi( main::@11/(byte*) current_piece_gfx#16 main::@31/(byte*) current_piece_gfx#21 main::@39/(byte*) current_piece_gfx#16 ) - [34] (byte) current_orientation#12 ← phi( main::@11/(byte) current_orientation#16 main::@31/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@39/(byte) current_orientation#16 ) - [34] (byte) current_piece_char#19 ← phi( main::@11/(byte) current_piece_char#14 main::@31/(byte) current_piece_char#16 main::@39/(byte) current_piece_char#14 ) - [34] (byte*) current_piece#20 ← phi( main::@11/(byte*) current_piece#14 main::@31/(byte*~) current_piece#88 main::@39/(byte*) current_piece#14 ) - [34] (byte) current_movedown_slow#14 ← phi( main::@11/(byte) current_movedown_slow#21 main::@31/(byte) current_movedown_slow#1 main::@39/(byte) current_movedown_slow#21 ) - [34] (byte) render_screen_render#17 ← phi( main::@31/(byte/signed byte/word/signed word/dword/signed dword) 64 main::@39/(byte) render_screen_render#11 ) - [34] (byte) render_screen_show#16 ← phi( main::@31/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@39/(byte) render_screen_show#13 ) +main::@1: scope:[main] from main::@11 main::@33 main::@42 + [38] (byte) level_bcd#11 ← phi( main::@11/(byte) level_bcd#17 main::@33/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@42/(byte) level_bcd#17 ) + [38] (byte) level#10 ← phi( main::@11/(byte) level#16 main::@33/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@42/(byte) level#16 ) + [38] (dword) score_bcd#18 ← phi( main::@11/(dword) score_bcd#14 main::@33/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@42/(dword) score_bcd#14 ) + [38] (word) lines_bcd#19 ← phi( main::@11/(word) lines_bcd#15 main::@33/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@42/(word) lines_bcd#15 ) + [38] (byte) current_movedown_counter#16 ← phi( main::@11/(byte) current_movedown_counter#14 main::@33/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@42/(byte) current_movedown_counter#14 ) + [38] (byte) keyboard_events_size#19 ← phi( main::@11/(byte) keyboard_events_size#16 main::@33/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@42/(byte) keyboard_events_size#16 ) + [38] (byte) next_piece_idx#10 ← phi( main::@11/(byte) next_piece_idx#16 main::@33/(byte) play_spawn_current::piece_idx#2 main::@42/(byte) next_piece_idx#16 ) + [38] (byte) game_over#10 ← phi( main::@11/(byte) game_over#15 main::@33/(byte) game_over#52 main::@42/(byte) game_over#15 ) + [38] (byte) current_ypos#10 ← phi( main::@11/(byte) current_ypos#18 main::@33/(byte) current_ypos#5 main::@42/(byte) current_ypos#18 ) + [38] (byte) current_xpos#121 ← phi( main::@11/(byte) current_xpos#18 main::@33/(byte) current_xpos#102 main::@42/(byte) current_xpos#18 ) + [38] (byte*) current_piece_gfx#111 ← phi( main::@11/(byte*) current_piece_gfx#17 main::@33/(byte*) current_piece_gfx#7 main::@42/(byte*) current_piece_gfx#17 ) + [38] (byte) current_orientation#13 ← phi( main::@11/(byte) current_orientation#17 main::@33/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@42/(byte) current_orientation#17 ) + [38] (byte) current_piece_char#21 ← phi( main::@11/(byte) current_piece_char#15 main::@33/(byte) current_piece_char#4 main::@42/(byte) current_piece_char#15 ) + [38] (byte*) current_piece#10 ← phi( main::@11/(byte*) current_piece#15 main::@33/(byte*~) current_piece#96 main::@42/(byte*) current_piece#15 ) + [38] (byte) current_movedown_slow#14 ← phi( main::@11/(byte) current_movedown_slow#21 main::@33/(byte) current_movedown_slow#1 main::@42/(byte) current_movedown_slow#21 ) + [38] (byte) render_screen_render#18 ← phi( main::@33/(byte/signed byte/word/signed word/dword/signed dword) 64 main::@42/(byte) render_screen_render#11 ) + [38] (byte) render_screen_show#16 ← phi( main::@33/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@42/(byte) render_screen_show#13 ) to:main::@4 main::@4: scope:[main] from main::@1 main::@4 - [35] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 + [39] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 to:main::@6 main::@6: scope:[main] from main::@4 - [36] phi() - [37] call render_show - to:main::@33 -main::@33: scope:[main] from main::@6 - [38] phi() - [39] call keyboard_event_scan - to:main::@34 -main::@34: scope:[main] from main::@33 [40] phi() - [41] call keyboard_event_get - [42] (byte) keyboard_event_get::return#3 ← (byte) keyboard_event_get::return#2 + [41] call render_show to:main::@35 -main::@35: scope:[main] from main::@34 - [43] (byte) main::key_event#0 ← (byte) keyboard_event_get::return#3 - [44] if((byte) game_over#19==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@7 - to:main::@9 -main::@9: scope:[main] from main::@35 main::@9 - [45] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) - to:main::@9 -main::@7: scope:[main] from main::@35 - [46] (byte) play_movement::key_event#0 ← (byte) main::key_event#0 - [47] call play_movement - [48] (byte) play_movement::return#3 ← (byte) play_movement::return#2 +main::@35: scope:[main] from main::@6 + [42] phi() + [43] call keyboard_event_scan to:main::@36 -main::@36: scope:[main] from main::@7 - [49] (byte) main::render#1 ← (byte) play_movement::return#3 +main::@36: scope:[main] from main::@35 + [44] phi() + [45] call keyboard_event_get + [46] (byte) keyboard_event_get::return#3 ← (byte) keyboard_event_get::return#2 + to:main::@37 +main::@37: scope:[main] from main::@36 + [47] (byte) main::key_event#0 ← (byte) keyboard_event_get::return#3 + [48] if((byte) game_over#10==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@7 + to:main::@9 +main::@9: scope:[main] from main::@37 main::@9 + [49] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) + to:main::@9 +main::@7: scope:[main] from main::@37 + [50] (byte) play_movement::key_event#0 ← (byte) main::key_event#0 + [51] call play_movement + [52] (byte) play_movement::return#3 ← (byte) play_movement::return#2 + to:main::@38 +main::@38: scope:[main] from main::@7 + [53] (byte) main::render#1 ← (byte) play_movement::return#3 to:main::@11 -main::@11: scope:[main] from main::@36 - [50] if((byte) main::render#1==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@1 +main::@11: scope:[main] from main::@38 + [54] if((byte) main::render#1==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@1 to:main::@23 main::@23: scope:[main] from main::@11 - [51] (byte~) render_screen_render#65 ← (byte) render_screen_render#17 - [52] call render_playfield - to:main::@37 -main::@37: scope:[main] from main::@23 - [53] (byte~) current_ypos#101 ← (byte) current_ypos#17 - [54] (byte~) render_screen_render#64 ← (byte) render_screen_render#17 - [55] (byte~) current_xpos#125 ← (byte) current_xpos#17 - [56] (byte*~) current_piece_gfx#115 ← (byte*) current_piece_gfx#16 - [57] (byte~) current_piece_char#103 ← (byte) current_piece_char#14 - [58] call render_moving - to:main::@38 -main::@38: scope:[main] from main::@37 - [59] phi() - [60] call render_score + [55] (byte~) render_screen_render#70 ← (byte) render_screen_render#18 + [56] call render_playfield to:main::@39 -main::@39: scope:[main] from main::@38 - [61] phi() - [62] call render_screen_swap +main::@39: scope:[main] from main::@23 + [57] (byte~) current_ypos#109 ← (byte) current_ypos#18 + [58] (byte~) render_screen_render#69 ← (byte) render_screen_render#18 + [59] (byte~) current_xpos#133 ← (byte) current_xpos#18 + [60] (byte*~) current_piece_gfx#123 ← (byte*) current_piece_gfx#17 + [61] (byte~) current_piece_char#111 ← (byte) current_piece_char#15 + [62] call render_moving + to:main::@40 +main::@40: scope:[main] from main::@39 + [63] (byte~) render_screen_render#68 ← (byte) render_screen_render#18 + [64] (byte~) next_piece_idx#85 ← (byte) next_piece_idx#16 + [65] call render_next + to:main::@41 +main::@41: scope:[main] from main::@40 + [66] phi() + [67] call render_score + to:main::@42 +main::@42: scope:[main] from main::@41 + [68] phi() + [69] call render_screen_swap to:main::@1 -render_screen_swap: scope:[render_screen_swap] from main::@39 - [63] (byte) render_screen_render#11 ← (byte) render_screen_render#17 ^ (byte/signed byte/word/signed word/dword/signed dword) 64 - [64] (byte) render_screen_show#13 ← (byte) render_screen_show#16 ^ (byte/signed byte/word/signed word/dword/signed dword) 64 +render_screen_swap: scope:[render_screen_swap] from main::@42 + [70] (byte) render_screen_render#11 ← (byte) render_screen_render#18 ^ (byte/signed byte/word/signed word/dword/signed dword) 64 + [71] (byte) render_screen_show#13 ← (byte) render_screen_show#16 ^ (byte/signed byte/word/signed word/dword/signed dword) 64 to:render_screen_swap::@return render_screen_swap::@return: scope:[render_screen_swap] from render_screen_swap - [65] return + [72] return to:@return -render_score: scope:[render_score] from main::@38 - [66] if((byte) render_screen_render#17==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_score::@2 +render_score: scope:[render_score] from main::@41 + [73] if((byte) render_screen_render#18==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_score::@2 to:render_score::@3 render_score::@3: scope:[render_score] from render_score - [67] phi() + [74] phi() to:render_score::@2 render_score::@2: scope:[render_score] from render_score render_score::@3 - [68] (byte*) render_score::screen#2 ← phi( render_score/(const byte*) PLAYFIELD_SCREEN_1#0 render_score::@3/(const byte*) PLAYFIELD_SCREEN_2#0 ) - [69] (byte*) render_bcd::screen#0 ← (byte*) render_score::screen#2 - [70] (byte) render_bcd::bcd#0 ← *((const byte*) render_score::score_bytes#0+(byte/signed byte/word/signed word/dword/signed dword) 2) - [71] call render_bcd + [75] (byte*) render_score::screen#2 ← phi( render_score/(const byte*) PLAYFIELD_SCREEN_1#0 render_score::@3/(const byte*) PLAYFIELD_SCREEN_2#0 ) + [76] (byte*) render_bcd::screen#0 ← (byte*) render_score::screen#2 + [77] (byte) render_bcd::bcd#0 ← *((const byte*) render_score::score_bytes#0+(byte/signed byte/word/signed word/dword/signed dword) 2) + [78] call render_bcd to:render_score::@5 render_score::@5: scope:[render_score] from render_score::@2 - [72] (byte*) render_bcd::screen#1 ← (byte*) render_score::screen#2 - [73] (byte) render_bcd::bcd#1 ← *((const byte*) render_score::score_bytes#0+(byte/signed byte/word/signed word/dword/signed dword) 1) - [74] call render_bcd + [79] (byte*) render_bcd::screen#1 ← (byte*) render_score::screen#2 + [80] (byte) render_bcd::bcd#1 ← *((const byte*) render_score::score_bytes#0+(byte/signed byte/word/signed word/dword/signed dword) 1) + [81] call render_bcd to:render_score::@6 render_score::@6: scope:[render_score] from render_score::@5 - [75] (byte*) render_bcd::screen#2 ← (byte*) render_score::screen#2 - [76] (byte) render_bcd::bcd#2 ← *((const byte*) render_score::score_bytes#0) - [77] call render_bcd + [82] (byte*) render_bcd::screen#2 ← (byte*) render_score::screen#2 + [83] (byte) render_bcd::bcd#2 ← *((const byte*) render_score::score_bytes#0) + [84] call render_bcd to:render_score::@7 render_score::@7: scope:[render_score] from render_score::@6 - [78] (byte) render_bcd::bcd#3 ← > (word) lines_bcd#15 - [79] (byte*) render_bcd::screen#3 ← (byte*) render_score::screen#2 - [80] call render_bcd + [85] (byte) render_bcd::bcd#3 ← > (word) lines_bcd#15 + [86] (byte*) render_bcd::screen#3 ← (byte*) render_score::screen#2 + [87] call render_bcd to:render_score::@8 render_score::@8: scope:[render_score] from render_score::@7 - [81] (byte) render_bcd::bcd#4 ← < (word) lines_bcd#15 - [82] (byte*) render_bcd::screen#4 ← (byte*) render_score::screen#2 - [83] call render_bcd + [88] (byte) render_bcd::bcd#4 ← < (word) lines_bcd#15 + [89] (byte*) render_bcd::screen#4 ← (byte*) render_score::screen#2 + [90] call render_bcd to:render_score::@9 render_score::@9: scope:[render_score] from render_score::@8 - [84] (byte*) render_bcd::screen#5 ← (byte*) render_score::screen#2 - [85] (byte) render_bcd::bcd#5 ← (byte) level_bcd#17 - [86] call render_bcd + [91] (byte*) render_bcd::screen#5 ← (byte*) render_score::screen#2 + [92] (byte) render_bcd::bcd#5 ← (byte) level_bcd#17 + [93] call render_bcd to:render_score::@return render_score::@return: scope:[render_score] from render_score::@9 - [87] return + [94] 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 - [88] (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 ) - [88] (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 ) - [88] (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 ) - [88] (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 ) - [89] (byte*) render_bcd::screen_pos#0 ← (byte*) render_bcd::screen#6 + (word) render_bcd::offset#6 - [90] if((byte) render_bcd::only_low#6!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_bcd::@1 + [95] (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 ) + [95] (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 ) + [95] (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 ) + [95] (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 ) + [96] (byte*) render_bcd::screen_pos#0 ← (byte*) render_bcd::screen#6 + (word) render_bcd::offset#6 + [97] 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 - [91] (byte~) render_bcd::$3 ← (byte) render_bcd::bcd#6 >> (byte/signed byte/word/signed word/dword/signed dword) 4 - [92] (byte~) render_bcd::$4 ← (const byte) render_bcd::ZERO_CHAR#0 + (byte~) render_bcd::$3 - [93] *((byte*) render_bcd::screen_pos#0) ← (byte~) render_bcd::$4 - [94] (byte*) render_bcd::screen_pos#2 ← ++ (byte*) render_bcd::screen_pos#0 + [98] (byte~) render_bcd::$3 ← (byte) render_bcd::bcd#6 >> (byte/signed byte/word/signed word/dword/signed dword) 4 + [99] (byte~) render_bcd::$4 ← (const byte) render_bcd::ZERO_CHAR#0 + (byte~) render_bcd::$3 + [100] *((byte*) render_bcd::screen_pos#0) ← (byte~) render_bcd::$4 + [101] (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 - [95] (byte*) render_bcd::screen_pos#3 ← phi( render_bcd/(byte*) render_bcd::screen_pos#0 render_bcd::@2/(byte*) render_bcd::screen_pos#2 ) - [96] (byte~) render_bcd::$5 ← (byte) render_bcd::bcd#6 & (byte/signed byte/word/signed word/dword/signed dword) 15 - [97] (byte~) render_bcd::$6 ← (const byte) render_bcd::ZERO_CHAR#0 + (byte~) render_bcd::$5 - [98] *((byte*) render_bcd::screen_pos#3) ← (byte~) render_bcd::$6 - [99] (byte*) render_bcd::screen_pos#1 ← ++ (byte*) render_bcd::screen_pos#3 + [102] (byte*) render_bcd::screen_pos#3 ← phi( render_bcd/(byte*) render_bcd::screen_pos#0 render_bcd::@2/(byte*) render_bcd::screen_pos#2 ) + [103] (byte~) render_bcd::$5 ← (byte) render_bcd::bcd#6 & (byte/signed byte/word/signed word/dword/signed dword) 15 + [104] (byte~) render_bcd::$6 ← (const byte) render_bcd::ZERO_CHAR#0 + (byte~) render_bcd::$5 + [105] *((byte*) render_bcd::screen_pos#3) ← (byte~) render_bcd::$6 + [106] (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 - [100] return + [107] return to:@return -render_moving: scope:[render_moving] from main::@31 main::@37 - [101] (byte) current_piece_char#64 ← phi( main::@31/(byte~) current_piece_char#102 main::@37/(byte~) current_piece_char#103 ) - [101] (byte*) current_piece_gfx#62 ← phi( main::@31/(byte*~) current_piece_gfx#114 main::@37/(byte*~) current_piece_gfx#115 ) - [101] (byte) current_xpos#57 ← phi( main::@31/(byte~) current_xpos#124 main::@37/(byte~) current_xpos#125 ) - [101] (byte) render_screen_render#30 ← phi( main::@31/(byte/signed byte/word/signed word/dword/signed dword) 64 main::@37/(byte~) render_screen_render#64 ) - [101] (byte) current_ypos#11 ← phi( main::@31/(byte~) current_ypos#100 main::@37/(byte~) current_ypos#101 ) - [102] (byte) render_moving::ypos2#0 ← (byte) current_ypos#11 << (byte/signed byte/word/signed word/dword/signed dword) 1 +render_next: scope:[render_next] from main::@33 main::@40 + [108] (byte) next_piece_idx#12 ← phi( main::@33/(byte~) next_piece_idx#84 main::@40/(byte~) next_piece_idx#85 ) + [108] (byte) render_screen_render#15 ← phi( main::@33/(byte/signed byte/word/signed word/dword/signed dword) 64 main::@40/(byte~) render_screen_render#68 ) + [109] if((byte) render_screen_render#15==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_next::@2 + to:render_next::@7 +render_next::@7: scope:[render_next] from render_next + [110] phi() + to:render_next::@2 +render_next::@2: scope:[render_next] from render_next render_next::@7 + [111] (byte*) render_next::screen_next_area#10 ← phi( render_next/(const byte*) PLAYFIELD_SCREEN_1#0+(const word) render_next::next_area_offset#0 render_next::@7/(const byte*) PLAYFIELD_SCREEN_2#0+(const word) render_next::next_area_offset#0 ) + [112] (byte~) render_next::$6 ← (byte) next_piece_idx#12 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [113] (byte) render_next::next_piece_char#0 ← *((const byte[]) PIECES_NEXT_CHARS#0 + (byte) next_piece_idx#12) + [114] (byte*~) render_next::next_piece_gfx#9 ← (byte*)*((const word[]) PIECES#0 + (byte~) render_next::$6) + to:render_next::@3 +render_next::@3: scope:[render_next] from render_next::@11 render_next::@2 + [115] (byte) render_next::l#7 ← phi( render_next::@11/(byte) render_next::l#1 render_next::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [115] (byte*) render_next::screen_next_area#9 ← phi( render_next::@11/(byte*) render_next::screen_next_area#3 render_next::@2/(byte*) render_next::screen_next_area#10 ) + [115] (byte*) render_next::next_piece_gfx#3 ← phi( render_next::@11/(byte*) render_next::next_piece_gfx#1 render_next::@2/(byte*~) render_next::next_piece_gfx#9 ) + to:render_next::@4 +render_next::@4: scope:[render_next] from render_next::@3 render_next::@6 + [116] (byte) render_next::c#2 ← phi( render_next::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 render_next::@6/(byte) render_next::c#1 ) + [116] (byte*) render_next::screen_next_area#4 ← phi( render_next::@3/(byte*) render_next::screen_next_area#9 render_next::@6/(byte*) render_next::screen_next_area#2 ) + [116] (byte*) render_next::next_piece_gfx#2 ← phi( render_next::@3/(byte*) render_next::next_piece_gfx#3 render_next::@6/(byte*) render_next::next_piece_gfx#1 ) + [117] (byte) render_next::cell#0 ← *((byte*) render_next::next_piece_gfx#2) + [118] (byte*) render_next::next_piece_gfx#1 ← ++ (byte*) render_next::next_piece_gfx#2 + [119] if((byte) render_next::cell#0!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_next::@5 + to:render_next::@9 +render_next::@9: scope:[render_next] from render_next::@4 + [120] *((byte*) render_next::screen_next_area#4) ← (byte/signed byte/word/signed word/dword/signed dword) 0 + to:render_next::@6 +render_next::@6: scope:[render_next] from render_next::@5 render_next::@9 + [121] (byte*) render_next::screen_next_area#2 ← ++ (byte*) render_next::screen_next_area#4 + [122] (byte) render_next::c#1 ← ++ (byte) render_next::c#2 + [123] if((byte) render_next::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_next::@4 + to:render_next::@11 +render_next::@11: scope:[render_next] from render_next::@6 + [124] (byte*) render_next::screen_next_area#3 ← (byte*) render_next::screen_next_area#2 + (byte/signed byte/word/signed word/dword/signed dword) 36 + [125] (byte) render_next::l#1 ← ++ (byte) render_next::l#7 + [126] if((byte) render_next::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_next::@3 + to:render_next::@return +render_next::@return: scope:[render_next] from render_next::@11 + [127] return + to:@return +render_next::@5: scope:[render_next] from render_next::@4 + [128] *((byte*) render_next::screen_next_area#4) ← (byte) render_next::next_piece_char#0 + to:render_next::@6 +render_moving: scope:[render_moving] from main::@32 main::@39 + [129] (byte) current_piece_char#67 ← phi( main::@32/(byte~) current_piece_char#110 main::@39/(byte~) current_piece_char#111 ) + [129] (byte*) current_piece_gfx#63 ← phi( main::@32/(byte*~) current_piece_gfx#122 main::@39/(byte*~) current_piece_gfx#123 ) + [129] (byte) current_xpos#58 ← phi( main::@32/(byte~) current_xpos#132 main::@39/(byte~) current_xpos#133 ) + [129] (byte) render_screen_render#33 ← phi( main::@32/(byte/signed byte/word/signed word/dword/signed dword) 64 main::@39/(byte~) render_screen_render#69 ) + [129] (byte) current_ypos#12 ← phi( main::@32/(byte~) current_ypos#108 main::@39/(byte~) current_ypos#109 ) + [130] (byte) render_moving::ypos2#0 ← (byte) current_ypos#12 << (byte/signed byte/word/signed word/dword/signed dword) 1 to:render_moving::@1 render_moving::@1: scope:[render_moving] from render_moving render_moving::@3 - [103] (byte) render_moving::l#4 ← phi( render_moving/(byte/signed byte/word/signed word/dword/signed dword) 0 render_moving::@3/(byte) render_moving::l#1 ) - [103] (byte) render_moving::i#3 ← phi( render_moving/(byte/signed byte/word/signed word/dword/signed dword) 0 render_moving::@3/(byte) render_moving::i#8 ) - [103] (byte) render_moving::ypos2#2 ← phi( render_moving/(byte) render_moving::ypos2#0 render_moving::@3/(byte) render_moving::ypos2#1 ) - [104] if((byte) render_moving::ypos2#2>(byte/signed byte/word/signed word/dword/signed dword) 2) goto render_moving::@2 + [131] (byte) render_moving::l#4 ← phi( render_moving/(byte/signed byte/word/signed word/dword/signed dword) 0 render_moving::@3/(byte) render_moving::l#1 ) + [131] (byte) render_moving::i#3 ← phi( render_moving/(byte/signed byte/word/signed word/dword/signed dword) 0 render_moving::@3/(byte) render_moving::i#8 ) + [131] (byte) render_moving::ypos2#2 ← phi( render_moving/(byte) render_moving::ypos2#0 render_moving::@3/(byte) render_moving::ypos2#1 ) + [132] if((byte) render_moving::ypos2#2>(byte/signed byte/word/signed word/dword/signed dword) 2) goto render_moving::@2 to:render_moving::@6 render_moving::@6: scope:[render_moving] from render_moving::@1 - [105] (byte) render_moving::i#1 ← (byte) render_moving::i#3 + (byte/signed byte/word/signed word/dword/signed dword) 4 + [133] (byte) render_moving::i#1 ← (byte) render_moving::i#3 + (byte/signed byte/word/signed word/dword/signed dword) 4 to:render_moving::@3 render_moving::@3: scope:[render_moving] from render_moving::@5 render_moving::@6 - [106] (byte) render_moving::i#8 ← phi( render_moving::@5/(byte) render_moving::i#2 render_moving::@6/(byte) render_moving::i#1 ) - [107] (byte) render_moving::ypos2#1 ← (byte) render_moving::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 - [108] (byte) render_moving::l#1 ← ++ (byte) render_moving::l#4 - [109] if((byte) render_moving::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_moving::@1 + [134] (byte) render_moving::i#8 ← phi( render_moving::@5/(byte) render_moving::i#2 render_moving::@6/(byte) render_moving::i#1 ) + [135] (byte) render_moving::ypos2#1 ← (byte) render_moving::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 + [136] (byte) render_moving::l#1 ← ++ (byte) render_moving::l#4 + [137] if((byte) render_moving::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_moving::@1 to:render_moving::@return render_moving::@return: scope:[render_moving] from render_moving::@3 - [110] return + [138] return to:@return render_moving::@2: scope:[render_moving] from render_moving::@1 - [111] (byte~) render_moving::$2 ← (byte) render_screen_render#30 + (byte) render_moving::ypos2#2 - [112] (byte*) render_moving::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_moving::$2) - [113] (byte) render_moving::xpos#0 ← (byte) current_xpos#57 + [139] (byte~) render_moving::$2 ← (byte) render_screen_render#33 + (byte) render_moving::ypos2#2 + [140] (byte*) render_moving::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_moving::$2) + [141] (byte) render_moving::xpos#0 ← (byte) current_xpos#58 to:render_moving::@4 render_moving::@4: scope:[render_moving] from render_moving::@2 render_moving::@5 - [114] (byte) render_moving::c#2 ← phi( render_moving::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 render_moving::@5/(byte) render_moving::c#1 ) - [114] (byte) render_moving::xpos#2 ← phi( render_moving::@2/(byte) render_moving::xpos#0 render_moving::@5/(byte) render_moving::xpos#1 ) - [114] (byte) render_moving::i#4 ← phi( render_moving::@2/(byte) render_moving::i#3 render_moving::@5/(byte) render_moving::i#2 ) - [115] (byte) render_moving::current_cell#0 ← *((byte*) current_piece_gfx#62 + (byte) render_moving::i#4) - [116] (byte) render_moving::i#2 ← ++ (byte) render_moving::i#4 - [117] if((byte) render_moving::current_cell#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_moving::@5 + [142] (byte) render_moving::c#2 ← phi( render_moving::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 render_moving::@5/(byte) render_moving::c#1 ) + [142] (byte) render_moving::xpos#2 ← phi( render_moving::@2/(byte) render_moving::xpos#0 render_moving::@5/(byte) render_moving::xpos#1 ) + [142] (byte) render_moving::i#4 ← phi( render_moving::@2/(byte) render_moving::i#3 render_moving::@5/(byte) render_moving::i#2 ) + [143] (byte) render_moving::current_cell#0 ← *((byte*) current_piece_gfx#63 + (byte) render_moving::i#4) + [144] (byte) render_moving::i#2 ← ++ (byte) render_moving::i#4 + [145] if((byte) render_moving::current_cell#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_moving::@5 to:render_moving::@8 render_moving::@8: scope:[render_moving] from render_moving::@4 - [118] *((byte*) render_moving::screen_line#0 + (byte) render_moving::xpos#2) ← (byte) current_piece_char#64 + [146] *((byte*) render_moving::screen_line#0 + (byte) render_moving::xpos#2) ← (byte) current_piece_char#67 to:render_moving::@5 render_moving::@5: scope:[render_moving] from render_moving::@4 render_moving::@8 - [119] (byte) render_moving::xpos#1 ← ++ (byte) render_moving::xpos#2 - [120] (byte) render_moving::c#1 ← ++ (byte) render_moving::c#2 - [121] if((byte) render_moving::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_moving::@4 + [147] (byte) render_moving::xpos#1 ← ++ (byte) render_moving::xpos#2 + [148] (byte) render_moving::c#1 ← ++ (byte) render_moving::c#2 + [149] if((byte) render_moving::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_moving::@4 to:render_moving::@3 -render_playfield: scope:[render_playfield] from main::@23 main::@30 - [122] (byte) render_screen_render#21 ← phi( main::@23/(byte~) render_screen_render#65 main::@30/(byte/signed byte/word/signed word/dword/signed dword) 64 ) +render_playfield: scope:[render_playfield] from main::@23 main::@31 + [150] (byte) render_screen_render#22 ← phi( main::@23/(byte~) render_screen_render#70 main::@31/(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 - [123] (byte) render_playfield::i#3 ← phi( render_playfield/(const byte) PLAYFIELD_COLS#0*(byte/signed byte/word/signed word/dword/signed dword) 2 render_playfield::@3/(byte) render_playfield::i#1 ) - [123] (byte) render_playfield::l#2 ← phi( render_playfield/(byte/signed byte/word/signed word/dword/signed dword) 2 render_playfield::@3/(byte) render_playfield::l#1 ) - [124] (byte~) render_playfield::$2 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [125] (byte~) render_playfield::$3 ← (byte) render_screen_render#21 + (byte~) render_playfield::$2 - [126] (byte*) render_playfield::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_playfield::$3) + [151] (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 ) + [151] (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 ) + [152] (byte~) render_playfield::$2 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [153] (byte~) render_playfield::$3 ← (byte) render_screen_render#22 + (byte~) render_playfield::$2 + [154] (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 - [127] (byte) render_playfield::c#2 ← phi( render_playfield::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 render_playfield::@2/(byte) render_playfield::c#1 ) - [127] (byte*) render_playfield::screen_line#2 ← phi( render_playfield::@1/(byte*) render_playfield::screen_line#0 render_playfield::@2/(byte*) render_playfield::screen_line#1 ) - [127] (byte) render_playfield::i#2 ← phi( render_playfield::@1/(byte) render_playfield::i#3 render_playfield::@2/(byte) render_playfield::i#1 ) - [128] *((byte*) render_playfield::screen_line#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2) - [129] (byte*) render_playfield::screen_line#1 ← ++ (byte*) render_playfield::screen_line#2 - [130] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2 - [131] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2 - [132] if((byte) render_playfield::c#1!=(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_playfield::@2 + [155] (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 ) + [155] (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 ) + [155] (byte) render_playfield::i#2 ← phi( render_playfield::@1/(byte) render_playfield::i#3 render_playfield::@2/(byte) render_playfield::i#1 ) + [156] *((byte*) render_playfield::screen_line#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2) + [157] (byte*) render_playfield::screen_line#1 ← ++ (byte*) render_playfield::screen_line#2 + [158] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2 + [159] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2 + [160] 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 - [133] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2 - [134] if((byte) render_playfield::l#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_playfield::@1 + [161] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2 + [162] 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 - [135] return + [163] return to:@return play_movement: scope:[play_movement] from main::@7 - [136] (byte) play_move_down::key_event#0 ← (byte) play_movement::key_event#0 - [137] call play_move_down - [138] (byte) play_move_down::return#0 ← (byte) play_move_down::return#3 + [164] (byte) play_move_down::key_event#0 ← (byte) play_movement::key_event#0 + [165] call play_move_down + [166] (byte) play_move_down::return#0 ← (byte) play_move_down::return#3 to:play_movement::@5 play_movement::@5: scope:[play_movement] from play_movement - [139] (byte~) play_movement::$0 ← (byte) play_move_down::return#0 - [140] (byte) play_movement::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) play_movement::$0 - [141] if((byte) game_over#14==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_movement::@1 + [167] (byte~) play_movement::$0 ← (byte) play_move_down::return#0 + [168] (byte) play_movement::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) play_movement::$0 + [169] if((byte) game_over#15==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_movement::@1 to:play_movement::@return play_movement::@return: scope:[play_movement] from play_movement::@5 play_movement::@7 - [142] (byte) current_xpos#17 ← phi( play_movement::@5/(byte) current_xpos#20 play_movement::@7/(byte) current_xpos#24 ) - [142] (byte*) current_piece_gfx#16 ← phi( play_movement::@5/(byte*) current_piece_gfx#18 play_movement::@7/(byte*) current_piece_gfx#19 ) - [142] (byte) current_orientation#16 ← phi( play_movement::@5/(byte) current_orientation#19 play_movement::@7/(byte) current_orientation#24 ) - [142] (byte) play_movement::return#2 ← phi( play_movement::@5/(byte) play_movement::render#1 play_movement::@7/(byte) play_movement::return#0 ) - [143] return + [170] (byte) current_xpos#18 ← phi( play_movement::@5/(byte) current_xpos#21 play_movement::@7/(byte) current_xpos#25 ) + [170] (byte*) current_piece_gfx#17 ← phi( play_movement::@5/(byte*) current_piece_gfx#19 play_movement::@7/(byte*) current_piece_gfx#20 ) + [170] (byte) current_orientation#17 ← phi( play_movement::@5/(byte) current_orientation#20 play_movement::@7/(byte) current_orientation#25 ) + [170] (byte) play_movement::return#2 ← phi( play_movement::@5/(byte) play_movement::render#1 play_movement::@7/(byte) play_movement::return#0 ) + [171] return to:@return play_movement::@1: scope:[play_movement] from play_movement::@5 - [144] (byte) play_move_leftright::key_event#0 ← (byte) play_movement::key_event#0 - [145] call play_move_leftright - [146] (byte) play_move_leftright::return#0 ← (byte) play_move_leftright::return#2 + [172] (byte) play_move_leftright::key_event#0 ← (byte) play_movement::key_event#0 + [173] call play_move_leftright + [174] (byte) play_move_leftright::return#0 ← (byte) play_move_leftright::return#2 to:play_movement::@6 play_movement::@6: scope:[play_movement] from play_movement::@1 - [147] (byte~) play_movement::$3 ← (byte) play_move_leftright::return#0 - [148] (byte) play_movement::render#2 ← (byte) play_movement::render#1 + (byte~) play_movement::$3 - [149] (byte) play_move_rotate::key_event#0 ← (byte) play_movement::key_event#0 - [150] call play_move_rotate - [151] (byte) play_move_rotate::return#0 ← (byte) play_move_rotate::return#2 + [175] (byte~) play_movement::$3 ← (byte) play_move_leftright::return#0 + [176] (byte) play_movement::render#2 ← (byte) play_movement::render#1 + (byte~) play_movement::$3 + [177] (byte) play_move_rotate::key_event#0 ← (byte) play_movement::key_event#0 + [178] call play_move_rotate + [179] (byte) play_move_rotate::return#0 ← (byte) play_move_rotate::return#2 to:play_movement::@7 play_movement::@7: scope:[play_movement] from play_movement::@6 - [152] (byte~) play_movement::$4 ← (byte) play_move_rotate::return#0 - [153] (byte) play_movement::return#0 ← (byte) play_movement::render#2 + (byte~) play_movement::$4 + [180] (byte~) play_movement::$4 ← (byte) play_move_rotate::return#0 + [181] (byte) play_movement::return#0 ← (byte) play_movement::render#2 + (byte~) play_movement::$4 to:play_movement::@return play_move_rotate: scope:[play_move_rotate] from play_movement::@6 - [154] if((byte) play_move_rotate::key_event#0==(const byte) KEY_Z#0) goto play_move_rotate::@1 + [182] 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 - [155] if((byte) play_move_rotate::key_event#0==(const byte) KEY_X#0) goto play_move_rotate::@2 + [183] 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 - [156] (byte*) current_piece_gfx#19 ← phi( play_move_rotate::@11/(byte*) current_piece_gfx#6 play_move_rotate::@14/(byte*) current_piece_gfx#18 play_move_rotate::@6/(byte*) current_piece_gfx#18 ) - [156] (byte) current_orientation#24 ← phi( play_move_rotate::@11/(byte) current_orientation#7 play_move_rotate::@14/(byte) current_orientation#19 play_move_rotate::@6/(byte) current_orientation#19 ) - [156] (byte) play_move_rotate::return#2 ← phi( play_move_rotate::@11/(byte/signed byte/word/signed word/dword/signed dword) 1 play_move_rotate::@14/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_rotate::@6/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [157] return + [184] (byte*) current_piece_gfx#20 ← phi( play_move_rotate::@11/(byte*) current_piece_gfx#6 play_move_rotate::@14/(byte*) current_piece_gfx#19 play_move_rotate::@6/(byte*) current_piece_gfx#19 ) + [184] (byte) current_orientation#25 ← phi( play_move_rotate::@11/(byte) current_orientation#7 play_move_rotate::@14/(byte) current_orientation#20 play_move_rotate::@6/(byte) current_orientation#20 ) + [184] (byte) play_move_rotate::return#2 ← phi( play_move_rotate::@11/(byte/signed byte/word/signed word/dword/signed dword) 1 play_move_rotate::@14/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_rotate::@6/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [185] return to:@return play_move_rotate::@2: scope:[play_move_rotate] from play_move_rotate::@6 - [158] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#19 + (byte/signed byte/word/signed word/dword/signed dword) 16 - [159] (byte) play_move_rotate::orientation#2 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 & (byte/signed byte/word/signed word/dword/signed dword) 63 + [186] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#20 + (byte/signed byte/word/signed word/dword/signed dword) 16 + [187] (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 - [160] (byte) play_move_rotate::orientation#3 ← phi( play_move_rotate::@1/(byte) play_move_rotate::orientation#1 play_move_rotate::@2/(byte) play_move_rotate::orientation#2 ) - [161] (byte) play_collision::xpos#3 ← (byte) current_xpos#24 - [162] (byte) play_collision::ypos#3 ← (byte) current_ypos#17 - [163] (byte) play_collision::orientation#3 ← (byte) play_move_rotate::orientation#3 - [164] (byte*~) current_piece#93 ← (byte*) current_piece#14 - [165] call play_collision - [166] (byte) play_collision::return#14 ← (byte) play_collision::return#15 + [188] (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 ) + [189] (byte) play_collision::xpos#3 ← (byte) current_xpos#25 + [190] (byte) play_collision::ypos#3 ← (byte) current_ypos#18 + [191] (byte) play_collision::orientation#3 ← (byte) play_move_rotate::orientation#3 + [192] (byte*~) current_piece#101 ← (byte*) current_piece#15 + [193] call play_collision + [194] (byte) play_collision::return#14 ← (byte) play_collision::return#15 to:play_move_rotate::@14 play_move_rotate::@14: scope:[play_move_rotate] from play_move_rotate::@4 - [167] (byte~) play_move_rotate::$6 ← (byte) play_collision::return#14 - [168] if((byte~) play_move_rotate::$6!=(const byte) COLLISION_NONE#0) goto play_move_rotate::@return + [195] (byte~) play_move_rotate::$6 ← (byte) play_collision::return#14 + [196] 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 - [169] (byte) current_orientation#7 ← (byte) play_move_rotate::orientation#3 - [170] (byte*) current_piece_gfx#6 ← (byte*) current_piece#14 + (byte) current_orientation#7 + [197] (byte) current_orientation#7 ← (byte) play_move_rotate::orientation#3 + [198] (byte*) current_piece_gfx#6 ← (byte*) current_piece#15 + (byte) current_orientation#7 to:play_move_rotate::@return play_move_rotate::@1: scope:[play_move_rotate] from play_move_rotate - [171] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#19 - (byte/signed byte/word/signed word/dword/signed dword) 16 - [172] (byte) play_move_rotate::orientation#1 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 & (byte/signed byte/word/signed word/dword/signed dword) 63 + [199] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#20 - (byte/signed byte/word/signed word/dword/signed dword) 16 + [200] (byte) play_move_rotate::orientation#1 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 & (byte/signed byte/word/signed word/dword/signed dword) 63 to:play_move_rotate::@4 -play_collision: scope:[play_collision] from play_move_down::@12 play_move_leftright::@1 play_move_leftright::@7 play_move_rotate::@4 play_spawn_current::@3 - [173] (byte) play_collision::xpos#6 ← phi( play_move_down::@12/(byte) play_collision::xpos#0 play_move_leftright::@1/(byte) play_collision::xpos#1 play_move_leftright::@7/(byte) play_collision::xpos#2 play_move_rotate::@4/(byte) play_collision::xpos#3 play_spawn_current::@3/(byte) play_collision::xpos#4 ) - [173] (byte) play_collision::ypos#5 ← phi( play_move_down::@12/(byte) play_collision::ypos#0 play_move_leftright::@1/(byte) play_collision::ypos#1 play_move_leftright::@7/(byte) play_collision::ypos#2 play_move_rotate::@4/(byte) play_collision::ypos#3 play_spawn_current::@3/(byte) play_collision::ypos#4 ) - [173] (byte) play_collision::orientation#5 ← phi( play_move_down::@12/(byte) play_collision::orientation#0 play_move_leftright::@1/(byte) play_collision::orientation#1 play_move_leftright::@7/(byte) play_collision::orientation#2 play_move_rotate::@4/(byte) play_collision::orientation#3 play_spawn_current::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [173] (byte*) current_piece#16 ← phi( play_move_down::@12/(byte*~) current_piece#90 play_move_leftright::@1/(byte*~) current_piece#91 play_move_leftright::@7/(byte*~) current_piece#92 play_move_rotate::@4/(byte*~) current_piece#93 play_spawn_current::@3/(byte*~) current_piece#94 ) - [174] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#16 + (byte) play_collision::orientation#5 - [175] (byte) play_collision::ypos2#0 ← (byte) play_collision::ypos#5 << (byte/signed byte/word/signed word/dword/signed dword) 1 +play_collision: scope:[play_collision] from play_move_down::@12 play_move_leftright::@1 play_move_leftright::@7 play_move_rotate::@4 play_spawn_current + [201] (byte) play_collision::xpos#6 ← phi( play_move_down::@12/(byte) play_collision::xpos#0 play_move_leftright::@1/(byte) play_collision::xpos#1 play_move_leftright::@7/(byte) play_collision::xpos#2 play_move_rotate::@4/(byte) play_collision::xpos#3 play_spawn_current/(byte) play_collision::xpos#4 ) + [201] (byte) play_collision::ypos#5 ← phi( play_move_down::@12/(byte) play_collision::ypos#0 play_move_leftright::@1/(byte) play_collision::ypos#1 play_move_leftright::@7/(byte) play_collision::ypos#2 play_move_rotate::@4/(byte) play_collision::ypos#3 play_spawn_current/(byte) play_collision::ypos#4 ) + [201] (byte) play_collision::orientation#5 ← phi( play_move_down::@12/(byte) play_collision::orientation#0 play_move_leftright::@1/(byte) play_collision::orientation#1 play_move_leftright::@7/(byte) play_collision::orientation#2 play_move_rotate::@4/(byte) play_collision::orientation#3 play_spawn_current/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [201] (byte*) current_piece#17 ← phi( play_move_down::@12/(byte*~) current_piece#98 play_move_leftright::@1/(byte*~) current_piece#99 play_move_leftright::@7/(byte*~) current_piece#100 play_move_rotate::@4/(byte*~) current_piece#101 play_spawn_current/(byte*~) current_piece#102 ) + [202] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#17 + (byte) play_collision::orientation#5 + [203] (byte) play_collision::ypos2#0 ← (byte) play_collision::ypos#5 << (byte/signed byte/word/signed word/dword/signed dword) 1 to:play_collision::@1 play_collision::@1: scope:[play_collision] from play_collision play_collision::@20 - [176] (byte) play_collision::l#6 ← phi( play_collision/(byte/signed byte/word/signed word/dword/signed dword) 0 play_collision::@20/(byte) play_collision::l#1 ) - [176] (byte) play_collision::i#3 ← phi( play_collision/(byte/signed byte/word/signed word/dword/signed dword) 0 play_collision::@20/(byte~) play_collision::i#11 ) - [176] (byte) play_collision::ypos2#2 ← phi( play_collision/(byte) play_collision::ypos2#0 play_collision::@20/(byte) play_collision::ypos2#1 ) - [177] (byte*) play_collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_collision::ypos2#2) - [178] (byte~) play_collision::col#9 ← (byte) play_collision::xpos#6 + [204] (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 ) + [204] (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 ) + [204] (byte) play_collision::ypos2#2 ← phi( play_collision/(byte) play_collision::ypos2#0 play_collision::@20/(byte) play_collision::ypos2#1 ) + [205] (byte*) play_collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_collision::ypos2#2) + [206] (byte~) play_collision::col#9 ← (byte) play_collision::xpos#6 to:play_collision::@2 play_collision::@2: scope:[play_collision] from play_collision::@1 play_collision::@21 - [179] (byte) play_collision::c#2 ← phi( play_collision::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 play_collision::@21/(byte) play_collision::c#1 ) - [179] (byte) play_collision::col#2 ← phi( play_collision::@1/(byte~) play_collision::col#9 play_collision::@21/(byte) play_collision::col#1 ) - [179] (byte) play_collision::i#2 ← phi( play_collision::@1/(byte) play_collision::i#3 play_collision::@21/(byte~) play_collision::i#13 ) - [180] (byte) play_collision::i#1 ← ++ (byte) play_collision::i#2 - [181] if(*((byte*) play_collision::piece_gfx#0 + (byte) play_collision::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@3 + [207] (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 ) + [207] (byte) play_collision::col#2 ← phi( play_collision::@1/(byte~) play_collision::col#9 play_collision::@21/(byte) play_collision::col#1 ) + [207] (byte) play_collision::i#2 ← phi( play_collision::@1/(byte) play_collision::i#3 play_collision::@21/(byte~) play_collision::i#13 ) + [208] (byte) play_collision::i#1 ← ++ (byte) play_collision::i#2 + [209] 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 - [182] if((byte) play_collision::ypos2#2<(byte/signed byte/word/signed word/dword/signed dword) 2*(const byte) PLAYFIELD_LINES#0) goto play_collision::@4 + [210] 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 - [183] (byte) play_collision::return#15 ← phi( play_collision::@4/(const byte) COLLISION_LEFT#0 play_collision::@5/(const byte) COLLISION_RIGHT#0 play_collision::@6/(const byte) COLLISION_PLAYFIELD#0 play_collision::@17/(const byte) COLLISION_NONE#0 play_collision::@8/(const byte) COLLISION_BOTTOM#0 ) - [184] return + [211] (byte) play_collision::return#15 ← phi( play_collision::@4/(const byte) COLLISION_LEFT#0 play_collision::@5/(const byte) COLLISION_RIGHT#0 play_collision::@6/(const byte) COLLISION_PLAYFIELD#0 play_collision::@17/(const byte) COLLISION_NONE#0 play_collision::@8/(const byte) COLLISION_BOTTOM#0 ) + [212] return to:@return play_collision::@4: scope:[play_collision] from play_collision::@8 - [185] (byte~) play_collision::$7 ← (byte) play_collision::col#2 & (byte/word/signed word/dword/signed dword) 128 - [186] if((byte~) play_collision::$7==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@5 + [213] (byte~) play_collision::$7 ← (byte) play_collision::col#2 & (byte/word/signed word/dword/signed dword) 128 + [214] 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 - [187] if((byte) play_collision::col#2<(const byte) PLAYFIELD_COLS#0) goto play_collision::@6 + [215] 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 - [188] if(*((byte*) play_collision::playfield_line#0 + (byte) play_collision::col#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@3 + [216] 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 - [189] (byte) play_collision::col#1 ← ++ (byte) play_collision::col#2 - [190] (byte) play_collision::c#1 ← ++ (byte) play_collision::c#2 - [191] if((byte) play_collision::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_collision::@21 + [217] (byte) play_collision::col#1 ← ++ (byte) play_collision::col#2 + [218] (byte) play_collision::c#1 ← ++ (byte) play_collision::c#2 + [219] 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 - [192] (byte) play_collision::ypos2#1 ← (byte) play_collision::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 - [193] (byte) play_collision::l#1 ← ++ (byte) play_collision::l#6 - [194] if((byte) play_collision::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_collision::@20 + [220] (byte) play_collision::ypos2#1 ← (byte) play_collision::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 + [221] (byte) play_collision::l#1 ← ++ (byte) play_collision::l#6 + [222] 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 - [195] (byte~) play_collision::i#11 ← (byte) play_collision::i#1 + [223] (byte~) play_collision::i#11 ← (byte) play_collision::i#1 to:play_collision::@1 play_collision::@21: scope:[play_collision] from play_collision::@3 - [196] (byte~) play_collision::i#13 ← (byte) play_collision::i#1 + [224] (byte~) play_collision::i#13 ← (byte) play_collision::i#1 to:play_collision::@2 play_move_leftright: scope:[play_move_leftright] from play_movement::@1 - [197] if((byte) play_move_leftright::key_event#0==(const byte) KEY_COMMA#0) goto play_move_leftright::@1 + [225] 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 - [198] if((byte) play_move_leftright::key_event#0!=(const byte) KEY_DOT#0) goto play_move_leftright::@return + [226] 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 - [199] (byte) play_collision::xpos#2 ← (byte) current_xpos#20 + (byte/signed byte/word/signed word/dword/signed dword) 1 - [200] (byte) play_collision::ypos#2 ← (byte) current_ypos#17 - [201] (byte) play_collision::orientation#2 ← (byte) current_orientation#19 - [202] (byte*~) current_piece#92 ← (byte*) current_piece#14 - [203] call play_collision - [204] (byte) play_collision::return#13 ← (byte) play_collision::return#15 + [227] (byte) play_collision::xpos#2 ← (byte) current_xpos#21 + (byte/signed byte/word/signed word/dword/signed dword) 1 + [228] (byte) play_collision::ypos#2 ← (byte) current_ypos#18 + [229] (byte) play_collision::orientation#2 ← (byte) current_orientation#20 + [230] (byte*~) current_piece#100 ← (byte*) current_piece#15 + [231] call play_collision + [232] (byte) play_collision::return#13 ← (byte) play_collision::return#15 to:play_move_leftright::@15 play_move_leftright::@15: scope:[play_move_leftright] from play_move_leftright::@7 - [205] (byte~) play_move_leftright::$4 ← (byte) play_collision::return#13 - [206] if((byte~) play_move_leftright::$4!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return + [233] (byte~) play_move_leftright::$4 ← (byte) play_collision::return#13 + [234] 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 - [207] (byte) current_xpos#5 ← ++ (byte) current_xpos#20 + [235] (byte) current_xpos#5 ← ++ (byte) current_xpos#21 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 - [208] (byte) current_xpos#24 ← phi( play_move_leftright::@11/(byte) current_xpos#7 play_move_leftright::@15/(byte) current_xpos#20 play_move_leftright::@8/(byte) current_xpos#5 play_move_leftright::@14/(byte) current_xpos#20 play_move_leftright::@6/(byte) current_xpos#20 ) - [208] (byte) play_move_leftright::return#2 ← phi( play_move_leftright::@11/(byte/signed byte/word/signed word/dword/signed dword) 1 play_move_leftright::@15/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_leftright::@8/(byte/signed byte/word/signed word/dword/signed dword) 1 play_move_leftright::@14/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_leftright::@6/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [209] return + [236] (byte) current_xpos#25 ← phi( play_move_leftright::@11/(byte) current_xpos#7 play_move_leftright::@15/(byte) current_xpos#21 play_move_leftright::@8/(byte) current_xpos#5 play_move_leftright::@14/(byte) current_xpos#21 play_move_leftright::@6/(byte) current_xpos#21 ) + [236] (byte) play_move_leftright::return#2 ← phi( play_move_leftright::@11/(byte/signed byte/word/signed word/dword/signed dword) 1 play_move_leftright::@15/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_leftright::@8/(byte/signed byte/word/signed word/dword/signed dword) 1 play_move_leftright::@14/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_leftright::@6/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [237] return to:@return play_move_leftright::@1: scope:[play_move_leftright] from play_move_leftright - [210] (byte) play_collision::xpos#1 ← (byte) current_xpos#20 - (byte/signed byte/word/signed word/dword/signed dword) 1 - [211] (byte) play_collision::ypos#1 ← (byte) current_ypos#17 - [212] (byte) play_collision::orientation#1 ← (byte) current_orientation#19 - [213] (byte*~) current_piece#91 ← (byte*) current_piece#14 - [214] call play_collision - [215] (byte) play_collision::return#1 ← (byte) play_collision::return#15 + [238] (byte) play_collision::xpos#1 ← (byte) current_xpos#21 - (byte/signed byte/word/signed word/dword/signed dword) 1 + [239] (byte) play_collision::ypos#1 ← (byte) current_ypos#18 + [240] (byte) play_collision::orientation#1 ← (byte) current_orientation#20 + [241] (byte*~) current_piece#99 ← (byte*) current_piece#15 + [242] call play_collision + [243] (byte) play_collision::return#1 ← (byte) play_collision::return#15 to:play_move_leftright::@14 play_move_leftright::@14: scope:[play_move_leftright] from play_move_leftright::@1 - [216] (byte~) play_move_leftright::$8 ← (byte) play_collision::return#1 - [217] if((byte~) play_move_leftright::$8!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return + [244] (byte~) play_move_leftright::$8 ← (byte) play_collision::return#1 + [245] 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 - [218] (byte) current_xpos#7 ← -- (byte) current_xpos#20 + [246] (byte) current_xpos#7 ← -- (byte) current_xpos#21 to:play_move_leftright::@return play_move_down: scope:[play_move_down] from play_movement - [219] (byte) current_movedown_counter#12 ← ++ (byte) current_movedown_counter#16 - [220] if((byte) play_move_down::key_event#0!=(const byte) KEY_SPACE#0) goto play_move_down::@1 + [247] (byte) current_movedown_counter#12 ← ++ (byte) current_movedown_counter#16 + [248] 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 - [221] phi() + [249] phi() to:play_move_down::@1 play_move_down::@1: scope:[play_move_down] from play_move_down play_move_down::@8 - [222] (byte) play_move_down::movedown#10 ← phi( play_move_down/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_down::@8/(byte/signed byte/word/signed word/dword/signed dword) 1 ) - [223] call keyboard_event_pressed - [224] (byte) keyboard_event_pressed::return#12 ← (byte) keyboard_event_pressed::return#11 + [250] (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 ) + [251] call keyboard_event_pressed + [252] (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 - [225] (byte~) play_move_down::$2 ← (byte) keyboard_event_pressed::return#12 - [226] if((byte~) play_move_down::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@2 + [253] (byte~) play_move_down::$2 ← (byte) keyboard_event_pressed::return#12 + [254] 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 - [227] if((byte) current_movedown_counter#12<(const byte) current_movedown_fast#0) goto play_move_down::@2 + [255] if((byte) current_movedown_counter#12<(const byte) current_movedown_fast#0) goto play_move_down::@2 to:play_move_down::@10 play_move_down::@10: scope:[play_move_down] from play_move_down::@9 - [228] (byte) play_move_down::movedown#2 ← ++ (byte) play_move_down::movedown#10 + [256] (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 - [229] (byte) play_move_down::movedown#7 ← phi( play_move_down::@10/(byte) play_move_down::movedown#2 play_move_down::@17/(byte) play_move_down::movedown#10 play_move_down::@9/(byte) play_move_down::movedown#10 ) - [230] if((byte) current_movedown_counter#12<(byte) current_movedown_slow#14) goto play_move_down::@4 + [257] (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 ) + [258] if((byte) current_movedown_counter#12<(byte) current_movedown_slow#14) goto play_move_down::@4 to:play_move_down::@11 play_move_down::@11: scope:[play_move_down] from play_move_down::@2 - [231] (byte) play_move_down::movedown#3 ← ++ (byte) play_move_down::movedown#7 + [259] (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 - [232] (byte) play_move_down::movedown#6 ← phi( play_move_down::@11/(byte) play_move_down::movedown#3 play_move_down::@2/(byte) play_move_down::movedown#7 ) - [233] if((byte) play_move_down::movedown#6==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@return + [260] (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 ) + [261] 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 - [234] (byte) play_collision::ypos#0 ← (byte) current_ypos#25 + (byte/signed byte/word/signed word/dword/signed dword) 1 - [235] (byte) play_collision::xpos#0 ← (byte) current_xpos#113 - [236] (byte) play_collision::orientation#0 ← (byte) current_orientation#12 - [237] (byte*~) current_piece#90 ← (byte*) current_piece#20 - [238] call play_collision - [239] (byte) play_collision::return#0 ← (byte) play_collision::return#15 + [262] (byte) play_collision::ypos#0 ← (byte) current_ypos#10 + (byte/signed byte/word/signed word/dword/signed dword) 1 + [263] (byte) play_collision::xpos#0 ← (byte) current_xpos#121 + [264] (byte) play_collision::orientation#0 ← (byte) current_orientation#13 + [265] (byte*~) current_piece#98 ← (byte*) current_piece#10 + [266] call play_collision + [267] (byte) play_collision::return#0 ← (byte) play_collision::return#15 to:play_move_down::@18 play_move_down::@18: scope:[play_move_down] from play_move_down::@12 - [240] (byte~) play_move_down::$12 ← (byte) play_collision::return#0 - [241] if((byte~) play_move_down::$12==(const byte) COLLISION_NONE#0) goto play_move_down::@6 + [268] (byte~) play_move_down::$12 ← (byte) play_collision::return#0 + [269] 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 - [242] phi() - [243] call play_lock_current + [270] phi() + [271] call play_lock_current to:play_move_down::@19 play_move_down::@19: scope:[play_move_down] from play_move_down::@13 - [244] phi() - [245] call play_remove_lines - [246] (byte) play_remove_lines::return#0 ← (byte) play_remove_lines::removed#7 + [272] phi() + [273] call play_remove_lines + [274] (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 - [247] (byte) play_move_down::removed#0 ← (byte) play_remove_lines::return#0 - [248] (byte) play_update_score::removed#0 ← (byte) play_move_down::removed#0 - [249] call play_update_score + [275] (byte) play_move_down::removed#0 ← (byte) play_remove_lines::return#0 + [276] (byte) play_update_score::removed#0 ← (byte) play_move_down::removed#0 + [277] call play_update_score to:play_move_down::@21 play_move_down::@21: scope:[play_move_down] from play_move_down::@20 - [250] phi() - [251] call play_spawn_current - [252] (byte*~) current_piece#95 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) + [278] phi() + [279] call play_spawn_current + [280] (byte*~) current_piece#103 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$0) to:play_move_down::@7 play_move_down::@7: scope:[play_move_down] from play_move_down::@21 play_move_down::@6 - [253] (byte) game_over#26 ← phi( play_move_down::@21/(byte) game_over#15 play_move_down::@6/(byte) game_over#19 ) - [253] (byte) current_xpos#41 ← phi( play_move_down::@21/(byte) current_xpos#28 play_move_down::@6/(byte) current_xpos#113 ) - [253] (byte*) current_piece_gfx#33 ← phi( play_move_down::@21/(byte*) current_piece_gfx#21 play_move_down::@6/(byte*) current_piece_gfx#103 ) - [253] (byte) current_orientation#36 ← phi( play_move_down::@21/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_down::@6/(byte) current_orientation#12 ) - [253] (byte) current_piece_char#27 ← phi( play_move_down::@21/(byte) current_piece_char#16 play_move_down::@6/(byte) current_piece_char#19 ) - [253] (byte*) current_piece#27 ← phi( play_move_down::@21/(byte*~) current_piece#95 play_move_down::@6/(byte*) current_piece#20 ) - [253] (byte) level_bcd#32 ← phi( play_move_down::@21/(byte) level_bcd#19 play_move_down::@6/(byte) level_bcd#11 ) - [253] (byte) current_movedown_slow#38 ← phi( play_move_down::@21/(byte) current_movedown_slow#23 play_move_down::@6/(byte) current_movedown_slow#14 ) - [253] (byte) level#31 ← phi( play_move_down::@21/(byte) level#18 play_move_down::@6/(byte) level#10 ) - [253] (dword) score_bcd#27 ← phi( play_move_down::@21/(dword) score_bcd#16 play_move_down::@6/(dword) score_bcd#18 ) - [253] (word) lines_bcd#27 ← phi( play_move_down::@21/(word) lines_bcd#17 play_move_down::@6/(word) lines_bcd#19 ) - [253] (byte) current_ypos#36 ← phi( play_move_down::@21/(byte) current_ypos#22 play_move_down::@6/(byte) current_ypos#2 ) + [281] (byte) next_piece_idx#31 ← phi( play_move_down::@21/(byte) play_spawn_current::piece_idx#2 play_move_down::@6/(byte) next_piece_idx#10 ) + [281] (byte) game_over#28 ← phi( play_move_down::@21/(byte) game_over#52 play_move_down::@6/(byte) game_over#10 ) + [281] (byte) current_xpos#43 ← phi( play_move_down::@21/(byte) current_xpos#102 play_move_down::@6/(byte) current_xpos#121 ) + [281] (byte*) current_piece_gfx#35 ← phi( play_move_down::@21/(byte*) current_piece_gfx#7 play_move_down::@6/(byte*) current_piece_gfx#111 ) + [281] (byte) current_orientation#38 ← phi( play_move_down::@21/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_down::@6/(byte) current_orientation#13 ) + [281] (byte) current_piece_char#29 ← phi( play_move_down::@21/(byte) current_piece_char#4 play_move_down::@6/(byte) current_piece_char#21 ) + [281] (byte*) current_piece#29 ← phi( play_move_down::@21/(byte*~) current_piece#103 play_move_down::@6/(byte*) current_piece#10 ) + [281] (byte) level_bcd#32 ← phi( play_move_down::@21/(byte) level_bcd#19 play_move_down::@6/(byte) level_bcd#11 ) + [281] (byte) current_movedown_slow#38 ← phi( play_move_down::@21/(byte) current_movedown_slow#23 play_move_down::@6/(byte) current_movedown_slow#14 ) + [281] (byte) level#31 ← phi( play_move_down::@21/(byte) level#18 play_move_down::@6/(byte) level#10 ) + [281] (dword) score_bcd#27 ← phi( play_move_down::@21/(dword) score_bcd#16 play_move_down::@6/(dword) score_bcd#18 ) + [281] (word) lines_bcd#27 ← phi( play_move_down::@21/(word) lines_bcd#17 play_move_down::@6/(word) lines_bcd#19 ) + [281] (byte) current_ypos#38 ← phi( play_move_down::@21/(byte) current_ypos#5 play_move_down::@6/(byte) current_ypos#2 ) to:play_move_down::@return play_move_down::@return: scope:[play_move_down] from play_move_down::@4 play_move_down::@7 - [254] (byte) game_over#14 ← phi( play_move_down::@4/(byte) game_over#19 play_move_down::@7/(byte) game_over#26 ) - [254] (byte) current_xpos#20 ← phi( play_move_down::@4/(byte) current_xpos#113 play_move_down::@7/(byte) current_xpos#41 ) - [254] (byte*) current_piece_gfx#18 ← phi( play_move_down::@4/(byte*) current_piece_gfx#103 play_move_down::@7/(byte*) current_piece_gfx#33 ) - [254] (byte) current_orientation#19 ← phi( play_move_down::@4/(byte) current_orientation#12 play_move_down::@7/(byte) current_orientation#36 ) - [254] (byte) current_piece_char#14 ← phi( play_move_down::@4/(byte) current_piece_char#19 play_move_down::@7/(byte) current_piece_char#27 ) - [254] (byte*) current_piece#14 ← phi( play_move_down::@4/(byte*) current_piece#20 play_move_down::@7/(byte*) current_piece#27 ) - [254] (byte) level_bcd#17 ← phi( play_move_down::@4/(byte) level_bcd#11 play_move_down::@7/(byte) level_bcd#32 ) - [254] (byte) current_movedown_slow#21 ← phi( play_move_down::@4/(byte) current_movedown_slow#14 play_move_down::@7/(byte) current_movedown_slow#38 ) - [254] (byte) level#16 ← phi( play_move_down::@4/(byte) level#10 play_move_down::@7/(byte) level#31 ) - [254] (dword) score_bcd#14 ← phi( play_move_down::@4/(dword) score_bcd#18 play_move_down::@7/(dword) score_bcd#27 ) - [254] (word) lines_bcd#15 ← phi( play_move_down::@4/(word) lines_bcd#19 play_move_down::@7/(word) lines_bcd#27 ) - [254] (byte) current_ypos#17 ← phi( play_move_down::@4/(byte) current_ypos#25 play_move_down::@7/(byte) current_ypos#36 ) - [254] (byte) current_movedown_counter#14 ← phi( play_move_down::@4/(byte) current_movedown_counter#12 play_move_down::@7/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [254] (byte) play_move_down::return#3 ← phi( play_move_down::@4/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_down::@7/(byte/signed byte/word/signed word/dword/signed dword) 1 ) - [255] return + [282] (byte) next_piece_idx#16 ← phi( play_move_down::@4/(byte) next_piece_idx#10 play_move_down::@7/(byte) next_piece_idx#31 ) + [282] (byte) game_over#15 ← phi( play_move_down::@4/(byte) game_over#10 play_move_down::@7/(byte) game_over#28 ) + [282] (byte) current_xpos#21 ← phi( play_move_down::@4/(byte) current_xpos#121 play_move_down::@7/(byte) current_xpos#43 ) + [282] (byte*) current_piece_gfx#19 ← phi( play_move_down::@4/(byte*) current_piece_gfx#111 play_move_down::@7/(byte*) current_piece_gfx#35 ) + [282] (byte) current_orientation#20 ← phi( play_move_down::@4/(byte) current_orientation#13 play_move_down::@7/(byte) current_orientation#38 ) + [282] (byte) current_piece_char#15 ← phi( play_move_down::@4/(byte) current_piece_char#21 play_move_down::@7/(byte) current_piece_char#29 ) + [282] (byte*) current_piece#15 ← phi( play_move_down::@4/(byte*) current_piece#10 play_move_down::@7/(byte*) current_piece#29 ) + [282] (byte) level_bcd#17 ← phi( play_move_down::@4/(byte) level_bcd#11 play_move_down::@7/(byte) level_bcd#32 ) + [282] (byte) current_movedown_slow#21 ← phi( play_move_down::@4/(byte) current_movedown_slow#14 play_move_down::@7/(byte) current_movedown_slow#38 ) + [282] (byte) level#16 ← phi( play_move_down::@4/(byte) level#10 play_move_down::@7/(byte) level#31 ) + [282] (dword) score_bcd#14 ← phi( play_move_down::@4/(dword) score_bcd#18 play_move_down::@7/(dword) score_bcd#27 ) + [282] (word) lines_bcd#15 ← phi( play_move_down::@4/(word) lines_bcd#19 play_move_down::@7/(word) lines_bcd#27 ) + [282] (byte) current_ypos#18 ← phi( play_move_down::@4/(byte) current_ypos#10 play_move_down::@7/(byte) current_ypos#38 ) + [282] (byte) current_movedown_counter#14 ← phi( play_move_down::@4/(byte) current_movedown_counter#12 play_move_down::@7/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [282] (byte) play_move_down::return#3 ← phi( play_move_down::@4/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_down::@7/(byte/signed byte/word/signed word/dword/signed dword) 1 ) + [283] return to:@return play_move_down::@6: scope:[play_move_down] from play_move_down::@18 - [256] (byte) current_ypos#2 ← ++ (byte) current_ypos#25 + [284] (byte) current_ypos#2 ← ++ (byte) current_ypos#10 to:play_move_down::@7 -play_spawn_current: scope:[play_spawn_current] from main::@29 play_move_down::@21 - [257] (byte) game_over#70 ← phi( main::@29/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_down::@21/(byte) game_over#19 ) +play_spawn_current: scope:[play_spawn_current] from main::@29 main::@30 play_move_down::@21 + [285] (byte) game_over#65 ← phi( main::@29/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@30/(byte) game_over#52 play_move_down::@21/(byte) game_over#10 ) + [285] (byte) next_piece_idx#17 ← phi( main::@29/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@30/(byte) play_spawn_current::piece_idx#2 play_move_down::@21/(byte) next_piece_idx#10 ) + [286] (byte) play_spawn_current::current_piece_idx#0 ← (byte) next_piece_idx#17 + [287] (byte~) play_spawn_current::$0 ← (byte) play_spawn_current::current_piece_idx#0 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [288] (byte) current_piece_char#4 ← *((const byte[]) PIECES_CHARS#0 + (byte) play_spawn_current::current_piece_idx#0) + [289] (byte*) current_piece_gfx#7 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$0) + (byte/signed byte/word/signed word/dword/signed dword) 0 + [290] (byte) current_xpos#102 ← *((const byte[]) PIECES_START_X#0 + (byte) play_spawn_current::current_piece_idx#0) + [291] (byte) current_ypos#5 ← *((const byte[]) PIECES_START_Y#0 + (byte) play_spawn_current::current_piece_idx#0) + [292] (byte) play_collision::xpos#4 ← (byte) current_xpos#102 + [293] (byte) play_collision::ypos#4 ← (byte) current_ypos#5 + [294] (byte*~) current_piece#102 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$0) + [295] call play_collision + [296] (byte) play_collision::return#10 ← (byte) play_collision::return#15 + to:play_spawn_current::@9 +play_spawn_current::@9: scope:[play_spawn_current] from play_spawn_current + [297] (byte~) play_spawn_current::$2 ← (byte) play_collision::return#10 + [298] if((byte~) play_spawn_current::$2!=(const byte) COLLISION_PLAYFIELD#0) goto play_spawn_current::@11 to:play_spawn_current::@1 -play_spawn_current::@1: scope:[play_spawn_current] from play_spawn_current play_spawn_current::@9 - [258] (byte) play_spawn_current::piece_idx#2 ← phi( play_spawn_current/(byte/signed byte/word/signed word/dword/signed dword) 7 play_spawn_current::@9/(byte) play_spawn_current::piece_idx#1 ) - [259] if((byte) play_spawn_current::piece_idx#2==(byte/signed byte/word/signed word/dword/signed dword) 7) goto play_spawn_current::@2 - to:play_spawn_current::@3 -play_spawn_current::@3: scope:[play_spawn_current] from play_spawn_current::@1 - [260] (byte~) play_spawn_current::$3 ← (byte) play_spawn_current::piece_idx#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [261] (byte) current_piece_char#16 ← *((const byte[]) PIECES_CHARS#0 + (byte) play_spawn_current::piece_idx#2) - [262] (byte*) current_piece_gfx#21 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) + (byte/signed byte/word/signed word/dword/signed dword) 0 - [263] (byte) current_xpos#28 ← *((const byte[]) PIECES_START_X#0 + (byte) play_spawn_current::piece_idx#2) - [264] (byte) current_ypos#22 ← *((const byte[]) PIECES_START_Y#0 + (byte) play_spawn_current::piece_idx#2) - [265] (byte) play_collision::xpos#4 ← (byte) current_xpos#28 - [266] (byte) play_collision::ypos#4 ← (byte) current_ypos#22 - [267] (byte*~) current_piece#94 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) - [268] call play_collision - [269] (byte) play_collision::return#10 ← (byte) play_collision::return#15 +play_spawn_current::@1: scope:[play_spawn_current] from play_spawn_current::@11 play_spawn_current::@9 + [299] (byte) game_over#52 ← phi( play_spawn_current::@9/(byte/signed byte/word/signed word/dword/signed dword) 1 play_spawn_current::@11/(byte) game_over#65 ) + to:play_spawn_current::@2 +play_spawn_current::@2: scope:[play_spawn_current] from play_spawn_current::@1 play_spawn_current::@10 + [300] (byte) play_spawn_current::piece_idx#2 ← phi( play_spawn_current::@1/(byte/signed byte/word/signed word/dword/signed dword) 7 play_spawn_current::@10/(byte) play_spawn_current::piece_idx#1 ) + [301] if((byte) play_spawn_current::piece_idx#2==(byte/signed byte/word/signed word/dword/signed dword) 7) goto play_spawn_current::@3 + to:play_spawn_current::@return +play_spawn_current::@return: scope:[play_spawn_current] from play_spawn_current::@2 + [302] return + to:@return +play_spawn_current::@3: scope:[play_spawn_current] from play_spawn_current::@2 + [303] phi() + [304] call sid_rnd + [305] (byte) sid_rnd::return#2 ← (byte) sid_rnd::return#0 to:play_spawn_current::@10 play_spawn_current::@10: scope:[play_spawn_current] from play_spawn_current::@3 - [270] (byte~) play_spawn_current::$5 ← (byte) play_collision::return#10 - [271] if((byte~) play_spawn_current::$5!=(const byte) COLLISION_PLAYFIELD#0) goto play_spawn_current::@11 - to:play_spawn_current::@return -play_spawn_current::@return: scope:[play_spawn_current] from play_spawn_current::@10 play_spawn_current::@11 - [272] (byte) game_over#15 ← phi( play_spawn_current::@11/(byte) game_over#70 play_spawn_current::@10/(byte/signed byte/word/signed word/dword/signed dword) 1 ) - [273] return - to:@return -play_spawn_current::@11: scope:[play_spawn_current] from play_spawn_current::@10 - [274] phi() - to:play_spawn_current::@return -play_spawn_current::@2: scope:[play_spawn_current] from play_spawn_current::@1 - [275] phi() - [276] call sid_rnd - [277] (byte) sid_rnd::return#2 ← (byte) sid_rnd::return#0 - to:play_spawn_current::@9 -play_spawn_current::@9: scope:[play_spawn_current] from play_spawn_current::@2 - [278] (byte~) play_spawn_current::$1 ← (byte) sid_rnd::return#2 - [279] (byte) play_spawn_current::piece_idx#1 ← (byte~) play_spawn_current::$1 & (byte/signed byte/word/signed word/dword/signed dword) 7 + [306] (byte~) play_spawn_current::$6 ← (byte) sid_rnd::return#2 + [307] (byte) play_spawn_current::piece_idx#1 ← (byte~) play_spawn_current::$6 & (byte/signed byte/word/signed word/dword/signed dword) 7 + to:play_spawn_current::@2 +play_spawn_current::@11: scope:[play_spawn_current] from play_spawn_current::@9 + [308] phi() to:play_spawn_current::@1 -sid_rnd: scope:[sid_rnd] from play_spawn_current::@2 - [280] (byte) sid_rnd::return#0 ← *((const byte*) SID_VOICE3_OSC#0) +sid_rnd: scope:[sid_rnd] from play_spawn_current::@3 + [309] (byte) sid_rnd::return#0 ← *((const byte*) SID_VOICE3_OSC#0) to:sid_rnd::@return sid_rnd::@return: scope:[sid_rnd] from sid_rnd - [281] return + [310] return to:@return play_update_score: scope:[play_update_score] from play_move_down::@20 - [282] if((byte) play_update_score::removed#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_update_score::@return + [311] 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 - [283] (byte~) play_update_score::$2 ← < (word) lines_bcd#19 - [284] (byte) play_update_score::lines_before#0 ← (byte~) play_update_score::$2 & (byte/word/signed word/dword/signed dword) 240 - [285] (byte~) play_update_score::$4 ← (byte) play_update_score::removed#0 << (byte/signed byte/word/signed word/dword/signed dword) 2 - [286] (dword) play_update_score::add_bcd#0 ← *((const dword[5]) score_add_bcd#0 + (byte~) play_update_score::$4) + [312] (byte~) play_update_score::$2 ← < (word) lines_bcd#19 + [313] (byte) play_update_score::lines_before#0 ← (byte~) play_update_score::$2 & (byte/word/signed word/dword/signed dword) 240 + [314] (byte~) play_update_score::$4 ← (byte) play_update_score::removed#0 << (byte/signed byte/word/signed word/dword/signed dword) 2 + [315] (dword) play_update_score::add_bcd#0 ← *((const dword[5]) score_add_bcd#0 + (byte~) play_update_score::$4) asm { sed } - [288] (word) lines_bcd#30 ← (word) lines_bcd#19 + (byte) play_update_score::removed#0 - [289] (dword) score_bcd#30 ← (dword) score_bcd#18 + (dword) play_update_score::add_bcd#0 + [317] (word) lines_bcd#30 ← (word) lines_bcd#19 + (byte) play_update_score::removed#0 + [318] (dword) score_bcd#30 ← (dword) score_bcd#18 + (dword) play_update_score::add_bcd#0 asm { cld } - [291] (byte~) play_update_score::$5 ← < (word) lines_bcd#30 - [292] (byte) play_update_score::lines_after#0 ← (byte~) play_update_score::$5 & (byte/word/signed word/dword/signed dword) 240 - [293] if((byte) play_update_score::lines_before#0==(byte) play_update_score::lines_after#0) goto play_update_score::@return + [320] (byte~) play_update_score::$5 ← < (word) lines_bcd#30 + [321] (byte) play_update_score::lines_after#0 ← (byte~) play_update_score::$5 & (byte/word/signed word/dword/signed dword) 240 + [322] if((byte) play_update_score::lines_before#0==(byte) play_update_score::lines_after#0) goto play_update_score::@return to:play_update_score::@4 play_update_score::@4: scope:[play_update_score] from play_update_score::@3 - [294] phi() - [295] call play_increase_level + [323] phi() + [324] call play_increase_level to:play_update_score::@return play_update_score::@return: scope:[play_update_score] from play_update_score play_update_score::@3 play_update_score::@4 - [296] (byte) level_bcd#19 ← phi( play_update_score/(byte) level_bcd#11 play_update_score::@3/(byte) level_bcd#11 play_update_score::@4/(byte) level_bcd#64 ) - [296] (byte) current_movedown_slow#23 ← phi( play_update_score/(byte) current_movedown_slow#14 play_update_score::@3/(byte) current_movedown_slow#14 play_update_score::@4/(byte) current_movedown_slow#69 ) - [296] (byte) level#18 ← phi( play_update_score/(byte) level#10 play_update_score::@3/(byte) level#10 play_update_score::@4/(byte) level#20 ) - [296] (dword) score_bcd#16 ← phi( play_update_score/(dword) score_bcd#18 play_update_score::@3/(dword) score_bcd#30 play_update_score::@4/(dword) score_bcd#30 ) - [296] (word) lines_bcd#17 ← phi( play_update_score/(word) lines_bcd#19 play_update_score::@3/(word) lines_bcd#30 play_update_score::@4/(word) lines_bcd#30 ) - [297] return + [325] (byte) level_bcd#19 ← phi( play_update_score/(byte) level_bcd#11 play_update_score::@3/(byte) level_bcd#11 play_update_score::@4/(byte) level_bcd#64 ) + [325] (byte) current_movedown_slow#23 ← phi( play_update_score/(byte) current_movedown_slow#14 play_update_score::@3/(byte) current_movedown_slow#14 play_update_score::@4/(byte) current_movedown_slow#69 ) + [325] (byte) level#18 ← phi( play_update_score/(byte) level#10 play_update_score::@3/(byte) level#10 play_update_score::@4/(byte) level#20 ) + [325] (dword) score_bcd#16 ← phi( play_update_score/(dword) score_bcd#18 play_update_score::@3/(dword) score_bcd#30 play_update_score::@4/(dword) score_bcd#30 ) + [325] (word) lines_bcd#17 ← phi( play_update_score/(word) lines_bcd#19 play_update_score::@3/(word) lines_bcd#30 play_update_score::@4/(word) lines_bcd#30 ) + [326] return to:@return play_increase_level: scope:[play_increase_level] from play_update_score::@4 - [298] (byte) level#20 ← ++ (byte) level#10 - [299] if((byte) level#20>(byte/signed byte/word/signed word/dword/signed dword) 29) goto play_increase_level::@2 + [327] (byte) level#20 ← ++ (byte) level#10 + [328] if((byte) level#20>(byte/signed byte/word/signed word/dword/signed dword) 29) goto play_increase_level::@2 to:play_increase_level::@5 play_increase_level::@5: scope:[play_increase_level] from play_increase_level - [300] (byte) current_movedown_slow#10 ← *((const byte[]) MOVEDOWN_SLOW_SPEEDS#0 + (byte) level#20) + [329] (byte) current_movedown_slow#10 ← *((const byte[]) MOVEDOWN_SLOW_SPEEDS#0 + (byte) level#20) to:play_increase_level::@2 play_increase_level::@2: scope:[play_increase_level] from play_increase_level play_increase_level::@5 - [301] (byte) current_movedown_slow#69 ← phi( play_increase_level/(byte/signed byte/word/signed word/dword/signed dword) 1 play_increase_level::@5/(byte) current_movedown_slow#10 ) - [302] (byte) level_bcd#21 ← ++ (byte) level_bcd#11 - [303] (byte~) play_increase_level::$1 ← (byte) level_bcd#21 & (byte/signed byte/word/signed word/dword/signed dword) 15 - [304] if((byte~) play_increase_level::$1!=(byte/signed byte/word/signed word/dword/signed dword) 10) goto play_increase_level::@3 + [330] (byte) current_movedown_slow#69 ← phi( play_increase_level/(byte/signed byte/word/signed word/dword/signed dword) 1 play_increase_level::@5/(byte) current_movedown_slow#10 ) + [331] (byte) level_bcd#21 ← ++ (byte) level_bcd#11 + [332] (byte~) play_increase_level::$1 ← (byte) level_bcd#21 & (byte/signed byte/word/signed word/dword/signed dword) 15 + [333] if((byte~) play_increase_level::$1!=(byte/signed byte/word/signed word/dword/signed dword) 10) goto play_increase_level::@3 to:play_increase_level::@7 play_increase_level::@7: scope:[play_increase_level] from play_increase_level::@2 - [305] (byte) level_bcd#8 ← (byte) level_bcd#21 + (byte/signed byte/word/signed word/dword/signed dword) 6 + [334] (byte) level_bcd#8 ← (byte) level_bcd#21 + (byte/signed byte/word/signed word/dword/signed dword) 6 to:play_increase_level::@3 play_increase_level::@3: scope:[play_increase_level] from play_increase_level::@2 play_increase_level::@7 - [306] (byte) level_bcd#64 ← phi( play_increase_level::@2/(byte) level_bcd#21 play_increase_level::@7/(byte) level_bcd#8 ) + [335] (byte) level_bcd#64 ← phi( play_increase_level::@2/(byte) level_bcd#21 play_increase_level::@7/(byte) level_bcd#8 ) asm { sed } to:play_increase_level::@4 play_increase_level::@4: scope:[play_increase_level] from play_increase_level::@3 play_increase_level::@4 - [308] (byte) play_increase_level::b#2 ← phi( play_increase_level::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 play_increase_level::@4/(byte) play_increase_level::b#1 ) - [309] (byte) play_increase_level::b4#0 ← (byte) play_increase_level::b#2 << (byte/signed byte/word/signed word/dword/signed dword) 2 - [310] *((const dword[5]) score_add_bcd#0 + (byte) play_increase_level::b4#0) ← *((const dword[5]) score_add_bcd#0 + (byte) play_increase_level::b4#0) + *((const dword[]) SCORE_BASE_BCD#0 + (byte) play_increase_level::b4#0) - [311] (byte) play_increase_level::b#1 ← ++ (byte) play_increase_level::b#2 - [312] if((byte) play_increase_level::b#1!=(byte/signed byte/word/signed word/dword/signed dword) 5) goto play_increase_level::@4 + [337] (byte) play_increase_level::b#2 ← phi( play_increase_level::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 play_increase_level::@4/(byte) play_increase_level::b#1 ) + [338] (byte) play_increase_level::b4#0 ← (byte) play_increase_level::b#2 << (byte/signed byte/word/signed word/dword/signed dword) 2 + [339] *((const dword[5]) score_add_bcd#0 + (byte) play_increase_level::b4#0) ← *((const dword[5]) score_add_bcd#0 + (byte) play_increase_level::b4#0) + *((const dword[]) SCORE_BASE_BCD#0 + (byte) play_increase_level::b4#0) + [340] (byte) play_increase_level::b#1 ← ++ (byte) play_increase_level::b#2 + [341] if((byte) play_increase_level::b#1!=(byte/signed byte/word/signed word/dword/signed dword) 5) goto play_increase_level::@4 to:play_increase_level::@8 play_increase_level::@8: scope:[play_increase_level] from play_increase_level::@4 asm { cld } to:play_increase_level::@return play_increase_level::@return: scope:[play_increase_level] from play_increase_level::@8 - [314] return + [343] return to:@return play_remove_lines: scope:[play_remove_lines] from play_move_down::@19 - [315] phi() + [344] phi() to:play_remove_lines::@1 play_remove_lines::@1: scope:[play_remove_lines] from play_remove_lines play_remove_lines::@4 - [316] (byte) play_remove_lines::removed#11 ← phi( play_remove_lines/(byte/signed byte/word/signed word/dword/signed dword) 0 play_remove_lines::@4/(byte) play_remove_lines::removed#7 ) - [316] (byte) play_remove_lines::y#8 ← phi( play_remove_lines/(byte/signed byte/word/signed word/dword/signed dword) 0 play_remove_lines::@4/(byte) play_remove_lines::y#1 ) - [316] (byte) play_remove_lines::w#12 ← phi( play_remove_lines/(const byte) PLAYFIELD_LINES#0*(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1 play_remove_lines::@4/(byte) play_remove_lines::w#11 ) - [316] (byte) play_remove_lines::r#3 ← phi( play_remove_lines/(const byte) PLAYFIELD_LINES#0*(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1 play_remove_lines::@4/(byte) play_remove_lines::r#1 ) + [345] (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 ) + [345] (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 ) + [345] (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 ) + [345] (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 - [317] (byte) play_remove_lines::full#4 ← phi( play_remove_lines::@1/(byte/signed byte/word/signed word/dword/signed dword) 1 play_remove_lines::@3/(byte) play_remove_lines::full#2 ) - [317] (byte) play_remove_lines::x#2 ← phi( play_remove_lines::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 play_remove_lines::@3/(byte) play_remove_lines::x#1 ) - [317] (byte) play_remove_lines::w#4 ← phi( play_remove_lines::@1/(byte) play_remove_lines::w#12 play_remove_lines::@3/(byte) play_remove_lines::w#1 ) - [317] (byte) play_remove_lines::r#2 ← phi( play_remove_lines::@1/(byte) play_remove_lines::r#3 play_remove_lines::@3/(byte) play_remove_lines::r#1 ) - [318] (byte) play_remove_lines::c#0 ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::r#2) - [319] (byte) play_remove_lines::r#1 ← -- (byte) play_remove_lines::r#2 - [320] if((byte) play_remove_lines::c#0!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_remove_lines::@18 + [346] (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 ) + [346] (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 ) + [346] (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 ) + [346] (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 ) + [347] (byte) play_remove_lines::c#0 ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::r#2) + [348] (byte) play_remove_lines::r#1 ← -- (byte) play_remove_lines::r#2 + [349] 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 - [321] (byte) play_remove_lines::full#2 ← phi( play_remove_lines::@18/(byte) play_remove_lines::full#4 play_remove_lines::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [322] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::w#4) ← (byte) play_remove_lines::c#0 - [323] (byte) play_remove_lines::w#1 ← -- (byte) play_remove_lines::w#4 - [324] (byte) play_remove_lines::x#1 ← ++ (byte) play_remove_lines::x#2 - [325] if((byte) play_remove_lines::x#1!=(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto play_remove_lines::@2 + [350] (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 ) + [351] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::w#4) ← (byte) play_remove_lines::c#0 + [352] (byte) play_remove_lines::w#1 ← -- (byte) play_remove_lines::w#4 + [353] (byte) play_remove_lines::x#1 ← ++ (byte) play_remove_lines::x#2 + [354] 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 - [326] if((byte) play_remove_lines::full#2!=(byte/signed byte/word/signed word/dword/signed dword) 1) goto play_remove_lines::@4 + [355] 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 - [327] (byte) play_remove_lines::w#2 ← (byte) play_remove_lines::w#1 + (const byte) PLAYFIELD_COLS#0 - [328] (byte) play_remove_lines::removed#1 ← ++ (byte) play_remove_lines::removed#11 + [356] (byte) play_remove_lines::w#2 ← (byte) play_remove_lines::w#1 + (const byte) PLAYFIELD_COLS#0 + [357] (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 - [329] (byte) play_remove_lines::removed#7 ← phi( play_remove_lines::@10/(byte) play_remove_lines::removed#1 play_remove_lines::@9/(byte) play_remove_lines::removed#11 ) - [329] (byte) play_remove_lines::w#11 ← phi( play_remove_lines::@10/(byte) play_remove_lines::w#2 play_remove_lines::@9/(byte) play_remove_lines::w#1 ) - [330] (byte) play_remove_lines::y#1 ← ++ (byte) play_remove_lines::y#8 - [331] if((byte) play_remove_lines::y#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto play_remove_lines::@1 + [358] (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 ) + [358] (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 ) + [359] (byte) play_remove_lines::y#1 ← ++ (byte) play_remove_lines::y#8 + [360] 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 - [332] (byte) play_remove_lines::w#6 ← phi( play_remove_lines::@4/(byte) play_remove_lines::w#11 play_remove_lines::@6/(byte) play_remove_lines::w#3 ) - [333] if((byte) play_remove_lines::w#6!=(byte/word/signed word/dword/signed dword) 255) goto play_remove_lines::@6 + [361] (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 ) + [362] 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 - [334] return + [363] return to:@return play_remove_lines::@6: scope:[play_remove_lines] from play_remove_lines::@5 - [335] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::w#6) ← (byte/signed byte/word/signed word/dword/signed dword) 0 - [336] (byte) play_remove_lines::w#3 ← -- (byte) play_remove_lines::w#6 + [364] *((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 + [365] (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 - [337] phi() + [366] phi() to:play_remove_lines::@3 play_lock_current: scope:[play_lock_current] from play_move_down::@13 - [338] (byte) play_lock_current::ypos2#0 ← (byte) current_ypos#25 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [367] (byte) play_lock_current::ypos2#0 ← (byte) current_ypos#10 << (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 - [339] (byte) play_lock_current::l#6 ← phi( play_lock_current/(byte/signed byte/word/signed word/dword/signed dword) 0 play_lock_current::@7/(byte) play_lock_current::l#1 ) - [339] (byte) play_lock_current::i#3 ← phi( play_lock_current/(byte/signed byte/word/signed word/dword/signed dword) 0 play_lock_current::@7/(byte~) play_lock_current::i#7 ) - [339] (byte) play_lock_current::ypos2#2 ← phi( play_lock_current/(byte) play_lock_current::ypos2#0 play_lock_current::@7/(byte) play_lock_current::ypos2#1 ) - [340] (byte*) play_lock_current::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_lock_current::ypos2#2) - [341] (byte) play_lock_current::col#0 ← (byte) current_xpos#113 + [368] (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 ) + [368] (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 ) + [368] (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 ) + [369] (byte*) play_lock_current::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_lock_current::ypos2#2) + [370] (byte) play_lock_current::col#0 ← (byte) current_xpos#121 to:play_lock_current::@2 play_lock_current::@2: scope:[play_lock_current] from play_lock_current::@1 play_lock_current::@8 - [342] (byte) play_lock_current::c#2 ← phi( play_lock_current::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 play_lock_current::@8/(byte) play_lock_current::c#1 ) - [342] (byte) play_lock_current::col#2 ← phi( play_lock_current::@1/(byte) play_lock_current::col#0 play_lock_current::@8/(byte) play_lock_current::col#1 ) - [342] (byte) play_lock_current::i#2 ← phi( play_lock_current::@1/(byte) play_lock_current::i#3 play_lock_current::@8/(byte~) play_lock_current::i#9 ) - [343] (byte) play_lock_current::i#1 ← ++ (byte) play_lock_current::i#2 - [344] if(*((byte*) current_piece_gfx#103 + (byte) play_lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_lock_current::@3 + [371] (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 ) + [371] (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 ) + [371] (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 ) + [372] (byte) play_lock_current::i#1 ← ++ (byte) play_lock_current::i#2 + [373] if(*((byte*) current_piece_gfx#111 + (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 - [345] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::col#2) ← (byte) current_piece_char#19 + [374] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::col#2) ← (byte) current_piece_char#21 to:play_lock_current::@3 play_lock_current::@3: scope:[play_lock_current] from play_lock_current::@2 play_lock_current::@4 - [346] (byte) play_lock_current::col#1 ← ++ (byte) play_lock_current::col#2 - [347] (byte) play_lock_current::c#1 ← ++ (byte) play_lock_current::c#2 - [348] if((byte) play_lock_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_lock_current::@8 + [375] (byte) play_lock_current::col#1 ← ++ (byte) play_lock_current::col#2 + [376] (byte) play_lock_current::c#1 ← ++ (byte) play_lock_current::c#2 + [377] 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 - [349] (byte) play_lock_current::ypos2#1 ← (byte) play_lock_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 - [350] (byte) play_lock_current::l#1 ← ++ (byte) play_lock_current::l#6 - [351] if((byte) play_lock_current::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_lock_current::@7 + [378] (byte) play_lock_current::ypos2#1 ← (byte) play_lock_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 + [379] (byte) play_lock_current::l#1 ← ++ (byte) play_lock_current::l#6 + [380] 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 - [352] return + [381] return to:@return play_lock_current::@7: scope:[play_lock_current] from play_lock_current::@5 - [353] (byte~) play_lock_current::i#7 ← (byte) play_lock_current::i#1 + [382] (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 - [354] (byte~) play_lock_current::i#9 ← (byte) play_lock_current::i#1 + [383] (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 - [355] (byte) keyboard_event_pressed::keycode#5 ← phi( keyboard_event_scan::@10/(const byte) KEY_CTRL#0 keyboard_event_scan::@11/(const byte) KEY_COMMODORE#0 keyboard_event_scan::@20/(const byte) KEY_LSHIFT#0 keyboard_event_scan::@9/(const byte) KEY_RSHIFT#0 play_move_down::@1/(const byte) KEY_SPACE#0 ) - [356] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte/signed byte/word/signed word/dword/signed dword) 3 - [357] (byte) keyboard_event_pressed::row_bits#0 ← *((const byte[8]) keyboard_scan_values#0 + (byte~) keyboard_event_pressed::$0) - [358] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte/signed byte/word/signed word/dword/signed dword) 7 - [359] (byte) keyboard_event_pressed::return#11 ← (byte) keyboard_event_pressed::row_bits#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte~) keyboard_event_pressed::$1) + [384] (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 ) + [385] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte/signed byte/word/signed word/dword/signed dword) 3 + [386] (byte) keyboard_event_pressed::row_bits#0 ← *((const byte[8]) keyboard_scan_values#0 + (byte~) keyboard_event_pressed::$0) + [387] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte/signed byte/word/signed word/dword/signed dword) 7 + [388] (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 - [360] return + [389] return to:@return -keyboard_event_get: scope:[keyboard_event_get] from main::@34 - [361] if((byte) keyboard_events_size#13==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_get::@return +keyboard_event_get: scope:[keyboard_event_get] from main::@36 + [390] 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 - [362] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13 - [363] (byte) keyboard_event_get::return#1 ← *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#4) + [391] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13 + [392] (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 - [364] (byte) keyboard_events_size#16 ← phi( keyboard_event_get/(byte) keyboard_events_size#13 keyboard_event_get::@3/(byte) keyboard_events_size#4 ) - [364] (byte) keyboard_event_get::return#2 ← phi( keyboard_event_get/(byte/word/signed word/dword/signed dword) 255 keyboard_event_get::@3/(byte) keyboard_event_get::return#1 ) - [365] return + [393] (byte) keyboard_events_size#16 ← phi( keyboard_event_get/(byte) keyboard_events_size#13 keyboard_event_get::@3/(byte) keyboard_events_size#4 ) + [393] (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 ) + [394] return to:@return -keyboard_event_scan: scope:[keyboard_event_scan] from main::@33 - [366] phi() +keyboard_event_scan: scope:[keyboard_event_scan] from main::@35 + [395] phi() to:keyboard_event_scan::@1 keyboard_event_scan::@1: scope:[keyboard_event_scan] from keyboard_event_scan keyboard_event_scan::@3 - [367] (byte) keyboard_events_size#29 ← phi( keyboard_event_scan/(byte) keyboard_events_size#19 keyboard_event_scan::@3/(byte) keyboard_events_size#13 ) - [367] (byte) keyboard_event_scan::keycode#11 ← phi( keyboard_event_scan/(byte/signed byte/word/signed word/dword/signed dword) 0 keyboard_event_scan::@3/(byte) keyboard_event_scan::keycode#14 ) - [367] (byte) keyboard_event_scan::row#2 ← phi( keyboard_event_scan/(byte/signed byte/word/signed word/dword/signed dword) 0 keyboard_event_scan::@3/(byte) keyboard_event_scan::row#1 ) - [368] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 - [369] call keyboard_matrix_read - [370] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 + [396] (byte) keyboard_events_size#29 ← phi( keyboard_event_scan/(byte) keyboard_events_size#19 keyboard_event_scan::@3/(byte) keyboard_events_size#13 ) + [396] (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 ) + [396] (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 ) + [397] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 + [398] call keyboard_matrix_read + [399] (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 - [371] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 - [372] if((byte) keyboard_event_scan::row_scan#0!=*((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2)) goto keyboard_event_scan::@4 + [400] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 + [401] 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 - [373] (byte) keyboard_event_scan::keycode#1 ← (byte) keyboard_event_scan::keycode#11 + (byte/signed byte/word/signed word/dword/signed dword) 8 + [402] (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 - [374] (byte) keyboard_events_size#13 ← phi( keyboard_event_scan::@13/(byte) keyboard_events_size#29 keyboard_event_scan::@19/(byte) keyboard_events_size#30 ) - [374] (byte) keyboard_event_scan::keycode#14 ← phi( keyboard_event_scan::@13/(byte) keyboard_event_scan::keycode#1 keyboard_event_scan::@19/(byte) keyboard_event_scan::keycode#15 ) - [375] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 - [376] if((byte) keyboard_event_scan::row#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@1 + [403] (byte) keyboard_events_size#13 ← phi( keyboard_event_scan::@13/(byte) keyboard_events_size#29 keyboard_event_scan::@19/(byte) keyboard_events_size#30 ) + [403] (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 ) + [404] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 + [405] 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 - [377] phi() - [378] call keyboard_event_pressed - [379] (byte) keyboard_event_pressed::return#0 ← (byte) keyboard_event_pressed::return#11 + [406] phi() + [407] call keyboard_event_pressed + [408] (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 - [380] (byte~) keyboard_event_scan::$14 ← (byte) keyboard_event_pressed::return#0 - [381] if((byte~) keyboard_event_scan::$14==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@9 + [409] (byte~) keyboard_event_scan::$14 ← (byte) keyboard_event_pressed::return#0 + [410] 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 - [382] phi() + [411] phi() to:keyboard_event_scan::@9 keyboard_event_scan::@9: scope:[keyboard_event_scan] from keyboard_event_scan::@21 keyboard_event_scan::@26 - [383] (byte) keyboard_modifiers#11 ← phi( keyboard_event_scan::@21/(byte/signed byte/word/signed word/dword/signed dword) 0|(const byte) KEY_MODIFIER_LSHIFT#0 keyboard_event_scan::@26/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [384] call keyboard_event_pressed - [385] (byte) keyboard_event_pressed::return#1 ← (byte) keyboard_event_pressed::return#11 + [412] (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 ) + [413] call keyboard_event_pressed + [414] (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 - [386] (byte~) keyboard_event_scan::$18 ← (byte) keyboard_event_pressed::return#1 - [387] if((byte~) keyboard_event_scan::$18==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@10 + [415] (byte~) keyboard_event_scan::$18 ← (byte) keyboard_event_pressed::return#1 + [416] 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 - [388] (byte) keyboard_modifiers#3 ← (byte) keyboard_modifiers#11 | (const byte) KEY_MODIFIER_RSHIFT#0 + [417] (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 - [389] (byte) keyboard_modifiers#12 ← phi( keyboard_event_scan::@22/(byte) keyboard_modifiers#3 keyboard_event_scan::@27/(byte) keyboard_modifiers#11 ) - [390] call keyboard_event_pressed - [391] (byte) keyboard_event_pressed::return#2 ← (byte) keyboard_event_pressed::return#11 + [418] (byte) keyboard_modifiers#12 ← phi( keyboard_event_scan::@22/(byte) keyboard_modifiers#3 keyboard_event_scan::@27/(byte) keyboard_modifiers#11 ) + [419] call keyboard_event_pressed + [420] (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 - [392] (byte~) keyboard_event_scan::$22 ← (byte) keyboard_event_pressed::return#2 - [393] if((byte~) keyboard_event_scan::$22==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@11 + [421] (byte~) keyboard_event_scan::$22 ← (byte) keyboard_event_pressed::return#2 + [422] 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 - [394] (byte) keyboard_modifiers#4 ← (byte) keyboard_modifiers#12 | (const byte) KEY_MODIFIER_CTRL#0 + [423] (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 - [395] (byte) keyboard_modifiers#13 ← phi( keyboard_event_scan::@23/(byte) keyboard_modifiers#4 keyboard_event_scan::@28/(byte) keyboard_modifiers#12 ) - [396] call keyboard_event_pressed - [397] (byte) keyboard_event_pressed::return#10 ← (byte) keyboard_event_pressed::return#11 + [424] (byte) keyboard_modifiers#13 ← phi( keyboard_event_scan::@23/(byte) keyboard_modifiers#4 keyboard_event_scan::@28/(byte) keyboard_modifiers#12 ) + [425] call keyboard_event_pressed + [426] (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 - [398] (byte~) keyboard_event_scan::$26 ← (byte) keyboard_event_pressed::return#10 - [399] if((byte~) keyboard_event_scan::$26==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@return + [427] (byte~) keyboard_event_scan::$26 ← (byte) keyboard_event_pressed::return#10 + [428] 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 - [400] (byte) keyboard_modifiers#5 ← (byte) keyboard_modifiers#13 | (const byte) KEY_MODIFIER_COMMODORE#0 + [429] (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 - [401] return + [430] return to:@return keyboard_event_scan::@4: scope:[keyboard_event_scan] from keyboard_event_scan::@25 keyboard_event_scan::@5 - [402] (byte) keyboard_events_size#10 ← phi( keyboard_event_scan::@25/(byte) keyboard_events_size#29 keyboard_event_scan::@5/(byte) keyboard_events_size#30 ) - [402] (byte) keyboard_event_scan::keycode#10 ← phi( keyboard_event_scan::@25/(byte) keyboard_event_scan::keycode#11 keyboard_event_scan::@5/(byte) keyboard_event_scan::keycode#15 ) - [402] (byte) keyboard_event_scan::col#2 ← phi( keyboard_event_scan::@25/(byte/signed byte/word/signed word/dword/signed dword) 0 keyboard_event_scan::@5/(byte) keyboard_event_scan::col#1 ) - [403] (byte~) keyboard_event_scan::$3 ← (byte) keyboard_event_scan::row_scan#0 ^ *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) - [404] (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) - [405] if((byte~) keyboard_event_scan::$4==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@5 + [431] (byte) keyboard_events_size#10 ← phi( keyboard_event_scan::@25/(byte) keyboard_events_size#29 keyboard_event_scan::@5/(byte) keyboard_events_size#30 ) + [431] (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 ) + [431] (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 ) + [432] (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) + [433] (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) + [434] 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 - [406] if((byte) keyboard_events_size#10==(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@5 + [435] 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 - [407] (byte) keyboard_event_scan::event_type#0 ← (byte) keyboard_event_scan::row_scan#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) - [408] if((byte) keyboard_event_scan::event_type#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@7 + [436] (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) + [437] 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 - [409] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 - [410] (byte) keyboard_events_size#2 ← ++ (byte) keyboard_events_size#10 + [438] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 + [439] (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 - [411] (byte) keyboard_events_size#30 ← phi( keyboard_event_scan::@17/(byte) keyboard_events_size#2 keyboard_event_scan::@4/(byte) keyboard_events_size#10 keyboard_event_scan::@15/(byte) keyboard_events_size#10 keyboard_event_scan::@7/(byte) keyboard_events_size#1 ) - [412] (byte) keyboard_event_scan::keycode#15 ← ++ (byte) keyboard_event_scan::keycode#10 - [413] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 - [414] if((byte) keyboard_event_scan::col#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@4 + [440] (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 ) + [441] (byte) keyboard_event_scan::keycode#15 ← ++ (byte) keyboard_event_scan::keycode#10 + [442] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 + [443] 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 - [415] *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 + [444] *((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 - [416] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64 - [417] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte/word/dword~) keyboard_event_scan::$11 - [418] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#10 + [445] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64 + [446] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte/word/dword~) keyboard_event_scan::$11 + [447] (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 - [419] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) - [420] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) + [448] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) + [449] (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 - [421] return + [450] return to:@return render_show: scope:[render_show] from main::@6 - [422] if((byte) render_screen_show#16==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_show::toD0181 + [451] 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 - [423] phi() + [452] phi() to:render_show::@2 render_show::@2: scope:[render_show] from render_show::toD0181 render_show::toD0182 - [424] (byte) render_show::d018val#3 ← phi( render_show::toD0181/(const byte) render_show::toD0181_return#0 render_show::toD0182/(const byte) render_show::toD0182_return#0 ) - [425] *((const byte*) D018#0) ← (byte) render_show::d018val#3 - [426] (byte) render_screen_showing#1 ← (byte) render_screen_show#16 + [453] (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 ) + [454] *((const byte*) D018#0) ← (byte) render_show::d018val#3 + [455] (byte) render_screen_showing#1 ← (byte) render_screen_show#16 to:render_show::@return render_show::@return: scope:[render_show] from render_show::@2 - [427] return + [456] return to:@return render_show::toD0181: scope:[render_show] from render_show - [428] phi() + [457] phi() to:render_show::@2 play_init: scope:[play_init] from main::@28 - [429] phi() + [458] phi() to:play_init::@1 play_init::@1: scope:[play_init] from play_init play_init::@1 - [430] (byte) play_init::idx#2 ← phi( play_init/(byte/signed byte/word/signed word/dword/signed dword) 0 play_init::@1/(byte) play_init::idx#1 ) - [430] (byte*) play_init::pli#2 ← phi( play_init/(const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 play_init::@1/(byte*) play_init::pli#1 ) - [430] (byte) play_init::j#2 ← phi( play_init/(byte/signed byte/word/signed word/dword/signed dword) 0 play_init::@1/(byte) play_init::j#1 ) - [431] (byte~) play_init::$1 ← (byte) play_init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [432] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) play_init::$1) ← (byte*) play_init::pli#2 - [433] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) play_init::j#2) ← (byte) play_init::idx#2 - [434] (byte*) play_init::pli#1 ← (byte*) play_init::pli#2 + (const byte) PLAYFIELD_COLS#0 - [435] (byte) play_init::idx#1 ← (byte) play_init::idx#2 + (const byte) PLAYFIELD_COLS#0 - [436] (byte) play_init::j#1 ← ++ (byte) play_init::j#2 - [437] if((byte) play_init::j#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto play_init::@1 + [459] (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 ) + [459] (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 ) + [459] (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 ) + [460] (byte~) play_init::$1 ← (byte) play_init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [461] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) play_init::$1) ← (byte*) play_init::pli#2 + [462] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) play_init::j#2) ← (byte) play_init::idx#2 + [463] (byte*) play_init::pli#1 ← (byte*) play_init::pli#2 + (const byte) PLAYFIELD_COLS#0 + [464] (byte) play_init::idx#1 ← (byte) play_init::idx#2 + (const byte) PLAYFIELD_COLS#0 + [465] (byte) play_init::j#1 ← ++ (byte) play_init::j#2 + [466] if((byte) play_init::j#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto play_init::@1 to:play_init::@3 play_init::@3: scope:[play_init] from play_init::@1 - [438] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0+(const byte) PLAYFIELD_LINES#0) ← (const byte) PLAYFIELD_COLS#0*(const byte) PLAYFIELD_LINES#0 - [439] (byte) current_movedown_slow#1 ← *((const byte[]) MOVEDOWN_SLOW_SPEEDS#0) + [467] *((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 + [468] (byte) current_movedown_slow#1 ← *((const byte[]) MOVEDOWN_SLOW_SPEEDS#0) to:play_init::@2 play_init::@2: scope:[play_init] from play_init::@2 play_init::@3 - [440] (byte) play_init::b#2 ← phi( play_init::@2/(byte) play_init::b#1 play_init::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [441] (byte) play_init::b4#0 ← (byte) play_init::b#2 << (byte/signed byte/word/signed word/dword/signed dword) 2 - [442] *((const dword[5]) score_add_bcd#0 + (byte) play_init::b4#0) ← *((const dword[]) SCORE_BASE_BCD#0 + (byte) play_init::b4#0) - [443] (byte) play_init::b#1 ← ++ (byte) play_init::b#2 - [444] if((byte) play_init::b#1!=(byte/signed byte/word/signed word/dword/signed dword) 5) goto play_init::@2 + [469] (byte) play_init::b#2 ← phi( play_init::@2/(byte) play_init::b#1 play_init::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [470] (byte) play_init::b4#0 ← (byte) play_init::b#2 << (byte/signed byte/word/signed word/dword/signed dword) 2 + [471] *((const dword[5]) score_add_bcd#0 + (byte) play_init::b4#0) ← *((const dword[]) SCORE_BASE_BCD#0 + (byte) play_init::b4#0) + [472] (byte) play_init::b#1 ← ++ (byte) play_init::b#2 + [473] if((byte) play_init::b#1!=(byte/signed byte/word/signed word/dword/signed dword) 5) goto play_init::@2 to:play_init::@return play_init::@return: scope:[play_init] from play_init::@2 - [445] return + [474] return to:@return sprites_irq_init: scope:[sprites_irq_init] from main::@27 asm { sei } - [447] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 + [476] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 asm { ldaCIA1_INTERRUPT } - [449] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 - [450] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 - [451] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 - [452] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 - [453] *((const byte*) RASTER#0) ← (const byte) IRQ_RASTER_FIRST#0 - [454] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 - [455] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() + [478] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 + [479] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 + [480] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 + [481] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 + [482] *((const byte*) RASTER#0) ← (const byte) IRQ_RASTER_FIRST#0 + [483] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 + [484] *((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 - [457] return + [486] return to:@return sprites_init: scope:[sprites_init] from main::@26 - [458] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 15 - [459] *((const byte*) SPRITES_MC#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 - [460] *((const byte*) SPRITES_EXPAND_Y#0) ← *((const byte*) SPRITES_MC#0) - [461] *((const byte*) SPRITES_EXPAND_X#0) ← *((const byte*) SPRITES_EXPAND_Y#0) + [487] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 15 + [488] *((const byte*) SPRITES_MC#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 + [489] *((const byte*) SPRITES_EXPAND_Y#0) ← *((const byte*) SPRITES_MC#0) + [490] *((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 - [462] (byte) sprites_init::xpos#2 ← phi( sprites_init/(byte/signed byte/word/signed word/dword/signed dword) 24+(byte/signed byte/word/signed word/dword/signed dword) 15*(byte/signed byte/word/signed word/dword/signed dword) 8 sprites_init::@1/(byte) sprites_init::xpos#1 ) - [462] (byte) sprites_init::s#2 ← phi( sprites_init/(byte/signed byte/word/signed word/dword/signed dword) 0 sprites_init::@1/(byte) sprites_init::s#1 ) - [463] (byte) sprites_init::s2#0 ← (byte) sprites_init::s#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [464] *((const byte*) SPRITES_XPOS#0 + (byte) sprites_init::s2#0) ← (byte) sprites_init::xpos#2 - [465] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::s#2) ← (const byte) BLACK#0 - [466] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 - [467] (byte) sprites_init::s#1 ← ++ (byte) sprites_init::s#2 - [468] if((byte) sprites_init::s#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto sprites_init::@1 + [491] (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 ) + [491] (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 ) + [492] (byte) sprites_init::s2#0 ← (byte) sprites_init::s#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [493] *((const byte*) SPRITES_XPOS#0 + (byte) sprites_init::s2#0) ← (byte) sprites_init::xpos#2 + [494] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::s#2) ← (const byte) BLACK#0 + [495] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 + [496] (byte) sprites_init::s#1 ← ++ (byte) sprites_init::s#2 + [497] 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 - [469] return + [498] return to:@return render_init: scope:[render_init] from main::@25 - [470] phi() + [499] phi() to:render_init::vicSelectGfxBank1 render_init::vicSelectGfxBank1: scope:[render_init] from render_init - [471] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 + [500] *((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 - [472] phi() + [501] phi() to:render_init::vicSelectGfxBank1_@1 render_init::vicSelectGfxBank1_@1: scope:[render_init] from render_init::vicSelectGfxBank1_toDd001 - [473] *((const byte*) CIA2_PORT_A#0) ← (const byte) render_init::vicSelectGfxBank1_toDd001_return#0 + [502] *((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 - [474] *((const byte*) D011#0) ← (const byte) VIC_ECM#0|(const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 - [475] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0 - [476] *((const byte*) BGCOL1#0) ← (const byte) BLACK#0 - [477] *((const byte*) BGCOL2#0) ← (const byte) BLUE#0 - [478] *((const byte*) BGCOL3#0) ← (const byte) CYAN#0 - [479] *((const byte*) BGCOL4#0) ← (const byte) GREY#0 - [480] call render_screen_original + [503] *((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 + [504] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0 + [505] *((const byte*) BGCOL1#0) ← (const byte) BLACK#0 + [506] *((const byte*) BGCOL2#0) ← (const byte) BLUE#0 + [507] *((const byte*) BGCOL3#0) ← (const byte) CYAN#0 + [508] *((const byte*) BGCOL4#0) ← (const byte) GREY#0 + [509] call render_screen_original to:render_init::@4 render_init::@4: scope:[render_init] from render_init::@3 - [481] phi() - [482] call render_screen_original + [510] phi() + [511] call render_screen_original to:render_init::@1 render_init::@1: scope:[render_init] from render_init::@1 render_init::@4 - [483] (byte*) render_init::li_2#2 ← phi( render_init::@1/(byte*) render_init::li_2#1 render_init::@4/(const byte*) PLAYFIELD_SCREEN_2#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 16 ) - [483] (byte*) render_init::li_1#2 ← phi( render_init::@1/(byte*) render_init::li_1#1 render_init::@4/(const byte*) PLAYFIELD_SCREEN_1#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 16 ) - [483] (byte) render_init::i#2 ← phi( render_init::@1/(byte) render_init::i#1 render_init::@4/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [484] (byte~) render_init::$13 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [485] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_init::$13) ← (byte*) render_init::li_1#2 - [486] (byte~) render_init::$14 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [487] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_2#0 + (byte~) render_init::$14) ← (byte*) render_init::li_2#2 - [488] (byte*) render_init::li_1#1 ← (byte*) render_init::li_1#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 - [489] (byte*) render_init::li_2#1 ← (byte*) render_init::li_2#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 - [490] (byte) render_init::i#1 ← ++ (byte) render_init::i#2 - [491] if((byte) render_init::i#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@1 + [512] (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 ) + [512] (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 ) + [512] (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 ) + [513] (byte~) render_init::$13 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [514] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_init::$13) ← (byte*) render_init::li_1#2 + [515] (byte~) render_init::$14 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [516] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_2#0 + (byte~) render_init::$14) ← (byte*) render_init::li_2#2 + [517] (byte*) render_init::li_1#1 ← (byte*) render_init::li_1#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 + [518] (byte*) render_init::li_2#1 ← (byte*) render_init::li_2#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 + [519] (byte) render_init::i#1 ← ++ (byte) render_init::i#2 + [520] 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 - [492] return + [521] return to:@return render_screen_original: scope:[render_screen_original] from render_init::@3 render_init::@4 - [493] (byte*) render_screen_original::screen#9 ← phi( render_init::@3/(const byte*) PLAYFIELD_SCREEN_1#0 render_init::@4/(const byte*) PLAYFIELD_SCREEN_2#0 ) + [522] (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 - [494] (byte) render_screen_original::y#6 ← phi( render_screen_original/(byte/signed byte/word/signed word/dword/signed dword) 0 render_screen_original::@7/(byte) render_screen_original::y#1 ) - [494] (byte*) render_screen_original::ocols#4 ← phi( render_screen_original/(const byte*) PLAYFIELD_COLORS_ORIGINAL#0+(byte/signed byte/word/signed word/dword/signed dword) 32*(byte/signed byte/word/signed word/dword/signed dword) 2 render_screen_original::@7/(byte*) render_screen_original::ocols#1 ) - [494] (byte*) render_screen_original::oscr#4 ← phi( render_screen_original/(const byte*) PLAYFIELD_SCREEN_ORIGINAL#0+(byte/signed byte/word/signed word/dword/signed dword) 32*(byte/signed byte/word/signed word/dword/signed dword) 2 render_screen_original::@7/(byte*) render_screen_original::oscr#1 ) - [494] (byte*) render_screen_original::cols#7 ← phi( render_screen_original/(const byte*) COLS#0 render_screen_original::@7/(byte*) render_screen_original::cols#3 ) - [494] (byte*) render_screen_original::screen#8 ← phi( render_screen_original/(byte*) render_screen_original::screen#9 render_screen_original::@7/(byte*) render_screen_original::screen#10 ) + [523] (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 ) + [523] (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 ) + [523] (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 ) + [523] (byte*) render_screen_original::cols#7 ← phi( render_screen_original/(const byte*) COLS#0 render_screen_original::@7/(byte*) render_screen_original::cols#3 ) + [523] (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 - [495] (byte) render_screen_original::x#4 ← phi( render_screen_original::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 render_screen_original::@2/(byte) render_screen_original::x#1 ) - [495] (byte*) render_screen_original::cols#4 ← phi( render_screen_original::@1/(byte*) render_screen_original::cols#7 render_screen_original::@2/(byte*) render_screen_original::cols#1 ) - [495] (byte*) render_screen_original::screen#5 ← phi( render_screen_original::@1/(byte*) render_screen_original::screen#8 render_screen_original::@2/(byte*) render_screen_original::screen#2 ) - [496] *((byte*) render_screen_original::screen#5) ← (const byte) render_screen_original::SPACE#0 - [497] (byte*) render_screen_original::screen#2 ← ++ (byte*) render_screen_original::screen#5 - [498] *((byte*) render_screen_original::cols#4) ← (const byte) BLACK#0 - [499] (byte*) render_screen_original::cols#1 ← ++ (byte*) render_screen_original::cols#4 - [500] (byte) render_screen_original::x#1 ← ++ (byte) render_screen_original::x#4 - [501] if((byte) render_screen_original::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_screen_original::@2 + [524] (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 ) + [524] (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 ) + [524] (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 ) + [525] *((byte*) render_screen_original::screen#5) ← (const byte) render_screen_original::SPACE#0 + [526] (byte*) render_screen_original::screen#2 ← ++ (byte*) render_screen_original::screen#5 + [527] *((byte*) render_screen_original::cols#4) ← (const byte) BLACK#0 + [528] (byte*) render_screen_original::cols#1 ← ++ (byte*) render_screen_original::cols#4 + [529] (byte) render_screen_original::x#1 ← ++ (byte) render_screen_original::x#4 + [530] 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 - [502] (byte) render_screen_original::x#5 ← phi( render_screen_original::@2/(byte) render_screen_original::x#1 render_screen_original::@3/(byte) render_screen_original::x#2 ) - [502] (byte*) render_screen_original::cols#5 ← phi( render_screen_original::@2/(byte*) render_screen_original::cols#1 render_screen_original::@3/(byte*) render_screen_original::cols#2 ) - [502] (byte*) render_screen_original::ocols#2 ← phi( render_screen_original::@2/(byte*) render_screen_original::ocols#4 render_screen_original::@3/(byte*) render_screen_original::ocols#1 ) - [502] (byte*) render_screen_original::screen#6 ← phi( render_screen_original::@2/(byte*) render_screen_original::screen#2 render_screen_original::@3/(byte*) render_screen_original::screen#3 ) - [502] (byte*) render_screen_original::oscr#2 ← phi( render_screen_original::@2/(byte*) render_screen_original::oscr#4 render_screen_original::@3/(byte*) render_screen_original::oscr#1 ) - [503] *((byte*) render_screen_original::screen#6) ← *((byte*) render_screen_original::oscr#2) - [504] (byte*) render_screen_original::screen#3 ← ++ (byte*) render_screen_original::screen#6 - [505] (byte*) render_screen_original::oscr#1 ← ++ (byte*) render_screen_original::oscr#2 - [506] *((byte*) render_screen_original::cols#5) ← *((byte*) render_screen_original::ocols#2) - [507] (byte*) render_screen_original::cols#2 ← ++ (byte*) render_screen_original::cols#5 - [508] (byte*) render_screen_original::ocols#1 ← ++ (byte*) render_screen_original::ocols#2 - [509] (byte) render_screen_original::x#2 ← ++ (byte) render_screen_original::x#5 - [510] if((byte) render_screen_original::x#2!=(byte/signed byte/word/signed word/dword/signed dword) 36) goto render_screen_original::@3 + [531] (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 ) + [531] (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 ) + [531] (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 ) + [531] (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 ) + [531] (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 ) + [532] *((byte*) render_screen_original::screen#6) ← *((byte*) render_screen_original::oscr#2) + [533] (byte*) render_screen_original::screen#3 ← ++ (byte*) render_screen_original::screen#6 + [534] (byte*) render_screen_original::oscr#1 ← ++ (byte*) render_screen_original::oscr#2 + [535] *((byte*) render_screen_original::cols#5) ← *((byte*) render_screen_original::ocols#2) + [536] (byte*) render_screen_original::cols#2 ← ++ (byte*) render_screen_original::cols#5 + [537] (byte*) render_screen_original::ocols#1 ← ++ (byte*) render_screen_original::ocols#2 + [538] (byte) render_screen_original::x#2 ← ++ (byte) render_screen_original::x#5 + [539] 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 - [511] (byte) render_screen_original::x#6 ← phi( render_screen_original::@3/(byte) render_screen_original::x#2 render_screen_original::@4/(byte) render_screen_original::x#3 ) - [511] (byte*) render_screen_original::cols#6 ← phi( render_screen_original::@3/(byte*) render_screen_original::cols#2 render_screen_original::@4/(byte*) render_screen_original::cols#3 ) - [511] (byte*) render_screen_original::screen#7 ← phi( render_screen_original::@3/(byte*) render_screen_original::screen#3 render_screen_original::@4/(byte*) render_screen_original::screen#10 ) - [512] *((byte*) render_screen_original::screen#7) ← (const byte) render_screen_original::SPACE#0 - [513] (byte*) render_screen_original::screen#10 ← ++ (byte*) render_screen_original::screen#7 - [514] *((byte*) render_screen_original::cols#6) ← (const byte) BLACK#0 - [515] (byte*) render_screen_original::cols#3 ← ++ (byte*) render_screen_original::cols#6 - [516] (byte) render_screen_original::x#3 ← ++ (byte) render_screen_original::x#6 - [517] if((byte) render_screen_original::x#3!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto render_screen_original::@4 + [540] (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 ) + [540] (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 ) + [540] (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 ) + [541] *((byte*) render_screen_original::screen#7) ← (const byte) render_screen_original::SPACE#0 + [542] (byte*) render_screen_original::screen#10 ← ++ (byte*) render_screen_original::screen#7 + [543] *((byte*) render_screen_original::cols#6) ← (const byte) BLACK#0 + [544] (byte*) render_screen_original::cols#3 ← ++ (byte*) render_screen_original::cols#6 + [545] (byte) render_screen_original::x#3 ← ++ (byte) render_screen_original::x#6 + [546] 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 - [518] (byte) render_screen_original::y#1 ← ++ (byte) render_screen_original::y#6 - [519] if((byte) render_screen_original::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto render_screen_original::@1 + [547] (byte) render_screen_original::y#1 ← ++ (byte) render_screen_original::y#6 + [548] 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 - [520] return + [549] return to:@return sid_rnd_init: scope:[sid_rnd_init] from main - [521] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 - [522] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 + [550] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 + [551] *((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 - [523] return + [552] return to:@return sprites_irq: scope:[sprites_irq] from asm { cld } - [525] (byte) sprites_irq::ypos#0 ← (byte) irq_sprite_ypos#0 - [526] *((const byte*) SPRITES_YPOS#0) ← (byte) sprites_irq::ypos#0 - [527] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ypos#0 - [528] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte) sprites_irq::ypos#0 - [529] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte) sprites_irq::ypos#0 - [530] (byte/signed word/word/dword/signed dword~) sprites_irq::$0 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 1 - [531] (byte) sprites_irq::raster_sprite_gfx_modify#0 ← (byte/signed word/word/dword/signed dword~) sprites_irq::$0 + [554] (byte) sprites_irq::ypos#0 ← (byte) irq_sprite_ypos#0 + [555] *((const byte*) SPRITES_YPOS#0) ← (byte) sprites_irq::ypos#0 + [556] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ypos#0 + [557] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte) sprites_irq::ypos#0 + [558] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte) sprites_irq::ypos#0 + [559] (byte/signed word/word/dword/signed dword~) sprites_irq::$0 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 1 + [560] (byte) sprites_irq::raster_sprite_gfx_modify#0 ← (byte/signed word/word/dword/signed dword~) sprites_irq::$0 to:sprites_irq::@1 sprites_irq::@1: scope:[sprites_irq] from sprites_irq sprites_irq::@1 - [532] if(*((const byte*) RASTER#0)<(byte) sprites_irq::raster_sprite_gfx_modify#0) goto sprites_irq::@1 + [561] if(*((const byte*) RASTER#0)<(byte) sprites_irq::raster_sprite_gfx_modify#0) goto sprites_irq::@1 to:sprites_irq::@8 sprites_irq::@8: scope:[sprites_irq] from sprites_irq::@1 - [533] (byte) sprites_irq::ptr#0 ← (byte) irq_sprite_ptr#0 - [534] if((byte) render_screen_showing#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sprites_irq::@2 + [562] (byte) sprites_irq::ptr#0 ← (byte) irq_sprite_ptr#0 + [563] if((byte) render_screen_showing#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sprites_irq::@2 to:sprites_irq::@9 sprites_irq::@9: scope:[sprites_irq] from sprites_irq::@8 - [535] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0) ← (byte) sprites_irq::ptr#0 - [536] (byte) sprites_irq::ptr#3 ← ++ (byte) sprites_irq::ptr#0 - [537] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) sprites_irq::ptr#3 - [538] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ptr#3 - [539] (byte) sprites_irq::ptr#4 ← ++ (byte) sprites_irq::ptr#3 - [540] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte) sprites_irq::ptr#4 + [564] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0) ← (byte) sprites_irq::ptr#0 + [565] (byte) sprites_irq::ptr#3 ← ++ (byte) sprites_irq::ptr#0 + [566] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) sprites_irq::ptr#3 + [567] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ptr#3 + [568] (byte) sprites_irq::ptr#4 ← ++ (byte) sprites_irq::ptr#3 + [569] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte) sprites_irq::ptr#4 to:sprites_irq::@3 sprites_irq::@3: scope:[sprites_irq] from sprites_irq::@2 sprites_irq::@9 - [541] (byte) irq_cnt#1 ← ++ (byte) irq_cnt#0 - [542] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 9) goto sprites_irq::@4 + [570] (byte) irq_cnt#1 ← ++ (byte) irq_cnt#0 + [571] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 9) goto sprites_irq::@4 to:sprites_irq::@11 sprites_irq::@11: scope:[sprites_irq] from sprites_irq::@3 - [543] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto sprites_irq::@5 + [572] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto sprites_irq::@5 to:sprites_irq::@12 sprites_irq::@12: scope:[sprites_irq] from sprites_irq::@11 - [544] (byte) irq_raster_next#3 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 20 - [545] (byte) irq_sprite_ypos#3 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 - [546] (byte) irq_sprite_ptr#3 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 + [573] (byte) irq_raster_next#3 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 20 + [574] (byte) irq_sprite_ypos#3 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 + [575] (byte) irq_sprite_ptr#3 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 to:sprites_irq::@7 sprites_irq::@7: scope:[sprites_irq] from sprites_irq::@12 sprites_irq::@15 sprites_irq::@5 - [547] (byte) irq_raster_next#4 ← phi( sprites_irq::@12/(byte) irq_raster_next#3 sprites_irq::@15/(byte) irq_raster_next#1 sprites_irq::@5/(byte) irq_raster_next#2 ) - [548] *((const byte*) RASTER#0) ← (byte) irq_raster_next#4 - [549] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 + [576] (byte) irq_raster_next#4 ← phi( sprites_irq::@12/(byte) irq_raster_next#3 sprites_irq::@15/(byte) irq_raster_next#1 sprites_irq::@5/(byte) irq_raster_next#2 ) + [577] *((const byte*) RASTER#0) ← (byte) irq_raster_next#4 + [578] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 to:sprites_irq::@return sprites_irq::@return: scope:[sprites_irq] from sprites_irq::@7 - [550] return + [579] return to:@return sprites_irq::@5: scope:[sprites_irq] from sprites_irq::@11 - [551] (byte) irq_cnt#2 ← (byte/signed byte/word/signed word/dword/signed dword) 0 - [552] (byte) irq_raster_next#2 ← (const byte) IRQ_RASTER_FIRST#0 - [553] (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 - [554] (byte) irq_sprite_ptr#2 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 + [580] (byte) irq_cnt#2 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + [581] (byte) irq_raster_next#2 ← (const byte) IRQ_RASTER_FIRST#0 + [582] (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 + [583] (byte) irq_sprite_ptr#2 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 to:sprites_irq::@7 sprites_irq::@4: scope:[sprites_irq] from sprites_irq::@3 - [555] (byte) irq_raster_next#1 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 - [556] (byte) irq_sprite_ypos#1 ← (const byte) SPRITES_FIRST_YPOS#0 + [584] (byte) irq_raster_next#1 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 + [585] (byte) irq_sprite_ypos#1 ← (const byte) SPRITES_FIRST_YPOS#0 to:sprites_irq::toSpritePtr2 sprites_irq::toSpritePtr2: scope:[sprites_irq] from sprites_irq::@4 - [557] phi() + [586] phi() to:sprites_irq::@15 sprites_irq::@15: scope:[sprites_irq] from sprites_irq::toSpritePtr2 - [558] (byte) irq_sprite_ptr#1 ← (const byte) sprites_irq::toSpritePtr2_return#0 + [587] (byte) irq_sprite_ptr#1 ← (const byte) sprites_irq::toSpritePtr2_return#0 to:sprites_irq::@7 sprites_irq::@2: scope:[sprites_irq] from sprites_irq::@8 - [559] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0) ← (byte) sprites_irq::ptr#0 - [560] (byte) sprites_irq::ptr#1 ← ++ (byte) sprites_irq::ptr#0 - [561] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) sprites_irq::ptr#1 - [562] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ptr#1 - [563] (byte) sprites_irq::ptr#2 ← ++ (byte) sprites_irq::ptr#1 - [564] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte) sprites_irq::ptr#2 + [588] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0) ← (byte) sprites_irq::ptr#0 + [589] (byte) sprites_irq::ptr#1 ← ++ (byte) sprites_irq::ptr#0 + [590] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) sprites_irq::ptr#1 + [591] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ptr#1 + [592] (byte) sprites_irq::ptr#2 ← ++ (byte) sprites_irq::ptr#1 + [593] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte) sprites_irq::ptr#2 to:sprites_irq::@3 diff --git a/src/test/ref/complex/tetris/tetris.log b/src/test/ref/complex/tetris/tetris.log index 1c6835d2a..d756615b1 100644 --- a/src/test/ref/complex/tetris/tetris.log +++ b/src/test/ref/complex/tetris/tetris.log @@ -1,3 +1,7 @@ +Resolved forward reference next_piece_idx to (byte) next_piece_idx +Resolved forward reference PIECES to (word[]) PIECES +Resolved forward reference PIECES_NEXT_CHARS to (byte[]) PIECES_NEXT_CHARS +Resolved forward reference next_piece_idx to (byte) next_piece_idx Resolved forward reference sprites_irq to interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() Resolved forward reference COLLISION_NONE to (byte) COLLISION_NONE Resolved forward reference COLLISION_NONE to (byte) COLLISION_NONE @@ -12,10 +16,10 @@ Inlined call (byte~) sprites_irq::$5 ← call toSpritePtr (byte*) PLAYFIELD_SPRI CONTROL FLOW GRAPH SSA @begin: scope:[] from - (byte) current_ypos#96 ← phi( ) - (byte) current_xpos#120 ← phi( ) - (byte*) current_piece_gfx#110 ← phi( ) - (byte) current_piece_char#98 ← phi( ) + (byte) current_ypos#104 ← phi( ) + (byte) current_xpos#128 ← phi( ) + (byte*) current_piece_gfx#118 ← phi( ) + (byte) current_piece_char#106 ← phi( ) (byte*) PROCPORT_DDR#0 ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) PROCPORT_DDR_MEMORY_MASK#0 ← (byte/signed byte/word/signed word/dword/signed dword) 7 (byte*) PROCPORT#0 ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) 1 @@ -97,10 +101,10 @@ CONTROL FLOW GRAPH SSA (byte) LIGHT_GREY#0 ← (byte/signed byte/word/signed word/dword/signed dword) 15 to:@5 @5: scope:[] from @begin - (byte) current_ypos#95 ← phi( @begin/(byte) current_ypos#96 ) - (byte) current_xpos#119 ← phi( @begin/(byte) current_xpos#120 ) - (byte*) current_piece_gfx#109 ← phi( @begin/(byte*) current_piece_gfx#110 ) - (byte) current_piece_char#97 ← phi( @begin/(byte) current_piece_char#98 ) + (byte) current_ypos#103 ← phi( @begin/(byte) current_ypos#104 ) + (byte) current_xpos#127 ← phi( @begin/(byte) current_xpos#128 ) + (byte*) current_piece_gfx#117 ← phi( @begin/(byte*) current_piece_gfx#118 ) + (byte) current_piece_char#105 ← phi( @begin/(byte) current_piece_char#106 ) (byte) KEY_DEL#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) KEY_RETURN#0 ← (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) KEY_CRSR_RIGHT#0 ← (byte/signed byte/word/signed word/dword/signed dword) 2 @@ -182,10 +186,10 @@ keyboard_matrix_read::@return: scope:[keyboard_matrix_read] from keyboard_matri return to:@return @9: scope:[] from @5 - (byte) current_ypos#94 ← phi( @5/(byte) current_ypos#95 ) - (byte) current_xpos#118 ← phi( @5/(byte) current_xpos#119 ) - (byte*) current_piece_gfx#108 ← phi( @5/(byte*) current_piece_gfx#109 ) - (byte) current_piece_char#96 ← phi( @5/(byte) current_piece_char#97 ) + (byte) current_ypos#102 ← phi( @5/(byte) current_ypos#103 ) + (byte) current_xpos#126 ← phi( @5/(byte) current_xpos#127 ) + (byte*) current_piece_gfx#116 ← phi( @5/(byte*) current_piece_gfx#117 ) + (byte) current_piece_char#104 ← phi( @5/(byte) current_piece_char#105 ) (byte[8]) keyboard_events#0 ← { fill( 8, 0) } (byte) keyboard_events_size#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) keyboard_modifiers#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -197,8 +201,8 @@ keyboard_matrix_read::@return: scope:[keyboard_matrix_read] from keyboard_matri (byte) KEY_MODIFIER_SHIFT#0 ← (byte~) $0 (byte[8]) keyboard_scan_values#0 ← { fill( 8, 0) } to:@12 -keyboard_event_scan: scope:[keyboard_event_scan] from main::@33 - (byte) keyboard_events_size#55 ← phi( main::@33/(byte) keyboard_events_size#26 ) +keyboard_event_scan: scope:[keyboard_event_scan] from main::@35 + (byte) keyboard_events_size#55 ← phi( main::@35/(byte) keyboard_events_size#26 ) (byte) keyboard_event_scan::keycode#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) keyboard_event_scan::row#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:keyboard_event_scan::@1 @@ -320,14 +324,14 @@ keyboard_event_scan::@19: scope:[keyboard_event_scan] from keyboard_event_scan: *((byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#6) ← (byte) keyboard_event_scan::row_scan#3 to:keyboard_event_scan::@3 keyboard_event_scan::@20: scope:[keyboard_event_scan] from keyboard_event_scan::@3 - (byte) keyboard_events_size#77 ← phi( keyboard_event_scan::@3/(byte) keyboard_events_size#56 ) + (byte) keyboard_events_size#78 ← phi( keyboard_event_scan::@3/(byte) keyboard_events_size#56 ) (byte) keyboard_modifiers#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) keyboard_event_pressed::keycode#0 ← (byte) KEY_LSHIFT#0 call keyboard_event_pressed (byte) keyboard_event_pressed::return#0 ← (byte) keyboard_event_pressed::return#5 to:keyboard_event_scan::@26 keyboard_event_scan::@26: scope:[keyboard_event_scan] from keyboard_event_scan::@20 - (byte) keyboard_events_size#74 ← phi( keyboard_event_scan::@20/(byte) keyboard_events_size#77 ) + (byte) keyboard_events_size#75 ← phi( keyboard_event_scan::@20/(byte) keyboard_events_size#78 ) (byte) keyboard_modifiers#18 ← phi( keyboard_event_scan::@20/(byte) keyboard_modifiers#1 ) (byte) keyboard_event_pressed::return#7 ← phi( keyboard_event_scan::@20/(byte) keyboard_event_pressed::return#0 ) (byte~) keyboard_event_scan::$14 ← (byte) keyboard_event_pressed::return#7 @@ -336,7 +340,7 @@ keyboard_event_scan::@26: scope:[keyboard_event_scan] from keyboard_event_scan: if((bool~) keyboard_event_scan::$16) goto keyboard_event_scan::@9 to:keyboard_event_scan::@21 keyboard_event_scan::@9: scope:[keyboard_event_scan] from keyboard_event_scan::@21 keyboard_event_scan::@26 - (byte) keyboard_events_size#70 ← phi( keyboard_event_scan::@21/(byte) keyboard_events_size#73 keyboard_event_scan::@26/(byte) keyboard_events_size#74 ) + (byte) keyboard_events_size#70 ← phi( keyboard_event_scan::@21/(byte) keyboard_events_size#74 keyboard_event_scan::@26/(byte) keyboard_events_size#75 ) (byte) keyboard_modifiers#26 ← phi( keyboard_event_scan::@21/(byte) keyboard_modifiers#2 keyboard_event_scan::@26/(byte) keyboard_modifiers#18 ) (byte) keyboard_event_pressed::keycode#1 ← (byte) KEY_RSHIFT#0 call keyboard_event_pressed @@ -352,7 +356,7 @@ keyboard_event_scan::@27: scope:[keyboard_event_scan] from keyboard_event_scan: if((bool~) keyboard_event_scan::$20) goto keyboard_event_scan::@10 to:keyboard_event_scan::@22 keyboard_event_scan::@21: scope:[keyboard_event_scan] from keyboard_event_scan::@26 - (byte) keyboard_events_size#73 ← phi( keyboard_event_scan::@26/(byte) keyboard_events_size#74 ) + (byte) keyboard_events_size#74 ← phi( keyboard_event_scan::@26/(byte) keyboard_events_size#75 ) (byte) keyboard_modifiers#10 ← phi( keyboard_event_scan::@26/(byte) keyboard_modifiers#18 ) (byte~) keyboard_event_scan::$17 ← (byte) keyboard_modifiers#10 | (byte) KEY_MODIFIER_LSHIFT#0 (byte) keyboard_modifiers#2 ← (byte~) keyboard_event_scan::$17 @@ -431,8 +435,8 @@ keyboard_event_pressed::@return: scope:[keyboard_event_pressed] from keyboard_e (byte) keyboard_event_pressed::return#5 ← (byte) keyboard_event_pressed::return#11 return to:@return -keyboard_event_get: scope:[keyboard_event_get] from main::@34 - (byte) keyboard_events_size#14 ← phi( main::@34/(byte) keyboard_events_size#6 ) +keyboard_event_get: scope:[keyboard_event_get] from main::@36 + (byte) keyboard_events_size#14 ← phi( main::@36/(byte) keyboard_events_size#6 ) (bool~) keyboard_event_get::$0 ← (byte) keyboard_events_size#14 == (byte/signed byte/word/signed word/dword/signed dword) 0 if((bool~) keyboard_event_get::$0) goto keyboard_event_get::@1 to:keyboard_event_get::@3 @@ -453,12 +457,12 @@ keyboard_event_get::@return: scope:[keyboard_event_get] from keyboard_event_get return to:@return @12: scope:[] from @9 - (byte) keyboard_modifiers#61 ← phi( @9/(byte) keyboard_modifiers#0 ) - (byte) keyboard_events_size#80 ← phi( @9/(byte) keyboard_events_size#0 ) - (byte) current_ypos#93 ← phi( @9/(byte) current_ypos#94 ) - (byte) current_xpos#117 ← phi( @9/(byte) current_xpos#118 ) - (byte*) current_piece_gfx#107 ← phi( @9/(byte*) current_piece_gfx#108 ) - (byte) current_piece_char#95 ← phi( @9/(byte) current_piece_char#96 ) + (byte) keyboard_modifiers#62 ← phi( @9/(byte) keyboard_modifiers#0 ) + (byte) keyboard_events_size#81 ← phi( @9/(byte) keyboard_events_size#0 ) + (byte) current_ypos#101 ← phi( @9/(byte) current_ypos#102 ) + (byte) current_xpos#125 ← phi( @9/(byte) current_xpos#126 ) + (byte*) current_piece_gfx#115 ← phi( @9/(byte*) current_piece_gfx#116 ) + (byte) current_piece_char#103 ← phi( @9/(byte) current_piece_char#104 ) (word*) SID_VOICE3_FREQ#0 ← ((word*)) (word/dword/signed dword) 54286 (byte*) SID_VOICE3_FREQ_LOW#0 ← ((byte*)) (word/dword/signed dword) 54286 (byte*) SID_VOICE3_FREQ_HIGH#0 ← ((byte*)) (word/dword/signed dword) 54287 @@ -480,7 +484,7 @@ sid_rnd_init: scope:[sid_rnd_init] from main sid_rnd_init::@return: scope:[sid_rnd_init] from sid_rnd_init return to:@return -sid_rnd: scope:[sid_rnd] from play_spawn_current::@2 +sid_rnd: scope:[sid_rnd] from play_spawn_current::@3 (byte) sid_rnd::return#0 ← *((byte*) SID_VOICE3_OSC#0) to:sid_rnd::@return sid_rnd::@return: scope:[sid_rnd] from sid_rnd @@ -489,12 +493,12 @@ sid_rnd::@return: scope:[sid_rnd] from sid_rnd return to:@return @14: scope:[] from @12 - (byte) keyboard_modifiers#59 ← phi( @12/(byte) keyboard_modifiers#61 ) - (byte) keyboard_events_size#78 ← phi( @12/(byte) keyboard_events_size#80 ) - (byte) current_ypos#92 ← phi( @12/(byte) current_ypos#93 ) - (byte) current_xpos#116 ← phi( @12/(byte) current_xpos#117 ) - (byte*) current_piece_gfx#106 ← phi( @12/(byte*) current_piece_gfx#107 ) - (byte) current_piece_char#94 ← phi( @12/(byte) current_piece_char#95 ) + (byte) keyboard_modifiers#60 ← phi( @12/(byte) keyboard_modifiers#62 ) + (byte) keyboard_events_size#79 ← phi( @12/(byte) keyboard_events_size#81 ) + (byte) current_ypos#100 ← phi( @12/(byte) current_ypos#101 ) + (byte) current_xpos#124 ← phi( @12/(byte) current_xpos#125 ) + (byte*) current_piece_gfx#114 ← phi( @12/(byte*) current_piece_gfx#115 ) + (byte) current_piece_char#102 ← phi( @12/(byte) current_piece_char#103 ) (byte*) PLAYFIELD_SCREEN_1#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024 (byte*) PLAYFIELD_SCREEN_2#0 ← ((byte*)) (word/signed word/dword/signed dword) 11264 (byte*~) $1 ← (byte*) PLAYFIELD_SCREEN_1#0 + (word) SPRITE_PTRS#0 @@ -534,7 +538,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:@22 + to:@23 render_init: scope:[render_init] from main::@25 (byte*) render_init::vicSelectGfxBank1_gfx#0 ← (byte*) PLAYFIELD_CHARSET#0 to:render_init::vicSelectGfxBank1 @@ -693,9 +697,9 @@ render_show::@return: scope:[render_show] from render_show::@2 (byte) render_screen_showing#2 ← (byte) render_screen_showing#6 return to:@return -render_screen_swap: scope:[render_screen_swap] from main::@39 - (byte) render_screen_show#12 ← phi( main::@39/(byte) render_screen_show#21 ) - (byte) render_screen_render#10 ← phi( main::@39/(byte) render_screen_render#19 ) +render_screen_swap: scope:[render_screen_swap] from main::@42 + (byte) render_screen_show#12 ← phi( main::@42/(byte) render_screen_show#21 ) + (byte) render_screen_render#10 ← phi( main::@42/(byte) render_screen_render#20 ) (byte) render_screen_render#3 ← (byte) render_screen_render#10 ^ (byte/signed byte/word/signed word/dword/signed dword) 64 (byte) render_screen_show#3 ← (byte) render_screen_show#12 ^ (byte/signed byte/word/signed word/dword/signed dword) 64 to:render_screen_swap::@return @@ -706,11 +710,11 @@ render_screen_swap::@return: scope:[render_screen_swap] from render_screen_swap (byte) render_screen_show#4 ← (byte) render_screen_show#13 return to:@return -render_score: scope:[render_score] from main::@38 - (byte) level_bcd#95 ← phi( main::@38/(byte) level_bcd#78 ) - (word) lines_bcd#69 ← phi( main::@38/(word) lines_bcd#68 ) - (dword) score_bcd#35 ← phi( main::@38/(dword) score_bcd#47 ) - (byte) render_screen_render#12 ← phi( main::@38/(byte) render_screen_render#20 ) +render_score: scope:[render_score] from main::@41 + (byte) level_bcd#95 ← phi( main::@41/(byte) level_bcd#78 ) + (word) lines_bcd#69 ← phi( main::@41/(word) lines_bcd#68 ) + (dword) score_bcd#35 ← phi( main::@41/(dword) score_bcd#47 ) + (byte) render_screen_render#12 ← phi( main::@41/(byte) render_screen_render#21 ) (bool~) render_score::$0 ← (byte) render_screen_render#12 == (byte/signed byte/word/signed word/dword/signed dword) 0 if((bool~) render_score::$0) goto render_score::@1 to:render_score::@3 @@ -929,8 +933,8 @@ render_screen_original::@7: scope:[render_screen_original] from render_screen_o render_screen_original::@return: scope:[render_screen_original] from render_screen_original::@7 return to:@return -render_playfield: scope:[render_playfield] from main::@23 main::@30 - (byte) render_screen_render#21 ← phi( main::@23/(byte) render_screen_render#27 main::@30/(byte) render_screen_render#28 ) +render_playfield: scope:[render_playfield] from main::@23 main::@31 + (byte) render_screen_render#22 ← phi( main::@23/(byte) render_screen_render#30 main::@31/(byte) render_screen_render#31 ) (byte/signed word/word/dword/signed dword~) render_playfield::$0 ← (byte) PLAYFIELD_COLS#0 * (byte/signed byte/word/signed word/dword/signed dword) 2 (byte) render_playfield::i#0 ← (byte/signed word/word/dword/signed dword~) render_playfield::$0 (byte/signed word/word/dword/signed dword~) render_playfield::$1 ← (byte) PLAYFIELD_LINES#0 - (byte/signed byte/word/signed word/dword/signed dword) 1 @@ -938,7 +942,7 @@ render_playfield: scope:[render_playfield] from main::@23 main::@30 to:render_playfield::@1 render_playfield::@1: scope:[render_playfield] from render_playfield render_playfield::@3 (byte) render_playfield::i#3 ← phi( render_playfield/(byte) render_playfield::i#0 render_playfield::@3/(byte) render_playfield::i#4 ) - (byte) render_screen_render#13 ← phi( render_playfield/(byte) render_screen_render#21 render_playfield::@3/(byte) render_screen_render#22 ) + (byte) render_screen_render#13 ← phi( render_playfield/(byte) render_screen_render#22 render_playfield::@3/(byte) render_screen_render#23 ) (byte) render_playfield::l#2 ← phi( render_playfield/(byte) render_playfield::l#0 render_playfield::@3/(byte) render_playfield::l#1 ) (byte~) render_playfield::$2 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 (byte~) render_playfield::$3 ← (byte) render_screen_render#13 + (byte~) render_playfield::$2 @@ -947,7 +951,7 @@ render_playfield::@1: scope:[render_playfield] from render_playfield render_pla (byte) render_playfield::c#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:render_playfield::@2 render_playfield::@2: scope:[render_playfield] from render_playfield::@1 render_playfield::@2 - (byte) render_screen_render#29 ← phi( render_playfield::@1/(byte) render_screen_render#13 render_playfield::@2/(byte) render_screen_render#29 ) + (byte) render_screen_render#32 ← phi( render_playfield::@1/(byte) render_screen_render#13 render_playfield::@2/(byte) render_screen_render#32 ) (byte) render_playfield::l#4 ← phi( render_playfield::@1/(byte) render_playfield::l#2 render_playfield::@2/(byte) render_playfield::l#4 ) (byte) render_playfield::c#2 ← phi( render_playfield::@1/(byte) render_playfield::c#0 render_playfield::@2/(byte) render_playfield::c#1 ) (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 ) @@ -961,7 +965,7 @@ render_playfield::@2: scope:[render_playfield] from render_playfield::@1 render to:render_playfield::@3 render_playfield::@3: scope:[render_playfield] from render_playfield::@2 (byte) render_playfield::i#4 ← phi( render_playfield::@2/(byte) render_playfield::i#1 ) - (byte) render_screen_render#22 ← phi( render_playfield::@2/(byte) render_screen_render#29 ) + (byte) render_screen_render#23 ← phi( render_playfield::@2/(byte) render_screen_render#32 ) (byte) render_playfield::l#3 ← phi( render_playfield::@2/(byte) render_playfield::l#4 ) (byte) render_playfield::l#1 ← (byte) render_playfield::l#3 + rangenext(2,render_playfield::$1) (bool~) render_playfield::$6 ← (byte) render_playfield::l#1 != rangelast(2,render_playfield::$1) @@ -970,57 +974,57 @@ render_playfield::@3: scope:[render_playfield] from render_playfield::@2 render_playfield::@return: scope:[render_playfield] from render_playfield::@3 return to:@return -render_moving: scope:[render_moving] from main::@31 main::@37 - (byte) current_piece_char#64 ← phi( main::@31/(byte) current_piece_char#60 main::@37/(byte) current_piece_char#76 ) - (byte*) current_piece_gfx#62 ← phi( main::@31/(byte*) current_piece_gfx#73 main::@37/(byte*) current_piece_gfx#77 ) - (byte) current_xpos#57 ← phi( main::@31/(byte) current_xpos#77 main::@37/(byte) current_xpos#78 ) - (byte) render_screen_render#30 ← phi( main::@31/(byte) render_screen_render#37 main::@37/(byte) render_screen_render#35 ) - (byte) current_ypos#11 ← phi( main::@31/(byte) current_ypos#27 main::@37/(byte) current_ypos#28 ) +render_moving: scope:[render_moving] from main::@32 main::@39 + (byte) current_piece_char#67 ← phi( main::@32/(byte) current_piece_char#79 main::@39/(byte) current_piece_char#83 ) + (byte*) current_piece_gfx#63 ← phi( main::@32/(byte*) current_piece_gfx#80 main::@39/(byte*) current_piece_gfx#81 ) + (byte) current_xpos#58 ← phi( main::@32/(byte) current_xpos#78 main::@39/(byte) current_xpos#79 ) + (byte) render_screen_render#33 ← phi( main::@32/(byte) render_screen_render#36 main::@39/(byte) render_screen_render#39 ) + (byte) current_ypos#12 ← phi( main::@32/(byte) current_ypos#29 main::@39/(byte) current_ypos#30 ) (byte) render_moving::i#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 - (byte~) render_moving::$0 ← (byte) current_ypos#11 << (byte/signed byte/word/signed word/dword/signed dword) 1 + (byte~) render_moving::$0 ← (byte) current_ypos#12 << (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) render_moving::ypos2#0 ← (byte~) render_moving::$0 (byte) render_moving::l#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:render_moving::@1 render_moving::@1: scope:[render_moving] from render_moving render_moving::@3 - (byte) current_piece_char#50 ← phi( render_moving/(byte) current_piece_char#64 render_moving::@3/(byte) current_piece_char#65 ) + (byte) current_piece_char#51 ← phi( render_moving/(byte) current_piece_char#67 render_moving::@3/(byte) current_piece_char#68 ) (byte) render_moving::l#5 ← phi( render_moving/(byte) render_moving::l#0 render_moving::@3/(byte) render_moving::l#1 ) - (byte*) current_piece_gfx#44 ← phi( render_moving/(byte*) current_piece_gfx#62 render_moving::@3/(byte*) current_piece_gfx#63 ) + (byte*) current_piece_gfx#45 ← phi( render_moving/(byte*) current_piece_gfx#63 render_moving::@3/(byte*) current_piece_gfx#64 ) (byte) render_moving::i#5 ← phi( render_moving/(byte) render_moving::i#0 render_moving::@3/(byte) render_moving::i#8 ) - (byte) current_xpos#33 ← phi( render_moving/(byte) current_xpos#57 render_moving::@3/(byte) current_xpos#58 ) - (byte) render_screen_render#23 ← phi( render_moving/(byte) render_screen_render#30 render_moving::@3/(byte) render_screen_render#31 ) + (byte) current_xpos#35 ← phi( render_moving/(byte) current_xpos#58 render_moving::@3/(byte) current_xpos#59 ) + (byte) render_screen_render#24 ← phi( render_moving/(byte) render_screen_render#33 render_moving::@3/(byte) render_screen_render#34 ) (byte) render_moving::ypos2#2 ← phi( render_moving/(byte) render_moving::ypos2#0 render_moving::@3/(byte) render_moving::ypos2#1 ) (bool~) render_moving::$1 ← (byte) render_moving::ypos2#2 > (byte/signed byte/word/signed word/dword/signed dword) 2 if((bool~) render_moving::$1) goto render_moving::@2 to:render_moving::@6 render_moving::@2: scope:[render_moving] from render_moving::@1 (byte) render_moving::l#8 ← phi( render_moving::@1/(byte) render_moving::l#5 ) - (byte) current_piece_char#35 ← phi( render_moving::@1/(byte) current_piece_char#50 ) + (byte) current_piece_char#36 ← phi( render_moving::@1/(byte) current_piece_char#51 ) (byte) render_moving::i#6 ← phi( render_moving::@1/(byte) render_moving::i#5 ) - (byte*) current_piece_gfx#26 ← phi( render_moving::@1/(byte*) current_piece_gfx#44 ) - (byte) current_xpos#14 ← phi( render_moving::@1/(byte) current_xpos#33 ) + (byte*) current_piece_gfx#28 ← phi( render_moving::@1/(byte*) current_piece_gfx#45 ) + (byte) current_xpos#15 ← phi( render_moving::@1/(byte) current_xpos#35 ) (byte) render_moving::ypos2#3 ← phi( render_moving::@1/(byte) render_moving::ypos2#2 ) - (byte) render_screen_render#14 ← phi( render_moving::@1/(byte) render_screen_render#23 ) + (byte) render_screen_render#14 ← phi( render_moving::@1/(byte) render_screen_render#24 ) (byte~) render_moving::$2 ← (byte) render_screen_render#14 + (byte) render_moving::ypos2#3 (byte*) render_moving::screen_line#0 ← *((byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_moving::$2) - (byte) render_moving::xpos#0 ← (byte) current_xpos#14 + (byte) render_moving::xpos#0 ← (byte) current_xpos#15 (byte) render_moving::c#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:render_moving::@4 render_moving::@6: scope:[render_moving] from render_moving::@1 - (byte) current_piece_char#77 ← phi( render_moving::@1/(byte) current_piece_char#50 ) - (byte*) current_piece_gfx#78 ← phi( render_moving::@1/(byte*) current_piece_gfx#44 ) - (byte) current_xpos#80 ← phi( render_moving::@1/(byte) current_xpos#33 ) - (byte) render_screen_render#39 ← phi( render_moving::@1/(byte) render_screen_render#23 ) + (byte) current_piece_char#84 ← phi( render_moving::@1/(byte) current_piece_char#51 ) + (byte*) current_piece_gfx#82 ← phi( render_moving::@1/(byte*) current_piece_gfx#45 ) + (byte) current_xpos#81 ← phi( render_moving::@1/(byte) current_xpos#35 ) + (byte) render_screen_render#42 ← phi( render_moving::@1/(byte) render_screen_render#24 ) (byte) render_moving::l#4 ← phi( render_moving::@1/(byte) render_moving::l#5 ) (byte) render_moving::ypos2#6 ← phi( render_moving::@1/(byte) render_moving::ypos2#2 ) (byte) render_moving::i#3 ← phi( render_moving::@1/(byte) render_moving::i#5 ) (byte) render_moving::i#1 ← (byte) render_moving::i#3 + (byte/signed byte/word/signed word/dword/signed dword) 4 to:render_moving::@3 render_moving::@3: scope:[render_moving] from render_moving::@5 render_moving::@6 - (byte) current_piece_char#65 ← phi( render_moving::@5/(byte) current_piece_char#36 render_moving::@6/(byte) current_piece_char#77 ) - (byte*) current_piece_gfx#63 ← phi( render_moving::@5/(byte*) current_piece_gfx#27 render_moving::@6/(byte*) current_piece_gfx#78 ) + (byte) current_piece_char#68 ← phi( render_moving::@5/(byte) current_piece_char#37 render_moving::@6/(byte) current_piece_char#84 ) + (byte*) current_piece_gfx#64 ← phi( render_moving::@5/(byte*) current_piece_gfx#29 render_moving::@6/(byte*) current_piece_gfx#82 ) (byte) render_moving::i#8 ← phi( render_moving::@5/(byte) render_moving::i#7 render_moving::@6/(byte) render_moving::i#1 ) - (byte) current_xpos#58 ← phi( render_moving::@5/(byte) current_xpos#79 render_moving::@6/(byte) current_xpos#80 ) - (byte) render_screen_render#31 ← phi( render_moving::@5/(byte) render_screen_render#38 render_moving::@6/(byte) render_screen_render#39 ) + (byte) current_xpos#59 ← phi( render_moving::@5/(byte) current_xpos#80 render_moving::@6/(byte) current_xpos#81 ) + (byte) render_screen_render#34 ← phi( render_moving::@5/(byte) render_screen_render#41 render_moving::@6/(byte) render_screen_render#42 ) (byte) render_moving::l#2 ← phi( render_moving::@5/(byte) render_moving::l#3 render_moving::@6/(byte) render_moving::l#4 ) (byte) render_moving::ypos2#4 ← phi( render_moving::@5/(byte) render_moving::ypos2#5 render_moving::@6/(byte) render_moving::ypos2#6 ) (byte) render_moving::ypos2#1 ← (byte) render_moving::ypos2#4 + (byte/signed byte/word/signed word/dword/signed dword) 2 @@ -1029,29 +1033,29 @@ render_moving::@3: scope:[render_moving] from render_moving::@5 render_moving:: if((bool~) render_moving::$6) goto render_moving::@1 to:render_moving::@return render_moving::@4: scope:[render_moving] from render_moving::@2 render_moving::@5 - (byte) current_xpos#93 ← phi( render_moving::@2/(byte) current_xpos#14 render_moving::@5/(byte) current_xpos#79 ) - (byte) render_screen_render#43 ← phi( render_moving::@2/(byte) render_screen_render#14 render_moving::@5/(byte) render_screen_render#38 ) + (byte) current_xpos#97 ← phi( render_moving::@2/(byte) current_xpos#15 render_moving::@5/(byte) current_xpos#80 ) + (byte) render_screen_render#46 ← phi( render_moving::@2/(byte) render_screen_render#14 render_moving::@5/(byte) render_screen_render#41 ) (byte) render_moving::l#6 ← phi( render_moving::@2/(byte) render_moving::l#8 render_moving::@5/(byte) render_moving::l#3 ) (byte) render_moving::ypos2#7 ← phi( render_moving::@2/(byte) render_moving::ypos2#3 render_moving::@5/(byte) render_moving::ypos2#5 ) (byte*) render_moving::screen_line#2 ← phi( render_moving::@2/(byte*) render_moving::screen_line#0 render_moving::@5/(byte*) render_moving::screen_line#3 ) - (byte) current_piece_char#21 ← phi( render_moving::@2/(byte) current_piece_char#35 render_moving::@5/(byte) current_piece_char#36 ) + (byte) current_piece_char#23 ← phi( render_moving::@2/(byte) current_piece_char#36 render_moving::@5/(byte) current_piece_char#37 ) (byte) render_moving::c#3 ← phi( render_moving::@2/(byte) render_moving::c#0 render_moving::@5/(byte) render_moving::c#1 ) (byte) render_moving::xpos#4 ← phi( render_moving::@2/(byte) render_moving::xpos#0 render_moving::@5/(byte) render_moving::xpos#1 ) (byte) render_moving::i#4 ← phi( render_moving::@2/(byte) render_moving::i#6 render_moving::@5/(byte) render_moving::i#7 ) - (byte*) current_piece_gfx#13 ← phi( render_moving::@2/(byte*) current_piece_gfx#26 render_moving::@5/(byte*) current_piece_gfx#27 ) - (byte) render_moving::current_cell#0 ← *((byte*) current_piece_gfx#13 + (byte) render_moving::i#4) + (byte*) current_piece_gfx#14 ← phi( render_moving::@2/(byte*) current_piece_gfx#28 render_moving::@5/(byte*) current_piece_gfx#29 ) + (byte) render_moving::current_cell#0 ← *((byte*) current_piece_gfx#14 + (byte) render_moving::i#4) (byte) render_moving::i#2 ← ++ (byte) render_moving::i#4 (bool~) render_moving::$3 ← (byte) render_moving::current_cell#0 != (byte/signed byte/word/signed word/dword/signed dword) 0 (bool~) render_moving::$4 ← ! (bool~) render_moving::$3 if((bool~) render_moving::$4) goto render_moving::@5 to:render_moving::@8 render_moving::@5: scope:[render_moving] from render_moving::@4 render_moving::@8 - (byte) current_xpos#79 ← phi( render_moving::@4/(byte) current_xpos#93 render_moving::@8/(byte) current_xpos#94 ) - (byte) render_screen_render#38 ← phi( render_moving::@4/(byte) render_screen_render#43 render_moving::@8/(byte) render_screen_render#44 ) + (byte) current_xpos#80 ← phi( render_moving::@4/(byte) current_xpos#97 render_moving::@8/(byte) current_xpos#98 ) + (byte) render_screen_render#41 ← phi( render_moving::@4/(byte) render_screen_render#46 render_moving::@8/(byte) render_screen_render#47 ) (byte*) render_moving::screen_line#3 ← phi( render_moving::@4/(byte*) render_moving::screen_line#2 render_moving::@8/(byte*) render_moving::screen_line#1 ) - (byte) current_piece_char#36 ← phi( render_moving::@4/(byte) current_piece_char#21 render_moving::@8/(byte) current_piece_char#10 ) + (byte) current_piece_char#37 ← phi( render_moving::@4/(byte) current_piece_char#23 render_moving::@8/(byte) current_piece_char#11 ) (byte) render_moving::i#7 ← phi( render_moving::@4/(byte) render_moving::i#2 render_moving::@8/(byte) render_moving::i#9 ) - (byte*) current_piece_gfx#27 ← phi( render_moving::@4/(byte*) current_piece_gfx#13 render_moving::@8/(byte*) current_piece_gfx#45 ) + (byte*) current_piece_gfx#29 ← phi( render_moving::@4/(byte*) current_piece_gfx#14 render_moving::@8/(byte*) current_piece_gfx#46 ) (byte) render_moving::l#3 ← phi( render_moving::@4/(byte) render_moving::l#6 render_moving::@8/(byte) render_moving::l#7 ) (byte) render_moving::ypos2#5 ← phi( render_moving::@4/(byte) render_moving::ypos2#7 render_moving::@8/(byte) render_moving::ypos2#8 ) (byte) render_moving::c#2 ← phi( render_moving::@4/(byte) render_moving::c#3 render_moving::@8/(byte) render_moving::c#4 ) @@ -1062,36 +1066,124 @@ render_moving::@5: scope:[render_moving] from render_moving::@4 render_moving:: if((bool~) render_moving::$5) goto render_moving::@4 to:render_moving::@3 render_moving::@8: scope:[render_moving] from render_moving::@4 - (byte) current_xpos#94 ← phi( render_moving::@4/(byte) current_xpos#93 ) - (byte) render_screen_render#44 ← phi( render_moving::@4/(byte) render_screen_render#43 ) + (byte) current_xpos#98 ← phi( render_moving::@4/(byte) current_xpos#97 ) + (byte) render_screen_render#47 ← phi( render_moving::@4/(byte) render_screen_render#46 ) (byte) render_moving::i#9 ← phi( render_moving::@4/(byte) render_moving::i#2 ) - (byte*) current_piece_gfx#45 ← phi( render_moving::@4/(byte*) current_piece_gfx#13 ) + (byte*) current_piece_gfx#46 ← phi( render_moving::@4/(byte*) current_piece_gfx#14 ) (byte) render_moving::l#7 ← phi( render_moving::@4/(byte) render_moving::l#6 ) (byte) render_moving::ypos2#8 ← phi( render_moving::@4/(byte) render_moving::ypos2#7 ) (byte) render_moving::c#4 ← phi( render_moving::@4/(byte) render_moving::c#3 ) (byte) render_moving::xpos#3 ← phi( render_moving::@4/(byte) render_moving::xpos#4 ) (byte*) render_moving::screen_line#1 ← phi( render_moving::@4/(byte*) render_moving::screen_line#2 ) - (byte) current_piece_char#10 ← phi( render_moving::@4/(byte) current_piece_char#21 ) - *((byte*) render_moving::screen_line#1 + (byte) render_moving::xpos#3) ← (byte) current_piece_char#10 + (byte) current_piece_char#11 ← phi( render_moving::@4/(byte) current_piece_char#23 ) + *((byte*) render_moving::screen_line#1 + (byte) render_moving::xpos#3) ← (byte) current_piece_char#11 to:render_moving::@5 render_moving::@return: scope:[render_moving] from render_moving::@3 return to:@return -@22: scope:[] from @14 - (byte) level_bcd#100 ← phi( @14/(byte) level_bcd#0 ) - (byte) level#96 ← phi( @14/(byte) level#0 ) - (dword) score_bcd#83 ← phi( @14/(dword) score_bcd#0 ) - (word) lines_bcd#87 ← phi( @14/(word) lines_bcd#0 ) - (byte) keyboard_modifiers#57 ← phi( @14/(byte) keyboard_modifiers#59 ) - (byte) keyboard_events_size#75 ← phi( @14/(byte) keyboard_events_size#78 ) - (byte) render_screen_showing#44 ← phi( @14/(byte) render_screen_showing#0 ) - (byte) game_over#84 ← phi( @14/(byte) game_over#0 ) - (byte) current_ypos#91 ← phi( @14/(byte) current_ypos#92 ) - (byte) current_xpos#115 ← phi( @14/(byte) current_xpos#116 ) - (byte*) current_piece_gfx#105 ← phi( @14/(byte*) current_piece_gfx#106 ) - (byte) current_piece_char#93 ← phi( @14/(byte) current_piece_char#94 ) - (byte) render_screen_render#58 ← phi( @14/(byte) render_screen_render#0 ) - (byte) render_screen_show#59 ← phi( @14/(byte) render_screen_show#0 ) +render_next: scope:[render_next] from main::@33 main::@40 + (byte) next_piece_idx#36 ← phi( main::@33/(byte) next_piece_idx#47 main::@40/(byte) next_piece_idx#48 ) + (byte) render_screen_render#15 ← phi( main::@33/(byte) render_screen_render#25 main::@40/(byte) render_screen_render#26 ) + (word/signed word/dword/signed dword~) render_next::$0 ← (byte/signed byte/word/signed word/dword/signed dword) 40 * (byte/signed byte/word/signed word/dword/signed dword) 12 + (word/signed dword/dword/signed word~) render_next::$1 ← (word/signed word/dword/signed dword~) render_next::$0 + (byte/signed byte/word/signed word/dword/signed dword) 24 + (word/signed dword/dword/signed word~) render_next::$2 ← (word/signed dword/dword/signed word~) render_next::$1 + (byte/signed byte/word/signed word/dword/signed dword) 4 + (word) render_next::next_area_offset#0 ← (word/signed dword/dword/signed word~) render_next::$2 + (bool~) render_next::$3 ← (byte) render_screen_render#15 == (byte/signed byte/word/signed word/dword/signed dword) 0 + if((bool~) render_next::$3) goto render_next::@1 + to:render_next::@7 +render_next::@1: scope:[render_next] from render_next + (byte) next_piece_idx#24 ← phi( render_next/(byte) next_piece_idx#36 ) + (word) render_next::next_area_offset#1 ← phi( render_next/(word) render_next::next_area_offset#0 ) + (byte*~) render_next::$5 ← (byte*) PLAYFIELD_SCREEN_1#0 + (word) render_next::next_area_offset#1 + (byte*) render_next::screen_next_area#0 ← (byte*~) render_next::$5 + to:render_next::@2 +render_next::@7: scope:[render_next] from render_next + (byte) next_piece_idx#25 ← phi( render_next/(byte) next_piece_idx#36 ) + (word) render_next::next_area_offset#2 ← phi( render_next/(word) render_next::next_area_offset#0 ) + (byte*~) render_next::$4 ← (byte*) PLAYFIELD_SCREEN_2#0 + (word) render_next::next_area_offset#2 + (byte*) render_next::screen_next_area#1 ← (byte*~) render_next::$4 + to:render_next::@2 +render_next::@2: scope:[render_next] from render_next::@1 render_next::@7 + (byte*) render_next::screen_next_area#10 ← phi( render_next::@1/(byte*) render_next::screen_next_area#0 render_next::@7/(byte*) render_next::screen_next_area#1 ) + (byte) next_piece_idx#12 ← phi( render_next::@1/(byte) next_piece_idx#24 render_next::@7/(byte) next_piece_idx#25 ) + (byte~) render_next::$6 ← (byte) next_piece_idx#12 << (byte/signed byte/word/signed word/dword/signed dword) 1 + (byte*) render_next::next_piece_gfx#0 ← ((byte*)) *((word[]) PIECES#0 + (byte~) render_next::$6) + (byte) render_next::next_piece_char#0 ← *((byte[]) PIECES_NEXT_CHARS#0 + (byte) next_piece_idx#12) + (byte) render_next::l#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + to:render_next::@3 +render_next::@3: scope:[render_next] from render_next::@11 render_next::@2 + (byte) render_next::l#7 ← phi( render_next::@11/(byte) render_next::l#1 render_next::@2/(byte) render_next::l#0 ) + (byte*) render_next::screen_next_area#9 ← phi( render_next::@11/(byte*) render_next::screen_next_area#3 render_next::@2/(byte*) render_next::screen_next_area#10 ) + (byte) render_next::next_piece_char#3 ← phi( render_next::@11/(byte) render_next::next_piece_char#5 render_next::@2/(byte) render_next::next_piece_char#0 ) + (byte*) render_next::next_piece_gfx#3 ← phi( render_next::@11/(byte*) render_next::next_piece_gfx#5 render_next::@2/(byte*) render_next::next_piece_gfx#0 ) + (byte) render_next::c#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + to:render_next::@4 +render_next::@4: scope:[render_next] from render_next::@3 render_next::@6 + (byte) render_next::l#6 ← phi( render_next::@3/(byte) render_next::l#7 render_next::@6/(byte) render_next::l#3 ) + (byte) render_next::c#5 ← phi( render_next::@3/(byte) render_next::c#0 render_next::@6/(byte) render_next::c#1 ) + (byte*) render_next::screen_next_area#8 ← phi( render_next::@3/(byte*) render_next::screen_next_area#9 render_next::@6/(byte*) render_next::screen_next_area#2 ) + (byte) render_next::next_piece_char#2 ← phi( render_next::@3/(byte) render_next::next_piece_char#3 render_next::@6/(byte) render_next::next_piece_char#4 ) + (byte*) render_next::next_piece_gfx#2 ← phi( render_next::@3/(byte*) render_next::next_piece_gfx#3 render_next::@6/(byte*) render_next::next_piece_gfx#4 ) + (byte) render_next::cell#0 ← *((byte*) render_next::next_piece_gfx#2) + (byte*) render_next::next_piece_gfx#1 ← ++ (byte*) render_next::next_piece_gfx#2 + (bool~) render_next::$7 ← (byte) render_next::cell#0 != (byte/signed byte/word/signed word/dword/signed dword) 0 + if((bool~) render_next::$7) goto render_next::@5 + to:render_next::@9 +render_next::@5: scope:[render_next] from render_next::@4 + (byte) render_next::l#4 ← phi( render_next::@4/(byte) render_next::l#6 ) + (byte*) render_next::next_piece_gfx#6 ← phi( render_next::@4/(byte*) render_next::next_piece_gfx#1 ) + (byte) render_next::c#3 ← phi( render_next::@4/(byte) render_next::c#5 ) + (byte*) render_next::screen_next_area#4 ← phi( render_next::@4/(byte*) render_next::screen_next_area#8 ) + (byte) render_next::next_piece_char#1 ← phi( render_next::@4/(byte) render_next::next_piece_char#2 ) + *((byte*) render_next::screen_next_area#4) ← (byte) render_next::next_piece_char#1 + to:render_next::@6 +render_next::@9: scope:[render_next] from render_next::@4 + (byte) render_next::next_piece_char#6 ← phi( render_next::@4/(byte) render_next::next_piece_char#2 ) + (byte) render_next::l#5 ← phi( render_next::@4/(byte) render_next::l#6 ) + (byte*) render_next::next_piece_gfx#7 ← phi( render_next::@4/(byte*) render_next::next_piece_gfx#1 ) + (byte) render_next::c#4 ← phi( render_next::@4/(byte) render_next::c#5 ) + (byte*) render_next::screen_next_area#5 ← phi( render_next::@4/(byte*) render_next::screen_next_area#8 ) + *((byte*) render_next::screen_next_area#5) ← (byte/signed byte/word/signed word/dword/signed dword) 0 + to:render_next::@6 +render_next::@6: scope:[render_next] from render_next::@5 render_next::@9 + (byte) render_next::next_piece_char#4 ← phi( render_next::@5/(byte) render_next::next_piece_char#1 render_next::@9/(byte) render_next::next_piece_char#6 ) + (byte) render_next::l#3 ← phi( render_next::@5/(byte) render_next::l#4 render_next::@9/(byte) render_next::l#5 ) + (byte*) render_next::next_piece_gfx#4 ← phi( render_next::@5/(byte*) render_next::next_piece_gfx#6 render_next::@9/(byte*) render_next::next_piece_gfx#7 ) + (byte) render_next::c#2 ← phi( render_next::@5/(byte) render_next::c#3 render_next::@9/(byte) render_next::c#4 ) + (byte*) render_next::screen_next_area#6 ← phi( render_next::@5/(byte*) render_next::screen_next_area#4 render_next::@9/(byte*) render_next::screen_next_area#5 ) + (byte*) render_next::screen_next_area#2 ← ++ (byte*) render_next::screen_next_area#6 + (byte) render_next::c#1 ← (byte) render_next::c#2 + rangenext(0,3) + (bool~) render_next::$8 ← (byte) render_next::c#1 != rangelast(0,3) + if((bool~) render_next::$8) goto render_next::@4 + to:render_next::@11 +render_next::@11: scope:[render_next] from render_next::@6 + (byte) render_next::next_piece_char#5 ← phi( render_next::@6/(byte) render_next::next_piece_char#4 ) + (byte*) render_next::next_piece_gfx#5 ← phi( render_next::@6/(byte*) render_next::next_piece_gfx#4 ) + (byte) render_next::l#2 ← phi( render_next::@6/(byte) render_next::l#3 ) + (byte*) render_next::screen_next_area#7 ← phi( render_next::@6/(byte*) render_next::screen_next_area#2 ) + (byte*) render_next::screen_next_area#3 ← (byte*) render_next::screen_next_area#7 + (byte/signed byte/word/signed word/dword/signed dword) 36 + (byte) render_next::l#1 ← (byte) render_next::l#2 + rangenext(0,3) + (bool~) render_next::$9 ← (byte) render_next::l#1 != rangelast(0,3) + if((bool~) render_next::$9) goto render_next::@3 + to:render_next::@return +render_next::@return: scope:[render_next] from render_next::@11 + return + to:@return +@23: scope:[] from @14 + (byte) level_bcd#101 ← phi( @14/(byte) level_bcd#0 ) + (byte) level#99 ← phi( @14/(byte) level#0 ) + (dword) score_bcd#84 ← phi( @14/(dword) score_bcd#0 ) + (word) lines_bcd#88 ← phi( @14/(word) lines_bcd#0 ) + (byte) keyboard_modifiers#58 ← phi( @14/(byte) keyboard_modifiers#60 ) + (byte) keyboard_events_size#76 ← phi( @14/(byte) keyboard_events_size#79 ) + (byte) render_screen_showing#45 ← phi( @14/(byte) render_screen_showing#0 ) + (byte) game_over#88 ← phi( @14/(byte) game_over#0 ) + (byte) current_ypos#99 ← phi( @14/(byte) current_ypos#100 ) + (byte) current_xpos#123 ← phi( @14/(byte) current_xpos#124 ) + (byte*) current_piece_gfx#113 ← phi( @14/(byte*) current_piece_gfx#114 ) + (byte) current_piece_char#101 ← phi( @14/(byte) current_piece_char#102 ) + (byte) render_screen_render#62 ← phi( @14/(byte) render_screen_render#0 ) + (byte) render_screen_show#60 ← phi( @14/(byte) render_screen_show#0 ) kickasm(location (byte*) PLAYFIELD_SPRITES#0) {{ .var sprites = LoadPicture("playfield-sprites.png", List().add($010101, $000000)) // Put the sprites into memory .for(var sy=0;sy<10;sy++) { @@ -1107,7 +1199,7 @@ render_moving::@return: scope:[render_moving] from render_moving::@3 } } }} - to:@23 + to:@24 sprites_init: scope:[sprites_init] from main::@26 *((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 @@ -1134,21 +1226,21 @@ 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 -@23: scope:[] from @22 - (byte) level_bcd#96 ← phi( @22/(byte) level_bcd#100 ) - (byte) level#92 ← phi( @22/(byte) level#96 ) - (dword) score_bcd#79 ← phi( @22/(dword) score_bcd#83 ) - (word) lines_bcd#83 ← phi( @22/(word) lines_bcd#87 ) - (byte) keyboard_modifiers#55 ← phi( @22/(byte) keyboard_modifiers#57 ) - (byte) keyboard_events_size#71 ← phi( @22/(byte) keyboard_events_size#75 ) - (byte) render_screen_showing#42 ← phi( @22/(byte) render_screen_showing#44 ) - (byte) game_over#83 ← phi( @22/(byte) game_over#84 ) - (byte) current_ypos#88 ← phi( @22/(byte) current_ypos#91 ) - (byte) current_xpos#112 ← phi( @22/(byte) current_xpos#115 ) - (byte*) current_piece_gfx#102 ← phi( @22/(byte*) current_piece_gfx#105 ) - (byte) current_piece_char#90 ← phi( @22/(byte) current_piece_char#93 ) - (byte) render_screen_render#56 ← phi( @22/(byte) render_screen_render#58 ) - (byte) render_screen_show#56 ← phi( @22/(byte) render_screen_show#59 ) +@24: scope:[] from @23 + (byte) level_bcd#96 ← phi( @23/(byte) level_bcd#101 ) + (byte) level#93 ← phi( @23/(byte) level#99 ) + (dword) score_bcd#80 ← phi( @23/(dword) score_bcd#84 ) + (word) lines_bcd#83 ← phi( @23/(word) lines_bcd#88 ) + (byte) keyboard_modifiers#55 ← phi( @23/(byte) keyboard_modifiers#58 ) + (byte) keyboard_events_size#71 ← phi( @23/(byte) keyboard_events_size#76 ) + (byte) render_screen_showing#42 ← phi( @23/(byte) render_screen_showing#45 ) + (byte) game_over#86 ← phi( @23/(byte) game_over#88 ) + (byte) current_ypos#96 ← phi( @23/(byte) current_ypos#99 ) + (byte) current_xpos#120 ← phi( @23/(byte) current_xpos#123 ) + (byte*) current_piece_gfx#110 ← phi( @23/(byte*) current_piece_gfx#113 ) + (byte) current_piece_char#98 ← phi( @23/(byte) current_piece_char#101 ) + (byte) render_screen_render#60 ← phi( @23/(byte) render_screen_render#62 ) + (byte) render_screen_show#57 ← phi( @23/(byte) render_screen_show#60 ) (byte) SPRITES_FIRST_YPOS#0 ← (byte/signed byte/word/signed word/dword/signed dword) 49 (byte/signed word/word/dword/signed dword~) $4 ← (byte) SPRITES_FIRST_YPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 19 (byte) IRQ_RASTER_FIRST#0 ← (byte/signed word/word/dword/signed dword~) $4 @@ -1157,24 +1249,24 @@ sprites_init::@return: scope:[sprites_init] from sprites_init::@1 (byte) irq_sprite_ypos#0 ← (byte/signed word/word/dword/signed dword~) $5 (byte*) toSpritePtr1_sprite#0 ← (byte*) PLAYFIELD_SPRITES#0 to:toSpritePtr1 -toSpritePtr1: scope:[] from @23 - (byte) level_bcd#89 ← phi( @23/(byte) level_bcd#96 ) - (byte) level#86 ← phi( @23/(byte) level#92 ) - (dword) score_bcd#74 ← phi( @23/(dword) score_bcd#79 ) - (word) lines_bcd#77 ← phi( @23/(word) lines_bcd#83 ) - (byte) keyboard_modifiers#52 ← phi( @23/(byte) keyboard_modifiers#55 ) - (byte) keyboard_events_size#67 ← phi( @23/(byte) keyboard_events_size#71 ) - (byte) render_screen_showing#38 ← phi( @23/(byte) render_screen_showing#42 ) - (byte) game_over#77 ← phi( @23/(byte) game_over#83 ) - (byte) current_ypos#85 ← phi( @23/(byte) current_ypos#88 ) - (byte) current_xpos#109 ← phi( @23/(byte) current_xpos#112 ) - (byte*) current_piece_gfx#97 ← phi( @23/(byte*) current_piece_gfx#102 ) - (byte) current_piece_char#84 ← phi( @23/(byte) current_piece_char#90 ) - (byte) render_screen_render#54 ← phi( @23/(byte) render_screen_render#56 ) - (byte) render_screen_show#53 ← phi( @23/(byte) render_screen_show#56 ) - (byte) irq_raster_next#24 ← phi( @23/(byte) irq_raster_next#0 ) - (byte) irq_sprite_ypos#24 ← phi( @23/(byte) irq_sprite_ypos#0 ) - (byte*) toSpritePtr1_sprite#1 ← phi( @23/(byte*) toSpritePtr1_sprite#0 ) +toSpritePtr1: scope:[] from @24 + (byte) level_bcd#89 ← phi( @24/(byte) level_bcd#96 ) + (byte) level#86 ← phi( @24/(byte) level#93 ) + (dword) score_bcd#74 ← phi( @24/(dword) score_bcd#80 ) + (word) lines_bcd#77 ← phi( @24/(word) lines_bcd#83 ) + (byte) keyboard_modifiers#52 ← phi( @24/(byte) keyboard_modifiers#55 ) + (byte) keyboard_events_size#67 ← phi( @24/(byte) keyboard_events_size#71 ) + (byte) render_screen_showing#38 ← phi( @24/(byte) render_screen_showing#42 ) + (byte) game_over#81 ← phi( @24/(byte) game_over#86 ) + (byte) current_ypos#93 ← phi( @24/(byte) current_ypos#96 ) + (byte) current_xpos#117 ← phi( @24/(byte) current_xpos#120 ) + (byte*) current_piece_gfx#105 ← phi( @24/(byte*) current_piece_gfx#110 ) + (byte) current_piece_char#92 ← phi( @24/(byte) current_piece_char#98 ) + (byte) render_screen_render#57 ← phi( @24/(byte) render_screen_render#60 ) + (byte) render_screen_show#54 ← phi( @24/(byte) render_screen_show#57 ) + (byte) irq_raster_next#24 ← phi( @24/(byte) irq_raster_next#0 ) + (byte) irq_sprite_ypos#24 ← phi( @24/(byte) irq_sprite_ypos#0 ) + (byte*) toSpritePtr1_sprite#1 ← phi( @24/(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 @@ -1188,19 +1280,19 @@ toSpritePtr1_@return: scope:[] from toSpritePtr1 (byte) keyboard_modifiers#46 ← phi( toSpritePtr1/(byte) keyboard_modifiers#52 ) (byte) keyboard_events_size#58 ← phi( toSpritePtr1/(byte) keyboard_events_size#67 ) (byte) render_screen_showing#32 ← phi( toSpritePtr1/(byte) render_screen_showing#38 ) - (byte) game_over#67 ← phi( toSpritePtr1/(byte) game_over#77 ) - (byte) current_ypos#79 ← phi( toSpritePtr1/(byte) current_ypos#85 ) - (byte) current_xpos#103 ← phi( toSpritePtr1/(byte) current_xpos#109 ) - (byte*) current_piece_gfx#90 ← phi( toSpritePtr1/(byte*) current_piece_gfx#97 ) - (byte) current_piece_char#78 ← phi( toSpritePtr1/(byte) current_piece_char#84 ) - (byte) render_screen_render#49 ← phi( toSpritePtr1/(byte) render_screen_render#54 ) - (byte) render_screen_show#48 ← phi( toSpritePtr1/(byte) render_screen_show#53 ) + (byte) game_over#72 ← phi( toSpritePtr1/(byte) game_over#81 ) + (byte) current_ypos#86 ← phi( toSpritePtr1/(byte) current_ypos#93 ) + (byte) current_xpos#110 ← phi( toSpritePtr1/(byte) current_xpos#117 ) + (byte*) current_piece_gfx#97 ← phi( toSpritePtr1/(byte*) current_piece_gfx#105 ) + (byte) current_piece_char#85 ← phi( toSpritePtr1/(byte) current_piece_char#92 ) + (byte) render_screen_render#52 ← phi( toSpritePtr1/(byte) render_screen_render#57 ) + (byte) render_screen_show#48 ← phi( toSpritePtr1/(byte) render_screen_show#54 ) (byte) irq_raster_next#23 ← phi( toSpritePtr1/(byte) irq_raster_next#24 ) (byte) irq_sprite_ypos#22 ← phi( toSpritePtr1/(byte) irq_sprite_ypos#24 ) (byte) toSpritePtr1_return#2 ← phi( toSpritePtr1/(byte) toSpritePtr1_return#0 ) (byte) toSpritePtr1_return#1 ← (byte) toSpritePtr1_return#2 - to:@38 -@38: scope:[] from toSpritePtr1_@return + to:@39 +@39: scope:[] from toSpritePtr1_@return (byte) level_bcd#70 ← phi( toSpritePtr1_@return/(byte) level_bcd#80 ) (byte) level#65 ← phi( toSpritePtr1_@return/(byte) level#77 ) (dword) score_bcd#58 ← phi( toSpritePtr1_@return/(dword) score_bcd#67 ) @@ -1208,12 +1300,12 @@ toSpritePtr1_@return: scope:[] from toSpritePtr1 (byte) keyboard_modifiers#39 ← phi( toSpritePtr1_@return/(byte) keyboard_modifiers#46 ) (byte) keyboard_events_size#48 ← phi( toSpritePtr1_@return/(byte) keyboard_events_size#58 ) (byte) render_screen_showing#27 ← phi( toSpritePtr1_@return/(byte) render_screen_showing#32 ) - (byte) game_over#56 ← phi( toSpritePtr1_@return/(byte) game_over#67 ) - (byte) current_ypos#72 ← phi( toSpritePtr1_@return/(byte) current_ypos#79 ) - (byte) current_xpos#95 ← phi( toSpritePtr1_@return/(byte) current_xpos#103 ) - (byte*) current_piece_gfx#79 ← phi( toSpritePtr1_@return/(byte*) current_piece_gfx#90 ) - (byte) current_piece_char#66 ← phi( toSpritePtr1_@return/(byte) current_piece_char#78 ) - (byte) render_screen_render#45 ← phi( toSpritePtr1_@return/(byte) render_screen_render#49 ) + (byte) game_over#59 ← phi( toSpritePtr1_@return/(byte) game_over#72 ) + (byte) current_ypos#76 ← phi( toSpritePtr1_@return/(byte) current_ypos#86 ) + (byte) current_xpos#99 ← phi( toSpritePtr1_@return/(byte) current_xpos#110 ) + (byte*) current_piece_gfx#83 ← phi( toSpritePtr1_@return/(byte*) current_piece_gfx#97 ) + (byte) current_piece_char#69 ← phi( toSpritePtr1_@return/(byte) current_piece_char#85 ) + (byte) render_screen_render#48 ← phi( toSpritePtr1_@return/(byte) render_screen_render#52 ) (byte) render_screen_show#43 ← phi( toSpritePtr1_@return/(byte) render_screen_show#48 ) (byte) irq_raster_next#22 ← phi( toSpritePtr1_@return/(byte) irq_raster_next#23 ) (byte) irq_sprite_ypos#21 ← phi( toSpritePtr1_@return/(byte) irq_sprite_ypos#22 ) @@ -1222,7 +1314,7 @@ toSpritePtr1_@return: scope:[] from toSpritePtr1 (byte/signed word/word/dword/signed dword~) $7 ← (byte~) $6 + (byte/signed byte/word/signed word/dword/signed dword) 3 (byte) irq_sprite_ptr#0 ← (byte/signed word/word/dword/signed dword~) $7 (byte) irq_cnt#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 - to:@25 + to:@26 sprites_irq_init: scope:[sprites_irq_init] from main::@27 asm { sei } *((byte*) IRQ_STATUS#0) ← (byte) IRQ_RASTER#0 @@ -1241,11 +1333,11 @@ sprites_irq_init::@return: scope:[sprites_irq_init] from sprites_irq_init return to:@return sprites_irq: scope:[sprites_irq] from - (byte) irq_cnt#15 ← phi( @37/(byte) irq_cnt#17 ) - (byte) render_screen_showing#15 ← phi( @37/(byte) render_screen_showing#14 ) - (byte) irq_sprite_ptr#12 ← phi( @37/(byte) irq_sprite_ptr#14 ) - (byte) irq_raster_next#5 ← phi( @37/(byte) irq_raster_next#10 ) - (byte) irq_sprite_ypos#5 ← phi( @37/(byte) irq_sprite_ypos#9 ) + (byte) irq_cnt#15 ← phi( @38/(byte) irq_cnt#17 ) + (byte) render_screen_showing#15 ← phi( @38/(byte) render_screen_showing#14 ) + (byte) irq_sprite_ptr#12 ← phi( @38/(byte) irq_sprite_ptr#14 ) + (byte) irq_raster_next#5 ← phi( @38/(byte) irq_raster_next#10 ) + (byte) irq_sprite_ypos#5 ← phi( @38/(byte) irq_sprite_ypos#9 ) asm { cld } (byte) sprites_irq::ypos#0 ← (byte) irq_sprite_ypos#5 *((byte*) SPRITES_YPOS#0 + (byte/signed byte/word/signed word/dword/signed dword) 0) ← (byte) sprites_irq::ypos#0 @@ -1386,25 +1478,25 @@ sprites_irq::@return: scope:[sprites_irq] from sprites_irq::@7 (byte) irq_sprite_ptr#4 ← (byte) irq_sprite_ptr#8 return to:@return -@25: scope:[] from @38 - (byte) irq_cnt#20 ← phi( @38/(byte) irq_cnt#0 ) - (byte) irq_sprite_ptr#18 ← phi( @38/(byte) irq_sprite_ptr#0 ) - (byte) level_bcd#63 ← phi( @38/(byte) level_bcd#70 ) - (byte) level#59 ← phi( @38/(byte) level#65 ) - (dword) score_bcd#53 ← phi( @38/(dword) score_bcd#58 ) - (word) lines_bcd#53 ← phi( @38/(word) lines_bcd#60 ) - (byte) keyboard_modifiers#34 ← phi( @38/(byte) keyboard_modifiers#39 ) - (byte) keyboard_events_size#40 ← phi( @38/(byte) keyboard_events_size#48 ) - (byte) render_screen_showing#21 ← phi( @38/(byte) render_screen_showing#27 ) - (byte) game_over#49 ← phi( @38/(byte) game_over#56 ) - (byte) current_ypos#67 ← phi( @38/(byte) current_ypos#72 ) - (byte) current_xpos#86 ← phi( @38/(byte) current_xpos#95 ) - (byte*) current_piece_gfx#70 ← phi( @38/(byte*) current_piece_gfx#79 ) - (byte) current_piece_char#56 ← phi( @38/(byte) current_piece_char#66 ) - (byte) render_screen_render#40 ← phi( @38/(byte) render_screen_render#45 ) - (byte) render_screen_show#35 ← phi( @38/(byte) render_screen_show#43 ) - (byte) irq_raster_next#20 ← phi( @38/(byte) irq_raster_next#22 ) - (byte) irq_sprite_ypos#18 ← phi( @38/(byte) irq_sprite_ypos#21 ) +@26: scope:[] from @39 + (byte) irq_cnt#20 ← phi( @39/(byte) irq_cnt#0 ) + (byte) irq_sprite_ptr#18 ← phi( @39/(byte) irq_sprite_ptr#0 ) + (byte) level_bcd#63 ← phi( @39/(byte) level_bcd#70 ) + (byte) level#59 ← phi( @39/(byte) level#65 ) + (dword) score_bcd#53 ← phi( @39/(dword) score_bcd#58 ) + (word) lines_bcd#53 ← phi( @39/(word) lines_bcd#60 ) + (byte) keyboard_modifiers#34 ← phi( @39/(byte) keyboard_modifiers#39 ) + (byte) keyboard_events_size#40 ← phi( @39/(byte) keyboard_events_size#48 ) + (byte) render_screen_showing#21 ← phi( @39/(byte) render_screen_showing#27 ) + (byte) game_over#51 ← phi( @39/(byte) game_over#59 ) + (byte) current_ypos#68 ← phi( @39/(byte) current_ypos#76 ) + (byte) current_xpos#87 ← phi( @39/(byte) current_xpos#99 ) + (byte*) current_piece_gfx#71 ← phi( @39/(byte*) current_piece_gfx#83 ) + (byte) current_piece_char#57 ← phi( @39/(byte) current_piece_char#69 ) + (byte) render_screen_render#43 ← phi( @39/(byte) render_screen_render#48 ) + (byte) render_screen_show#35 ← phi( @39/(byte) render_screen_show#43 ) + (byte) irq_raster_next#20 ← phi( @39/(byte) irq_raster_next#22 ) + (byte) irq_sprite_ypos#18 ← phi( @39/(byte) irq_sprite_ypos#21 ) (byte/signed byte/word/signed word/dword/signed dword~) $8 ← (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~) $9 ← (byte/signed byte/word/signed word/dword/signed dword~) $8 * (byte/signed byte/word/signed word/dword/signed dword) 4 (byte[$9]) 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 } @@ -1434,12 +1526,14 @@ sprites_irq::@return: scope:[sprites_irq] from sprites_irq::@7 (word~) $27 ← ((word)) (byte[$21]) PIECE_I#0 (word~) $28 ← ((word)) (byte[$15]) PIECE_L#0 (word[]) PIECES#0 ← { (word~) $22, (word~) $23, (word~) $24, (word~) $25, (word~) $26, (word~) $27, (word~) $28 } - (byte[]) PIECES_CHARS#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 100, (byte/signed byte/word/signed word/dword/signed dword) 101, (byte/word/signed word/dword/signed dword) 165, (byte/signed byte/word/signed word/dword/signed dword) 101, (byte/signed byte/word/signed word/dword/signed dword) 100, (byte/signed byte/word/signed word/dword/signed dword) 100, (byte/word/signed word/dword/signed dword) 165 } + (byte[]) PIECES_CHARS#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 101, (byte/signed byte/word/signed word/dword/signed dword) 102, (byte/word/signed word/dword/signed dword) 166, (byte/signed byte/word/signed word/dword/signed dword) 102, (byte/signed byte/word/signed word/dword/signed dword) 101, (byte/signed byte/word/signed word/dword/signed dword) 101, (byte/word/signed word/dword/signed dword) 166 } + (byte[]) PIECES_NEXT_CHARS#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 99, (byte/signed byte/word/signed word/dword/signed dword) 100, (byte/word/signed word/dword/signed dword) 164, (byte/signed byte/word/signed word/dword/signed dword) 100, (byte/signed byte/word/signed word/dword/signed dword) 99, (byte/signed byte/word/signed word/dword/signed dword) 99, (byte/word/signed word/dword/signed dword) 164 } (byte[]) PIECES_START_X#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 4 } (byte[]) PIECES_START_Y#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1 } (byte*[PLAYFIELD_LINES#0]) playfield_lines#0 ← { fill( PLAYFIELD_LINES#0, 0) } (byte/signed word/word/dword/signed dword~) $29 ← (byte) PLAYFIELD_LINES#0 + (byte/signed byte/word/signed word/dword/signed dword) 1 (byte[$29]) playfield_lines_idx#0 ← { fill( $29, 0) } + (byte) next_piece_idx#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte*) current_piece#0 ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) current_orientation#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte[]) MOVEDOWN_SLOW_SPEEDS#0 ← { (byte/signed byte/word/signed word/dword/signed dword) 48, (byte/signed byte/word/signed word/dword/signed dword) 43, (byte/signed byte/word/signed word/dword/signed dword) 38, (byte/signed byte/word/signed word/dword/signed dword) 33, (byte/signed byte/word/signed word/dword/signed dword) 28, (byte/signed byte/word/signed word/dword/signed dword) 23, (byte/signed byte/word/signed word/dword/signed dword) 18, (byte/signed byte/word/signed word/dword/signed dword) 13, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 6, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 1 } @@ -1448,7 +1542,7 @@ sprites_irq::@return: scope:[sprites_irq] from sprites_irq::@7 (byte) current_movedown_counter#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (dword[]) SCORE_BASE_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 } (dword[5]) score_add_bcd#0 ← { fill( 5, 0) } - to:@30 + to:@31 play_init: scope:[play_init] from main::@28 (byte) level#39 ← phi( main::@28/(byte) level#53 ) (byte) play_init::idx#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -1493,18 +1587,19 @@ play_init::@return: scope:[play_init] from play_init::@2 return to:@return play_movement: scope:[play_movement] from main::@7 - (byte) game_over#21 ← phi( main::@7/(byte) game_over#30 ) - (byte) current_xpos#34 ← phi( main::@7/(byte) current_xpos#54 ) - (byte*) current_piece_gfx#28 ← phi( main::@7/(byte*) current_piece_gfx#41 ) - (byte) current_orientation#30 ← phi( main::@7/(byte) current_orientation#46 ) - (byte) current_piece_char#22 ← phi( main::@7/(byte) current_piece_char#32 ) - (byte*) current_piece#22 ← phi( main::@7/(byte*) current_piece#36 ) + (byte) next_piece_idx#26 ← phi( main::@7/(byte) next_piece_idx#33 ) + (byte) game_over#23 ← phi( main::@7/(byte) game_over#32 ) + (byte) current_xpos#36 ← phi( main::@7/(byte) current_xpos#55 ) + (byte*) current_piece_gfx#30 ← phi( main::@7/(byte*) current_piece_gfx#42 ) + (byte) current_orientation#32 ← phi( main::@7/(byte) current_orientation#47 ) + (byte) current_piece_char#24 ← phi( main::@7/(byte) current_piece_char#33 ) + (byte*) current_piece#24 ← phi( main::@7/(byte*) current_piece#37 ) (byte) level_bcd#27 ← phi( main::@7/(byte) level_bcd#39 ) (byte) current_movedown_slow#30 ← phi( main::@7/(byte) current_movedown_slow#44 ) (byte) level#26 ← phi( main::@7/(byte) level#36 ) (dword) score_bcd#22 ← phi( main::@7/(dword) score_bcd#32 ) (word) lines_bcd#22 ← phi( main::@7/(word) lines_bcd#32 ) - (byte) current_ypos#29 ← phi( main::@7/(byte) current_ypos#45 ) + (byte) current_ypos#31 ← phi( main::@7/(byte) current_ypos#46 ) (byte) current_movedown_counter#18 ← phi( main::@7/(byte) current_movedown_counter#25 ) (byte) play_movement::key_event#1 ← phi( main::@7/(byte) play_movement::key_event#0 ) (byte) play_movement::render#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 @@ -1515,165 +1610,174 @@ play_movement: scope:[play_movement] from main::@7 play_movement::@5: scope:[play_movement] from play_movement (byte) play_movement::key_event#4 ← phi( play_movement/(byte) play_movement::key_event#1 ) (byte) play_movement::render#4 ← phi( play_movement/(byte) play_movement::render#0 ) - (byte) game_over#11 ← phi( play_movement/(byte) game_over#4 ) - (byte) current_xpos#15 ← phi( play_movement/(byte) current_xpos#4 ) - (byte*) current_piece_gfx#14 ← phi( play_movement/(byte*) current_piece_gfx#4 ) - (byte) current_orientation#14 ← phi( play_movement/(byte) current_orientation#5 ) - (byte) current_piece_char#11 ← phi( play_movement/(byte) current_piece_char#3 ) - (byte*) current_piece#11 ← phi( play_movement/(byte*) current_piece#4 ) + (byte) next_piece_idx#13 ← phi( play_movement/(byte) next_piece_idx#4 ) + (byte) game_over#12 ← phi( play_movement/(byte) game_over#4 ) + (byte) current_xpos#16 ← phi( play_movement/(byte) current_xpos#4 ) + (byte*) current_piece_gfx#15 ← phi( play_movement/(byte*) current_piece_gfx#4 ) + (byte) current_orientation#15 ← phi( play_movement/(byte) current_orientation#5 ) + (byte) current_piece_char#12 ← phi( play_movement/(byte) current_piece_char#3 ) + (byte*) current_piece#12 ← phi( play_movement/(byte*) current_piece#4 ) (byte) level_bcd#14 ← phi( play_movement/(byte) level_bcd#4 ) (byte) current_movedown_slow#17 ← phi( play_movement/(byte) current_movedown_slow#6 ) (byte) level#13 ← phi( play_movement/(byte) level#4 ) (dword) score_bcd#11 ← phi( play_movement/(dword) score_bcd#4 ) (word) lines_bcd#12 ← phi( play_movement/(word) lines_bcd#4 ) - (byte) current_ypos#12 ← phi( play_movement/(byte) current_ypos#4 ) + (byte) current_ypos#13 ← phi( play_movement/(byte) current_ypos#4 ) (byte) current_movedown_counter#9 ← phi( play_movement/(byte) current_movedown_counter#5 ) (byte) play_move_down::return#4 ← phi( play_movement/(byte) play_move_down::return#0 ) (byte~) play_movement::$0 ← (byte) play_move_down::return#4 (byte) current_movedown_counter#1 ← (byte) current_movedown_counter#9 - (byte) current_ypos#0 ← (byte) current_ypos#12 + (byte) current_ypos#0 ← (byte) current_ypos#13 (word) lines_bcd#1 ← (word) lines_bcd#12 (dword) score_bcd#1 ← (dword) score_bcd#11 (byte) level#1 ← (byte) level#13 (byte) current_movedown_slow#3 ← (byte) current_movedown_slow#17 (byte) level_bcd#1 ← (byte) level_bcd#14 - (byte*) current_piece#1 ← (byte*) current_piece#11 - (byte) current_piece_char#0 ← (byte) current_piece_char#11 - (byte) current_orientation#1 ← (byte) current_orientation#14 - (byte*) current_piece_gfx#0 ← (byte*) current_piece_gfx#14 - (byte) current_xpos#0 ← (byte) current_xpos#15 - (byte) game_over#1 ← (byte) game_over#11 + (byte*) current_piece#1 ← (byte*) current_piece#12 + (byte) current_piece_char#0 ← (byte) current_piece_char#12 + (byte) current_orientation#1 ← (byte) current_orientation#15 + (byte*) current_piece_gfx#0 ← (byte*) current_piece_gfx#15 + (byte) current_xpos#0 ← (byte) current_xpos#16 + (byte) game_over#1 ← (byte) game_over#12 + (byte) next_piece_idx#1 ← (byte) next_piece_idx#13 (byte) play_movement::render#1 ← (byte) play_movement::render#4 + (byte~) play_movement::$0 (bool~) play_movement::$1 ← (byte) game_over#1 != (byte/signed byte/word/signed word/dword/signed dword) 0 (bool~) play_movement::$2 ← ! (bool~) play_movement::$1 if((bool~) play_movement::$2) goto play_movement::@1 to:play_movement::@2 play_movement::@1: scope:[play_movement] from play_movement::@5 - (byte) game_over#44 ← phi( play_movement::@5/(byte) game_over#1 ) - (byte) current_piece_char#51 ← phi( play_movement::@5/(byte) current_piece_char#0 ) - (byte*) current_piece#54 ← phi( play_movement::@5/(byte*) current_piece#1 ) + (byte) next_piece_idx#49 ← phi( play_movement::@5/(byte) next_piece_idx#1 ) + (byte) game_over#46 ← phi( play_movement::@5/(byte) game_over#1 ) + (byte) current_piece_char#52 ← phi( play_movement::@5/(byte) current_piece_char#0 ) + (byte*) current_piece#55 ← phi( play_movement::@5/(byte*) current_piece#1 ) (byte) level_bcd#58 ← phi( play_movement::@5/(byte) level_bcd#1 ) (byte) current_movedown_slow#63 ← phi( play_movement::@5/(byte) current_movedown_slow#3 ) (byte) level#54 ← phi( play_movement::@5/(byte) level#1 ) (dword) score_bcd#48 ← phi( play_movement::@5/(dword) score_bcd#1 ) (word) lines_bcd#48 ← phi( play_movement::@5/(word) lines_bcd#1 ) (byte) current_movedown_counter#36 ← phi( play_movement::@5/(byte) current_movedown_counter#1 ) - (byte) current_ypos#52 ← phi( play_movement::@5/(byte) current_ypos#0 ) - (byte*) current_piece_gfx#46 ← phi( play_movement::@5/(byte*) current_piece_gfx#0 ) - (byte) current_orientation#49 ← phi( play_movement::@5/(byte) current_orientation#1 ) + (byte) current_ypos#53 ← phi( play_movement::@5/(byte) current_ypos#0 ) + (byte*) current_piece_gfx#47 ← phi( play_movement::@5/(byte*) current_piece_gfx#0 ) + (byte) current_orientation#50 ← phi( play_movement::@5/(byte) current_orientation#1 ) (byte) play_movement::render#8 ← phi( play_movement::@5/(byte) play_movement::render#1 ) - (byte) current_xpos#35 ← phi( play_movement::@5/(byte) current_xpos#0 ) + (byte) current_xpos#37 ← phi( play_movement::@5/(byte) current_xpos#0 ) (byte) play_movement::key_event#2 ← phi( play_movement::@5/(byte) play_movement::key_event#4 ) (byte) play_move_leftright::key_event#0 ← (byte) play_movement::key_event#2 call play_move_leftright (byte) play_move_leftright::return#0 ← (byte) play_move_leftright::return#2 to:play_movement::@6 play_movement::@6: scope:[play_movement] from play_movement::@1 - (byte) game_over#33 ← phi( play_movement::@1/(byte) game_over#44 ) - (byte) current_piece_char#37 ← phi( play_movement::@1/(byte) current_piece_char#51 ) - (byte*) current_piece#39 ← phi( play_movement::@1/(byte*) current_piece#54 ) + (byte) next_piece_idx#37 ← phi( play_movement::@1/(byte) next_piece_idx#49 ) + (byte) game_over#35 ← phi( play_movement::@1/(byte) game_over#46 ) + (byte) current_piece_char#38 ← phi( play_movement::@1/(byte) current_piece_char#52 ) + (byte*) current_piece#40 ← phi( play_movement::@1/(byte*) current_piece#55 ) (byte) level_bcd#43 ← phi( play_movement::@1/(byte) level_bcd#58 ) (byte) current_movedown_slow#47 ← phi( play_movement::@1/(byte) current_movedown_slow#63 ) (byte) level#40 ← phi( play_movement::@1/(byte) level#54 ) (dword) score_bcd#36 ← phi( play_movement::@1/(dword) score_bcd#48 ) (word) lines_bcd#36 ← phi( play_movement::@1/(word) lines_bcd#48 ) - (byte) current_ypos#48 ← phi( play_movement::@1/(byte) current_ypos#52 ) + (byte) current_ypos#49 ← phi( play_movement::@1/(byte) current_ypos#53 ) (byte) current_movedown_counter#28 ← phi( play_movement::@1/(byte) current_movedown_counter#36 ) - (byte*) current_piece_gfx#29 ← phi( play_movement::@1/(byte*) current_piece_gfx#46 ) - (byte) current_orientation#31 ← phi( play_movement::@1/(byte) current_orientation#49 ) + (byte*) current_piece_gfx#31 ← phi( play_movement::@1/(byte*) current_piece_gfx#47 ) + (byte) current_orientation#33 ← phi( play_movement::@1/(byte) current_orientation#50 ) (byte) play_movement::key_event#3 ← phi( play_movement::@1/(byte) play_movement::key_event#2 ) (byte) play_movement::render#5 ← phi( play_movement::@1/(byte) play_movement::render#8 ) - (byte) current_xpos#16 ← phi( play_movement::@1/(byte) current_xpos#6 ) + (byte) current_xpos#17 ← phi( play_movement::@1/(byte) current_xpos#6 ) (byte) play_move_leftright::return#5 ← phi( play_movement::@1/(byte) play_move_leftright::return#0 ) (byte~) play_movement::$3 ← (byte) play_move_leftright::return#5 - (byte) current_xpos#1 ← (byte) current_xpos#16 + (byte) current_xpos#1 ← (byte) current_xpos#17 (byte) play_movement::render#2 ← (byte) play_movement::render#5 + (byte~) play_movement::$3 (byte) play_move_rotate::key_event#0 ← (byte) play_movement::key_event#3 call play_move_rotate (byte) play_move_rotate::return#0 ← (byte) play_move_rotate::return#2 to:play_movement::@7 play_movement::@7: scope:[play_movement] from play_movement::@6 - (byte) game_over#23 ← phi( play_movement::@6/(byte) game_over#33 ) - (byte) current_xpos#37 ← phi( play_movement::@6/(byte) current_xpos#1 ) - (byte) current_piece_char#24 ← phi( play_movement::@6/(byte) current_piece_char#37 ) - (byte*) current_piece#24 ← phi( play_movement::@6/(byte*) current_piece#39 ) + (byte) next_piece_idx#28 ← phi( play_movement::@6/(byte) next_piece_idx#37 ) + (byte) game_over#25 ← phi( play_movement::@6/(byte) game_over#35 ) + (byte) current_xpos#39 ← phi( play_movement::@6/(byte) current_xpos#1 ) + (byte) current_piece_char#26 ← phi( play_movement::@6/(byte) current_piece_char#38 ) + (byte*) current_piece#26 ← phi( play_movement::@6/(byte*) current_piece#40 ) (byte) level_bcd#29 ← phi( play_movement::@6/(byte) level_bcd#43 ) (byte) current_movedown_slow#32 ← phi( play_movement::@6/(byte) current_movedown_slow#47 ) (byte) level#28 ← phi( play_movement::@6/(byte) level#40 ) (dword) score_bcd#24 ← phi( play_movement::@6/(dword) score_bcd#36 ) (word) lines_bcd#24 ← phi( play_movement::@6/(word) lines_bcd#36 ) - (byte) current_ypos#31 ← phi( play_movement::@6/(byte) current_ypos#48 ) + (byte) current_ypos#33 ← phi( play_movement::@6/(byte) current_ypos#49 ) (byte) current_movedown_counter#20 ← phi( play_movement::@6/(byte) current_movedown_counter#28 ) (byte) play_movement::render#6 ← phi( play_movement::@6/(byte) play_movement::render#2 ) - (byte*) current_piece_gfx#15 ← phi( play_movement::@6/(byte*) current_piece_gfx#5 ) - (byte) current_orientation#15 ← phi( play_movement::@6/(byte) current_orientation#6 ) + (byte*) current_piece_gfx#16 ← phi( play_movement::@6/(byte*) current_piece_gfx#5 ) + (byte) current_orientation#16 ← phi( play_movement::@6/(byte) current_orientation#6 ) (byte) play_move_rotate::return#5 ← phi( play_movement::@6/(byte) play_move_rotate::return#0 ) (byte~) play_movement::$4 ← (byte) play_move_rotate::return#5 - (byte) current_orientation#2 ← (byte) current_orientation#15 - (byte*) current_piece_gfx#1 ← (byte*) current_piece_gfx#15 + (byte) current_orientation#2 ← (byte) current_orientation#16 + (byte*) current_piece_gfx#1 ← (byte*) current_piece_gfx#16 (byte) play_movement::render#3 ← (byte) play_movement::render#6 + (byte~) play_movement::$4 (byte) play_movement::return#0 ← (byte) play_movement::render#3 to:play_movement::@return play_movement::@2: scope:[play_movement] from play_movement::@5 - (byte) game_over#22 ← phi( play_movement::@5/(byte) game_over#1 ) - (byte) current_xpos#36 ← phi( play_movement::@5/(byte) current_xpos#0 ) - (byte*) current_piece_gfx#30 ← phi( play_movement::@5/(byte*) current_piece_gfx#0 ) - (byte) current_orientation#32 ← phi( play_movement::@5/(byte) current_orientation#1 ) - (byte) current_piece_char#23 ← phi( play_movement::@5/(byte) current_piece_char#0 ) - (byte*) current_piece#23 ← phi( play_movement::@5/(byte*) current_piece#1 ) + (byte) next_piece_idx#27 ← phi( play_movement::@5/(byte) next_piece_idx#1 ) + (byte) game_over#24 ← phi( play_movement::@5/(byte) game_over#1 ) + (byte) current_xpos#38 ← phi( play_movement::@5/(byte) current_xpos#0 ) + (byte*) current_piece_gfx#32 ← phi( play_movement::@5/(byte*) current_piece_gfx#0 ) + (byte) current_orientation#34 ← phi( play_movement::@5/(byte) current_orientation#1 ) + (byte) current_piece_char#25 ← phi( play_movement::@5/(byte) current_piece_char#0 ) + (byte*) current_piece#25 ← phi( play_movement::@5/(byte*) current_piece#1 ) (byte) level_bcd#28 ← phi( play_movement::@5/(byte) level_bcd#1 ) (byte) current_movedown_slow#31 ← phi( play_movement::@5/(byte) current_movedown_slow#3 ) (byte) level#27 ← phi( play_movement::@5/(byte) level#1 ) (dword) score_bcd#23 ← phi( play_movement::@5/(dword) score_bcd#1 ) (word) lines_bcd#23 ← phi( play_movement::@5/(word) lines_bcd#1 ) - (byte) current_ypos#30 ← phi( play_movement::@5/(byte) current_ypos#0 ) + (byte) current_ypos#32 ← phi( play_movement::@5/(byte) current_ypos#0 ) (byte) current_movedown_counter#19 ← phi( play_movement::@5/(byte) current_movedown_counter#1 ) (byte) play_movement::render#7 ← phi( play_movement::@5/(byte) play_movement::render#1 ) (byte) play_movement::return#1 ← (byte) play_movement::render#7 to:play_movement::@return play_movement::@return: scope:[play_movement] from play_movement::@2 play_movement::@7 - (byte) game_over#12 ← phi( play_movement::@2/(byte) game_over#22 play_movement::@7/(byte) game_over#23 ) - (byte) current_xpos#17 ← phi( play_movement::@2/(byte) current_xpos#36 play_movement::@7/(byte) current_xpos#37 ) - (byte*) current_piece_gfx#16 ← phi( play_movement::@2/(byte*) current_piece_gfx#30 play_movement::@7/(byte*) current_piece_gfx#1 ) - (byte) current_orientation#16 ← phi( play_movement::@2/(byte) current_orientation#32 play_movement::@7/(byte) current_orientation#2 ) - (byte) current_piece_char#12 ← phi( play_movement::@2/(byte) current_piece_char#23 play_movement::@7/(byte) current_piece_char#24 ) - (byte*) current_piece#12 ← phi( play_movement::@2/(byte*) current_piece#23 play_movement::@7/(byte*) current_piece#24 ) + (byte) next_piece_idx#14 ← phi( play_movement::@2/(byte) next_piece_idx#27 play_movement::@7/(byte) next_piece_idx#28 ) + (byte) game_over#13 ← phi( play_movement::@2/(byte) game_over#24 play_movement::@7/(byte) game_over#25 ) + (byte) current_xpos#18 ← phi( play_movement::@2/(byte) current_xpos#38 play_movement::@7/(byte) current_xpos#39 ) + (byte*) current_piece_gfx#17 ← phi( play_movement::@2/(byte*) current_piece_gfx#32 play_movement::@7/(byte*) current_piece_gfx#1 ) + (byte) current_orientation#17 ← phi( play_movement::@2/(byte) current_orientation#34 play_movement::@7/(byte) current_orientation#2 ) + (byte) current_piece_char#13 ← phi( play_movement::@2/(byte) current_piece_char#25 play_movement::@7/(byte) current_piece_char#26 ) + (byte*) current_piece#13 ← phi( play_movement::@2/(byte*) current_piece#25 play_movement::@7/(byte*) current_piece#26 ) (byte) level_bcd#15 ← phi( play_movement::@2/(byte) level_bcd#28 play_movement::@7/(byte) level_bcd#29 ) (byte) current_movedown_slow#18 ← phi( play_movement::@2/(byte) current_movedown_slow#31 play_movement::@7/(byte) current_movedown_slow#32 ) (byte) level#14 ← phi( play_movement::@2/(byte) level#27 play_movement::@7/(byte) level#28 ) (dword) score_bcd#12 ← phi( play_movement::@2/(dword) score_bcd#23 play_movement::@7/(dword) score_bcd#24 ) (word) lines_bcd#13 ← phi( play_movement::@2/(word) lines_bcd#23 play_movement::@7/(word) lines_bcd#24 ) - (byte) current_ypos#13 ← phi( play_movement::@2/(byte) current_ypos#30 play_movement::@7/(byte) current_ypos#31 ) + (byte) current_ypos#14 ← phi( play_movement::@2/(byte) current_ypos#32 play_movement::@7/(byte) current_ypos#33 ) (byte) current_movedown_counter#10 ← phi( play_movement::@2/(byte) current_movedown_counter#19 play_movement::@7/(byte) current_movedown_counter#20 ) (byte) play_movement::return#4 ← phi( play_movement::@2/(byte) play_movement::return#1 play_movement::@7/(byte) play_movement::return#0 ) (byte) play_movement::return#2 ← (byte) play_movement::return#4 (byte) current_movedown_counter#2 ← (byte) current_movedown_counter#10 - (byte) current_ypos#1 ← (byte) current_ypos#13 + (byte) current_ypos#1 ← (byte) current_ypos#14 (word) lines_bcd#2 ← (word) lines_bcd#13 (dword) score_bcd#2 ← (dword) score_bcd#12 (byte) level#2 ← (byte) level#14 (byte) current_movedown_slow#4 ← (byte) current_movedown_slow#18 (byte) level_bcd#2 ← (byte) level_bcd#15 - (byte*) current_piece#2 ← (byte*) current_piece#12 - (byte) current_piece_char#1 ← (byte) current_piece_char#12 - (byte) current_orientation#3 ← (byte) current_orientation#16 - (byte*) current_piece_gfx#2 ← (byte*) current_piece_gfx#16 - (byte) current_xpos#2 ← (byte) current_xpos#17 - (byte) game_over#2 ← (byte) game_over#12 + (byte*) current_piece#2 ← (byte*) current_piece#13 + (byte) current_piece_char#1 ← (byte) current_piece_char#13 + (byte) current_orientation#3 ← (byte) current_orientation#17 + (byte*) current_piece_gfx#2 ← (byte*) current_piece_gfx#17 + (byte) current_xpos#2 ← (byte) current_xpos#18 + (byte) game_over#2 ← (byte) game_over#13 + (byte) next_piece_idx#2 ← (byte) next_piece_idx#14 return to:@return play_move_down: scope:[play_move_down] from play_movement - (byte) game_over#78 ← phi( play_movement/(byte) game_over#21 ) - (byte*) current_piece_gfx#98 ← phi( play_movement/(byte*) current_piece_gfx#28 ) - (byte) current_piece_char#85 ← phi( play_movement/(byte) current_piece_char#22 ) - (byte*) current_piece#80 ← phi( play_movement/(byte*) current_piece#22 ) + (byte) next_piece_idx#75 ← phi( play_movement/(byte) next_piece_idx#26 ) + (byte) game_over#82 ← phi( play_movement/(byte) game_over#23 ) + (byte*) current_piece_gfx#106 ← phi( play_movement/(byte*) current_piece_gfx#30 ) + (byte) current_piece_char#93 ← phi( play_movement/(byte) current_piece_char#24 ) + (byte*) current_piece#87 ← phi( play_movement/(byte*) current_piece#24 ) (byte) level_bcd#90 ← phi( play_movement/(byte) level_bcd#27 ) (byte) level#87 ← phi( play_movement/(byte) level#26 ) (dword) score_bcd#75 ← phi( play_movement/(dword) score_bcd#22 ) (word) lines_bcd#78 ← phi( play_movement/(word) lines_bcd#22 ) - (byte) current_orientation#80 ← phi( play_movement/(byte) current_orientation#30 ) - (byte) current_xpos#104 ← phi( play_movement/(byte) current_xpos#34 ) - (byte) current_ypos#80 ← phi( play_movement/(byte) current_ypos#29 ) + (byte) current_orientation#87 ← phi( play_movement/(byte) current_orientation#32 ) + (byte) current_xpos#111 ← phi( play_movement/(byte) current_xpos#36 ) + (byte) current_ypos#87 ← phi( play_movement/(byte) current_ypos#31 ) (byte) current_movedown_slow#64 ← phi( play_movement/(byte) current_movedown_slow#30 ) (byte) play_move_down::key_event#1 ← phi( play_movement/(byte) play_move_down::key_event#0 ) (byte) current_movedown_counter#11 ← phi( play_movement/(byte) current_movedown_counter#18 ) @@ -1684,17 +1788,18 @@ play_move_down: scope:[play_move_down] from play_movement if((bool~) play_move_down::$1) goto play_move_down::@1 to:play_move_down::@8 play_move_down::@1: scope:[play_move_down] from play_move_down play_move_down::@8 - (byte) game_over#68 ← phi( play_move_down/(byte) game_over#78 play_move_down::@8/(byte) game_over#79 ) - (byte*) current_piece_gfx#91 ← phi( play_move_down/(byte*) current_piece_gfx#98 play_move_down::@8/(byte*) current_piece_gfx#99 ) - (byte) current_piece_char#79 ← phi( play_move_down/(byte) current_piece_char#85 play_move_down::@8/(byte) current_piece_char#86 ) - (byte*) current_piece#74 ← phi( play_move_down/(byte*) current_piece#80 play_move_down::@8/(byte*) current_piece#81 ) + (byte) next_piece_idx#69 ← phi( play_move_down/(byte) next_piece_idx#75 play_move_down::@8/(byte) next_piece_idx#76 ) + (byte) game_over#73 ← phi( play_move_down/(byte) game_over#82 play_move_down::@8/(byte) game_over#83 ) + (byte*) current_piece_gfx#98 ← phi( play_move_down/(byte*) current_piece_gfx#106 play_move_down::@8/(byte*) current_piece_gfx#107 ) + (byte) current_piece_char#86 ← phi( play_move_down/(byte) current_piece_char#93 play_move_down::@8/(byte) current_piece_char#94 ) + (byte*) current_piece#81 ← phi( play_move_down/(byte*) current_piece#87 play_move_down::@8/(byte*) current_piece#88 ) (byte) level_bcd#81 ← phi( play_move_down/(byte) level_bcd#90 play_move_down::@8/(byte) level_bcd#91 ) (byte) level#78 ← phi( play_move_down/(byte) level#87 play_move_down::@8/(byte) level#88 ) (dword) score_bcd#68 ← phi( play_move_down/(dword) score_bcd#75 play_move_down::@8/(dword) score_bcd#76 ) (word) lines_bcd#71 ← phi( play_move_down/(word) lines_bcd#78 play_move_down::@8/(word) lines_bcd#79 ) - (byte) current_orientation#73 ← phi( play_move_down/(byte) current_orientation#80 play_move_down::@8/(byte) current_orientation#81 ) - (byte) current_xpos#96 ← phi( play_move_down/(byte) current_xpos#104 play_move_down::@8/(byte) current_xpos#105 ) - (byte) current_ypos#73 ← phi( play_move_down/(byte) current_ypos#80 play_move_down::@8/(byte) current_ypos#81 ) + (byte) current_orientation#76 ← phi( play_move_down/(byte) current_orientation#87 play_move_down::@8/(byte) current_orientation#88 ) + (byte) current_xpos#100 ← phi( play_move_down/(byte) current_xpos#111 play_move_down::@8/(byte) current_xpos#112 ) + (byte) current_ypos#77 ← phi( play_move_down/(byte) current_ypos#87 play_move_down::@8/(byte) current_ypos#88 ) (byte) play_move_down::movedown#12 ← phi( play_move_down/(byte) play_move_down::movedown#0 play_move_down::@8/(byte) play_move_down::movedown#1 ) (byte) current_movedown_slow#48 ← phi( play_move_down/(byte) current_movedown_slow#64 play_move_down::@8/(byte) current_movedown_slow#65 ) (byte) current_movedown_counter#29 ← phi( play_move_down/(byte) current_movedown_counter#3 play_move_down::@8/(byte) current_movedown_counter#37 ) @@ -1703,17 +1808,18 @@ play_move_down::@1: scope:[play_move_down] from play_move_down play_move_down:: (byte) keyboard_event_pressed::return#6 ← (byte) keyboard_event_pressed::return#5 to:play_move_down::@17 play_move_down::@17: scope:[play_move_down] from play_move_down::@1 - (byte) game_over#58 ← phi( play_move_down::@1/(byte) game_over#68 ) - (byte*) current_piece_gfx#81 ← phi( play_move_down::@1/(byte*) current_piece_gfx#91 ) - (byte) current_piece_char#68 ← phi( play_move_down::@1/(byte) current_piece_char#79 ) - (byte*) current_piece#67 ← phi( play_move_down::@1/(byte*) current_piece#74 ) + (byte) next_piece_idx#59 ← phi( play_move_down::@1/(byte) next_piece_idx#69 ) + (byte) game_over#61 ← phi( play_move_down::@1/(byte) game_over#73 ) + (byte*) current_piece_gfx#85 ← phi( play_move_down::@1/(byte*) current_piece_gfx#98 ) + (byte) current_piece_char#71 ← phi( play_move_down::@1/(byte) current_piece_char#86 ) + (byte*) current_piece#70 ← phi( play_move_down::@1/(byte*) current_piece#81 ) (byte) level_bcd#72 ← phi( play_move_down::@1/(byte) level_bcd#81 ) (byte) level#67 ← phi( play_move_down::@1/(byte) level#78 ) (dword) score_bcd#60 ← phi( play_move_down::@1/(dword) score_bcd#68 ) (word) lines_bcd#62 ← phi( play_move_down::@1/(word) lines_bcd#71 ) - (byte) current_orientation#63 ← phi( play_move_down::@1/(byte) current_orientation#73 ) - (byte) current_xpos#82 ← phi( play_move_down::@1/(byte) current_xpos#96 ) - (byte) current_ypos#64 ← phi( play_move_down::@1/(byte) current_ypos#73 ) + (byte) current_orientation#64 ← phi( play_move_down::@1/(byte) current_orientation#76 ) + (byte) current_xpos#83 ← phi( play_move_down::@1/(byte) current_xpos#100 ) + (byte) current_ypos#65 ← phi( play_move_down::@1/(byte) current_ypos#77 ) (byte) play_move_down::movedown#10 ← phi( play_move_down::@1/(byte) play_move_down::movedown#12 ) (byte) current_movedown_slow#34 ← phi( play_move_down::@1/(byte) current_movedown_slow#48 ) (byte) current_movedown_counter#22 ← phi( play_move_down::@1/(byte) current_movedown_counter#29 ) @@ -1724,34 +1830,36 @@ play_move_down::@17: scope:[play_move_down] from play_move_down::@1 if((bool~) play_move_down::$4) goto play_move_down::@2 to:play_move_down::@9 play_move_down::@8: scope:[play_move_down] from play_move_down - (byte) game_over#79 ← phi( play_move_down/(byte) game_over#78 ) - (byte*) current_piece_gfx#99 ← phi( play_move_down/(byte*) current_piece_gfx#98 ) - (byte) current_piece_char#86 ← phi( play_move_down/(byte) current_piece_char#85 ) - (byte*) current_piece#81 ← phi( play_move_down/(byte*) current_piece#80 ) + (byte) next_piece_idx#76 ← phi( play_move_down/(byte) next_piece_idx#75 ) + (byte) game_over#83 ← phi( play_move_down/(byte) game_over#82 ) + (byte*) current_piece_gfx#107 ← phi( play_move_down/(byte*) current_piece_gfx#106 ) + (byte) current_piece_char#94 ← phi( play_move_down/(byte) current_piece_char#93 ) + (byte*) current_piece#88 ← phi( play_move_down/(byte*) current_piece#87 ) (byte) level_bcd#91 ← phi( play_move_down/(byte) level_bcd#90 ) (byte) level#88 ← phi( play_move_down/(byte) level#87 ) (dword) score_bcd#76 ← phi( play_move_down/(dword) score_bcd#75 ) (word) lines_bcd#79 ← phi( play_move_down/(word) lines_bcd#78 ) - (byte) current_orientation#81 ← phi( play_move_down/(byte) current_orientation#80 ) - (byte) current_xpos#105 ← phi( play_move_down/(byte) current_xpos#104 ) - (byte) current_ypos#81 ← phi( play_move_down/(byte) current_ypos#80 ) + (byte) current_orientation#88 ← phi( play_move_down/(byte) current_orientation#87 ) + (byte) current_xpos#112 ← phi( play_move_down/(byte) current_xpos#111 ) + (byte) current_ypos#88 ← phi( play_move_down/(byte) current_ypos#87 ) (byte) current_movedown_slow#65 ← phi( play_move_down/(byte) current_movedown_slow#64 ) (byte) current_movedown_counter#37 ← phi( play_move_down/(byte) current_movedown_counter#3 ) (byte) play_move_down::movedown#4 ← phi( play_move_down/(byte) play_move_down::movedown#0 ) (byte) play_move_down::movedown#1 ← ++ (byte) play_move_down::movedown#4 to:play_move_down::@1 play_move_down::@2: scope:[play_move_down] from play_move_down::@10 play_move_down::@17 play_move_down::@3 - (byte) game_over#46 ← phi( play_move_down::@10/(byte) game_over#57 play_move_down::@17/(byte) game_over#58 play_move_down::@3/(byte) game_over#59 ) - (byte*) current_piece_gfx#65 ← phi( play_move_down::@10/(byte*) current_piece_gfx#80 play_move_down::@17/(byte*) current_piece_gfx#81 play_move_down::@3/(byte*) current_piece_gfx#82 ) - (byte) current_piece_char#53 ← phi( play_move_down::@10/(byte) current_piece_char#67 play_move_down::@17/(byte) current_piece_char#68 play_move_down::@3/(byte) current_piece_char#69 ) - (byte*) current_piece#56 ← phi( play_move_down::@10/(byte*) current_piece#66 play_move_down::@17/(byte*) current_piece#67 play_move_down::@3/(byte*) current_piece#68 ) + (byte) next_piece_idx#51 ← phi( play_move_down::@10/(byte) next_piece_idx#58 play_move_down::@17/(byte) next_piece_idx#59 play_move_down::@3/(byte) next_piece_idx#60 ) + (byte) game_over#48 ← phi( play_move_down::@10/(byte) game_over#60 play_move_down::@17/(byte) game_over#61 play_move_down::@3/(byte) game_over#62 ) + (byte*) current_piece_gfx#66 ← phi( play_move_down::@10/(byte*) current_piece_gfx#84 play_move_down::@17/(byte*) current_piece_gfx#85 play_move_down::@3/(byte*) current_piece_gfx#86 ) + (byte) current_piece_char#54 ← phi( play_move_down::@10/(byte) current_piece_char#70 play_move_down::@17/(byte) current_piece_char#71 play_move_down::@3/(byte) current_piece_char#72 ) + (byte*) current_piece#57 ← phi( play_move_down::@10/(byte*) current_piece#69 play_move_down::@17/(byte*) current_piece#70 play_move_down::@3/(byte*) current_piece#71 ) (byte) level_bcd#60 ← phi( play_move_down::@10/(byte) level_bcd#71 play_move_down::@17/(byte) level_bcd#72 play_move_down::@3/(byte) level_bcd#73 ) (byte) level#56 ← phi( play_move_down::@10/(byte) level#66 play_move_down::@17/(byte) level#67 play_move_down::@3/(byte) level#68 ) (dword) score_bcd#50 ← phi( play_move_down::@10/(dword) score_bcd#59 play_move_down::@17/(dword) score_bcd#60 play_move_down::@3/(dword) score_bcd#61 ) (word) lines_bcd#50 ← phi( play_move_down::@10/(word) lines_bcd#61 play_move_down::@17/(word) lines_bcd#62 play_move_down::@3/(word) lines_bcd#63 ) - (byte) current_orientation#51 ← phi( play_move_down::@10/(byte) current_orientation#62 play_move_down::@17/(byte) current_orientation#63 play_move_down::@3/(byte) current_orientation#64 ) - (byte) current_xpos#60 ← phi( play_move_down::@10/(byte) current_xpos#81 play_move_down::@17/(byte) current_xpos#82 play_move_down::@3/(byte) current_xpos#83 ) - (byte) current_ypos#50 ← phi( play_move_down::@10/(byte) current_ypos#63 play_move_down::@17/(byte) current_ypos#64 play_move_down::@3/(byte) current_ypos#65 ) + (byte) current_orientation#52 ← phi( play_move_down::@10/(byte) current_orientation#63 play_move_down::@17/(byte) current_orientation#64 play_move_down::@3/(byte) current_orientation#65 ) + (byte) current_xpos#61 ← phi( play_move_down::@10/(byte) current_xpos#82 play_move_down::@17/(byte) current_xpos#83 play_move_down::@3/(byte) current_xpos#84 ) + (byte) current_ypos#51 ← phi( play_move_down::@10/(byte) current_ypos#64 play_move_down::@17/(byte) current_ypos#65 play_move_down::@3/(byte) current_ypos#66 ) (byte) play_move_down::movedown#9 ← phi( play_move_down::@10/(byte) play_move_down::movedown#2 play_move_down::@17/(byte) play_move_down::movedown#10 play_move_down::@3/(byte) play_move_down::movedown#11 ) (byte) current_movedown_slow#19 ← phi( play_move_down::@10/(byte) current_movedown_slow#33 play_move_down::@17/(byte) current_movedown_slow#34 play_move_down::@3/(byte) current_movedown_slow#35 ) (byte) current_movedown_counter#12 ← phi( play_move_down::@10/(byte) current_movedown_counter#21 play_move_down::@17/(byte) current_movedown_counter#22 play_move_down::@3/(byte) current_movedown_counter#23 ) @@ -1760,17 +1868,18 @@ play_move_down::@2: scope:[play_move_down] from play_move_down::@10 play_move_d if((bool~) play_move_down::$8) goto play_move_down::@4 to:play_move_down::@11 play_move_down::@9: scope:[play_move_down] from play_move_down::@17 - (byte) game_over#69 ← phi( play_move_down::@17/(byte) game_over#58 ) - (byte*) current_piece_gfx#92 ← phi( play_move_down::@17/(byte*) current_piece_gfx#81 ) - (byte) current_piece_char#80 ← phi( play_move_down::@17/(byte) current_piece_char#68 ) - (byte*) current_piece#75 ← phi( play_move_down::@17/(byte*) current_piece#67 ) + (byte) next_piece_idx#70 ← phi( play_move_down::@17/(byte) next_piece_idx#59 ) + (byte) game_over#74 ← phi( play_move_down::@17/(byte) game_over#61 ) + (byte*) current_piece_gfx#99 ← phi( play_move_down::@17/(byte*) current_piece_gfx#85 ) + (byte) current_piece_char#87 ← phi( play_move_down::@17/(byte) current_piece_char#71 ) + (byte*) current_piece#82 ← phi( play_move_down::@17/(byte*) current_piece#70 ) (byte) level_bcd#82 ← phi( play_move_down::@17/(byte) level_bcd#72 ) (byte) level#79 ← phi( play_move_down::@17/(byte) level#67 ) (dword) score_bcd#69 ← phi( play_move_down::@17/(dword) score_bcd#60 ) (word) lines_bcd#72 ← phi( play_move_down::@17/(word) lines_bcd#62 ) - (byte) current_orientation#74 ← phi( play_move_down::@17/(byte) current_orientation#63 ) - (byte) current_xpos#97 ← phi( play_move_down::@17/(byte) current_xpos#82 ) - (byte) current_ypos#74 ← phi( play_move_down::@17/(byte) current_ypos#64 ) + (byte) current_orientation#77 ← phi( play_move_down::@17/(byte) current_orientation#64 ) + (byte) current_xpos#101 ← phi( play_move_down::@17/(byte) current_xpos#83 ) + (byte) current_ypos#78 ← phi( play_move_down::@17/(byte) current_ypos#65 ) (byte) current_movedown_slow#49 ← phi( play_move_down::@17/(byte) current_movedown_slow#34 ) (byte) play_move_down::movedown#8 ← phi( play_move_down::@17/(byte) play_move_down::movedown#10 ) (byte) current_movedown_counter#13 ← phi( play_move_down::@17/(byte) current_movedown_counter#22 ) @@ -1779,166 +1888,176 @@ play_move_down::@9: scope:[play_move_down] from play_move_down::@17 if((bool~) play_move_down::$6) goto play_move_down::@3 to:play_move_down::@10 play_move_down::@3: scope:[play_move_down] from play_move_down::@9 - (byte) game_over#59 ← phi( play_move_down::@9/(byte) game_over#69 ) - (byte*) current_piece_gfx#82 ← phi( play_move_down::@9/(byte*) current_piece_gfx#92 ) - (byte) current_piece_char#69 ← phi( play_move_down::@9/(byte) current_piece_char#80 ) - (byte*) current_piece#68 ← phi( play_move_down::@9/(byte*) current_piece#75 ) + (byte) next_piece_idx#60 ← phi( play_move_down::@9/(byte) next_piece_idx#70 ) + (byte) game_over#62 ← phi( play_move_down::@9/(byte) game_over#74 ) + (byte*) current_piece_gfx#86 ← phi( play_move_down::@9/(byte*) current_piece_gfx#99 ) + (byte) current_piece_char#72 ← phi( play_move_down::@9/(byte) current_piece_char#87 ) + (byte*) current_piece#71 ← phi( play_move_down::@9/(byte*) current_piece#82 ) (byte) level_bcd#73 ← phi( play_move_down::@9/(byte) level_bcd#82 ) (byte) level#68 ← phi( play_move_down::@9/(byte) level#79 ) (dword) score_bcd#61 ← phi( play_move_down::@9/(dword) score_bcd#69 ) (word) lines_bcd#63 ← phi( play_move_down::@9/(word) lines_bcd#72 ) - (byte) current_orientation#64 ← phi( play_move_down::@9/(byte) current_orientation#74 ) - (byte) current_xpos#83 ← phi( play_move_down::@9/(byte) current_xpos#97 ) - (byte) current_ypos#65 ← phi( play_move_down::@9/(byte) current_ypos#74 ) + (byte) current_orientation#65 ← phi( play_move_down::@9/(byte) current_orientation#77 ) + (byte) current_xpos#84 ← phi( play_move_down::@9/(byte) current_xpos#101 ) + (byte) current_ypos#66 ← phi( play_move_down::@9/(byte) current_ypos#78 ) (byte) play_move_down::movedown#11 ← phi( play_move_down::@9/(byte) play_move_down::movedown#8 ) (byte) current_movedown_slow#35 ← phi( play_move_down::@9/(byte) current_movedown_slow#49 ) (byte) current_movedown_counter#23 ← phi( play_move_down::@9/(byte) current_movedown_counter#13 ) to:play_move_down::@2 play_move_down::@10: scope:[play_move_down] from play_move_down::@9 - (byte) game_over#57 ← phi( play_move_down::@9/(byte) game_over#69 ) - (byte*) current_piece_gfx#80 ← phi( play_move_down::@9/(byte*) current_piece_gfx#92 ) - (byte) current_piece_char#67 ← phi( play_move_down::@9/(byte) current_piece_char#80 ) - (byte*) current_piece#66 ← phi( play_move_down::@9/(byte*) current_piece#75 ) + (byte) next_piece_idx#58 ← phi( play_move_down::@9/(byte) next_piece_idx#70 ) + (byte) game_over#60 ← phi( play_move_down::@9/(byte) game_over#74 ) + (byte*) current_piece_gfx#84 ← phi( play_move_down::@9/(byte*) current_piece_gfx#99 ) + (byte) current_piece_char#70 ← phi( play_move_down::@9/(byte) current_piece_char#87 ) + (byte*) current_piece#69 ← phi( play_move_down::@9/(byte*) current_piece#82 ) (byte) level_bcd#71 ← phi( play_move_down::@9/(byte) level_bcd#82 ) (byte) level#66 ← phi( play_move_down::@9/(byte) level#79 ) (dword) score_bcd#59 ← phi( play_move_down::@9/(dword) score_bcd#69 ) (word) lines_bcd#61 ← phi( play_move_down::@9/(word) lines_bcd#72 ) - (byte) current_orientation#62 ← phi( play_move_down::@9/(byte) current_orientation#74 ) - (byte) current_xpos#81 ← phi( play_move_down::@9/(byte) current_xpos#97 ) - (byte) current_ypos#63 ← phi( play_move_down::@9/(byte) current_ypos#74 ) + (byte) current_orientation#63 ← phi( play_move_down::@9/(byte) current_orientation#77 ) + (byte) current_xpos#82 ← phi( play_move_down::@9/(byte) current_xpos#101 ) + (byte) current_ypos#64 ← phi( play_move_down::@9/(byte) current_ypos#78 ) (byte) current_movedown_slow#33 ← phi( play_move_down::@9/(byte) current_movedown_slow#49 ) (byte) current_movedown_counter#21 ← phi( play_move_down::@9/(byte) current_movedown_counter#13 ) (byte) play_move_down::movedown#5 ← phi( play_move_down::@9/(byte) play_move_down::movedown#8 ) (byte) play_move_down::movedown#2 ← ++ (byte) play_move_down::movedown#5 to:play_move_down::@2 play_move_down::@4: scope:[play_move_down] from play_move_down::@11 play_move_down::@2 - (byte) game_over#34 ← phi( play_move_down::@11/(byte) game_over#45 play_move_down::@2/(byte) game_over#46 ) - (byte*) current_piece_gfx#47 ← phi( play_move_down::@11/(byte*) current_piece_gfx#64 play_move_down::@2/(byte*) current_piece_gfx#65 ) - (byte) current_piece_char#38 ← phi( play_move_down::@11/(byte) current_piece_char#52 play_move_down::@2/(byte) current_piece_char#53 ) - (byte*) current_piece#40 ← phi( play_move_down::@11/(byte*) current_piece#55 play_move_down::@2/(byte*) current_piece#56 ) + (byte) next_piece_idx#38 ← phi( play_move_down::@11/(byte) next_piece_idx#50 play_move_down::@2/(byte) next_piece_idx#51 ) + (byte) game_over#36 ← phi( play_move_down::@11/(byte) game_over#47 play_move_down::@2/(byte) game_over#48 ) + (byte*) current_piece_gfx#48 ← phi( play_move_down::@11/(byte*) current_piece_gfx#65 play_move_down::@2/(byte*) current_piece_gfx#66 ) + (byte) current_piece_char#39 ← phi( play_move_down::@11/(byte) current_piece_char#53 play_move_down::@2/(byte) current_piece_char#54 ) + (byte*) current_piece#41 ← phi( play_move_down::@11/(byte*) current_piece#56 play_move_down::@2/(byte*) current_piece#57 ) (byte) level_bcd#44 ← phi( play_move_down::@11/(byte) level_bcd#59 play_move_down::@2/(byte) level_bcd#60 ) (byte) current_movedown_slow#50 ← phi( play_move_down::@11/(byte) current_movedown_slow#66 play_move_down::@2/(byte) current_movedown_slow#19 ) (byte) level#41 ← phi( play_move_down::@11/(byte) level#55 play_move_down::@2/(byte) level#56 ) (dword) score_bcd#37 ← phi( play_move_down::@11/(dword) score_bcd#49 play_move_down::@2/(dword) score_bcd#50 ) (word) lines_bcd#37 ← phi( play_move_down::@11/(word) lines_bcd#49 play_move_down::@2/(word) lines_bcd#50 ) (byte) current_movedown_counter#30 ← phi( play_move_down::@11/(byte) current_movedown_counter#38 play_move_down::@2/(byte) current_movedown_counter#12 ) - (byte) current_orientation#33 ← phi( play_move_down::@11/(byte) current_orientation#50 play_move_down::@2/(byte) current_orientation#51 ) - (byte) current_xpos#38 ← phi( play_move_down::@11/(byte) current_xpos#59 play_move_down::@2/(byte) current_xpos#60 ) - (byte) current_ypos#32 ← phi( play_move_down::@11/(byte) current_ypos#49 play_move_down::@2/(byte) current_ypos#50 ) + (byte) current_orientation#35 ← phi( play_move_down::@11/(byte) current_orientation#51 play_move_down::@2/(byte) current_orientation#52 ) + (byte) current_xpos#40 ← phi( play_move_down::@11/(byte) current_xpos#60 play_move_down::@2/(byte) current_xpos#61 ) + (byte) current_ypos#34 ← phi( play_move_down::@11/(byte) current_ypos#50 play_move_down::@2/(byte) current_ypos#51 ) (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#9 ) (bool~) play_move_down::$9 ← (byte) play_move_down::movedown#6 != (byte/signed byte/word/signed word/dword/signed dword) 0 (bool~) play_move_down::$10 ← ! (bool~) play_move_down::$9 if((bool~) play_move_down::$10) goto play_move_down::@5 to:play_move_down::@12 play_move_down::@11: scope:[play_move_down] from play_move_down::@2 - (byte) game_over#45 ← phi( play_move_down::@2/(byte) game_over#46 ) - (byte*) current_piece_gfx#64 ← phi( play_move_down::@2/(byte*) current_piece_gfx#65 ) - (byte) current_piece_char#52 ← phi( play_move_down::@2/(byte) current_piece_char#53 ) - (byte*) current_piece#55 ← phi( play_move_down::@2/(byte*) current_piece#56 ) + (byte) next_piece_idx#50 ← phi( play_move_down::@2/(byte) next_piece_idx#51 ) + (byte) game_over#47 ← phi( play_move_down::@2/(byte) game_over#48 ) + (byte*) current_piece_gfx#65 ← phi( play_move_down::@2/(byte*) current_piece_gfx#66 ) + (byte) current_piece_char#53 ← phi( play_move_down::@2/(byte) current_piece_char#54 ) + (byte*) current_piece#56 ← phi( play_move_down::@2/(byte*) current_piece#57 ) (byte) level_bcd#59 ← phi( play_move_down::@2/(byte) level_bcd#60 ) (byte) current_movedown_slow#66 ← phi( play_move_down::@2/(byte) current_movedown_slow#19 ) (byte) level#55 ← phi( play_move_down::@2/(byte) level#56 ) (dword) score_bcd#49 ← phi( play_move_down::@2/(dword) score_bcd#50 ) (word) lines_bcd#49 ← phi( play_move_down::@2/(word) lines_bcd#50 ) (byte) current_movedown_counter#38 ← phi( play_move_down::@2/(byte) current_movedown_counter#12 ) - (byte) current_orientation#50 ← phi( play_move_down::@2/(byte) current_orientation#51 ) - (byte) current_xpos#59 ← phi( play_move_down::@2/(byte) current_xpos#60 ) - (byte) current_ypos#49 ← phi( play_move_down::@2/(byte) current_ypos#50 ) + (byte) current_orientation#51 ← phi( play_move_down::@2/(byte) current_orientation#52 ) + (byte) current_xpos#60 ← phi( play_move_down::@2/(byte) current_xpos#61 ) + (byte) current_ypos#50 ← phi( play_move_down::@2/(byte) current_ypos#51 ) (byte) play_move_down::movedown#7 ← phi( play_move_down::@2/(byte) play_move_down::movedown#9 ) (byte) play_move_down::movedown#3 ← ++ (byte) play_move_down::movedown#7 to:play_move_down::@4 play_move_down::@5: scope:[play_move_down] from play_move_down::@4 - (byte) game_over#25 ← phi( play_move_down::@4/(byte) game_over#34 ) - (byte) current_xpos#40 ← phi( play_move_down::@4/(byte) current_xpos#38 ) - (byte*) current_piece_gfx#32 ← phi( play_move_down::@4/(byte*) current_piece_gfx#47 ) - (byte) current_orientation#35 ← phi( play_move_down::@4/(byte) current_orientation#33 ) - (byte) current_piece_char#26 ← phi( play_move_down::@4/(byte) current_piece_char#38 ) - (byte*) current_piece#26 ← phi( play_move_down::@4/(byte*) current_piece#40 ) + (byte) next_piece_idx#30 ← phi( play_move_down::@4/(byte) next_piece_idx#38 ) + (byte) game_over#27 ← phi( play_move_down::@4/(byte) game_over#36 ) + (byte) current_xpos#42 ← phi( play_move_down::@4/(byte) current_xpos#40 ) + (byte*) current_piece_gfx#34 ← phi( play_move_down::@4/(byte*) current_piece_gfx#48 ) + (byte) current_orientation#37 ← phi( play_move_down::@4/(byte) current_orientation#35 ) + (byte) current_piece_char#28 ← phi( play_move_down::@4/(byte) current_piece_char#39 ) + (byte*) current_piece#28 ← phi( play_move_down::@4/(byte*) current_piece#41 ) (byte) level_bcd#31 ← phi( play_move_down::@4/(byte) level_bcd#44 ) (byte) current_movedown_slow#37 ← phi( play_move_down::@4/(byte) current_movedown_slow#50 ) (byte) level#30 ← phi( play_move_down::@4/(byte) level#41 ) (dword) score_bcd#26 ← phi( play_move_down::@4/(dword) score_bcd#37 ) (word) lines_bcd#26 ← phi( play_move_down::@4/(word) lines_bcd#37 ) - (byte) current_ypos#35 ← phi( play_move_down::@4/(byte) current_ypos#32 ) + (byte) current_ypos#37 ← phi( play_move_down::@4/(byte) current_ypos#34 ) (byte) current_movedown_counter#24 ← phi( play_move_down::@4/(byte) current_movedown_counter#30 ) (byte) play_move_down::return#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:play_move_down::@return play_move_down::@12: scope:[play_move_down] from play_move_down::@4 - (byte) game_over#60 ← phi( play_move_down::@4/(byte) game_over#34 ) - (byte*) current_piece_gfx#83 ← phi( play_move_down::@4/(byte*) current_piece_gfx#47 ) - (byte) current_piece_char#70 ← phi( play_move_down::@4/(byte) current_piece_char#38 ) + (byte) next_piece_idx#61 ← phi( play_move_down::@4/(byte) next_piece_idx#38 ) + (byte) game_over#63 ← phi( play_move_down::@4/(byte) game_over#36 ) + (byte*) current_piece_gfx#87 ← phi( play_move_down::@4/(byte*) current_piece_gfx#48 ) + (byte) current_piece_char#73 ← phi( play_move_down::@4/(byte) current_piece_char#39 ) (byte) level_bcd#74 ← phi( play_move_down::@4/(byte) level_bcd#44 ) (byte) current_movedown_slow#75 ← phi( play_move_down::@4/(byte) current_movedown_slow#50 ) (byte) level#69 ← phi( play_move_down::@4/(byte) level#41 ) (dword) score_bcd#62 ← phi( play_move_down::@4/(dword) score_bcd#37 ) (word) lines_bcd#64 ← phi( play_move_down::@4/(word) lines_bcd#37 ) - (byte*) current_piece#29 ← phi( play_move_down::@4/(byte*) current_piece#40 ) - (byte) current_orientation#17 ← phi( play_move_down::@4/(byte) current_orientation#33 ) - (byte) current_xpos#18 ← phi( play_move_down::@4/(byte) current_xpos#38 ) - (byte) current_ypos#14 ← phi( play_move_down::@4/(byte) current_ypos#32 ) - (byte/signed word/word/dword/signed dword~) play_move_down::$11 ← (byte) current_ypos#14 + (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte) play_collision::xpos#0 ← (byte) current_xpos#18 + (byte*) current_piece#31 ← phi( play_move_down::@4/(byte*) current_piece#41 ) + (byte) current_orientation#18 ← phi( play_move_down::@4/(byte) current_orientation#35 ) + (byte) current_xpos#19 ← phi( play_move_down::@4/(byte) current_xpos#40 ) + (byte) current_ypos#15 ← phi( play_move_down::@4/(byte) current_ypos#34 ) + (byte/signed word/word/dword/signed dword~) play_move_down::$11 ← (byte) current_ypos#15 + (byte/signed byte/word/signed word/dword/signed dword) 1 + (byte) play_collision::xpos#0 ← (byte) current_xpos#19 (byte) play_collision::ypos#0 ← (byte/signed word/word/dword/signed dword~) play_move_down::$11 - (byte) play_collision::orientation#0 ← (byte) current_orientation#17 + (byte) play_collision::orientation#0 ← (byte) current_orientation#18 call play_collision (byte) play_collision::return#0 ← (byte) play_collision::return#5 to:play_move_down::@18 play_move_down::@18: scope:[play_move_down] from play_move_down::@12 - (byte) game_over#47 ← phi( play_move_down::@12/(byte) game_over#60 ) - (byte) current_xpos#84 ← phi( play_move_down::@12/(byte) current_xpos#18 ) - (byte*) current_piece_gfx#66 ← phi( play_move_down::@12/(byte*) current_piece_gfx#83 ) - (byte) current_orientation#65 ← phi( play_move_down::@12/(byte) current_orientation#17 ) - (byte) current_piece_char#54 ← phi( play_move_down::@12/(byte) current_piece_char#70 ) - (byte*) current_piece#57 ← phi( play_move_down::@12/(byte*) current_piece#29 ) + (byte) next_piece_idx#52 ← phi( play_move_down::@12/(byte) next_piece_idx#61 ) + (byte) game_over#49 ← phi( play_move_down::@12/(byte) game_over#63 ) + (byte) current_xpos#85 ← phi( play_move_down::@12/(byte) current_xpos#19 ) + (byte*) current_piece_gfx#67 ← phi( play_move_down::@12/(byte*) current_piece_gfx#87 ) + (byte) current_orientation#66 ← phi( play_move_down::@12/(byte) current_orientation#18 ) + (byte) current_piece_char#55 ← phi( play_move_down::@12/(byte) current_piece_char#73 ) + (byte*) current_piece#58 ← phi( play_move_down::@12/(byte*) current_piece#31 ) (byte) level_bcd#61 ← phi( play_move_down::@12/(byte) level_bcd#74 ) (byte) current_movedown_slow#67 ← phi( play_move_down::@12/(byte) current_movedown_slow#75 ) (byte) level#57 ← phi( play_move_down::@12/(byte) level#69 ) (dword) score_bcd#51 ← phi( play_move_down::@12/(dword) score_bcd#62 ) (word) lines_bcd#51 ← phi( play_move_down::@12/(word) lines_bcd#64 ) - (byte) current_ypos#33 ← phi( play_move_down::@12/(byte) current_ypos#14 ) + (byte) current_ypos#35 ← phi( play_move_down::@12/(byte) current_ypos#15 ) (byte) play_collision::return#11 ← phi( play_move_down::@12/(byte) play_collision::return#0 ) (byte~) play_move_down::$12 ← (byte) play_collision::return#11 (bool~) play_move_down::$13 ← (byte~) play_move_down::$12 == (byte) COLLISION_NONE#0 if((bool~) play_move_down::$13) goto play_move_down::@6 to:play_move_down::@13 play_move_down::@6: scope:[play_move_down] from play_move_down::@18 - (byte) game_over#36 ← phi( play_move_down::@18/(byte) game_over#47 ) - (byte) current_xpos#62 ← phi( play_move_down::@18/(byte) current_xpos#84 ) - (byte*) current_piece_gfx#49 ← phi( play_move_down::@18/(byte*) current_piece_gfx#66 ) - (byte) current_orientation#53 ← phi( play_move_down::@18/(byte) current_orientation#65 ) - (byte) current_piece_char#40 ← phi( play_move_down::@18/(byte) current_piece_char#54 ) - (byte*) current_piece#42 ← phi( play_move_down::@18/(byte*) current_piece#57 ) + (byte) next_piece_idx#40 ← phi( play_move_down::@18/(byte) next_piece_idx#52 ) + (byte) game_over#38 ← phi( play_move_down::@18/(byte) game_over#49 ) + (byte) current_xpos#63 ← phi( play_move_down::@18/(byte) current_xpos#85 ) + (byte*) current_piece_gfx#50 ← phi( play_move_down::@18/(byte*) current_piece_gfx#67 ) + (byte) current_orientation#54 ← phi( play_move_down::@18/(byte) current_orientation#66 ) + (byte) current_piece_char#41 ← phi( play_move_down::@18/(byte) current_piece_char#55 ) + (byte*) current_piece#43 ← phi( play_move_down::@18/(byte*) current_piece#58 ) (byte) level_bcd#47 ← phi( play_move_down::@18/(byte) level_bcd#61 ) (byte) current_movedown_slow#53 ← phi( play_move_down::@18/(byte) current_movedown_slow#67 ) (byte) level#44 ← phi( play_move_down::@18/(byte) level#57 ) (dword) score_bcd#40 ← phi( play_move_down::@18/(dword) score_bcd#51 ) (word) lines_bcd#40 ← phi( play_move_down::@18/(word) lines_bcd#51 ) - (byte) current_ypos#15 ← phi( play_move_down::@18/(byte) current_ypos#33 ) - (byte) current_ypos#2 ← ++ (byte) current_ypos#15 + (byte) current_ypos#16 ← phi( play_move_down::@18/(byte) current_ypos#35 ) + (byte) current_ypos#2 ← ++ (byte) current_ypos#16 to:play_move_down::@7 play_move_down::@13: scope:[play_move_down] from play_move_down::@18 - (byte) game_over#61 ← phi( play_move_down::@18/(byte) game_over#47 ) - (byte) current_orientation#75 ← phi( play_move_down::@18/(byte) current_orientation#65 ) - (byte) current_piece_char#71 ← phi( play_move_down::@18/(byte) current_piece_char#54 ) - (byte*) current_piece#69 ← phi( play_move_down::@18/(byte*) current_piece#57 ) - (byte*) current_piece_gfx#71 ← phi( play_move_down::@18/(byte*) current_piece_gfx#66 ) + (byte) next_piece_idx#62 ← phi( play_move_down::@18/(byte) next_piece_idx#52 ) + (byte) game_over#64 ← phi( play_move_down::@18/(byte) game_over#49 ) + (byte) current_orientation#78 ← phi( play_move_down::@18/(byte) current_orientation#66 ) + (byte) current_piece_char#74 ← phi( play_move_down::@18/(byte) current_piece_char#55 ) + (byte*) current_piece#72 ← phi( play_move_down::@18/(byte*) current_piece#58 ) + (byte*) current_piece_gfx#72 ← phi( play_move_down::@18/(byte*) current_piece_gfx#67 ) (byte) level_bcd#62 ← phi( play_move_down::@18/(byte) level_bcd#61 ) (byte) current_movedown_slow#68 ← phi( play_move_down::@18/(byte) current_movedown_slow#67 ) (byte) level#58 ← phi( play_move_down::@18/(byte) level#57 ) (dword) score_bcd#52 ← phi( play_move_down::@18/(dword) score_bcd#51 ) (word) lines_bcd#52 ← phi( play_move_down::@18/(word) lines_bcd#51 ) - (byte) current_xpos#68 ← phi( play_move_down::@18/(byte) current_xpos#84 ) - (byte) current_ypos#41 ← phi( play_move_down::@18/(byte) current_ypos#33 ) + (byte) current_xpos#69 ← phi( play_move_down::@18/(byte) current_xpos#85 ) + (byte) current_ypos#43 ← phi( play_move_down::@18/(byte) current_ypos#35 ) call play_lock_current to:play_move_down::@19 play_move_down::@19: scope:[play_move_down] from play_move_down::@13 - (byte) game_over#48 ← phi( play_move_down::@13/(byte) game_over#61 ) - (byte) current_ypos#66 ← phi( play_move_down::@13/(byte) current_ypos#41 ) - (byte) current_xpos#85 ← phi( play_move_down::@13/(byte) current_xpos#68 ) - (byte*) current_piece_gfx#67 ← phi( play_move_down::@13/(byte*) current_piece_gfx#71 ) - (byte) current_orientation#66 ← phi( play_move_down::@13/(byte) current_orientation#75 ) - (byte) current_piece_char#55 ← phi( play_move_down::@13/(byte) current_piece_char#71 ) - (byte*) current_piece#58 ← phi( play_move_down::@13/(byte*) current_piece#69 ) + (byte) next_piece_idx#53 ← phi( play_move_down::@13/(byte) next_piece_idx#62 ) + (byte) game_over#50 ← phi( play_move_down::@13/(byte) game_over#64 ) + (byte) current_ypos#67 ← phi( play_move_down::@13/(byte) current_ypos#43 ) + (byte) current_xpos#86 ← phi( play_move_down::@13/(byte) current_xpos#69 ) + (byte*) current_piece_gfx#68 ← phi( play_move_down::@13/(byte*) current_piece_gfx#72 ) + (byte) current_orientation#67 ← phi( play_move_down::@13/(byte) current_orientation#78 ) + (byte) current_piece_char#56 ← phi( play_move_down::@13/(byte) current_piece_char#74 ) + (byte*) current_piece#59 ← phi( play_move_down::@13/(byte*) current_piece#72 ) (byte) level_bcd#45 ← phi( play_move_down::@13/(byte) level_bcd#62 ) (byte) current_movedown_slow#51 ← phi( play_move_down::@13/(byte) current_movedown_slow#68 ) (byte) level#42 ← phi( play_move_down::@13/(byte) level#58 ) @@ -1948,13 +2067,14 @@ play_move_down::@19: scope:[play_move_down] from play_move_down::@13 (byte) play_remove_lines::return#0 ← (byte) play_remove_lines::return#2 to:play_move_down::@20 play_move_down::@20: scope:[play_move_down] from play_move_down::@19 - (byte) game_over#35 ← phi( play_move_down::@19/(byte) game_over#48 ) - (byte) current_ypos#51 ← phi( play_move_down::@19/(byte) current_ypos#66 ) - (byte) current_xpos#61 ← phi( play_move_down::@19/(byte) current_xpos#85 ) - (byte*) current_piece_gfx#48 ← phi( play_move_down::@19/(byte*) current_piece_gfx#67 ) - (byte) current_orientation#52 ← phi( play_move_down::@19/(byte) current_orientation#66 ) - (byte) current_piece_char#39 ← phi( play_move_down::@19/(byte) current_piece_char#55 ) - (byte*) current_piece#41 ← phi( play_move_down::@19/(byte*) current_piece#58 ) + (byte) next_piece_idx#39 ← phi( play_move_down::@19/(byte) next_piece_idx#53 ) + (byte) game_over#37 ← phi( play_move_down::@19/(byte) game_over#50 ) + (byte) current_ypos#52 ← phi( play_move_down::@19/(byte) current_ypos#67 ) + (byte) current_xpos#62 ← phi( play_move_down::@19/(byte) current_xpos#86 ) + (byte*) current_piece_gfx#49 ← phi( play_move_down::@19/(byte*) current_piece_gfx#68 ) + (byte) current_orientation#53 ← phi( play_move_down::@19/(byte) current_orientation#67 ) + (byte) current_piece_char#40 ← phi( play_move_down::@19/(byte) current_piece_char#56 ) + (byte*) current_piece#42 ← phi( play_move_down::@19/(byte*) current_piece#59 ) (byte) level_bcd#30 ← phi( play_move_down::@19/(byte) level_bcd#45 ) (byte) current_movedown_slow#36 ← phi( play_move_down::@19/(byte) current_movedown_slow#51 ) (byte) level#29 ← phi( play_move_down::@19/(byte) level#42 ) @@ -1967,13 +2087,14 @@ play_move_down::@20: scope:[play_move_down] from play_move_down::@19 call play_update_score to:play_move_down::@21 play_move_down::@21: scope:[play_move_down] from play_move_down::@20 - (byte) game_over#24 ← phi( play_move_down::@20/(byte) game_over#35 ) - (byte) current_ypos#34 ← phi( play_move_down::@20/(byte) current_ypos#51 ) - (byte) current_xpos#39 ← phi( play_move_down::@20/(byte) current_xpos#61 ) - (byte*) current_piece_gfx#31 ← phi( play_move_down::@20/(byte*) current_piece_gfx#48 ) - (byte) current_orientation#34 ← phi( play_move_down::@20/(byte) current_orientation#52 ) - (byte) current_piece_char#25 ← phi( play_move_down::@20/(byte) current_piece_char#39 ) - (byte*) current_piece#25 ← phi( play_move_down::@20/(byte*) current_piece#41 ) + (byte) next_piece_idx#29 ← phi( play_move_down::@20/(byte) next_piece_idx#39 ) + (byte) game_over#26 ← phi( play_move_down::@20/(byte) game_over#37 ) + (byte) current_ypos#36 ← phi( play_move_down::@20/(byte) current_ypos#52 ) + (byte) current_xpos#41 ← phi( play_move_down::@20/(byte) current_xpos#62 ) + (byte*) current_piece_gfx#33 ← phi( play_move_down::@20/(byte*) current_piece_gfx#49 ) + (byte) current_orientation#36 ← phi( play_move_down::@20/(byte) current_orientation#53 ) + (byte) current_piece_char#27 ← phi( play_move_down::@20/(byte) current_piece_char#40 ) + (byte*) current_piece#27 ← phi( play_move_down::@20/(byte*) current_piece#42 ) (byte) level_bcd#16 ← phi( play_move_down::@20/(byte) level_bcd#6 ) (byte) current_movedown_slow#20 ← phi( play_move_down::@20/(byte) current_movedown_slow#8 ) (byte) level#15 ← phi( play_move_down::@20/(byte) level#6 ) @@ -1992,91 +2113,96 @@ play_move_down::@22: scope:[play_move_down] from play_move_down::@21 (byte) level#43 ← phi( play_move_down::@21/(byte) level#3 ) (dword) score_bcd#39 ← phi( play_move_down::@21/(dword) score_bcd#3 ) (word) lines_bcd#39 ← phi( play_move_down::@21/(word) lines_bcd#3 ) - (byte) game_over#13 ← phi( play_move_down::@21/(byte) game_over#6 ) - (byte) current_ypos#16 ← phi( play_move_down::@21/(byte) current_ypos#6 ) - (byte) current_xpos#19 ← phi( play_move_down::@21/(byte) current_xpos#9 ) - (byte*) current_piece_gfx#17 ← phi( play_move_down::@21/(byte*) current_piece_gfx#8 ) - (byte) current_orientation#18 ← phi( play_move_down::@21/(byte) current_orientation#9 ) - (byte) current_piece_char#13 ← phi( play_move_down::@21/(byte) current_piece_char#5 ) - (byte*) current_piece#13 ← phi( play_move_down::@21/(byte*) current_piece#6 ) - (byte*) current_piece#3 ← (byte*) current_piece#13 - (byte) current_piece_char#2 ← (byte) current_piece_char#13 - (byte) current_orientation#4 ← (byte) current_orientation#18 - (byte*) current_piece_gfx#3 ← (byte*) current_piece_gfx#17 - (byte) current_xpos#3 ← (byte) current_xpos#19 - (byte) current_ypos#3 ← (byte) current_ypos#16 - (byte) game_over#3 ← (byte) game_over#13 + (byte) next_piece_idx#15 ← phi( play_move_down::@21/(byte) next_piece_idx#6 ) + (byte) game_over#14 ← phi( play_move_down::@21/(byte) game_over#6 ) + (byte) current_ypos#17 ← phi( play_move_down::@21/(byte) current_ypos#6 ) + (byte) current_xpos#20 ← phi( play_move_down::@21/(byte) current_xpos#9 ) + (byte*) current_piece_gfx#18 ← phi( play_move_down::@21/(byte*) current_piece_gfx#8 ) + (byte) current_orientation#19 ← phi( play_move_down::@21/(byte) current_orientation#9 ) + (byte) current_piece_char#14 ← phi( play_move_down::@21/(byte) current_piece_char#5 ) + (byte*) current_piece#14 ← phi( play_move_down::@21/(byte*) current_piece#6 ) + (byte*) current_piece#3 ← (byte*) current_piece#14 + (byte) current_piece_char#2 ← (byte) current_piece_char#14 + (byte) current_orientation#4 ← (byte) current_orientation#19 + (byte*) current_piece_gfx#3 ← (byte*) current_piece_gfx#18 + (byte) current_xpos#3 ← (byte) current_xpos#20 + (byte) current_ypos#3 ← (byte) current_ypos#17 + (byte) game_over#3 ← (byte) game_over#14 + (byte) next_piece_idx#3 ← (byte) next_piece_idx#15 to:play_move_down::@7 play_move_down::@7: scope:[play_move_down] from play_move_down::@22 play_move_down::@6 - (byte) game_over#26 ← phi( play_move_down::@22/(byte) game_over#3 play_move_down::@6/(byte) game_over#36 ) - (byte) current_xpos#41 ← phi( play_move_down::@22/(byte) current_xpos#3 play_move_down::@6/(byte) current_xpos#62 ) - (byte*) current_piece_gfx#33 ← phi( play_move_down::@22/(byte*) current_piece_gfx#3 play_move_down::@6/(byte*) current_piece_gfx#49 ) - (byte) current_orientation#36 ← phi( play_move_down::@22/(byte) current_orientation#4 play_move_down::@6/(byte) current_orientation#53 ) - (byte) current_piece_char#27 ← phi( play_move_down::@22/(byte) current_piece_char#2 play_move_down::@6/(byte) current_piece_char#40 ) - (byte*) current_piece#27 ← phi( play_move_down::@22/(byte*) current_piece#3 play_move_down::@6/(byte*) current_piece#42 ) + (byte) next_piece_idx#31 ← phi( play_move_down::@22/(byte) next_piece_idx#3 play_move_down::@6/(byte) next_piece_idx#40 ) + (byte) game_over#28 ← phi( play_move_down::@22/(byte) game_over#3 play_move_down::@6/(byte) game_over#38 ) + (byte) current_xpos#43 ← phi( play_move_down::@22/(byte) current_xpos#3 play_move_down::@6/(byte) current_xpos#63 ) + (byte*) current_piece_gfx#35 ← phi( play_move_down::@22/(byte*) current_piece_gfx#3 play_move_down::@6/(byte*) current_piece_gfx#50 ) + (byte) current_orientation#38 ← phi( play_move_down::@22/(byte) current_orientation#4 play_move_down::@6/(byte) current_orientation#54 ) + (byte) current_piece_char#29 ← phi( play_move_down::@22/(byte) current_piece_char#2 play_move_down::@6/(byte) current_piece_char#41 ) + (byte*) current_piece#29 ← phi( play_move_down::@22/(byte*) current_piece#3 play_move_down::@6/(byte*) current_piece#43 ) (byte) level_bcd#32 ← phi( play_move_down::@22/(byte) level_bcd#46 play_move_down::@6/(byte) level_bcd#47 ) (byte) current_movedown_slow#38 ← phi( play_move_down::@22/(byte) current_movedown_slow#52 play_move_down::@6/(byte) current_movedown_slow#53 ) (byte) level#31 ← phi( play_move_down::@22/(byte) level#43 play_move_down::@6/(byte) level#44 ) (dword) score_bcd#27 ← phi( play_move_down::@22/(dword) score_bcd#39 play_move_down::@6/(dword) score_bcd#40 ) (word) lines_bcd#27 ← phi( play_move_down::@22/(word) lines_bcd#39 play_move_down::@6/(word) lines_bcd#40 ) - (byte) current_ypos#36 ← phi( play_move_down::@22/(byte) current_ypos#3 play_move_down::@6/(byte) current_ypos#2 ) + (byte) current_ypos#38 ← phi( play_move_down::@22/(byte) current_ypos#3 play_move_down::@6/(byte) current_ypos#2 ) (byte) current_movedown_counter#4 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte) play_move_down::return#2 ← (byte/signed byte/word/signed word/dword/signed dword) 1 to:play_move_down::@return play_move_down::@return: scope:[play_move_down] from play_move_down::@5 play_move_down::@7 - (byte) game_over#14 ← phi( play_move_down::@5/(byte) game_over#25 play_move_down::@7/(byte) game_over#26 ) - (byte) current_xpos#20 ← phi( play_move_down::@5/(byte) current_xpos#40 play_move_down::@7/(byte) current_xpos#41 ) - (byte*) current_piece_gfx#18 ← phi( play_move_down::@5/(byte*) current_piece_gfx#32 play_move_down::@7/(byte*) current_piece_gfx#33 ) - (byte) current_orientation#19 ← phi( play_move_down::@5/(byte) current_orientation#35 play_move_down::@7/(byte) current_orientation#36 ) - (byte) current_piece_char#14 ← phi( play_move_down::@5/(byte) current_piece_char#26 play_move_down::@7/(byte) current_piece_char#27 ) - (byte*) current_piece#14 ← phi( play_move_down::@5/(byte*) current_piece#26 play_move_down::@7/(byte*) current_piece#27 ) + (byte) next_piece_idx#16 ← phi( play_move_down::@5/(byte) next_piece_idx#30 play_move_down::@7/(byte) next_piece_idx#31 ) + (byte) game_over#15 ← phi( play_move_down::@5/(byte) game_over#27 play_move_down::@7/(byte) game_over#28 ) + (byte) current_xpos#21 ← phi( play_move_down::@5/(byte) current_xpos#42 play_move_down::@7/(byte) current_xpos#43 ) + (byte*) current_piece_gfx#19 ← phi( play_move_down::@5/(byte*) current_piece_gfx#34 play_move_down::@7/(byte*) current_piece_gfx#35 ) + (byte) current_orientation#20 ← phi( play_move_down::@5/(byte) current_orientation#37 play_move_down::@7/(byte) current_orientation#38 ) + (byte) current_piece_char#15 ← phi( play_move_down::@5/(byte) current_piece_char#28 play_move_down::@7/(byte) current_piece_char#29 ) + (byte*) current_piece#15 ← phi( play_move_down::@5/(byte*) current_piece#28 play_move_down::@7/(byte*) current_piece#29 ) (byte) level_bcd#17 ← phi( play_move_down::@5/(byte) level_bcd#31 play_move_down::@7/(byte) level_bcd#32 ) (byte) current_movedown_slow#21 ← phi( play_move_down::@5/(byte) current_movedown_slow#37 play_move_down::@7/(byte) current_movedown_slow#38 ) (byte) level#16 ← phi( play_move_down::@5/(byte) level#30 play_move_down::@7/(byte) level#31 ) (dword) score_bcd#14 ← phi( play_move_down::@5/(dword) score_bcd#26 play_move_down::@7/(dword) score_bcd#27 ) (word) lines_bcd#15 ← phi( play_move_down::@5/(word) lines_bcd#26 play_move_down::@7/(word) lines_bcd#27 ) - (byte) current_ypos#17 ← phi( play_move_down::@5/(byte) current_ypos#35 play_move_down::@7/(byte) current_ypos#36 ) + (byte) current_ypos#18 ← phi( play_move_down::@5/(byte) current_ypos#37 play_move_down::@7/(byte) current_ypos#38 ) (byte) current_movedown_counter#14 ← phi( play_move_down::@5/(byte) current_movedown_counter#24 play_move_down::@7/(byte) current_movedown_counter#4 ) (byte) play_move_down::return#5 ← phi( play_move_down::@5/(byte) play_move_down::return#1 play_move_down::@7/(byte) play_move_down::return#2 ) (byte) play_move_down::return#3 ← (byte) play_move_down::return#5 (byte) current_movedown_counter#5 ← (byte) current_movedown_counter#14 - (byte) current_ypos#4 ← (byte) current_ypos#17 + (byte) current_ypos#4 ← (byte) current_ypos#18 (word) lines_bcd#4 ← (word) lines_bcd#15 (dword) score_bcd#4 ← (dword) score_bcd#14 (byte) level#4 ← (byte) level#16 (byte) current_movedown_slow#6 ← (byte) current_movedown_slow#21 (byte) level_bcd#4 ← (byte) level_bcd#17 - (byte*) current_piece#4 ← (byte*) current_piece#14 - (byte) current_piece_char#3 ← (byte) current_piece_char#14 - (byte) current_orientation#5 ← (byte) current_orientation#19 - (byte*) current_piece_gfx#4 ← (byte*) current_piece_gfx#18 - (byte) current_xpos#4 ← (byte) current_xpos#20 - (byte) game_over#4 ← (byte) game_over#14 + (byte*) current_piece#4 ← (byte*) current_piece#15 + (byte) current_piece_char#3 ← (byte) current_piece_char#15 + (byte) current_orientation#5 ← (byte) current_orientation#20 + (byte*) current_piece_gfx#4 ← (byte*) current_piece_gfx#19 + (byte) current_xpos#4 ← (byte) current_xpos#21 + (byte) game_over#4 ← (byte) game_over#15 + (byte) next_piece_idx#4 ← (byte) next_piece_idx#16 return to:@return play_move_leftright: scope:[play_move_leftright] from play_movement::@1 - (byte*) current_piece#43 ← phi( play_movement::@1/(byte*) current_piece#54 ) - (byte) current_orientation#37 ← phi( play_movement::@1/(byte) current_orientation#49 ) - (byte) current_ypos#37 ← phi( play_movement::@1/(byte) current_ypos#52 ) - (byte) current_xpos#42 ← phi( play_movement::@1/(byte) current_xpos#35 ) + (byte*) current_piece#44 ← phi( play_movement::@1/(byte*) current_piece#55 ) + (byte) current_orientation#39 ← phi( play_movement::@1/(byte) current_orientation#50 ) + (byte) current_ypos#39 ← phi( play_movement::@1/(byte) current_ypos#53 ) + (byte) current_xpos#44 ← phi( play_movement::@1/(byte) current_xpos#37 ) (byte) play_move_leftright::key_event#1 ← phi( play_movement::@1/(byte) play_move_leftright::key_event#0 ) (bool~) play_move_leftright::$0 ← (byte) play_move_leftright::key_event#1 == (byte) KEY_COMMA#0 if((bool~) play_move_leftright::$0) goto play_move_leftright::@1 to:play_move_leftright::@6 play_move_leftright::@1: scope:[play_move_leftright] from play_move_leftright - (byte*) current_piece#30 ← phi( play_move_leftright/(byte*) current_piece#43 ) - (byte) current_orientation#20 ← phi( play_move_leftright/(byte) current_orientation#37 ) - (byte) current_ypos#18 ← phi( play_move_leftright/(byte) current_ypos#37 ) - (byte) current_xpos#21 ← phi( play_move_leftright/(byte) current_xpos#42 ) - (byte/signed word/word/dword/signed dword~) play_move_leftright::$7 ← (byte) current_xpos#21 - (byte/signed byte/word/signed word/dword/signed dword) 1 + (byte*) current_piece#32 ← phi( play_move_leftright/(byte*) current_piece#44 ) + (byte) current_orientation#21 ← phi( play_move_leftright/(byte) current_orientation#39 ) + (byte) current_ypos#19 ← phi( play_move_leftright/(byte) current_ypos#39 ) + (byte) current_xpos#22 ← phi( play_move_leftright/(byte) current_xpos#44 ) + (byte/signed word/word/dword/signed dword~) play_move_leftright::$7 ← (byte) current_xpos#22 - (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) play_collision::xpos#1 ← (byte/signed word/word/dword/signed dword~) play_move_leftright::$7 - (byte) play_collision::ypos#1 ← (byte) current_ypos#18 - (byte) play_collision::orientation#1 ← (byte) current_orientation#20 + (byte) play_collision::ypos#1 ← (byte) current_ypos#19 + (byte) play_collision::orientation#1 ← (byte) current_orientation#21 call play_collision (byte) play_collision::return#1 ← (byte) play_collision::return#5 to:play_move_leftright::@14 play_move_leftright::@14: scope:[play_move_leftright] from play_move_leftright::@1 - (byte) current_xpos#46 ← phi( play_move_leftright::@1/(byte) current_xpos#21 ) + (byte) current_xpos#48 ← phi( play_move_leftright::@1/(byte) current_xpos#22 ) (byte) play_collision::return#12 ← phi( play_move_leftright::@1/(byte) play_collision::return#1 ) (byte~) play_move_leftright::$8 ← (byte) play_collision::return#12 (bool~) play_move_leftright::$9 ← (byte~) play_move_leftright::$8 == (byte) COLLISION_NONE#0 @@ -2084,32 +2210,32 @@ play_move_leftright::@14: scope:[play_move_leftright] from play_move_leftright: if((bool~) play_move_leftright::$10) goto play_move_leftright::@5 to:play_move_leftright::@11 play_move_leftright::@6: scope:[play_move_leftright] from play_move_leftright - (byte*) current_piece#44 ← phi( play_move_leftright/(byte*) current_piece#43 ) - (byte) current_orientation#38 ← phi( play_move_leftright/(byte) current_orientation#37 ) - (byte) current_ypos#38 ← phi( play_move_leftright/(byte) current_ypos#37 ) - (byte) current_xpos#43 ← phi( play_move_leftright/(byte) current_xpos#42 ) + (byte*) current_piece#45 ← phi( play_move_leftright/(byte*) current_piece#44 ) + (byte) current_orientation#40 ← phi( play_move_leftright/(byte) current_orientation#39 ) + (byte) current_ypos#40 ← phi( play_move_leftright/(byte) current_ypos#39 ) + (byte) current_xpos#45 ← phi( play_move_leftright/(byte) current_xpos#44 ) (byte) play_move_leftright::key_event#2 ← phi( play_move_leftright/(byte) play_move_leftright::key_event#1 ) (bool~) play_move_leftright::$1 ← (byte) play_move_leftright::key_event#2 == (byte) KEY_DOT#0 (bool~) play_move_leftright::$2 ← ! (bool~) play_move_leftright::$1 if((bool~) play_move_leftright::$2) goto play_move_leftright::@2 to:play_move_leftright::@7 play_move_leftright::@2: scope:[play_move_leftright] from play_move_leftright::@6 - (byte) current_xpos#63 ← phi( play_move_leftright::@6/(byte) current_xpos#43 ) + (byte) current_xpos#64 ← phi( play_move_leftright::@6/(byte) current_xpos#45 ) to:play_move_leftright::@4 play_move_leftright::@7: scope:[play_move_leftright] from play_move_leftright::@6 - (byte*) current_piece#31 ← phi( play_move_leftright::@6/(byte*) current_piece#44 ) - (byte) current_orientation#21 ← phi( play_move_leftright::@6/(byte) current_orientation#38 ) - (byte) current_ypos#19 ← phi( play_move_leftright::@6/(byte) current_ypos#38 ) - (byte) current_xpos#22 ← phi( play_move_leftright::@6/(byte) current_xpos#43 ) - (byte/signed word/word/dword/signed dword~) play_move_leftright::$3 ← (byte) current_xpos#22 + (byte/signed byte/word/signed word/dword/signed dword) 1 + (byte*) current_piece#33 ← phi( play_move_leftright::@6/(byte*) current_piece#45 ) + (byte) current_orientation#22 ← phi( play_move_leftright::@6/(byte) current_orientation#40 ) + (byte) current_ypos#20 ← phi( play_move_leftright::@6/(byte) current_ypos#40 ) + (byte) current_xpos#23 ← phi( play_move_leftright::@6/(byte) current_xpos#45 ) + (byte/signed word/word/dword/signed dword~) play_move_leftright::$3 ← (byte) current_xpos#23 + (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) play_collision::xpos#2 ← (byte/signed word/word/dword/signed dword~) play_move_leftright::$3 - (byte) play_collision::ypos#2 ← (byte) current_ypos#19 - (byte) play_collision::orientation#2 ← (byte) current_orientation#21 + (byte) play_collision::ypos#2 ← (byte) current_ypos#20 + (byte) play_collision::orientation#2 ← (byte) current_orientation#22 call play_collision (byte) play_collision::return#2 ← (byte) play_collision::return#5 to:play_move_leftright::@15 play_move_leftright::@15: scope:[play_move_leftright] from play_move_leftright::@7 - (byte) current_xpos#44 ← phi( play_move_leftright::@7/(byte) current_xpos#22 ) + (byte) current_xpos#46 ← phi( play_move_leftright::@7/(byte) current_xpos#23 ) (byte) play_collision::return#13 ← phi( play_move_leftright::@7/(byte) play_collision::return#2 ) (byte~) play_move_leftright::$4 ← (byte) play_collision::return#13 (bool~) play_move_leftright::$5 ← (byte~) play_move_leftright::$4 == (byte) COLLISION_NONE#0 @@ -2117,104 +2243,104 @@ play_move_leftright::@15: scope:[play_move_leftright] from play_move_leftright: if((bool~) play_move_leftright::$6) goto play_move_leftright::@3 to:play_move_leftright::@8 play_move_leftright::@3: scope:[play_move_leftright] from play_move_leftright::@15 - (byte) current_xpos#64 ← phi( play_move_leftright::@15/(byte) current_xpos#44 ) + (byte) current_xpos#65 ← phi( play_move_leftright::@15/(byte) current_xpos#46 ) to:play_move_leftright::@4 play_move_leftright::@8: scope:[play_move_leftright] from play_move_leftright::@15 - (byte) current_xpos#23 ← phi( play_move_leftright::@15/(byte) current_xpos#44 ) - (byte) current_xpos#5 ← ++ (byte) current_xpos#23 + (byte) current_xpos#24 ← phi( play_move_leftright::@15/(byte) current_xpos#46 ) + (byte) current_xpos#5 ← ++ (byte) current_xpos#24 (byte) play_move_leftright::return#1 ← (byte/signed byte/word/signed word/dword/signed dword) 1 to:play_move_leftright::@return play_move_leftright::@return: scope:[play_move_leftright] from play_move_leftright::@11 play_move_leftright::@4 play_move_leftright::@8 - (byte) current_xpos#24 ← phi( play_move_leftright::@11/(byte) current_xpos#7 play_move_leftright::@4/(byte) current_xpos#45 play_move_leftright::@8/(byte) current_xpos#5 ) + (byte) current_xpos#25 ← phi( play_move_leftright::@11/(byte) current_xpos#7 play_move_leftright::@4/(byte) current_xpos#47 play_move_leftright::@8/(byte) current_xpos#5 ) (byte) play_move_leftright::return#6 ← phi( play_move_leftright::@11/(byte) play_move_leftright::return#4 play_move_leftright::@4/(byte) play_move_leftright::return#3 play_move_leftright::@8/(byte) play_move_leftright::return#1 ) (byte) play_move_leftright::return#2 ← (byte) play_move_leftright::return#6 - (byte) current_xpos#6 ← (byte) current_xpos#24 + (byte) current_xpos#6 ← (byte) current_xpos#25 return to:@return play_move_leftright::@4: scope:[play_move_leftright] from play_move_leftright::@2 play_move_leftright::@3 play_move_leftright::@5 - (byte) current_xpos#45 ← phi( play_move_leftright::@2/(byte) current_xpos#63 play_move_leftright::@3/(byte) current_xpos#64 play_move_leftright::@5/(byte) current_xpos#65 ) + (byte) current_xpos#47 ← phi( play_move_leftright::@2/(byte) current_xpos#64 play_move_leftright::@3/(byte) current_xpos#65 play_move_leftright::@5/(byte) current_xpos#66 ) (byte) play_move_leftright::return#3 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:play_move_leftright::@return play_move_leftright::@5: scope:[play_move_leftright] from play_move_leftright::@14 - (byte) current_xpos#65 ← phi( play_move_leftright::@14/(byte) current_xpos#46 ) + (byte) current_xpos#66 ← phi( play_move_leftright::@14/(byte) current_xpos#48 ) to:play_move_leftright::@4 play_move_leftright::@11: scope:[play_move_leftright] from play_move_leftright::@14 - (byte) current_xpos#25 ← phi( play_move_leftright::@14/(byte) current_xpos#46 ) - (byte) current_xpos#7 ← -- (byte) current_xpos#25 + (byte) current_xpos#26 ← phi( play_move_leftright::@14/(byte) current_xpos#48 ) + (byte) current_xpos#7 ← -- (byte) current_xpos#26 (byte) play_move_leftright::return#4 ← (byte/signed byte/word/signed word/dword/signed dword) 1 to:play_move_leftright::@return play_move_rotate: scope:[play_move_rotate] from play_movement::@6 - (byte*) current_piece_gfx#68 ← phi( play_movement::@6/(byte*) current_piece_gfx#29 ) - (byte*) current_piece#59 ← phi( play_movement::@6/(byte*) current_piece#39 ) - (byte) current_ypos#53 ← phi( play_movement::@6/(byte) current_ypos#48 ) - (byte) current_xpos#66 ← phi( play_movement::@6/(byte) current_xpos#1 ) - (byte) current_orientation#39 ← phi( play_movement::@6/(byte) current_orientation#31 ) + (byte*) current_piece_gfx#69 ← phi( play_movement::@6/(byte*) current_piece_gfx#31 ) + (byte*) current_piece#60 ← phi( play_movement::@6/(byte*) current_piece#40 ) + (byte) current_ypos#54 ← phi( play_movement::@6/(byte) current_ypos#49 ) + (byte) current_xpos#67 ← phi( play_movement::@6/(byte) current_xpos#1 ) + (byte) current_orientation#41 ← phi( play_movement::@6/(byte) current_orientation#33 ) (byte) play_move_rotate::key_event#1 ← phi( play_movement::@6/(byte) play_move_rotate::key_event#0 ) (byte) play_move_rotate::orientation#0 ← (byte/word/signed word/dword/signed dword) 128 (bool~) play_move_rotate::$0 ← (byte) play_move_rotate::key_event#1 == (byte) KEY_Z#0 if((bool~) play_move_rotate::$0) goto play_move_rotate::@1 to:play_move_rotate::@6 play_move_rotate::@1: scope:[play_move_rotate] from play_move_rotate - (byte*) current_piece_gfx#84 ← phi( play_move_rotate/(byte*) current_piece_gfx#68 ) - (byte*) current_piece#45 ← phi( play_move_rotate/(byte*) current_piece#59 ) - (byte) current_ypos#39 ← phi( play_move_rotate/(byte) current_ypos#53 ) - (byte) current_xpos#47 ← phi( play_move_rotate/(byte) current_xpos#66 ) - (byte) current_orientation#22 ← phi( play_move_rotate/(byte) current_orientation#39 ) - (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#22 - (byte/signed byte/word/signed word/dword/signed dword) 16 + (byte*) current_piece_gfx#88 ← phi( play_move_rotate/(byte*) current_piece_gfx#69 ) + (byte*) current_piece#46 ← phi( play_move_rotate/(byte*) current_piece#60 ) + (byte) current_ypos#41 ← phi( play_move_rotate/(byte) current_ypos#54 ) + (byte) current_xpos#49 ← phi( play_move_rotate/(byte) current_xpos#67 ) + (byte) current_orientation#23 ← phi( play_move_rotate/(byte) current_orientation#41 ) + (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#23 - (byte/signed byte/word/signed word/dword/signed dword) 16 (byte/word/dword~) play_move_rotate::$5 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 & (byte/signed byte/word/signed word/dword/signed dword) 63 (byte) play_move_rotate::orientation#1 ← (byte/word/dword~) play_move_rotate::$5 to:play_move_rotate::@4 play_move_rotate::@6: scope:[play_move_rotate] from play_move_rotate - (byte*) current_piece#60 ← phi( play_move_rotate/(byte*) current_piece#59 ) - (byte*) current_piece_gfx#50 ← phi( play_move_rotate/(byte*) current_piece_gfx#68 ) - (byte) current_ypos#54 ← phi( play_move_rotate/(byte) current_ypos#53 ) - (byte) current_xpos#67 ← phi( play_move_rotate/(byte) current_xpos#66 ) - (byte) current_orientation#40 ← phi( play_move_rotate/(byte) current_orientation#39 ) + (byte*) current_piece#61 ← phi( play_move_rotate/(byte*) current_piece#60 ) + (byte*) current_piece_gfx#51 ← phi( play_move_rotate/(byte*) current_piece_gfx#69 ) + (byte) current_ypos#55 ← phi( play_move_rotate/(byte) current_ypos#54 ) + (byte) current_xpos#68 ← phi( play_move_rotate/(byte) current_xpos#67 ) + (byte) current_orientation#42 ← phi( play_move_rotate/(byte) current_orientation#41 ) (byte) play_move_rotate::key_event#2 ← phi( play_move_rotate/(byte) play_move_rotate::key_event#1 ) (bool~) play_move_rotate::$1 ← (byte) play_move_rotate::key_event#2 == (byte) KEY_X#0 if((bool~) play_move_rotate::$1) goto play_move_rotate::@2 to:play_move_rotate::@7 play_move_rotate::@2: scope:[play_move_rotate] from play_move_rotate::@6 - (byte*) current_piece_gfx#85 ← phi( play_move_rotate::@6/(byte*) current_piece_gfx#50 ) - (byte*) current_piece#46 ← phi( play_move_rotate::@6/(byte*) current_piece#60 ) - (byte) current_ypos#40 ← phi( play_move_rotate::@6/(byte) current_ypos#54 ) - (byte) current_xpos#48 ← phi( play_move_rotate::@6/(byte) current_xpos#67 ) - (byte) current_orientation#23 ← phi( play_move_rotate::@6/(byte) current_orientation#40 ) - (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#23 + (byte/signed byte/word/signed word/dword/signed dword) 16 + (byte*) current_piece_gfx#89 ← phi( play_move_rotate::@6/(byte*) current_piece_gfx#51 ) + (byte*) current_piece#47 ← phi( play_move_rotate::@6/(byte*) current_piece#61 ) + (byte) current_ypos#42 ← phi( play_move_rotate::@6/(byte) current_ypos#55 ) + (byte) current_xpos#50 ← phi( play_move_rotate::@6/(byte) current_xpos#68 ) + (byte) current_orientation#24 ← phi( play_move_rotate::@6/(byte) current_orientation#42 ) + (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#24 + (byte/signed byte/word/signed word/dword/signed dword) 16 (byte/word/dword~) play_move_rotate::$3 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 & (byte/signed byte/word/signed word/dword/signed dword) 63 (byte) play_move_rotate::orientation#2 ← (byte/word/dword~) play_move_rotate::$3 to:play_move_rotate::@4 play_move_rotate::@7: scope:[play_move_rotate] from play_move_rotate::@6 - (byte*) current_piece_gfx#35 ← phi( play_move_rotate::@6/(byte*) current_piece_gfx#50 ) - (byte) current_orientation#42 ← phi( play_move_rotate::@6/(byte) current_orientation#40 ) + (byte*) current_piece_gfx#37 ← phi( play_move_rotate::@6/(byte*) current_piece_gfx#51 ) + (byte) current_orientation#44 ← phi( play_move_rotate::@6/(byte) current_orientation#42 ) (byte) play_move_rotate::return#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:play_move_rotate::@return play_move_rotate::@return: scope:[play_move_rotate] from play_move_rotate::@11 play_move_rotate::@5 play_move_rotate::@7 - (byte*) current_piece_gfx#19 ← phi( play_move_rotate::@11/(byte*) current_piece_gfx#6 play_move_rotate::@5/(byte*) current_piece_gfx#34 play_move_rotate::@7/(byte*) current_piece_gfx#35 ) - (byte) current_orientation#24 ← phi( play_move_rotate::@11/(byte) current_orientation#7 play_move_rotate::@5/(byte) current_orientation#41 play_move_rotate::@7/(byte) current_orientation#42 ) + (byte*) current_piece_gfx#20 ← phi( play_move_rotate::@11/(byte*) current_piece_gfx#6 play_move_rotate::@5/(byte*) current_piece_gfx#36 play_move_rotate::@7/(byte*) current_piece_gfx#37 ) + (byte) current_orientation#25 ← phi( play_move_rotate::@11/(byte) current_orientation#7 play_move_rotate::@5/(byte) current_orientation#43 play_move_rotate::@7/(byte) current_orientation#44 ) (byte) play_move_rotate::return#6 ← phi( play_move_rotate::@11/(byte) play_move_rotate::return#4 play_move_rotate::@5/(byte) play_move_rotate::return#3 play_move_rotate::@7/(byte) play_move_rotate::return#1 ) (byte) play_move_rotate::return#2 ← (byte) play_move_rotate::return#6 - (byte) current_orientation#6 ← (byte) current_orientation#24 - (byte*) current_piece_gfx#5 ← (byte*) current_piece_gfx#19 + (byte) current_orientation#6 ← (byte) current_orientation#25 + (byte*) current_piece_gfx#5 ← (byte*) current_piece_gfx#20 return to:@return play_move_rotate::@4: scope:[play_move_rotate] from play_move_rotate::@1 play_move_rotate::@2 - (byte*) current_piece_gfx#69 ← phi( play_move_rotate::@1/(byte*) current_piece_gfx#84 play_move_rotate::@2/(byte*) current_piece_gfx#85 ) - (byte) current_orientation#67 ← phi( play_move_rotate::@1/(byte) current_orientation#22 play_move_rotate::@2/(byte) current_orientation#23 ) - (byte*) current_piece#32 ← phi( play_move_rotate::@1/(byte*) current_piece#45 play_move_rotate::@2/(byte*) current_piece#46 ) + (byte*) current_piece_gfx#70 ← phi( play_move_rotate::@1/(byte*) current_piece_gfx#88 play_move_rotate::@2/(byte*) current_piece_gfx#89 ) + (byte) current_orientation#68 ← phi( play_move_rotate::@1/(byte) current_orientation#23 play_move_rotate::@2/(byte) current_orientation#24 ) + (byte*) current_piece#34 ← phi( play_move_rotate::@1/(byte*) current_piece#46 play_move_rotate::@2/(byte*) current_piece#47 ) (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 ) - (byte) current_ypos#20 ← phi( play_move_rotate::@1/(byte) current_ypos#39 play_move_rotate::@2/(byte) current_ypos#40 ) - (byte) current_xpos#26 ← phi( play_move_rotate::@1/(byte) current_xpos#47 play_move_rotate::@2/(byte) current_xpos#48 ) - (byte) play_collision::xpos#3 ← (byte) current_xpos#26 - (byte) play_collision::ypos#3 ← (byte) current_ypos#20 + (byte) current_ypos#21 ← phi( play_move_rotate::@1/(byte) current_ypos#41 play_move_rotate::@2/(byte) current_ypos#42 ) + (byte) current_xpos#27 ← phi( play_move_rotate::@1/(byte) current_xpos#49 play_move_rotate::@2/(byte) current_xpos#50 ) + (byte) play_collision::xpos#3 ← (byte) current_xpos#27 + (byte) play_collision::ypos#3 ← (byte) current_ypos#21 (byte) play_collision::orientation#3 ← (byte) play_move_rotate::orientation#3 call play_collision (byte) play_collision::return#3 ← (byte) play_collision::return#5 to:play_move_rotate::@14 play_move_rotate::@14: scope:[play_move_rotate] from play_move_rotate::@4 - (byte*) current_piece_gfx#51 ← phi( play_move_rotate::@4/(byte*) current_piece_gfx#69 ) - (byte) current_orientation#54 ← phi( play_move_rotate::@4/(byte) current_orientation#67 ) - (byte*) current_piece#28 ← phi( play_move_rotate::@4/(byte*) current_piece#32 ) + (byte*) current_piece_gfx#52 ← phi( play_move_rotate::@4/(byte*) current_piece_gfx#70 ) + (byte) current_orientation#55 ← phi( play_move_rotate::@4/(byte) current_orientation#68 ) + (byte*) current_piece#30 ← phi( play_move_rotate::@4/(byte*) current_piece#34 ) (byte) play_move_rotate::orientation#5 ← phi( play_move_rotate::@4/(byte) play_move_rotate::orientation#3 ) (byte) play_collision::return#14 ← phi( play_move_rotate::@4/(byte) play_collision::return#3 ) (byte~) play_move_rotate::$6 ← (byte) play_collision::return#14 @@ -2223,53 +2349,54 @@ play_move_rotate::@14: scope:[play_move_rotate] from play_move_rotate::@4 if((bool~) play_move_rotate::$8) goto play_move_rotate::@5 to:play_move_rotate::@11 play_move_rotate::@5: scope:[play_move_rotate] from play_move_rotate::@14 - (byte*) current_piece_gfx#34 ← phi( play_move_rotate::@14/(byte*) current_piece_gfx#51 ) - (byte) current_orientation#41 ← phi( play_move_rotate::@14/(byte) current_orientation#54 ) + (byte*) current_piece_gfx#36 ← phi( play_move_rotate::@14/(byte*) current_piece_gfx#52 ) + (byte) current_orientation#43 ← phi( play_move_rotate::@14/(byte) current_orientation#55 ) (byte) play_move_rotate::return#3 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:play_move_rotate::@return play_move_rotate::@11: scope:[play_move_rotate] from play_move_rotate::@14 - (byte*) current_piece#15 ← phi( play_move_rotate::@14/(byte*) current_piece#28 ) + (byte*) current_piece#16 ← phi( play_move_rotate::@14/(byte*) current_piece#30 ) (byte) play_move_rotate::orientation#4 ← phi( play_move_rotate::@14/(byte) play_move_rotate::orientation#5 ) (byte) current_orientation#7 ← (byte) play_move_rotate::orientation#4 - (byte*~) play_move_rotate::$9 ← (byte*) current_piece#15 + (byte) current_orientation#7 + (byte*~) play_move_rotate::$9 ← (byte*) current_piece#16 + (byte) current_orientation#7 (byte*) current_piece_gfx#6 ← (byte*~) play_move_rotate::$9 (byte) play_move_rotate::return#4 ← (byte/signed byte/word/signed word/dword/signed dword) 1 to:play_move_rotate::@return -@30: scope:[] from @25 - (byte) irq_cnt#19 ← phi( @25/(byte) irq_cnt#20 ) - (byte) irq_sprite_ptr#17 ← phi( @25/(byte) irq_sprite_ptr#18 ) - (byte) level_bcd#56 ← phi( @25/(byte) level_bcd#63 ) - (byte) level#52 ← phi( @25/(byte) level#59 ) - (dword) score_bcd#46 ← phi( @25/(dword) score_bcd#53 ) - (word) lines_bcd#46 ← phi( @25/(word) lines_bcd#53 ) - (byte) current_movedown_counter#35 ← 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) game_over#43 ← phi( @25/(byte) game_over#49 ) - (byte) current_ypos#62 ← phi( @25/(byte) current_ypos#67 ) - (byte) current_xpos#76 ← phi( @25/(byte) current_xpos#86 ) - (byte*) current_piece_gfx#61 ← phi( @25/(byte*) current_piece_gfx#70 ) - (byte) current_orientation#61 ← phi( @25/(byte) current_orientation#0 ) - (byte) current_piece_char#49 ← phi( @25/(byte) current_piece_char#56 ) - (byte*) current_piece#53 ← phi( @25/(byte*) current_piece#0 ) - (byte) current_movedown_slow#62 ← phi( @25/(byte) current_movedown_slow#0 ) - (byte) render_screen_render#36 ← phi( @25/(byte) render_screen_render#40 ) - (byte) render_screen_show#32 ← phi( @25/(byte) render_screen_show#35 ) - (byte) irq_raster_next#17 ← phi( @25/(byte) irq_raster_next#20 ) - (byte) irq_sprite_ypos#14 ← phi( @25/(byte) irq_sprite_ypos#18 ) +@31: scope:[] from @26 + (byte) irq_cnt#19 ← phi( @26/(byte) irq_cnt#20 ) + (byte) irq_sprite_ptr#17 ← phi( @26/(byte) irq_sprite_ptr#18 ) + (byte) level_bcd#56 ← phi( @26/(byte) level_bcd#63 ) + (byte) level#52 ← phi( @26/(byte) level#59 ) + (dword) score_bcd#46 ← phi( @26/(dword) score_bcd#53 ) + (word) lines_bcd#46 ← phi( @26/(word) lines_bcd#53 ) + (byte) current_movedown_counter#35 ← phi( @26/(byte) current_movedown_counter#0 ) + (byte) keyboard_modifiers#33 ← phi( @26/(byte) keyboard_modifiers#34 ) + (byte) keyboard_events_size#36 ← phi( @26/(byte) keyboard_events_size#40 ) + (byte) render_screen_showing#20 ← phi( @26/(byte) render_screen_showing#21 ) + (byte) next_piece_idx#46 ← phi( @26/(byte) next_piece_idx#0 ) + (byte) game_over#45 ← phi( @26/(byte) game_over#51 ) + (byte) current_ypos#63 ← phi( @26/(byte) current_ypos#68 ) + (byte) current_xpos#77 ← phi( @26/(byte) current_xpos#87 ) + (byte*) current_piece_gfx#62 ← phi( @26/(byte*) current_piece_gfx#71 ) + (byte) current_orientation#62 ← phi( @26/(byte) current_orientation#0 ) + (byte) current_piece_char#50 ← phi( @26/(byte) current_piece_char#57 ) + (byte*) current_piece#54 ← phi( @26/(byte*) current_piece#0 ) + (byte) current_movedown_slow#62 ← phi( @26/(byte) current_movedown_slow#0 ) + (byte) render_screen_render#40 ← phi( @26/(byte) render_screen_render#43 ) + (byte) render_screen_show#32 ← phi( @26/(byte) render_screen_show#35 ) + (byte) irq_raster_next#17 ← phi( @26/(byte) irq_raster_next#20 ) + (byte) irq_sprite_ypos#14 ← phi( @26/(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:@37 -play_collision: scope:[play_collision] from play_move_down::@12 play_move_leftright::@1 play_move_leftright::@7 play_move_rotate::@4 play_spawn_current::@3 - (byte) play_collision::xpos#6 ← phi( play_move_down::@12/(byte) play_collision::xpos#0 play_move_leftright::@1/(byte) play_collision::xpos#1 play_move_leftright::@7/(byte) play_collision::xpos#2 play_move_rotate::@4/(byte) play_collision::xpos#3 play_spawn_current::@3/(byte) play_collision::xpos#4 ) - (byte) play_collision::ypos#5 ← phi( play_move_down::@12/(byte) play_collision::ypos#0 play_move_leftright::@1/(byte) play_collision::ypos#1 play_move_leftright::@7/(byte) play_collision::ypos#2 play_move_rotate::@4/(byte) play_collision::ypos#3 play_spawn_current::@3/(byte) play_collision::ypos#4 ) - (byte) play_collision::orientation#5 ← phi( play_move_down::@12/(byte) play_collision::orientation#0 play_move_leftright::@1/(byte) play_collision::orientation#1 play_move_leftright::@7/(byte) play_collision::orientation#2 play_move_rotate::@4/(byte) play_collision::orientation#3 play_spawn_current::@3/(byte) play_collision::orientation#4 ) - (byte*) current_piece#16 ← phi( play_move_down::@12/(byte*) current_piece#29 play_move_leftright::@1/(byte*) current_piece#30 play_move_leftright::@7/(byte*) current_piece#31 play_move_rotate::@4/(byte*) current_piece#32 play_spawn_current::@3/(byte*) current_piece#5 ) - (byte*~) play_collision::$0 ← (byte*) current_piece#16 + (byte) play_collision::orientation#5 + to:@38 +play_collision: scope:[play_collision] from play_move_down::@12 play_move_leftright::@1 play_move_leftright::@7 play_move_rotate::@4 play_spawn_current + (byte) play_collision::xpos#6 ← phi( play_move_down::@12/(byte) play_collision::xpos#0 play_move_leftright::@1/(byte) play_collision::xpos#1 play_move_leftright::@7/(byte) play_collision::xpos#2 play_move_rotate::@4/(byte) play_collision::xpos#3 play_spawn_current/(byte) play_collision::xpos#4 ) + (byte) play_collision::ypos#5 ← phi( play_move_down::@12/(byte) play_collision::ypos#0 play_move_leftright::@1/(byte) play_collision::ypos#1 play_move_leftright::@7/(byte) play_collision::ypos#2 play_move_rotate::@4/(byte) play_collision::ypos#3 play_spawn_current/(byte) play_collision::ypos#4 ) + (byte) play_collision::orientation#5 ← phi( play_move_down::@12/(byte) play_collision::orientation#0 play_move_leftright::@1/(byte) play_collision::orientation#1 play_move_leftright::@7/(byte) play_collision::orientation#2 play_move_rotate::@4/(byte) play_collision::orientation#3 play_spawn_current/(byte) play_collision::orientation#4 ) + (byte*) current_piece#17 ← phi( play_move_down::@12/(byte*) current_piece#31 play_move_leftright::@1/(byte*) current_piece#32 play_move_leftright::@7/(byte*) current_piece#33 play_move_rotate::@4/(byte*) current_piece#34 play_spawn_current/(byte*) current_piece#5 ) + (byte*~) play_collision::$0 ← (byte*) current_piece#17 + (byte) play_collision::orientation#5 (byte*) play_collision::piece_gfx#0 ← (byte*~) play_collision::$0 (byte) play_collision::i#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 (byte~) play_collision::$1 ← (byte) play_collision::ypos#5 << (byte/signed byte/word/signed word/dword/signed dword) 1 @@ -2410,49 +2537,49 @@ play_collision::@18: scope:[play_collision] from play_collision::@17 (byte) play_collision::return#9 ← (byte) COLLISION_NONE#0 to:play_collision::@return play_lock_current: scope:[play_lock_current] from play_move_down::@13 - (byte) current_piece_char#57 ← phi( play_move_down::@13/(byte) current_piece_char#71 ) - (byte*) current_piece_gfx#52 ← phi( play_move_down::@13/(byte*) current_piece_gfx#71 ) - (byte) current_xpos#49 ← phi( play_move_down::@13/(byte) current_xpos#68 ) - (byte) current_ypos#21 ← phi( play_move_down::@13/(byte) current_ypos#41 ) + (byte) current_piece_char#58 ← phi( play_move_down::@13/(byte) current_piece_char#74 ) + (byte*) current_piece_gfx#53 ← phi( play_move_down::@13/(byte*) current_piece_gfx#72 ) + (byte) current_xpos#51 ← phi( play_move_down::@13/(byte) current_xpos#69 ) + (byte) current_ypos#22 ← phi( play_move_down::@13/(byte) current_ypos#43 ) (byte) play_lock_current::i#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 - (byte~) play_lock_current::$0 ← (byte) current_ypos#21 << (byte/signed byte/word/signed word/dword/signed dword) 1 + (byte~) play_lock_current::$0 ← (byte) current_ypos#22 << (byte/signed byte/word/signed word/dword/signed dword) 1 (byte) play_lock_current::ypos2#0 ← (byte~) play_lock_current::$0 (byte) play_lock_current::l#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:play_lock_current::@1 play_lock_current::@1: scope:[play_lock_current] from play_lock_current play_lock_current::@5 (byte) play_lock_current::l#6 ← phi( play_lock_current/(byte) play_lock_current::l#0 play_lock_current::@5/(byte) play_lock_current::l#1 ) - (byte) current_piece_char#41 ← phi( play_lock_current/(byte) current_piece_char#57 play_lock_current::@5/(byte) current_piece_char#58 ) + (byte) current_piece_char#42 ← phi( play_lock_current/(byte) current_piece_char#58 play_lock_current::@5/(byte) current_piece_char#59 ) (byte) play_lock_current::i#3 ← phi( play_lock_current/(byte) play_lock_current::i#0 play_lock_current::@5/(byte) play_lock_current::i#5 ) - (byte*) current_piece_gfx#36 ← phi( play_lock_current/(byte*) current_piece_gfx#52 play_lock_current::@5/(byte*) current_piece_gfx#53 ) - (byte) current_xpos#27 ← phi( play_lock_current/(byte) current_xpos#49 play_lock_current::@5/(byte) current_xpos#50 ) + (byte*) current_piece_gfx#38 ← phi( play_lock_current/(byte*) current_piece_gfx#53 play_lock_current::@5/(byte*) current_piece_gfx#54 ) + (byte) current_xpos#28 ← phi( play_lock_current/(byte) current_xpos#51 play_lock_current::@5/(byte) current_xpos#52 ) (byte) play_lock_current::ypos2#2 ← phi( play_lock_current/(byte) play_lock_current::ypos2#0 play_lock_current::@5/(byte) play_lock_current::ypos2#1 ) (byte*) play_lock_current::playfield_line#0 ← *((byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_lock_current::ypos2#2) - (byte) play_lock_current::col#0 ← (byte) current_xpos#27 + (byte) play_lock_current::col#0 ← (byte) current_xpos#28 (byte) play_lock_current::c#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 to:play_lock_current::@2 play_lock_current::@2: scope:[play_lock_current] from play_lock_current::@1 play_lock_current::@3 - (byte) current_xpos#87 ← phi( play_lock_current::@1/(byte) current_xpos#27 play_lock_current::@3/(byte) current_xpos#69 ) + (byte) current_xpos#88 ← phi( play_lock_current::@1/(byte) current_xpos#28 play_lock_current::@3/(byte) current_xpos#70 ) (byte) play_lock_current::l#4 ← phi( play_lock_current::@1/(byte) play_lock_current::l#6 play_lock_current::@3/(byte) play_lock_current::l#3 ) (byte) play_lock_current::ypos2#5 ← phi( play_lock_current::@1/(byte) play_lock_current::ypos2#2 play_lock_current::@3/(byte) play_lock_current::ypos2#4 ) (byte*) play_lock_current::playfield_line#2 ← phi( play_lock_current::@1/(byte*) play_lock_current::playfield_line#0 play_lock_current::@3/(byte*) play_lock_current::playfield_line#3 ) - (byte) current_piece_char#28 ← phi( play_lock_current::@1/(byte) current_piece_char#41 play_lock_current::@3/(byte) current_piece_char#42 ) + (byte) current_piece_char#30 ← phi( play_lock_current::@1/(byte) current_piece_char#42 play_lock_current::@3/(byte) current_piece_char#43 ) (byte) play_lock_current::c#3 ← phi( play_lock_current::@1/(byte) play_lock_current::c#0 play_lock_current::@3/(byte) play_lock_current::c#1 ) (byte) play_lock_current::col#4 ← phi( play_lock_current::@1/(byte) play_lock_current::col#0 play_lock_current::@3/(byte) play_lock_current::col#1 ) (byte) play_lock_current::i#2 ← phi( play_lock_current::@1/(byte) play_lock_current::i#3 play_lock_current::@3/(byte) play_lock_current::i#4 ) - (byte*) current_piece_gfx#20 ← phi( play_lock_current::@1/(byte*) current_piece_gfx#36 play_lock_current::@3/(byte*) current_piece_gfx#37 ) - (bool~) play_lock_current::$1 ← *((byte*) current_piece_gfx#20 + (byte) play_lock_current::i#2) != (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte*) current_piece_gfx#21 ← phi( play_lock_current::@1/(byte*) current_piece_gfx#38 play_lock_current::@3/(byte*) current_piece_gfx#39 ) + (bool~) play_lock_current::$1 ← *((byte*) current_piece_gfx#21 + (byte) play_lock_current::i#2) != (byte/signed byte/word/signed word/dword/signed dword) 0 (bool~) play_lock_current::$2 ← ! (bool~) play_lock_current::$1 (byte) play_lock_current::i#1 ← ++ (byte) play_lock_current::i#2 if((bool~) play_lock_current::$2) goto play_lock_current::@3 to:play_lock_current::@4 play_lock_current::@3: scope:[play_lock_current] from play_lock_current::@2 play_lock_current::@4 - (byte) current_xpos#69 ← phi( play_lock_current::@2/(byte) current_xpos#87 play_lock_current::@4/(byte) current_xpos#88 ) + (byte) current_xpos#70 ← phi( play_lock_current::@2/(byte) current_xpos#88 play_lock_current::@4/(byte) current_xpos#89 ) (byte*) play_lock_current::playfield_line#3 ← phi( play_lock_current::@2/(byte*) play_lock_current::playfield_line#2 play_lock_current::@4/(byte*) play_lock_current::playfield_line#1 ) - (byte) current_piece_char#42 ← phi( play_lock_current::@2/(byte) current_piece_char#28 play_lock_current::@4/(byte) current_piece_char#15 ) + (byte) current_piece_char#43 ← phi( play_lock_current::@2/(byte) current_piece_char#30 play_lock_current::@4/(byte) current_piece_char#16 ) (byte) play_lock_current::l#3 ← phi( play_lock_current::@2/(byte) play_lock_current::l#4 play_lock_current::@4/(byte) play_lock_current::l#5 ) (byte) play_lock_current::ypos2#4 ← phi( play_lock_current::@2/(byte) play_lock_current::ypos2#5 play_lock_current::@4/(byte) play_lock_current::ypos2#6 ) (byte) play_lock_current::i#4 ← phi( play_lock_current::@2/(byte) play_lock_current::i#1 play_lock_current::@4/(byte) play_lock_current::i#6 ) - (byte*) current_piece_gfx#37 ← phi( play_lock_current::@2/(byte*) current_piece_gfx#20 play_lock_current::@4/(byte*) current_piece_gfx#54 ) + (byte*) current_piece_gfx#39 ← phi( play_lock_current::@2/(byte*) current_piece_gfx#21 play_lock_current::@4/(byte*) current_piece_gfx#55 ) (byte) play_lock_current::c#2 ← phi( play_lock_current::@2/(byte) play_lock_current::c#3 play_lock_current::@4/(byte) play_lock_current::c#4 ) (byte) play_lock_current::col#2 ← phi( play_lock_current::@2/(byte) play_lock_current::col#4 play_lock_current::@4/(byte) play_lock_current::col#3 ) (byte) play_lock_current::col#1 ← ++ (byte) play_lock_current::col#2 @@ -2461,22 +2588,22 @@ play_lock_current::@3: scope:[play_lock_current] from play_lock_current::@2 pla if((bool~) play_lock_current::$3) goto play_lock_current::@2 to:play_lock_current::@5 play_lock_current::@4: scope:[play_lock_current] from play_lock_current::@2 - (byte) current_xpos#88 ← phi( play_lock_current::@2/(byte) current_xpos#87 ) + (byte) current_xpos#89 ← phi( play_lock_current::@2/(byte) current_xpos#88 ) (byte) play_lock_current::l#5 ← phi( play_lock_current::@2/(byte) play_lock_current::l#4 ) (byte) play_lock_current::ypos2#6 ← phi( play_lock_current::@2/(byte) play_lock_current::ypos2#5 ) (byte) play_lock_current::i#6 ← phi( play_lock_current::@2/(byte) play_lock_current::i#1 ) - (byte*) current_piece_gfx#54 ← phi( play_lock_current::@2/(byte*) current_piece_gfx#20 ) + (byte*) current_piece_gfx#55 ← phi( play_lock_current::@2/(byte*) current_piece_gfx#21 ) (byte) play_lock_current::c#4 ← phi( play_lock_current::@2/(byte) play_lock_current::c#3 ) (byte) play_lock_current::col#3 ← phi( play_lock_current::@2/(byte) play_lock_current::col#4 ) (byte*) play_lock_current::playfield_line#1 ← phi( play_lock_current::@2/(byte*) play_lock_current::playfield_line#2 ) - (byte) current_piece_char#15 ← phi( play_lock_current::@2/(byte) current_piece_char#28 ) - *((byte*) play_lock_current::playfield_line#1 + (byte) play_lock_current::col#3) ← (byte) current_piece_char#15 + (byte) current_piece_char#16 ← phi( play_lock_current::@2/(byte) current_piece_char#30 ) + *((byte*) play_lock_current::playfield_line#1 + (byte) play_lock_current::col#3) ← (byte) current_piece_char#16 to:play_lock_current::@3 play_lock_current::@5: scope:[play_lock_current] from play_lock_current::@3 - (byte) current_piece_char#58 ← phi( play_lock_current::@3/(byte) current_piece_char#42 ) + (byte) current_piece_char#59 ← phi( play_lock_current::@3/(byte) current_piece_char#43 ) (byte) play_lock_current::i#5 ← phi( play_lock_current::@3/(byte) play_lock_current::i#4 ) - (byte*) current_piece_gfx#53 ← phi( play_lock_current::@3/(byte*) current_piece_gfx#37 ) - (byte) current_xpos#50 ← phi( play_lock_current::@3/(byte) current_xpos#69 ) + (byte*) current_piece_gfx#54 ← phi( play_lock_current::@3/(byte*) current_piece_gfx#39 ) + (byte) current_xpos#52 ← phi( play_lock_current::@3/(byte) current_xpos#70 ) (byte) play_lock_current::l#2 ← phi( play_lock_current::@3/(byte) play_lock_current::l#3 ) (byte) play_lock_current::ypos2#3 ← phi( play_lock_current::@3/(byte) play_lock_current::ypos2#4 ) (byte) play_lock_current::ypos2#1 ← (byte) play_lock_current::ypos2#3 + (byte/signed byte/word/signed word/dword/signed dword) 2 @@ -2487,92 +2614,121 @@ play_lock_current::@5: scope:[play_lock_current] from play_lock_current::@3 play_lock_current::@return: scope:[play_lock_current] from play_lock_current::@5 return to:@return -play_spawn_current: scope:[play_spawn_current] from main::@29 play_move_down::@21 - (byte) game_over#70 ← phi( main::@29/(byte) game_over#28 play_move_down::@21/(byte) game_over#24 ) - (byte) play_spawn_current::piece_idx#0 ← (byte/signed byte/word/signed word/dword/signed dword) 7 - to:play_spawn_current::@1 -play_spawn_current::@1: scope:[play_spawn_current] from play_spawn_current play_spawn_current::@9 - (byte) game_over#62 ← phi( play_spawn_current/(byte) game_over#70 play_spawn_current::@9/(byte) game_over#71 ) - (byte) play_spawn_current::piece_idx#2 ← phi( play_spawn_current/(byte) play_spawn_current::piece_idx#0 play_spawn_current::@9/(byte) play_spawn_current::piece_idx#1 ) - (bool~) play_spawn_current::$0 ← (byte) play_spawn_current::piece_idx#2 == (byte/signed byte/word/signed word/dword/signed dword) 7 - if((bool~) play_spawn_current::$0) goto play_spawn_current::@2 - to:play_spawn_current::@3 -play_spawn_current::@2: scope:[play_spawn_current] from play_spawn_current::@1 - (byte) game_over#80 ← phi( play_spawn_current::@1/(byte) game_over#62 ) - call sid_rnd - (byte) sid_rnd::return#2 ← (byte) sid_rnd::return#1 - to:play_spawn_current::@9 -play_spawn_current::@9: scope:[play_spawn_current] from play_spawn_current::@2 - (byte) game_over#71 ← phi( play_spawn_current::@2/(byte) game_over#80 ) - (byte) sid_rnd::return#4 ← phi( play_spawn_current::@2/(byte) sid_rnd::return#2 ) - (byte~) play_spawn_current::$1 ← (byte) sid_rnd::return#4 - (byte~) play_spawn_current::$2 ← (byte~) play_spawn_current::$1 & (byte/signed byte/word/signed word/dword/signed dword) 7 - (byte) play_spawn_current::piece_idx#1 ← (byte~) play_spawn_current::$2 - to:play_spawn_current::@1 -play_spawn_current::@3: scope:[play_spawn_current] from play_spawn_current::@1 - (byte) game_over#50 ← phi( play_spawn_current::@1/(byte) game_over#62 ) - (byte) play_spawn_current::piece_idx#3 ← phi( play_spawn_current::@1/(byte) play_spawn_current::piece_idx#2 ) - (byte~) play_spawn_current::$3 ← (byte) play_spawn_current::piece_idx#3 << (byte/signed byte/word/signed word/dword/signed dword) 1 - (byte*) current_piece#5 ← ((byte*)) *((word[]) PIECES#0 + (byte~) play_spawn_current::$3) - (byte) current_piece_char#4 ← *((byte[]) PIECES_CHARS#0 + (byte) play_spawn_current::piece_idx#3) +play_spawn_current: scope:[play_spawn_current] from main::@29 main::@30 play_move_down::@21 + (byte) game_over#75 ← phi( main::@29/(byte) game_over#30 main::@30/(byte) game_over#7 play_move_down::@21/(byte) game_over#26 ) + (byte) next_piece_idx#17 ← phi( main::@29/(byte) next_piece_idx#32 main::@30/(byte) next_piece_idx#7 play_move_down::@21/(byte) next_piece_idx#29 ) + (byte) play_spawn_current::current_piece_idx#0 ← (byte) next_piece_idx#17 + (byte~) play_spawn_current::$0 ← (byte) play_spawn_current::current_piece_idx#0 << (byte/signed byte/word/signed word/dword/signed dword) 1 + (byte*) current_piece#5 ← ((byte*)) *((word[]) PIECES#0 + (byte~) play_spawn_current::$0) + (byte) current_piece_char#4 ← *((byte[]) PIECES_CHARS#0 + (byte) play_spawn_current::current_piece_idx#0) (byte) current_orientation#8 ← (byte/signed byte/word/signed word/dword/signed dword) 0 - (byte*~) play_spawn_current::$4 ← (byte*) current_piece#5 + (byte) current_orientation#8 - (byte*) current_piece_gfx#7 ← (byte*~) play_spawn_current::$4 - (byte) current_xpos#8 ← *((byte[]) PIECES_START_X#0 + (byte) play_spawn_current::piece_idx#3) - (byte) current_ypos#5 ← *((byte[]) PIECES_START_Y#0 + (byte) play_spawn_current::piece_idx#3) + (byte*~) play_spawn_current::$1 ← (byte*) current_piece#5 + (byte) current_orientation#8 + (byte*) current_piece_gfx#7 ← (byte*~) play_spawn_current::$1 + (byte) current_xpos#8 ← *((byte[]) PIECES_START_X#0 + (byte) play_spawn_current::current_piece_idx#0) + (byte) current_ypos#5 ← *((byte[]) PIECES_START_Y#0 + (byte) play_spawn_current::current_piece_idx#0) (byte) play_collision::xpos#4 ← (byte) current_xpos#8 (byte) play_collision::ypos#4 ← (byte) current_ypos#5 (byte) play_collision::orientation#4 ← (byte) current_orientation#8 call play_collision (byte) play_collision::return#10 ← (byte) play_collision::return#5 + to:play_spawn_current::@9 +play_spawn_current::@9: scope:[play_spawn_current] from play_spawn_current + (byte) game_over#65 ← phi( play_spawn_current/(byte) game_over#75 ) + (byte) current_ypos#80 ← phi( play_spawn_current/(byte) current_ypos#5 ) + (byte) current_xpos#103 ← phi( play_spawn_current/(byte) current_xpos#8 ) + (byte*) current_piece_gfx#91 ← phi( play_spawn_current/(byte*) current_piece_gfx#7 ) + (byte) current_orientation#80 ← phi( play_spawn_current/(byte) current_orientation#8 ) + (byte) current_piece_char#76 ← phi( play_spawn_current/(byte) current_piece_char#4 ) + (byte*) current_piece#74 ← phi( play_spawn_current/(byte*) current_piece#5 ) + (byte) play_collision::return#16 ← phi( play_spawn_current/(byte) play_collision::return#10 ) + (byte~) play_spawn_current::$2 ← (byte) play_collision::return#16 + (bool~) play_spawn_current::$3 ← (byte~) play_spawn_current::$2 == (byte) COLLISION_PLAYFIELD#0 + (bool~) play_spawn_current::$4 ← ! (bool~) play_spawn_current::$3 + if((bool~) play_spawn_current::$4) goto play_spawn_current::@1 + to:play_spawn_current::@5 +play_spawn_current::@1: scope:[play_spawn_current] from play_spawn_current::@5 play_spawn_current::@9 + (byte) game_over#52 ← phi( play_spawn_current::@5/(byte) game_over#5 play_spawn_current::@9/(byte) game_over#65 ) + (byte) current_ypos#69 ← phi( play_spawn_current::@5/(byte) current_ypos#79 play_spawn_current::@9/(byte) current_ypos#80 ) + (byte) current_xpos#90 ← phi( play_spawn_current::@5/(byte) current_xpos#102 play_spawn_current::@9/(byte) current_xpos#103 ) + (byte*) current_piece_gfx#73 ← phi( play_spawn_current::@5/(byte*) current_piece_gfx#90 play_spawn_current::@9/(byte*) current_piece_gfx#91 ) + (byte) current_orientation#69 ← phi( play_spawn_current::@5/(byte) current_orientation#79 play_spawn_current::@9/(byte) current_orientation#80 ) + (byte) current_piece_char#60 ← phi( play_spawn_current::@5/(byte) current_piece_char#75 play_spawn_current::@9/(byte) current_piece_char#76 ) + (byte*) current_piece#62 ← phi( play_spawn_current::@5/(byte*) current_piece#73 play_spawn_current::@9/(byte*) current_piece#74 ) + (byte) play_spawn_current::piece_idx#0 ← (byte/signed byte/word/signed word/dword/signed dword) 7 + to:play_spawn_current::@2 +play_spawn_current::@5: scope:[play_spawn_current] from play_spawn_current::@9 + (byte) current_ypos#79 ← phi( play_spawn_current::@9/(byte) current_ypos#80 ) + (byte) current_xpos#102 ← phi( play_spawn_current::@9/(byte) current_xpos#103 ) + (byte*) current_piece_gfx#90 ← phi( play_spawn_current::@9/(byte*) current_piece_gfx#91 ) + (byte) current_orientation#79 ← phi( play_spawn_current::@9/(byte) current_orientation#80 ) + (byte) current_piece_char#75 ← phi( play_spawn_current::@9/(byte) current_piece_char#76 ) + (byte*) current_piece#73 ← phi( play_spawn_current::@9/(byte*) current_piece#74 ) + (byte) game_over#5 ← (byte/signed byte/word/signed word/dword/signed dword) 1 + to:play_spawn_current::@1 +play_spawn_current::@2: scope:[play_spawn_current] from play_spawn_current::@1 play_spawn_current::@10 + (byte) game_over#39 ← phi( play_spawn_current::@1/(byte) game_over#52 play_spawn_current::@10/(byte) game_over#53 ) + (byte) current_ypos#56 ← phi( play_spawn_current::@1/(byte) current_ypos#69 play_spawn_current::@10/(byte) current_ypos#70 ) + (byte) current_xpos#71 ← phi( play_spawn_current::@1/(byte) current_xpos#90 play_spawn_current::@10/(byte) current_xpos#91 ) + (byte*) current_piece_gfx#56 ← phi( play_spawn_current::@1/(byte*) current_piece_gfx#73 play_spawn_current::@10/(byte*) current_piece_gfx#74 ) + (byte) current_orientation#56 ← phi( play_spawn_current::@1/(byte) current_orientation#69 play_spawn_current::@10/(byte) current_orientation#70 ) + (byte) current_piece_char#44 ← phi( play_spawn_current::@1/(byte) current_piece_char#60 play_spawn_current::@10/(byte) current_piece_char#61 ) + (byte*) current_piece#48 ← phi( play_spawn_current::@1/(byte*) current_piece#62 play_spawn_current::@10/(byte*) current_piece#63 ) + (byte) play_spawn_current::piece_idx#2 ← phi( play_spawn_current::@1/(byte) play_spawn_current::piece_idx#0 play_spawn_current::@10/(byte) play_spawn_current::piece_idx#1 ) + (bool~) play_spawn_current::$5 ← (byte) play_spawn_current::piece_idx#2 == (byte/signed byte/word/signed word/dword/signed dword) 7 + if((bool~) play_spawn_current::$5) goto play_spawn_current::@3 + to:play_spawn_current::@4 +play_spawn_current::@3: scope:[play_spawn_current] from play_spawn_current::@2 + (byte) game_over#66 ← phi( play_spawn_current::@2/(byte) game_over#39 ) + (byte) current_ypos#81 ← phi( play_spawn_current::@2/(byte) current_ypos#56 ) + (byte) current_xpos#104 ← phi( play_spawn_current::@2/(byte) current_xpos#71 ) + (byte*) current_piece_gfx#92 ← phi( play_spawn_current::@2/(byte*) current_piece_gfx#56 ) + (byte) current_orientation#81 ← phi( play_spawn_current::@2/(byte) current_orientation#56 ) + (byte) current_piece_char#77 ← phi( play_spawn_current::@2/(byte) current_piece_char#44 ) + (byte*) current_piece#75 ← phi( play_spawn_current::@2/(byte*) current_piece#48 ) + call sid_rnd + (byte) sid_rnd::return#2 ← (byte) sid_rnd::return#1 to:play_spawn_current::@10 play_spawn_current::@10: scope:[play_spawn_current] from play_spawn_current::@3 - (byte) game_over#37 ← phi( play_spawn_current::@3/(byte) game_over#50 ) - (byte) current_ypos#55 ← phi( play_spawn_current::@3/(byte) current_ypos#5 ) - (byte) current_xpos#70 ← phi( play_spawn_current::@3/(byte) current_xpos#8 ) - (byte*) current_piece_gfx#55 ← phi( play_spawn_current::@3/(byte*) current_piece_gfx#7 ) - (byte) current_orientation#55 ← phi( play_spawn_current::@3/(byte) current_orientation#8 ) - (byte) current_piece_char#43 ← phi( play_spawn_current::@3/(byte) current_piece_char#4 ) - (byte*) current_piece#47 ← phi( play_spawn_current::@3/(byte*) current_piece#5 ) - (byte) play_collision::return#16 ← phi( play_spawn_current::@3/(byte) play_collision::return#10 ) - (byte~) play_spawn_current::$5 ← (byte) play_collision::return#16 - (bool~) play_spawn_current::$6 ← (byte~) play_spawn_current::$5 == (byte) COLLISION_PLAYFIELD#0 - (bool~) play_spawn_current::$7 ← ! (bool~) play_spawn_current::$6 - if((bool~) play_spawn_current::$7) goto play_spawn_current::@4 - to:play_spawn_current::@8 -play_spawn_current::@4: scope:[play_spawn_current] from play_spawn_current::@10 - (byte) game_over#27 ← phi( play_spawn_current::@10/(byte) game_over#37 ) - (byte) current_ypos#42 ← phi( play_spawn_current::@10/(byte) current_ypos#55 ) - (byte) current_xpos#51 ← phi( play_spawn_current::@10/(byte) current_xpos#70 ) - (byte*) current_piece_gfx#38 ← phi( play_spawn_current::@10/(byte*) current_piece_gfx#55 ) - (byte) current_orientation#43 ← phi( play_spawn_current::@10/(byte) current_orientation#55 ) - (byte) current_piece_char#29 ← phi( play_spawn_current::@10/(byte) current_piece_char#43 ) - (byte*) current_piece#33 ← phi( play_spawn_current::@10/(byte*) current_piece#47 ) + (byte) game_over#53 ← phi( play_spawn_current::@3/(byte) game_over#66 ) + (byte) current_ypos#70 ← phi( play_spawn_current::@3/(byte) current_ypos#81 ) + (byte) current_xpos#91 ← phi( play_spawn_current::@3/(byte) current_xpos#104 ) + (byte*) current_piece_gfx#74 ← phi( play_spawn_current::@3/(byte*) current_piece_gfx#92 ) + (byte) current_orientation#70 ← phi( play_spawn_current::@3/(byte) current_orientation#81 ) + (byte) current_piece_char#61 ← phi( play_spawn_current::@3/(byte) current_piece_char#77 ) + (byte*) current_piece#63 ← phi( play_spawn_current::@3/(byte*) current_piece#75 ) + (byte) sid_rnd::return#4 ← phi( play_spawn_current::@3/(byte) sid_rnd::return#2 ) + (byte~) play_spawn_current::$6 ← (byte) sid_rnd::return#4 + (byte~) play_spawn_current::$7 ← (byte~) play_spawn_current::$6 & (byte/signed byte/word/signed word/dword/signed dword) 7 + (byte) play_spawn_current::piece_idx#1 ← (byte~) play_spawn_current::$7 + to:play_spawn_current::@2 +play_spawn_current::@4: scope:[play_spawn_current] from play_spawn_current::@2 + (byte) game_over#29 ← phi( play_spawn_current::@2/(byte) game_over#39 ) + (byte) current_ypos#44 ← phi( play_spawn_current::@2/(byte) current_ypos#56 ) + (byte) current_xpos#53 ← phi( play_spawn_current::@2/(byte) current_xpos#71 ) + (byte*) current_piece_gfx#40 ← phi( play_spawn_current::@2/(byte*) current_piece_gfx#56 ) + (byte) current_orientation#45 ← phi( play_spawn_current::@2/(byte) current_orientation#56 ) + (byte) current_piece_char#31 ← phi( play_spawn_current::@2/(byte) current_piece_char#44 ) + (byte*) current_piece#35 ← phi( play_spawn_current::@2/(byte*) current_piece#48 ) + (byte) play_spawn_current::piece_idx#3 ← phi( play_spawn_current::@2/(byte) play_spawn_current::piece_idx#2 ) + (byte) next_piece_idx#5 ← (byte) play_spawn_current::piece_idx#3 to:play_spawn_current::@return -play_spawn_current::@8: scope:[play_spawn_current] from play_spawn_current::@10 - (byte) current_ypos#43 ← phi( play_spawn_current::@10/(byte) current_ypos#55 ) - (byte) current_xpos#52 ← phi( play_spawn_current::@10/(byte) current_xpos#70 ) - (byte*) current_piece_gfx#39 ← phi( play_spawn_current::@10/(byte*) current_piece_gfx#55 ) - (byte) current_orientation#44 ← phi( play_spawn_current::@10/(byte) current_orientation#55 ) - (byte) current_piece_char#30 ← phi( play_spawn_current::@10/(byte) current_piece_char#43 ) - (byte*) current_piece#34 ← phi( play_spawn_current::@10/(byte*) current_piece#47 ) - (byte) game_over#5 ← (byte/signed byte/word/signed word/dword/signed dword) 1 - to:play_spawn_current::@return -play_spawn_current::@return: scope:[play_spawn_current] from play_spawn_current::@4 play_spawn_current::@8 - (byte) game_over#15 ← phi( play_spawn_current::@4/(byte) game_over#27 play_spawn_current::@8/(byte) game_over#5 ) - (byte) current_ypos#22 ← phi( play_spawn_current::@4/(byte) current_ypos#42 play_spawn_current::@8/(byte) current_ypos#43 ) - (byte) current_xpos#28 ← phi( play_spawn_current::@4/(byte) current_xpos#51 play_spawn_current::@8/(byte) current_xpos#52 ) - (byte*) current_piece_gfx#21 ← phi( play_spawn_current::@4/(byte*) current_piece_gfx#38 play_spawn_current::@8/(byte*) current_piece_gfx#39 ) - (byte) current_orientation#25 ← phi( play_spawn_current::@4/(byte) current_orientation#43 play_spawn_current::@8/(byte) current_orientation#44 ) - (byte) current_piece_char#16 ← phi( play_spawn_current::@4/(byte) current_piece_char#29 play_spawn_current::@8/(byte) current_piece_char#30 ) - (byte*) current_piece#17 ← phi( play_spawn_current::@4/(byte*) current_piece#33 play_spawn_current::@8/(byte*) current_piece#34 ) - (byte*) current_piece#6 ← (byte*) current_piece#17 - (byte) current_piece_char#5 ← (byte) current_piece_char#16 - (byte) current_orientation#9 ← (byte) current_orientation#25 - (byte*) current_piece_gfx#8 ← (byte*) current_piece_gfx#21 - (byte) current_xpos#9 ← (byte) current_xpos#28 - (byte) current_ypos#6 ← (byte) current_ypos#22 - (byte) game_over#6 ← (byte) game_over#15 +play_spawn_current::@return: scope:[play_spawn_current] from play_spawn_current::@4 + (byte) next_piece_idx#18 ← phi( play_spawn_current::@4/(byte) next_piece_idx#5 ) + (byte) game_over#16 ← phi( play_spawn_current::@4/(byte) game_over#29 ) + (byte) current_ypos#23 ← phi( play_spawn_current::@4/(byte) current_ypos#44 ) + (byte) current_xpos#29 ← phi( play_spawn_current::@4/(byte) current_xpos#53 ) + (byte*) current_piece_gfx#22 ← phi( play_spawn_current::@4/(byte*) current_piece_gfx#40 ) + (byte) current_orientation#26 ← phi( play_spawn_current::@4/(byte) current_orientation#45 ) + (byte) current_piece_char#17 ← phi( play_spawn_current::@4/(byte) current_piece_char#31 ) + (byte*) current_piece#18 ← phi( play_spawn_current::@4/(byte*) current_piece#35 ) + (byte*) current_piece#6 ← (byte*) current_piece#18 + (byte) current_piece_char#5 ← (byte) current_piece_char#17 + (byte) current_orientation#9 ← (byte) current_orientation#26 + (byte*) current_piece_gfx#8 ← (byte*) current_piece_gfx#22 + (byte) current_xpos#9 ← (byte) current_xpos#29 + (byte) current_ypos#6 ← (byte) current_ypos#23 + (byte) game_over#6 ← (byte) game_over#16 + (byte) next_piece_idx#6 ← (byte) next_piece_idx#18 return to:@return play_remove_lines: scope:[play_remove_lines] from play_move_down::@19 @@ -2826,462 +2982,536 @@ play_increase_level::@return: scope:[play_increase_level] from play_increase_le (byte) level_bcd#9 ← (byte) level_bcd#22 return to:@return -main: scope:[main] from @37 - (byte) level_bcd#103 ← phi( @37/(byte) level_bcd#41 ) - (dword) score_bcd#86 ← phi( @37/(dword) score_bcd#34 ) - (word) lines_bcd#90 ← phi( @37/(word) lines_bcd#34 ) - (byte) current_movedown_counter#59 ← phi( @37/(byte) current_movedown_counter#27 ) - (byte) keyboard_modifiers#62 ← phi( @37/(byte) keyboard_modifiers#25 ) - (byte) keyboard_events_size#81 ← phi( @37/(byte) keyboard_events_size#28 ) - (byte) render_screen_showing#47 ← phi( @37/(byte) render_screen_showing#14 ) - (byte) level#93 ← phi( @37/(byte) level#38 ) - (byte) game_over#81 ← phi( @37/(byte) game_over#32 ) - (byte) current_ypos#86 ← phi( @37/(byte) current_ypos#47 ) - (byte) current_xpos#110 ← phi( @37/(byte) current_xpos#56 ) - (byte*) current_piece_gfx#100 ← phi( @37/(byte*) current_piece_gfx#43 ) - (byte) current_orientation#86 ← phi( @37/(byte) current_orientation#48 ) - (byte) current_piece_char#87 ← phi( @37/(byte) current_piece_char#34 ) - (byte*) current_piece#82 ← phi( @37/(byte*) current_piece#38 ) - (byte) current_movedown_slow#83 ← phi( @37/(byte) current_movedown_slow#46 ) - (byte) render_screen_render#32 ← phi( @37/(byte) render_screen_render#26 ) - (byte) render_screen_show#27 ← phi( @37/(byte) render_screen_show#24 ) +main: scope:[main] from @38 + (byte) level_bcd#106 ← phi( @38/(byte) level_bcd#41 ) + (dword) score_bcd#89 ← phi( @38/(dword) score_bcd#34 ) + (word) lines_bcd#93 ← phi( @38/(word) lines_bcd#34 ) + (byte) current_movedown_counter#62 ← phi( @38/(byte) current_movedown_counter#27 ) + (byte) keyboard_modifiers#65 ← phi( @38/(byte) keyboard_modifiers#25 ) + (byte) keyboard_events_size#84 ← phi( @38/(byte) keyboard_events_size#28 ) + (byte) render_screen_showing#50 ← phi( @38/(byte) render_screen_showing#14 ) + (byte) level#94 ← phi( @38/(byte) level#38 ) + (byte) game_over#84 ← phi( @38/(byte) game_over#34 ) + (byte) current_ypos#94 ← phi( @38/(byte) current_ypos#48 ) + (byte) current_xpos#118 ← phi( @38/(byte) current_xpos#57 ) + (byte*) current_piece_gfx#108 ← phi( @38/(byte*) current_piece_gfx#44 ) + (byte) current_orientation#93 ← phi( @38/(byte) current_orientation#49 ) + (byte) current_piece_char#95 ← phi( @38/(byte) current_piece_char#35 ) + (byte*) current_piece#89 ← phi( @38/(byte*) current_piece#39 ) + (byte) next_piece_idx#77 ← phi( @38/(byte) next_piece_idx#35 ) + (byte) current_movedown_slow#83 ← phi( @38/(byte) current_movedown_slow#46 ) + (byte) render_screen_render#35 ← phi( @38/(byte) render_screen_render#29 ) + (byte) render_screen_show#27 ← phi( @38/(byte) render_screen_show#24 ) call sid_rnd_init to:main::@25 main::@25: scope:[main] from main - (byte) level_bcd#102 ← phi( main/(byte) level_bcd#103 ) - (dword) score_bcd#85 ← phi( main/(dword) score_bcd#86 ) - (word) lines_bcd#89 ← phi( main/(word) lines_bcd#90 ) - (byte) current_movedown_counter#58 ← phi( main/(byte) current_movedown_counter#59 ) - (byte) keyboard_modifiers#60 ← phi( main/(byte) keyboard_modifiers#62 ) - (byte) keyboard_events_size#79 ← phi( main/(byte) keyboard_events_size#81 ) - (byte) render_screen_showing#46 ← phi( main/(byte) render_screen_showing#47 ) - (byte) level#89 ← phi( main/(byte) level#93 ) - (byte) game_over#72 ← phi( main/(byte) game_over#81 ) - (byte) current_ypos#82 ← phi( main/(byte) current_ypos#86 ) - (byte) current_xpos#106 ← phi( main/(byte) current_xpos#110 ) - (byte*) current_piece_gfx#93 ← phi( main/(byte*) current_piece_gfx#100 ) - (byte) current_orientation#82 ← phi( main/(byte) current_orientation#86 ) - (byte) current_piece_char#81 ← phi( main/(byte) current_piece_char#87 ) - (byte*) current_piece#76 ← phi( main/(byte*) current_piece#82 ) + (byte) level_bcd#105 ← phi( main/(byte) level_bcd#106 ) + (dword) score_bcd#88 ← phi( main/(dword) score_bcd#89 ) + (word) lines_bcd#92 ← phi( main/(word) lines_bcd#93 ) + (byte) current_movedown_counter#61 ← phi( main/(byte) current_movedown_counter#62 ) + (byte) keyboard_modifiers#64 ← phi( main/(byte) keyboard_modifiers#65 ) + (byte) keyboard_events_size#83 ← phi( main/(byte) keyboard_events_size#84 ) + (byte) render_screen_showing#49 ← phi( main/(byte) render_screen_showing#50 ) + (byte) level#89 ← phi( main/(byte) level#94 ) + (byte) game_over#76 ← phi( main/(byte) game_over#84 ) + (byte) current_ypos#89 ← phi( main/(byte) current_ypos#94 ) + (byte) current_xpos#113 ← phi( main/(byte) current_xpos#118 ) + (byte*) current_piece_gfx#100 ← phi( main/(byte*) current_piece_gfx#108 ) + (byte) current_orientation#89 ← phi( main/(byte) current_orientation#93 ) + (byte) current_piece_char#88 ← phi( main/(byte) current_piece_char#95 ) + (byte*) current_piece#83 ← phi( main/(byte*) current_piece#89 ) + (byte) next_piece_idx#71 ← phi( main/(byte) next_piece_idx#77 ) (byte) current_movedown_slow#78 ← phi( main/(byte) current_movedown_slow#83 ) - (byte) render_screen_render#24 ← phi( main/(byte) render_screen_render#32 ) + (byte) render_screen_render#27 ← phi( main/(byte) render_screen_render#35 ) (byte) render_screen_show#22 ← phi( main/(byte) render_screen_show#27 ) asm { sei } call render_init to:main::@26 main::@26: scope:[main] from main::@25 - (byte) level_bcd#101 ← phi( main::@25/(byte) level_bcd#102 ) - (dword) score_bcd#84 ← phi( main::@25/(dword) score_bcd#85 ) - (word) lines_bcd#88 ← phi( main::@25/(word) lines_bcd#89 ) - (byte) current_movedown_counter#57 ← phi( main::@25/(byte) current_movedown_counter#58 ) - (byte) keyboard_modifiers#58 ← phi( main::@25/(byte) keyboard_modifiers#60 ) - (byte) keyboard_events_size#76 ← phi( main::@25/(byte) keyboard_events_size#79 ) - (byte) render_screen_showing#45 ← phi( main::@25/(byte) render_screen_showing#46 ) + (byte) level_bcd#104 ← phi( main::@25/(byte) level_bcd#105 ) + (dword) score_bcd#87 ← phi( main::@25/(dword) score_bcd#88 ) + (word) lines_bcd#91 ← phi( main::@25/(word) lines_bcd#92 ) + (byte) current_movedown_counter#60 ← phi( main::@25/(byte) current_movedown_counter#61 ) + (byte) keyboard_modifiers#63 ← phi( main::@25/(byte) keyboard_modifiers#64 ) + (byte) keyboard_events_size#82 ← phi( main::@25/(byte) keyboard_events_size#83 ) + (byte) render_screen_showing#48 ← phi( main::@25/(byte) render_screen_showing#49 ) (byte) level#81 ← phi( main::@25/(byte) level#89 ) - (byte) game_over#63 ← phi( main::@25/(byte) game_over#72 ) - (byte) current_ypos#75 ← phi( main::@25/(byte) current_ypos#82 ) - (byte) current_xpos#98 ← phi( main::@25/(byte) current_xpos#106 ) - (byte*) current_piece_gfx#86 ← phi( main::@25/(byte*) current_piece_gfx#93 ) - (byte) current_orientation#76 ← phi( main::@25/(byte) current_orientation#82 ) - (byte) current_piece_char#72 ← phi( main::@25/(byte) current_piece_char#81 ) - (byte*) current_piece#70 ← phi( main::@25/(byte*) current_piece#76 ) + (byte) game_over#67 ← phi( main::@25/(byte) game_over#76 ) + (byte) current_ypos#82 ← phi( main::@25/(byte) current_ypos#89 ) + (byte) current_xpos#105 ← phi( main::@25/(byte) current_xpos#113 ) + (byte*) current_piece_gfx#93 ← phi( main::@25/(byte*) current_piece_gfx#100 ) + (byte) current_orientation#82 ← phi( main::@25/(byte) current_orientation#89 ) + (byte) current_piece_char#78 ← phi( main::@25/(byte) current_piece_char#88 ) + (byte*) current_piece#76 ← phi( main::@25/(byte*) current_piece#83 ) + (byte) next_piece_idx#63 ← phi( main::@25/(byte) next_piece_idx#71 ) (byte) current_movedown_slow#70 ← phi( main::@25/(byte) current_movedown_slow#78 ) - (byte) render_screen_render#15 ← phi( main::@25/(byte) render_screen_render#2 ) + (byte) render_screen_render#16 ← phi( main::@25/(byte) render_screen_render#2 ) (byte) render_screen_show#14 ← phi( main::@25/(byte) render_screen_show#2 ) (byte) render_screen_show#5 ← (byte) render_screen_show#14 - (byte) render_screen_render#5 ← (byte) render_screen_render#15 + (byte) render_screen_render#5 ← (byte) render_screen_render#16 call sprites_init to:main::@27 main::@27: scope:[main] from main::@26 - (byte) level_bcd#97 ← phi( main::@26/(byte) level_bcd#101 ) - (dword) score_bcd#80 ← phi( main::@26/(dword) score_bcd#84 ) - (word) lines_bcd#84 ← phi( main::@26/(word) lines_bcd#88 ) - (byte) current_movedown_counter#54 ← phi( main::@26/(byte) current_movedown_counter#57 ) - (byte) keyboard_modifiers#56 ← phi( main::@26/(byte) keyboard_modifiers#58 ) - (byte) keyboard_events_size#72 ← phi( main::@26/(byte) keyboard_events_size#76 ) - (byte) render_screen_showing#43 ← phi( main::@26/(byte) render_screen_showing#45 ) - (byte) render_screen_show#57 ← phi( main::@26/(byte) render_screen_show#5 ) - (byte) render_screen_render#50 ← phi( main::@26/(byte) render_screen_render#5 ) + (byte) level_bcd#103 ← phi( main::@26/(byte) level_bcd#104 ) + (dword) score_bcd#86 ← phi( main::@26/(dword) score_bcd#87 ) + (word) lines_bcd#90 ← phi( main::@26/(word) lines_bcd#91 ) + (byte) current_movedown_counter#59 ← phi( main::@26/(byte) current_movedown_counter#60 ) + (byte) keyboard_modifiers#61 ← phi( main::@26/(byte) keyboard_modifiers#63 ) + (byte) keyboard_events_size#80 ← phi( main::@26/(byte) keyboard_events_size#82 ) + (byte) render_screen_showing#47 ← phi( main::@26/(byte) render_screen_showing#48 ) + (byte) render_screen_show#62 ← phi( main::@26/(byte) render_screen_show#5 ) + (byte) render_screen_render#58 ← phi( main::@26/(byte) render_screen_render#5 ) (byte) level#72 ← phi( main::@26/(byte) level#81 ) - (byte) game_over#51 ← phi( main::@26/(byte) game_over#63 ) - (byte) current_ypos#68 ← phi( main::@26/(byte) current_ypos#75 ) - (byte) current_xpos#89 ← phi( main::@26/(byte) current_xpos#98 ) - (byte*) current_piece_gfx#72 ← phi( main::@26/(byte*) current_piece_gfx#86 ) - (byte) current_orientation#68 ← phi( main::@26/(byte) current_orientation#76 ) - (byte) current_piece_char#59 ← phi( main::@26/(byte) current_piece_char#72 ) - (byte*) current_piece#61 ← phi( main::@26/(byte*) current_piece#70 ) + (byte) game_over#54 ← phi( main::@26/(byte) game_over#67 ) + (byte) current_ypos#71 ← phi( main::@26/(byte) current_ypos#82 ) + (byte) current_xpos#92 ← phi( main::@26/(byte) current_xpos#105 ) + (byte*) current_piece_gfx#75 ← phi( main::@26/(byte*) current_piece_gfx#93 ) + (byte) current_orientation#71 ← phi( main::@26/(byte) current_orientation#82 ) + (byte) current_piece_char#62 ← phi( main::@26/(byte) current_piece_char#78 ) + (byte*) current_piece#64 ← phi( main::@26/(byte*) current_piece#76 ) + (byte) next_piece_idx#54 ← phi( main::@26/(byte) next_piece_idx#63 ) (byte) current_movedown_slow#57 ← phi( main::@26/(byte) current_movedown_slow#70 ) call sprites_irq_init to:main::@28 main::@28: scope:[main] from main::@27 - (byte) level_bcd#92 ← phi( main::@27/(byte) level_bcd#97 ) - (dword) score_bcd#77 ← phi( main::@27/(dword) score_bcd#80 ) - (word) lines_bcd#80 ← phi( main::@27/(word) lines_bcd#84 ) - (byte) current_movedown_counter#51 ← phi( main::@27/(byte) current_movedown_counter#54 ) - (byte) keyboard_modifiers#53 ← phi( main::@27/(byte) keyboard_modifiers#56 ) - (byte) keyboard_events_size#68 ← phi( main::@27/(byte) keyboard_events_size#72 ) - (byte) render_screen_showing#39 ← phi( main::@27/(byte) render_screen_showing#43 ) - (byte) render_screen_show#54 ← phi( main::@27/(byte) render_screen_show#57 ) - (byte) render_screen_render#46 ← phi( main::@27/(byte) render_screen_render#50 ) + (byte) level_bcd#102 ← phi( main::@27/(byte) level_bcd#103 ) + (dword) score_bcd#85 ← phi( main::@27/(dword) score_bcd#86 ) + (word) lines_bcd#89 ← phi( main::@27/(word) lines_bcd#90 ) + (byte) current_movedown_counter#58 ← phi( main::@27/(byte) current_movedown_counter#59 ) + (byte) keyboard_modifiers#59 ← phi( main::@27/(byte) keyboard_modifiers#61 ) + (byte) keyboard_events_size#77 ← phi( main::@27/(byte) keyboard_events_size#80 ) + (byte) render_screen_showing#46 ← phi( main::@27/(byte) render_screen_showing#47 ) + (byte) render_screen_show#61 ← phi( main::@27/(byte) render_screen_show#62 ) + (byte) render_screen_render#53 ← phi( main::@27/(byte) render_screen_render#58 ) (byte) level#53 ← phi( main::@27/(byte) level#72 ) - (byte) game_over#38 ← phi( main::@27/(byte) game_over#51 ) - (byte) current_ypos#56 ← phi( main::@27/(byte) current_ypos#68 ) - (byte) current_xpos#71 ← phi( main::@27/(byte) current_xpos#89 ) - (byte*) current_piece_gfx#56 ← phi( main::@27/(byte*) current_piece_gfx#72 ) - (byte) current_orientation#56 ← phi( main::@27/(byte) current_orientation#68 ) - (byte) current_piece_char#44 ← phi( main::@27/(byte) current_piece_char#59 ) - (byte*) current_piece#48 ← phi( main::@27/(byte*) current_piece#61 ) + (byte) game_over#40 ← phi( main::@27/(byte) game_over#54 ) + (byte) current_ypos#57 ← phi( main::@27/(byte) current_ypos#71 ) + (byte) current_xpos#72 ← phi( main::@27/(byte) current_xpos#92 ) + (byte*) current_piece_gfx#57 ← phi( main::@27/(byte*) current_piece_gfx#75 ) + (byte) current_orientation#57 ← phi( main::@27/(byte) current_orientation#71 ) + (byte) current_piece_char#45 ← phi( main::@27/(byte) current_piece_char#62 ) + (byte*) current_piece#49 ← phi( main::@27/(byte*) current_piece#64 ) + (byte) next_piece_idx#41 ← phi( main::@27/(byte) next_piece_idx#54 ) (byte) current_movedown_slow#43 ← phi( main::@27/(byte) current_movedown_slow#57 ) call play_init to:main::@29 main::@29: scope:[main] from main::@28 - (byte) level_bcd#83 ← phi( main::@28/(byte) level_bcd#92 ) - (byte) level#82 ← phi( main::@28/(byte) level#53 ) - (dword) score_bcd#70 ← phi( main::@28/(dword) score_bcd#77 ) - (word) lines_bcd#73 ← phi( main::@28/(word) lines_bcd#80 ) - (byte) current_movedown_counter#47 ← phi( main::@28/(byte) current_movedown_counter#51 ) - (byte) keyboard_modifiers#47 ← phi( main::@28/(byte) keyboard_modifiers#53 ) - (byte) keyboard_events_size#59 ← phi( main::@28/(byte) keyboard_events_size#68 ) - (byte) render_screen_showing#33 ← phi( main::@28/(byte) render_screen_showing#39 ) - (byte) render_screen_show#49 ← phi( main::@28/(byte) render_screen_show#54 ) - (byte) render_screen_render#41 ← phi( main::@28/(byte) render_screen_render#46 ) - (byte) game_over#28 ← phi( main::@28/(byte) game_over#38 ) - (byte) current_ypos#44 ← phi( main::@28/(byte) current_ypos#56 ) - (byte) current_xpos#53 ← phi( main::@28/(byte) current_xpos#71 ) - (byte*) current_piece_gfx#40 ← phi( main::@28/(byte*) current_piece_gfx#56 ) - (byte) current_orientation#45 ← phi( main::@28/(byte) current_orientation#56 ) - (byte) current_piece_char#31 ← phi( main::@28/(byte) current_piece_char#44 ) - (byte*) current_piece#35 ← phi( main::@28/(byte*) current_piece#48 ) + (byte) level_bcd#97 ← phi( main::@28/(byte) level_bcd#102 ) + (byte) level#95 ← phi( main::@28/(byte) level#53 ) + (dword) score_bcd#81 ← phi( main::@28/(dword) score_bcd#85 ) + (word) lines_bcd#84 ← phi( main::@28/(word) lines_bcd#89 ) + (byte) current_movedown_counter#54 ← phi( main::@28/(byte) current_movedown_counter#58 ) + (byte) keyboard_modifiers#56 ← phi( main::@28/(byte) keyboard_modifiers#59 ) + (byte) keyboard_events_size#72 ← phi( main::@28/(byte) keyboard_events_size#77 ) + (byte) render_screen_showing#43 ← phi( main::@28/(byte) render_screen_showing#46 ) + (byte) render_screen_show#58 ← phi( main::@28/(byte) render_screen_show#61 ) + (byte) render_screen_render#49 ← phi( main::@28/(byte) render_screen_render#53 ) + (byte) game_over#30 ← phi( main::@28/(byte) game_over#40 ) + (byte) current_ypos#45 ← phi( main::@28/(byte) current_ypos#57 ) + (byte) current_xpos#54 ← phi( main::@28/(byte) current_xpos#72 ) + (byte*) current_piece_gfx#41 ← phi( main::@28/(byte*) current_piece_gfx#57 ) + (byte) current_orientation#46 ← phi( main::@28/(byte) current_orientation#57 ) + (byte) current_piece_char#32 ← phi( main::@28/(byte) current_piece_char#45 ) + (byte*) current_piece#36 ← phi( main::@28/(byte*) current_piece#49 ) + (byte) next_piece_idx#32 ← phi( main::@28/(byte) next_piece_idx#41 ) (byte) current_movedown_slow#25 ← phi( main::@28/(byte) current_movedown_slow#2 ) (byte) current_movedown_slow#12 ← (byte) current_movedown_slow#25 call play_spawn_current to:main::@30 main::@30: scope:[main] from main::@29 - (byte) level_bcd#75 ← phi( main::@29/(byte) level_bcd#83 ) - (byte) level#73 ← phi( main::@29/(byte) level#82 ) - (dword) score_bcd#63 ← phi( main::@29/(dword) score_bcd#70 ) - (word) lines_bcd#65 ← phi( main::@29/(word) lines_bcd#73 ) - (byte) current_movedown_counter#43 ← phi( main::@29/(byte) current_movedown_counter#47 ) - (byte) keyboard_modifiers#40 ← phi( main::@29/(byte) keyboard_modifiers#47 ) - (byte) keyboard_events_size#49 ← phi( main::@29/(byte) keyboard_events_size#59 ) - (byte) render_screen_showing#28 ← phi( main::@29/(byte) render_screen_showing#33 ) - (byte) current_movedown_slow#79 ← phi( main::@29/(byte) current_movedown_slow#12 ) - (byte) render_screen_show#44 ← phi( main::@29/(byte) render_screen_show#49 ) - (byte) render_screen_render#28 ← phi( main::@29/(byte) render_screen_render#41 ) - (byte) game_over#16 ← phi( main::@29/(byte) game_over#6 ) - (byte) current_ypos#23 ← phi( main::@29/(byte) current_ypos#6 ) - (byte) current_xpos#29 ← phi( main::@29/(byte) current_xpos#9 ) - (byte*) current_piece_gfx#22 ← phi( main::@29/(byte*) current_piece_gfx#8 ) - (byte) current_orientation#26 ← phi( main::@29/(byte) current_orientation#9 ) - (byte) current_piece_char#17 ← phi( main::@29/(byte) current_piece_char#5 ) - (byte*) current_piece#18 ← phi( main::@29/(byte*) current_piece#6 ) - (byte*) current_piece#7 ← (byte*) current_piece#18 - (byte) current_piece_char#6 ← (byte) current_piece_char#17 - (byte) current_orientation#10 ← (byte) current_orientation#26 - (byte*) current_piece_gfx#9 ← (byte*) current_piece_gfx#22 - (byte) current_xpos#10 ← (byte) current_xpos#29 - (byte) current_ypos#7 ← (byte) current_ypos#23 - (byte) game_over#7 ← (byte) game_over#16 - call render_playfield + (byte) level_bcd#92 ← phi( main::@29/(byte) level_bcd#97 ) + (byte) level#90 ← phi( main::@29/(byte) level#95 ) + (dword) score_bcd#77 ← phi( main::@29/(dword) score_bcd#81 ) + (word) lines_bcd#80 ← phi( main::@29/(word) lines_bcd#84 ) + (byte) current_movedown_counter#51 ← phi( main::@29/(byte) current_movedown_counter#54 ) + (byte) keyboard_modifiers#53 ← phi( main::@29/(byte) keyboard_modifiers#56 ) + (byte) keyboard_events_size#68 ← phi( main::@29/(byte) keyboard_events_size#72 ) + (byte) render_screen_showing#39 ← phi( main::@29/(byte) render_screen_showing#43 ) + (byte) current_movedown_slow#88 ← phi( main::@29/(byte) current_movedown_slow#12 ) + (byte) render_screen_show#55 ← phi( main::@29/(byte) render_screen_show#58 ) + (byte) render_screen_render#44 ← phi( main::@29/(byte) render_screen_render#49 ) + (byte) next_piece_idx#19 ← phi( main::@29/(byte) next_piece_idx#6 ) + (byte) game_over#17 ← phi( main::@29/(byte) game_over#6 ) + (byte) current_ypos#24 ← phi( main::@29/(byte) current_ypos#6 ) + (byte) current_xpos#30 ← phi( main::@29/(byte) current_xpos#9 ) + (byte*) current_piece_gfx#23 ← phi( main::@29/(byte*) current_piece_gfx#8 ) + (byte) current_orientation#27 ← phi( main::@29/(byte) current_orientation#9 ) + (byte) current_piece_char#18 ← phi( main::@29/(byte) current_piece_char#5 ) + (byte*) current_piece#19 ← phi( main::@29/(byte*) current_piece#6 ) + (byte*) current_piece#7 ← (byte*) current_piece#19 + (byte) current_piece_char#6 ← (byte) current_piece_char#18 + (byte) current_orientation#10 ← (byte) current_orientation#27 + (byte*) current_piece_gfx#9 ← (byte*) current_piece_gfx#23 + (byte) current_xpos#10 ← (byte) current_xpos#30 + (byte) current_ypos#7 ← (byte) current_ypos#24 + (byte) game_over#7 ← (byte) game_over#17 + (byte) next_piece_idx#7 ← (byte) next_piece_idx#19 + call play_spawn_current to:main::@31 main::@31: scope:[main] from main::@30 - (byte) level_bcd#65 ← phi( main::@30/(byte) level_bcd#75 ) - (byte) level#61 ← phi( main::@30/(byte) level#73 ) - (dword) score_bcd#54 ← phi( main::@30/(dword) score_bcd#63 ) - (word) lines_bcd#54 ← phi( main::@30/(word) lines_bcd#65 ) - (byte) current_movedown_counter#39 ← phi( main::@30/(byte) current_movedown_counter#43 ) - (byte) keyboard_modifiers#35 ← phi( main::@30/(byte) keyboard_modifiers#40 ) - (byte) keyboard_events_size#41 ← phi( main::@30/(byte) keyboard_events_size#49 ) - (byte) render_screen_showing#22 ← phi( main::@30/(byte) render_screen_showing#28 ) - (byte) game_over#52 ← phi( main::@30/(byte) game_over#7 ) - (byte*) current_piece_gfx#73 ← phi( main::@30/(byte*) current_piece_gfx#9 ) - (byte) current_orientation#69 ← phi( main::@30/(byte) current_orientation#10 ) - (byte) current_piece_char#60 ← phi( main::@30/(byte) current_piece_char#6 ) - (byte*) current_piece#62 ← phi( main::@30/(byte*) current_piece#7 ) - (byte) current_movedown_slow#71 ← phi( main::@30/(byte) current_movedown_slow#79 ) - (byte) render_screen_show#36 ← phi( main::@30/(byte) render_screen_show#44 ) - (byte) current_xpos#77 ← phi( main::@30/(byte) current_xpos#10 ) - (byte) render_screen_render#37 ← phi( main::@30/(byte) render_screen_render#28 ) - (byte) current_ypos#27 ← phi( main::@30/(byte) current_ypos#7 ) - call render_moving + (byte) level_bcd#83 ← phi( main::@30/(byte) level_bcd#92 ) + (byte) level#82 ← phi( main::@30/(byte) level#90 ) + (dword) score_bcd#70 ← phi( main::@30/(dword) score_bcd#77 ) + (word) lines_bcd#73 ← phi( main::@30/(word) lines_bcd#80 ) + (byte) current_movedown_counter#47 ← phi( main::@30/(byte) current_movedown_counter#51 ) + (byte) keyboard_modifiers#47 ← phi( main::@30/(byte) keyboard_modifiers#53 ) + (byte) keyboard_events_size#59 ← phi( main::@30/(byte) keyboard_events_size#68 ) + (byte) render_screen_showing#33 ← phi( main::@30/(byte) render_screen_showing#39 ) + (byte) current_movedown_slow#84 ← phi( main::@30/(byte) current_movedown_slow#88 ) + (byte) render_screen_show#49 ← phi( main::@30/(byte) render_screen_show#55 ) + (byte) render_screen_render#31 ← phi( main::@30/(byte) render_screen_render#44 ) + (byte) next_piece_idx#20 ← phi( main::@30/(byte) next_piece_idx#6 ) + (byte) game_over#18 ← phi( main::@30/(byte) game_over#6 ) + (byte) current_ypos#25 ← phi( main::@30/(byte) current_ypos#6 ) + (byte) current_xpos#31 ← phi( main::@30/(byte) current_xpos#9 ) + (byte*) current_piece_gfx#24 ← phi( main::@30/(byte*) current_piece_gfx#8 ) + (byte) current_orientation#28 ← phi( main::@30/(byte) current_orientation#9 ) + (byte) current_piece_char#19 ← phi( main::@30/(byte) current_piece_char#5 ) + (byte*) current_piece#20 ← phi( main::@30/(byte*) current_piece#6 ) + (byte*) current_piece#8 ← (byte*) current_piece#20 + (byte) current_piece_char#7 ← (byte) current_piece_char#19 + (byte) current_orientation#11 ← (byte) current_orientation#28 + (byte*) current_piece_gfx#10 ← (byte*) current_piece_gfx#24 + (byte) current_xpos#11 ← (byte) current_xpos#31 + (byte) current_ypos#8 ← (byte) current_ypos#25 + (byte) game_over#8 ← (byte) game_over#18 + (byte) next_piece_idx#8 ← (byte) next_piece_idx#20 + call render_playfield to:main::@32 main::@32: scope:[main] from main::@31 - (byte) level_bcd#53 ← phi( main::@31/(byte) level_bcd#65 ) - (byte) level#49 ← phi( main::@31/(byte) level#61 ) - (dword) score_bcd#43 ← phi( main::@31/(dword) score_bcd#54 ) - (word) lines_bcd#43 ← phi( main::@31/(word) lines_bcd#54 ) - (byte) current_movedown_counter#32 ← phi( main::@31/(byte) current_movedown_counter#39 ) - (byte) keyboard_modifiers#30 ← phi( main::@31/(byte) keyboard_modifiers#35 ) - (byte) keyboard_events_size#33 ← phi( main::@31/(byte) keyboard_events_size#41 ) - (byte) render_screen_showing#17 ← phi( main::@31/(byte) render_screen_showing#22 ) - (byte) game_over#40 ← phi( main::@31/(byte) game_over#52 ) - (byte) current_ypos#58 ← phi( main::@31/(byte) current_ypos#27 ) - (byte) current_xpos#73 ← phi( main::@31/(byte) current_xpos#77 ) - (byte*) current_piece_gfx#58 ← phi( main::@31/(byte*) current_piece_gfx#73 ) - (byte) current_orientation#58 ← phi( main::@31/(byte) current_orientation#69 ) - (byte) current_piece_char#46 ← phi( main::@31/(byte) current_piece_char#60 ) - (byte*) current_piece#50 ← phi( main::@31/(byte*) current_piece#62 ) - (byte) current_movedown_slow#59 ← phi( main::@31/(byte) current_movedown_slow#71 ) - (byte) render_screen_render#34 ← phi( main::@31/(byte) render_screen_render#37 ) - (byte) render_screen_show#29 ← phi( main::@31/(byte) render_screen_show#36 ) + (byte) level_bcd#75 ← phi( main::@31/(byte) level_bcd#83 ) + (byte) level#73 ← phi( main::@31/(byte) level#82 ) + (dword) score_bcd#63 ← phi( main::@31/(dword) score_bcd#70 ) + (word) lines_bcd#65 ← phi( main::@31/(word) lines_bcd#73 ) + (byte) current_movedown_counter#43 ← phi( main::@31/(byte) current_movedown_counter#47 ) + (byte) keyboard_modifiers#40 ← phi( main::@31/(byte) keyboard_modifiers#47 ) + (byte) keyboard_events_size#49 ← phi( main::@31/(byte) keyboard_events_size#59 ) + (byte) render_screen_showing#28 ← phi( main::@31/(byte) render_screen_showing#33 ) + (byte) game_over#68 ← phi( main::@31/(byte) game_over#8 ) + (byte) current_orientation#83 ← phi( main::@31/(byte) current_orientation#11 ) + (byte) current_piece_char#79 ← phi( main::@31/(byte) current_piece_char#7 ) + (byte*) current_piece#77 ← phi( main::@31/(byte*) current_piece#8 ) + (byte) current_movedown_slow#79 ← phi( main::@31/(byte) current_movedown_slow#84 ) + (byte) render_screen_show#44 ← phi( main::@31/(byte) render_screen_show#49 ) + (byte) next_piece_idx#64 ← phi( main::@31/(byte) next_piece_idx#8 ) + (byte*) current_piece_gfx#80 ← phi( main::@31/(byte*) current_piece_gfx#10 ) + (byte) current_xpos#78 ← phi( main::@31/(byte) current_xpos#11 ) + (byte) render_screen_render#36 ← phi( main::@31/(byte) render_screen_render#31 ) + (byte) current_ypos#29 ← phi( main::@31/(byte) current_ypos#8 ) + call render_moving + to:main::@33 +main::@33: scope:[main] from main::@32 + (byte) level_bcd#65 ← phi( main::@32/(byte) level_bcd#75 ) + (byte) level#61 ← phi( main::@32/(byte) level#73 ) + (dword) score_bcd#54 ← phi( main::@32/(dword) score_bcd#63 ) + (word) lines_bcd#54 ← phi( main::@32/(word) lines_bcd#65 ) + (byte) current_movedown_counter#39 ← phi( main::@32/(byte) current_movedown_counter#43 ) + (byte) keyboard_modifiers#35 ← phi( main::@32/(byte) keyboard_modifiers#40 ) + (byte) keyboard_events_size#41 ← phi( main::@32/(byte) keyboard_events_size#49 ) + (byte) render_screen_showing#22 ← phi( main::@32/(byte) render_screen_showing#28 ) + (byte) game_over#55 ← phi( main::@32/(byte) game_over#68 ) + (byte) current_ypos#72 ← phi( main::@32/(byte) current_ypos#29 ) + (byte) current_xpos#93 ← phi( main::@32/(byte) current_xpos#78 ) + (byte*) current_piece_gfx#76 ← phi( main::@32/(byte*) current_piece_gfx#80 ) + (byte) current_orientation#72 ← phi( main::@32/(byte) current_orientation#83 ) + (byte) current_piece_char#63 ← phi( main::@32/(byte) current_piece_char#79 ) + (byte*) current_piece#65 ← phi( main::@32/(byte*) current_piece#77 ) + (byte) current_movedown_slow#71 ← phi( main::@32/(byte) current_movedown_slow#79 ) + (byte) render_screen_show#36 ← phi( main::@32/(byte) render_screen_show#44 ) + (byte) next_piece_idx#47 ← phi( main::@32/(byte) next_piece_idx#64 ) + (byte) render_screen_render#25 ← phi( main::@32/(byte) render_screen_render#36 ) + call render_next + to:main::@34 +main::@34: scope:[main] from main::@33 + (byte) level_bcd#53 ← phi( main::@33/(byte) level_bcd#65 ) + (byte) level#49 ← phi( main::@33/(byte) level#61 ) + (dword) score_bcd#43 ← phi( main::@33/(dword) score_bcd#54 ) + (word) lines_bcd#43 ← phi( main::@33/(word) lines_bcd#54 ) + (byte) current_movedown_counter#32 ← phi( main::@33/(byte) current_movedown_counter#39 ) + (byte) keyboard_modifiers#30 ← phi( main::@33/(byte) keyboard_modifiers#35 ) + (byte) keyboard_events_size#33 ← phi( main::@33/(byte) keyboard_events_size#41 ) + (byte) render_screen_showing#17 ← phi( main::@33/(byte) render_screen_showing#22 ) + (byte) next_piece_idx#43 ← phi( main::@33/(byte) next_piece_idx#47 ) + (byte) game_over#42 ← phi( main::@33/(byte) game_over#55 ) + (byte) current_ypos#59 ← phi( main::@33/(byte) current_ypos#72 ) + (byte) current_xpos#74 ← phi( main::@33/(byte) current_xpos#93 ) + (byte*) current_piece_gfx#59 ← phi( main::@33/(byte*) current_piece_gfx#76 ) + (byte) current_orientation#59 ← phi( main::@33/(byte) current_orientation#72 ) + (byte) current_piece_char#47 ← phi( main::@33/(byte) current_piece_char#63 ) + (byte*) current_piece#51 ← phi( main::@33/(byte*) current_piece#65 ) + (byte) current_movedown_slow#59 ← phi( main::@33/(byte) current_movedown_slow#71 ) + (byte) render_screen_render#38 ← phi( main::@33/(byte) render_screen_render#25 ) + (byte) render_screen_show#29 ← phi( main::@33/(byte) render_screen_show#36 ) to:main::@1 -main::@1: scope:[main] from main::@12 main::@32 main::@40 - (byte) level_bcd#40 ← phi( main::@12/(byte) level_bcd#52 main::@32/(byte) level_bcd#53 main::@40/(byte) level_bcd#54 ) - (byte) level#37 ← phi( main::@12/(byte) level#48 main::@32/(byte) level#49 main::@40/(byte) level#50 ) - (dword) score_bcd#33 ← phi( main::@12/(dword) score_bcd#42 main::@32/(dword) score_bcd#43 main::@40/(dword) score_bcd#44 ) - (word) lines_bcd#33 ← phi( main::@12/(word) lines_bcd#42 main::@32/(word) lines_bcd#43 main::@40/(word) lines_bcd#44 ) - (byte) current_movedown_counter#26 ← phi( main::@12/(byte) current_movedown_counter#31 main::@32/(byte) current_movedown_counter#32 main::@40/(byte) current_movedown_counter#33 ) - (byte) keyboard_modifiers#24 ← phi( main::@12/(byte) keyboard_modifiers#29 main::@32/(byte) keyboard_modifiers#30 main::@40/(byte) keyboard_modifiers#31 ) - (byte) keyboard_events_size#27 ← phi( main::@12/(byte) keyboard_events_size#32 main::@32/(byte) keyboard_events_size#33 main::@40/(byte) keyboard_events_size#34 ) - (byte) render_screen_showing#13 ← phi( main::@12/(byte) render_screen_showing#16 main::@32/(byte) render_screen_showing#17 main::@40/(byte) render_screen_showing#18 ) - (byte) game_over#31 ← phi( main::@12/(byte) game_over#39 main::@32/(byte) game_over#40 main::@40/(byte) game_over#41 ) - (byte) current_ypos#46 ← phi( main::@12/(byte) current_ypos#57 main::@32/(byte) current_ypos#58 main::@40/(byte) current_ypos#59 ) - (byte) current_xpos#55 ← phi( main::@12/(byte) current_xpos#72 main::@32/(byte) current_xpos#73 main::@40/(byte) current_xpos#74 ) - (byte*) current_piece_gfx#42 ← phi( main::@12/(byte*) current_piece_gfx#57 main::@32/(byte*) current_piece_gfx#58 main::@40/(byte*) current_piece_gfx#59 ) - (byte) current_orientation#47 ← phi( main::@12/(byte) current_orientation#57 main::@32/(byte) current_orientation#58 main::@40/(byte) current_orientation#59 ) - (byte) current_piece_char#33 ← phi( main::@12/(byte) current_piece_char#45 main::@32/(byte) current_piece_char#46 main::@40/(byte) current_piece_char#47 ) - (byte*) current_piece#37 ← phi( main::@12/(byte*) current_piece#49 main::@32/(byte*) current_piece#50 main::@40/(byte*) current_piece#51 ) - (byte) current_movedown_slow#45 ← phi( main::@12/(byte) current_movedown_slow#58 main::@32/(byte) current_movedown_slow#59 main::@40/(byte) current_movedown_slow#60 ) - (byte) render_screen_render#25 ← phi( main::@12/(byte) render_screen_render#33 main::@32/(byte) render_screen_render#34 main::@40/(byte) render_screen_render#6 ) - (byte) render_screen_show#23 ← phi( main::@12/(byte) render_screen_show#28 main::@32/(byte) render_screen_show#29 main::@40/(byte) render_screen_show#6 ) +main::@1: scope:[main] from main::@12 main::@34 main::@43 + (byte) level_bcd#40 ← phi( main::@12/(byte) level_bcd#52 main::@34/(byte) level_bcd#53 main::@43/(byte) level_bcd#54 ) + (byte) level#37 ← phi( main::@12/(byte) level#48 main::@34/(byte) level#49 main::@43/(byte) level#50 ) + (dword) score_bcd#33 ← phi( main::@12/(dword) score_bcd#42 main::@34/(dword) score_bcd#43 main::@43/(dword) score_bcd#44 ) + (word) lines_bcd#33 ← phi( main::@12/(word) lines_bcd#42 main::@34/(word) lines_bcd#43 main::@43/(word) lines_bcd#44 ) + (byte) current_movedown_counter#26 ← phi( main::@12/(byte) current_movedown_counter#31 main::@34/(byte) current_movedown_counter#32 main::@43/(byte) current_movedown_counter#33 ) + (byte) keyboard_modifiers#24 ← phi( main::@12/(byte) keyboard_modifiers#29 main::@34/(byte) keyboard_modifiers#30 main::@43/(byte) keyboard_modifiers#31 ) + (byte) keyboard_events_size#27 ← phi( main::@12/(byte) keyboard_events_size#32 main::@34/(byte) keyboard_events_size#33 main::@43/(byte) keyboard_events_size#34 ) + (byte) render_screen_showing#13 ← phi( main::@12/(byte) render_screen_showing#16 main::@34/(byte) render_screen_showing#17 main::@43/(byte) render_screen_showing#18 ) + (byte) next_piece_idx#34 ← phi( main::@12/(byte) next_piece_idx#42 main::@34/(byte) next_piece_idx#43 main::@43/(byte) next_piece_idx#44 ) + (byte) game_over#33 ← phi( main::@12/(byte) game_over#41 main::@34/(byte) game_over#42 main::@43/(byte) game_over#43 ) + (byte) current_ypos#47 ← phi( main::@12/(byte) current_ypos#58 main::@34/(byte) current_ypos#59 main::@43/(byte) current_ypos#60 ) + (byte) current_xpos#56 ← phi( main::@12/(byte) current_xpos#73 main::@34/(byte) current_xpos#74 main::@43/(byte) current_xpos#75 ) + (byte*) current_piece_gfx#43 ← phi( main::@12/(byte*) current_piece_gfx#58 main::@34/(byte*) current_piece_gfx#59 main::@43/(byte*) current_piece_gfx#60 ) + (byte) current_orientation#48 ← phi( main::@12/(byte) current_orientation#58 main::@34/(byte) current_orientation#59 main::@43/(byte) current_orientation#60 ) + (byte) current_piece_char#34 ← phi( main::@12/(byte) current_piece_char#46 main::@34/(byte) current_piece_char#47 main::@43/(byte) current_piece_char#48 ) + (byte*) current_piece#38 ← phi( main::@12/(byte*) current_piece#50 main::@34/(byte*) current_piece#51 main::@43/(byte*) current_piece#52 ) + (byte) current_movedown_slow#45 ← phi( main::@12/(byte) current_movedown_slow#58 main::@34/(byte) current_movedown_slow#59 main::@43/(byte) current_movedown_slow#60 ) + (byte) render_screen_render#28 ← phi( main::@12/(byte) render_screen_render#37 main::@34/(byte) render_screen_render#38 main::@43/(byte) render_screen_render#6 ) + (byte) render_screen_show#23 ← phi( main::@12/(byte) render_screen_show#28 main::@34/(byte) render_screen_show#29 main::@43/(byte) render_screen_show#6 ) if(true) goto main::@2 to:main::@return main::@2: scope:[main] from main::@1 - (byte) render_screen_render#61 ← phi( main::@1/(byte) render_screen_render#25 ) - (byte) current_xpos#113 ← phi( main::@1/(byte) current_xpos#55 ) - (byte*) current_piece_gfx#103 ← phi( main::@1/(byte*) current_piece_gfx#42 ) - (byte) current_orientation#89 ← phi( main::@1/(byte) current_orientation#47 ) - (byte) current_piece_char#91 ← phi( main::@1/(byte) current_piece_char#33 ) - (byte*) current_piece#85 ← phi( main::@1/(byte*) current_piece#37 ) + (byte) render_screen_render#65 ← phi( main::@1/(byte) render_screen_render#28 ) + (byte) next_piece_idx#79 ← phi( main::@1/(byte) next_piece_idx#34 ) + (byte) current_xpos#121 ← phi( main::@1/(byte) current_xpos#56 ) + (byte*) current_piece_gfx#111 ← phi( main::@1/(byte*) current_piece_gfx#43 ) + (byte) current_orientation#96 ← phi( main::@1/(byte) current_orientation#48 ) + (byte) current_piece_char#99 ← phi( main::@1/(byte) current_piece_char#34 ) + (byte*) current_piece#92 ← phi( main::@1/(byte*) current_piece#38 ) (byte) level_bcd#98 ← phi( main::@1/(byte) level_bcd#40 ) - (byte) current_movedown_slow#89 ← phi( main::@1/(byte) current_movedown_slow#45 ) - (byte) level#94 ← phi( main::@1/(byte) level#37 ) - (dword) score_bcd#81 ← phi( main::@1/(dword) score_bcd#33 ) + (byte) current_movedown_slow#91 ← phi( main::@1/(byte) current_movedown_slow#45 ) + (byte) level#96 ← phi( main::@1/(byte) level#37 ) + (dword) score_bcd#82 ← phi( main::@1/(dword) score_bcd#33 ) (word) lines_bcd#85 ← phi( main::@1/(word) lines_bcd#33 ) - (byte) current_ypos#89 ← phi( main::@1/(byte) current_ypos#46 ) + (byte) current_ypos#97 ← phi( main::@1/(byte) current_ypos#47 ) (byte) current_movedown_counter#55 ← phi( main::@1/(byte) current_movedown_counter#26 ) - (byte) game_over#73 ← phi( main::@1/(byte) game_over#31 ) + (byte) game_over#77 ← phi( main::@1/(byte) game_over#33 ) (byte) keyboard_modifiers#41 ← phi( main::@1/(byte) keyboard_modifiers#24 ) (byte) keyboard_events_size#50 ← phi( main::@1/(byte) keyboard_events_size#27 ) (byte) render_screen_showing#23 ← phi( main::@1/(byte) render_screen_showing#13 ) (byte) render_screen_show#37 ← phi( main::@1/(byte) render_screen_show#23 ) to:main::@4 main::@4: scope:[main] from main::@2 main::@5 - (byte) render_screen_render#60 ← phi( main::@2/(byte) render_screen_render#61 main::@5/(byte) render_screen_render#62 ) - (byte) current_xpos#111 ← phi( main::@2/(byte) current_xpos#113 main::@5/(byte) current_xpos#114 ) - (byte*) current_piece_gfx#101 ← phi( main::@2/(byte*) current_piece_gfx#103 main::@5/(byte*) current_piece_gfx#104 ) - (byte) current_orientation#87 ← phi( main::@2/(byte) current_orientation#89 main::@5/(byte) current_orientation#90 ) - (byte) current_piece_char#88 ← phi( main::@2/(byte) current_piece_char#91 main::@5/(byte) current_piece_char#92 ) - (byte*) current_piece#83 ← phi( main::@2/(byte*) current_piece#85 main::@5/(byte*) current_piece#86 ) + (byte) render_screen_render#64 ← phi( main::@2/(byte) render_screen_render#65 main::@5/(byte) render_screen_render#66 ) + (byte) next_piece_idx#78 ← phi( main::@2/(byte) next_piece_idx#79 main::@5/(byte) next_piece_idx#80 ) + (byte) current_xpos#119 ← phi( main::@2/(byte) current_xpos#121 main::@5/(byte) current_xpos#122 ) + (byte*) current_piece_gfx#109 ← phi( main::@2/(byte*) current_piece_gfx#111 main::@5/(byte*) current_piece_gfx#112 ) + (byte) current_orientation#94 ← phi( main::@2/(byte) current_orientation#96 main::@5/(byte) current_orientation#97 ) + (byte) current_piece_char#96 ← phi( main::@2/(byte) current_piece_char#99 main::@5/(byte) current_piece_char#100 ) + (byte*) current_piece#90 ← phi( main::@2/(byte*) current_piece#92 main::@5/(byte*) current_piece#93 ) (byte) level_bcd#93 ← phi( main::@2/(byte) level_bcd#98 main::@5/(byte) level_bcd#99 ) - (byte) current_movedown_slow#87 ← phi( main::@2/(byte) current_movedown_slow#89 main::@5/(byte) current_movedown_slow#90 ) - (byte) level#90 ← phi( main::@2/(byte) level#94 main::@5/(byte) level#95 ) - (dword) score_bcd#78 ← phi( main::@2/(dword) score_bcd#81 main::@5/(dword) score_bcd#82 ) + (byte) current_movedown_slow#89 ← phi( main::@2/(byte) current_movedown_slow#91 main::@5/(byte) current_movedown_slow#92 ) + (byte) level#91 ← phi( main::@2/(byte) level#96 main::@5/(byte) level#97 ) + (dword) score_bcd#78 ← phi( main::@2/(dword) score_bcd#82 main::@5/(dword) score_bcd#83 ) (word) lines_bcd#81 ← phi( main::@2/(word) lines_bcd#85 main::@5/(word) lines_bcd#86 ) - (byte) current_ypos#87 ← phi( main::@2/(byte) current_ypos#89 main::@5/(byte) current_ypos#90 ) + (byte) current_ypos#95 ← phi( main::@2/(byte) current_ypos#97 main::@5/(byte) current_ypos#98 ) (byte) current_movedown_counter#52 ← phi( main::@2/(byte) current_movedown_counter#55 main::@5/(byte) current_movedown_counter#56 ) - (byte) game_over#64 ← phi( main::@2/(byte) game_over#73 main::@5/(byte) game_over#74 ) + (byte) game_over#69 ← phi( main::@2/(byte) game_over#77 main::@5/(byte) game_over#78 ) (byte) keyboard_modifiers#36 ← phi( main::@2/(byte) keyboard_modifiers#41 main::@5/(byte) keyboard_modifiers#42 ) (byte) keyboard_events_size#42 ← phi( main::@2/(byte) keyboard_events_size#50 main::@5/(byte) keyboard_events_size#51 ) (byte) render_screen_showing#19 ← phi( main::@2/(byte) render_screen_showing#23 main::@5/(byte) render_screen_showing#24 ) (byte) render_screen_show#30 ← phi( main::@2/(byte) render_screen_show#37 main::@5/(byte) render_screen_show#38 ) - (bool~) main::$8 ← *((byte*) RASTER#0) != (byte/word/signed word/dword/signed dword) 255 - if((bool~) main::$8) goto main::@5 + (bool~) main::$10 ← *((byte*) RASTER#0) != (byte/word/signed word/dword/signed dword) 255 + if((bool~) main::$10) goto main::@5 to:main::@6 main::@5: scope:[main] from main::@4 - (byte) render_screen_render#62 ← phi( main::@4/(byte) render_screen_render#60 ) - (byte) current_xpos#114 ← phi( main::@4/(byte) current_xpos#111 ) - (byte*) current_piece_gfx#104 ← phi( main::@4/(byte*) current_piece_gfx#101 ) - (byte) current_orientation#90 ← phi( main::@4/(byte) current_orientation#87 ) - (byte) current_piece_char#92 ← phi( main::@4/(byte) current_piece_char#88 ) - (byte*) current_piece#86 ← phi( main::@4/(byte*) current_piece#83 ) + (byte) render_screen_render#66 ← phi( main::@4/(byte) render_screen_render#64 ) + (byte) next_piece_idx#80 ← phi( main::@4/(byte) next_piece_idx#78 ) + (byte) current_xpos#122 ← phi( main::@4/(byte) current_xpos#119 ) + (byte*) current_piece_gfx#112 ← phi( main::@4/(byte*) current_piece_gfx#109 ) + (byte) current_orientation#97 ← phi( main::@4/(byte) current_orientation#94 ) + (byte) current_piece_char#100 ← phi( main::@4/(byte) current_piece_char#96 ) + (byte*) current_piece#93 ← phi( main::@4/(byte*) current_piece#90 ) (byte) level_bcd#99 ← phi( main::@4/(byte) level_bcd#93 ) - (byte) current_movedown_slow#90 ← phi( main::@4/(byte) current_movedown_slow#87 ) - (byte) level#95 ← phi( main::@4/(byte) level#90 ) - (dword) score_bcd#82 ← phi( main::@4/(dword) score_bcd#78 ) + (byte) current_movedown_slow#92 ← phi( main::@4/(byte) current_movedown_slow#89 ) + (byte) level#97 ← phi( main::@4/(byte) level#91 ) + (dword) score_bcd#83 ← phi( main::@4/(dword) score_bcd#78 ) (word) lines_bcd#86 ← phi( main::@4/(word) lines_bcd#81 ) - (byte) current_ypos#90 ← phi( main::@4/(byte) current_ypos#87 ) + (byte) current_ypos#98 ← phi( main::@4/(byte) current_ypos#95 ) (byte) current_movedown_counter#56 ← phi( main::@4/(byte) current_movedown_counter#52 ) - (byte) game_over#74 ← phi( main::@4/(byte) game_over#64 ) + (byte) game_over#78 ← phi( main::@4/(byte) game_over#69 ) (byte) keyboard_modifiers#42 ← phi( main::@4/(byte) keyboard_modifiers#36 ) (byte) keyboard_events_size#51 ← phi( main::@4/(byte) keyboard_events_size#42 ) (byte) render_screen_showing#24 ← phi( main::@4/(byte) render_screen_showing#19 ) (byte) render_screen_show#38 ← phi( main::@4/(byte) render_screen_show#30 ) to:main::@4 main::@6: scope:[main] from main::@4 - (byte) render_screen_render#59 ← phi( main::@4/(byte) render_screen_render#60 ) - (byte) current_xpos#107 ← phi( main::@4/(byte) current_xpos#111 ) - (byte*) current_piece_gfx#94 ← phi( main::@4/(byte*) current_piece_gfx#101 ) - (byte) current_orientation#83 ← phi( main::@4/(byte) current_orientation#87 ) - (byte) current_piece_char#82 ← phi( main::@4/(byte) current_piece_char#88 ) - (byte*) current_piece#77 ← phi( main::@4/(byte*) current_piece#83 ) + (byte) render_screen_render#63 ← phi( main::@4/(byte) render_screen_render#64 ) + (byte) next_piece_idx#72 ← phi( main::@4/(byte) next_piece_idx#78 ) + (byte) current_xpos#114 ← phi( main::@4/(byte) current_xpos#119 ) + (byte*) current_piece_gfx#101 ← phi( main::@4/(byte*) current_piece_gfx#109 ) + (byte) current_orientation#90 ← phi( main::@4/(byte) current_orientation#94 ) + (byte) current_piece_char#89 ← phi( main::@4/(byte) current_piece_char#96 ) + (byte*) current_piece#84 ← phi( main::@4/(byte*) current_piece#90 ) (byte) level_bcd#84 ← phi( main::@4/(byte) level_bcd#93 ) - (byte) current_movedown_slow#84 ← phi( main::@4/(byte) current_movedown_slow#87 ) - (byte) level#83 ← phi( main::@4/(byte) level#90 ) + (byte) current_movedown_slow#85 ← phi( main::@4/(byte) current_movedown_slow#89 ) + (byte) level#83 ← phi( main::@4/(byte) level#91 ) (dword) score_bcd#71 ← phi( main::@4/(dword) score_bcd#78 ) (word) lines_bcd#74 ← phi( main::@4/(word) lines_bcd#81 ) - (byte) current_ypos#83 ← phi( main::@4/(byte) current_ypos#87 ) + (byte) current_ypos#90 ← phi( main::@4/(byte) current_ypos#95 ) (byte) current_movedown_counter#48 ← phi( main::@4/(byte) current_movedown_counter#52 ) - (byte) game_over#53 ← phi( main::@4/(byte) game_over#64 ) + (byte) game_over#56 ← phi( main::@4/(byte) game_over#69 ) (byte) keyboard_modifiers#32 ← phi( main::@4/(byte) keyboard_modifiers#36 ) (byte) keyboard_events_size#35 ← phi( main::@4/(byte) keyboard_events_size#42 ) (byte) render_screen_showing#12 ← phi( main::@4/(byte) render_screen_showing#19 ) (byte) render_screen_show#18 ← phi( main::@4/(byte) render_screen_show#30 ) call render_show - to:main::@33 -main::@33: scope:[main] from main::@6 - (byte) render_screen_render#57 ← phi( main::@6/(byte) render_screen_render#59 ) - (byte) render_screen_show#58 ← phi( main::@6/(byte) render_screen_show#18 ) - (byte) current_xpos#99 ← phi( main::@6/(byte) current_xpos#107 ) - (byte*) current_piece_gfx#87 ← phi( main::@6/(byte*) current_piece_gfx#94 ) - (byte) current_orientation#77 ← phi( main::@6/(byte) current_orientation#83 ) - (byte) current_piece_char#73 ← phi( main::@6/(byte) current_piece_char#82 ) - (byte*) current_piece#71 ← phi( main::@6/(byte*) current_piece#77 ) + to:main::@35 +main::@35: scope:[main] from main::@6 + (byte) render_screen_render#61 ← phi( main::@6/(byte) render_screen_render#63 ) + (byte) render_screen_show#59 ← phi( main::@6/(byte) render_screen_show#18 ) + (byte) next_piece_idx#65 ← phi( main::@6/(byte) next_piece_idx#72 ) + (byte) current_xpos#106 ← phi( main::@6/(byte) current_xpos#114 ) + (byte*) current_piece_gfx#94 ← phi( main::@6/(byte*) current_piece_gfx#101 ) + (byte) current_orientation#84 ← phi( main::@6/(byte) current_orientation#90 ) + (byte) current_piece_char#80 ← phi( main::@6/(byte) current_piece_char#89 ) + (byte*) current_piece#78 ← phi( main::@6/(byte*) current_piece#84 ) (byte) level_bcd#76 ← phi( main::@6/(byte) level_bcd#84 ) - (byte) current_movedown_slow#80 ← phi( main::@6/(byte) current_movedown_slow#84 ) + (byte) current_movedown_slow#80 ← phi( main::@6/(byte) current_movedown_slow#85 ) (byte) level#74 ← phi( main::@6/(byte) level#83 ) (dword) score_bcd#64 ← phi( main::@6/(dword) score_bcd#71 ) (word) lines_bcd#66 ← phi( main::@6/(word) lines_bcd#74 ) - (byte) current_ypos#76 ← phi( main::@6/(byte) current_ypos#83 ) + (byte) current_ypos#83 ← phi( main::@6/(byte) current_ypos#90 ) (byte) current_movedown_counter#44 ← phi( main::@6/(byte) current_movedown_counter#48 ) - (byte) game_over#42 ← phi( main::@6/(byte) game_over#53 ) + (byte) game_over#44 ← phi( main::@6/(byte) game_over#56 ) (byte) keyboard_modifiers#23 ← phi( main::@6/(byte) keyboard_modifiers#32 ) (byte) keyboard_events_size#26 ← phi( main::@6/(byte) keyboard_events_size#35 ) (byte) render_screen_showing#8 ← phi( main::@6/(byte) render_screen_showing#2 ) (byte) render_screen_showing#3 ← (byte) render_screen_showing#8 call keyboard_event_scan - to:main::@34 -main::@34: scope:[main] from main::@33 - (byte) render_screen_showing#40 ← phi( main::@33/(byte) render_screen_showing#3 ) - (byte) render_screen_render#55 ← phi( main::@33/(byte) render_screen_render#57 ) - (byte) render_screen_show#55 ← phi( main::@33/(byte) render_screen_show#58 ) - (byte) current_xpos#90 ← phi( main::@33/(byte) current_xpos#99 ) - (byte*) current_piece_gfx#74 ← phi( main::@33/(byte*) current_piece_gfx#87 ) - (byte) current_orientation#70 ← phi( main::@33/(byte) current_orientation#77 ) - (byte) current_piece_char#61 ← phi( main::@33/(byte) current_piece_char#73 ) - (byte*) current_piece#63 ← phi( main::@33/(byte*) current_piece#71 ) - (byte) level_bcd#66 ← phi( main::@33/(byte) level_bcd#76 ) - (byte) current_movedown_slow#72 ← phi( main::@33/(byte) current_movedown_slow#80 ) - (byte) level#62 ← phi( main::@33/(byte) level#74 ) - (dword) score_bcd#55 ← phi( main::@33/(dword) score_bcd#64 ) - (word) lines_bcd#55 ← phi( main::@33/(word) lines_bcd#66 ) - (byte) current_ypos#69 ← phi( main::@33/(byte) current_ypos#76 ) - (byte) current_movedown_counter#40 ← phi( main::@33/(byte) current_movedown_counter#44 ) - (byte) game_over#29 ← phi( main::@33/(byte) game_over#42 ) - (byte) keyboard_modifiers#15 ← phi( main::@33/(byte) keyboard_modifiers#6 ) - (byte) keyboard_events_size#17 ← phi( main::@33/(byte) keyboard_events_size#3 ) + to:main::@36 +main::@36: scope:[main] from main::@35 + (byte) render_screen_showing#40 ← phi( main::@35/(byte) render_screen_showing#3 ) + (byte) render_screen_render#59 ← phi( main::@35/(byte) render_screen_render#61 ) + (byte) render_screen_show#56 ← phi( main::@35/(byte) render_screen_show#59 ) + (byte) next_piece_idx#55 ← phi( main::@35/(byte) next_piece_idx#65 ) + (byte) current_xpos#94 ← phi( main::@35/(byte) current_xpos#106 ) + (byte*) current_piece_gfx#77 ← phi( main::@35/(byte*) current_piece_gfx#94 ) + (byte) current_orientation#73 ← phi( main::@35/(byte) current_orientation#84 ) + (byte) current_piece_char#64 ← phi( main::@35/(byte) current_piece_char#80 ) + (byte*) current_piece#66 ← phi( main::@35/(byte*) current_piece#78 ) + (byte) level_bcd#66 ← phi( main::@35/(byte) level_bcd#76 ) + (byte) current_movedown_slow#72 ← phi( main::@35/(byte) current_movedown_slow#80 ) + (byte) level#62 ← phi( main::@35/(byte) level#74 ) + (dword) score_bcd#55 ← phi( main::@35/(dword) score_bcd#64 ) + (word) lines_bcd#55 ← phi( main::@35/(word) lines_bcd#66 ) + (byte) current_ypos#73 ← phi( main::@35/(byte) current_ypos#83 ) + (byte) current_movedown_counter#40 ← phi( main::@35/(byte) current_movedown_counter#44 ) + (byte) game_over#31 ← phi( main::@35/(byte) game_over#44 ) + (byte) keyboard_modifiers#15 ← phi( main::@35/(byte) keyboard_modifiers#6 ) + (byte) keyboard_events_size#17 ← phi( main::@35/(byte) keyboard_events_size#3 ) (byte) keyboard_events_size#6 ← (byte) keyboard_events_size#17 (byte) keyboard_modifiers#7 ← (byte) keyboard_modifiers#15 call keyboard_event_get (byte) keyboard_event_get::return#3 ← (byte) keyboard_event_get::return#2 - to:main::@35 -main::@35: scope:[main] from main::@34 - (byte) keyboard_modifiers#49 ← phi( main::@34/(byte) keyboard_modifiers#7 ) - (byte) render_screen_showing#35 ← phi( main::@34/(byte) render_screen_showing#40 ) - (byte) render_screen_render#52 ← phi( main::@34/(byte) render_screen_render#55 ) - (byte) render_screen_show#51 ← phi( main::@34/(byte) render_screen_show#55 ) - (byte) current_xpos#75 ← phi( main::@34/(byte) current_xpos#90 ) - (byte*) current_piece_gfx#60 ← phi( main::@34/(byte*) current_piece_gfx#74 ) - (byte) current_orientation#60 ← phi( main::@34/(byte) current_orientation#70 ) - (byte) current_piece_char#48 ← phi( main::@34/(byte) current_piece_char#61 ) - (byte*) current_piece#52 ← phi( main::@34/(byte*) current_piece#63 ) - (byte) level_bcd#55 ← phi( main::@34/(byte) level_bcd#66 ) - (byte) current_movedown_slow#61 ← phi( main::@34/(byte) current_movedown_slow#72 ) - (byte) level#51 ← phi( main::@34/(byte) level#62 ) - (dword) score_bcd#45 ← phi( main::@34/(dword) score_bcd#55 ) - (word) lines_bcd#45 ← phi( main::@34/(word) lines_bcd#55 ) - (byte) current_ypos#60 ← phi( main::@34/(byte) current_ypos#69 ) - (byte) current_movedown_counter#34 ← phi( main::@34/(byte) current_movedown_counter#40 ) - (byte) game_over#17 ← phi( main::@34/(byte) game_over#29 ) - (byte) keyboard_events_size#18 ← phi( main::@34/(byte) keyboard_events_size#5 ) - (byte) keyboard_event_get::return#5 ← phi( main::@34/(byte) keyboard_event_get::return#3 ) - (byte~) main::$11 ← (byte) keyboard_event_get::return#5 + to:main::@37 +main::@37: scope:[main] from main::@36 + (byte) keyboard_modifiers#49 ← phi( main::@36/(byte) keyboard_modifiers#7 ) + (byte) render_screen_showing#35 ← phi( main::@36/(byte) render_screen_showing#40 ) + (byte) render_screen_render#55 ← phi( main::@36/(byte) render_screen_render#59 ) + (byte) render_screen_show#51 ← phi( main::@36/(byte) render_screen_show#56 ) + (byte) next_piece_idx#45 ← phi( main::@36/(byte) next_piece_idx#55 ) + (byte) current_xpos#76 ← phi( main::@36/(byte) current_xpos#94 ) + (byte*) current_piece_gfx#61 ← phi( main::@36/(byte*) current_piece_gfx#77 ) + (byte) current_orientation#61 ← phi( main::@36/(byte) current_orientation#73 ) + (byte) current_piece_char#49 ← phi( main::@36/(byte) current_piece_char#64 ) + (byte*) current_piece#53 ← phi( main::@36/(byte*) current_piece#66 ) + (byte) level_bcd#55 ← phi( main::@36/(byte) level_bcd#66 ) + (byte) current_movedown_slow#61 ← phi( main::@36/(byte) current_movedown_slow#72 ) + (byte) level#51 ← phi( main::@36/(byte) level#62 ) + (dword) score_bcd#45 ← phi( main::@36/(dword) score_bcd#55 ) + (word) lines_bcd#45 ← phi( main::@36/(word) lines_bcd#55 ) + (byte) current_ypos#61 ← phi( main::@36/(byte) current_ypos#73 ) + (byte) current_movedown_counter#34 ← phi( main::@36/(byte) current_movedown_counter#40 ) + (byte) game_over#19 ← phi( main::@36/(byte) game_over#31 ) + (byte) keyboard_events_size#18 ← phi( main::@36/(byte) keyboard_events_size#5 ) + (byte) keyboard_event_get::return#5 ← phi( main::@36/(byte) keyboard_event_get::return#3 ) + (byte~) main::$13 ← (byte) keyboard_event_get::return#5 (byte) keyboard_events_size#7 ← (byte) keyboard_events_size#18 - (byte) main::key_event#0 ← (byte~) main::$11 + (byte) main::key_event#0 ← (byte~) main::$13 (byte) main::render#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 - (bool~) main::$12 ← (byte) game_over#17 == (byte/signed byte/word/signed word/dword/signed dword) 0 - if((bool~) main::$12) goto main::@7 + (bool~) main::$14 ← (byte) game_over#19 == (byte/signed byte/word/signed word/dword/signed dword) 0 + if((bool~) main::$14) goto main::@7 to:main::@8 -main::@7: scope:[main] from main::@35 - (byte) keyboard_modifiers#48 ← phi( main::@35/(byte) keyboard_modifiers#49 ) - (byte) keyboard_events_size#60 ← phi( main::@35/(byte) keyboard_events_size#7 ) - (byte) render_screen_showing#34 ← phi( main::@35/(byte) render_screen_showing#35 ) - (byte) render_screen_render#51 ← phi( main::@35/(byte) render_screen_render#52 ) - (byte) render_screen_show#50 ← phi( main::@35/(byte) render_screen_show#51 ) - (byte) game_over#30 ← phi( main::@35/(byte) game_over#17 ) - (byte) current_xpos#54 ← phi( main::@35/(byte) current_xpos#75 ) - (byte*) current_piece_gfx#41 ← phi( main::@35/(byte*) current_piece_gfx#60 ) - (byte) current_orientation#46 ← phi( main::@35/(byte) current_orientation#60 ) - (byte) current_piece_char#32 ← phi( main::@35/(byte) current_piece_char#48 ) - (byte*) current_piece#36 ← phi( main::@35/(byte*) current_piece#52 ) - (byte) level_bcd#39 ← phi( main::@35/(byte) level_bcd#55 ) - (byte) current_movedown_slow#44 ← phi( main::@35/(byte) current_movedown_slow#61 ) - (byte) level#36 ← phi( main::@35/(byte) level#51 ) - (dword) score_bcd#32 ← phi( main::@35/(dword) score_bcd#45 ) - (word) lines_bcd#32 ← phi( main::@35/(word) lines_bcd#45 ) - (byte) current_ypos#45 ← phi( main::@35/(byte) current_ypos#60 ) - (byte) current_movedown_counter#25 ← phi( main::@35/(byte) current_movedown_counter#34 ) - (byte) main::key_event#1 ← phi( main::@35/(byte) main::key_event#0 ) +main::@7: scope:[main] from main::@37 + (byte) keyboard_modifiers#48 ← phi( main::@37/(byte) keyboard_modifiers#49 ) + (byte) keyboard_events_size#60 ← phi( main::@37/(byte) keyboard_events_size#7 ) + (byte) render_screen_showing#34 ← phi( main::@37/(byte) render_screen_showing#35 ) + (byte) render_screen_render#54 ← phi( main::@37/(byte) render_screen_render#55 ) + (byte) render_screen_show#50 ← phi( main::@37/(byte) render_screen_show#51 ) + (byte) next_piece_idx#33 ← phi( main::@37/(byte) next_piece_idx#45 ) + (byte) game_over#32 ← phi( main::@37/(byte) game_over#19 ) + (byte) current_xpos#55 ← phi( main::@37/(byte) current_xpos#76 ) + (byte*) current_piece_gfx#42 ← phi( main::@37/(byte*) current_piece_gfx#61 ) + (byte) current_orientation#47 ← phi( main::@37/(byte) current_orientation#61 ) + (byte) current_piece_char#33 ← phi( main::@37/(byte) current_piece_char#49 ) + (byte*) current_piece#37 ← phi( main::@37/(byte*) current_piece#53 ) + (byte) level_bcd#39 ← phi( main::@37/(byte) level_bcd#55 ) + (byte) current_movedown_slow#44 ← phi( main::@37/(byte) current_movedown_slow#61 ) + (byte) level#36 ← phi( main::@37/(byte) level#51 ) + (dword) score_bcd#32 ← phi( main::@37/(dword) score_bcd#45 ) + (word) lines_bcd#32 ← phi( main::@37/(word) lines_bcd#45 ) + (byte) current_ypos#46 ← phi( main::@37/(byte) current_ypos#61 ) + (byte) current_movedown_counter#25 ← phi( main::@37/(byte) current_movedown_counter#34 ) + (byte) main::key_event#1 ← phi( main::@37/(byte) main::key_event#0 ) (byte) play_movement::key_event#0 ← (byte) main::key_event#1 call play_movement (byte) play_movement::return#3 ← (byte) play_movement::return#2 - to:main::@36 -main::@36: scope:[main] from main::@7 + to:main::@38 +main::@38: scope:[main] from main::@7 (byte) keyboard_modifiers#43 ← phi( main::@7/(byte) keyboard_modifiers#48 ) (byte) keyboard_events_size#52 ← phi( main::@7/(byte) keyboard_events_size#60 ) (byte) render_screen_showing#29 ← phi( main::@7/(byte) render_screen_showing#34 ) - (byte) render_screen_render#47 ← phi( main::@7/(byte) render_screen_render#51 ) + (byte) render_screen_render#50 ← phi( main::@7/(byte) render_screen_render#54 ) (byte) render_screen_show#45 ← phi( main::@7/(byte) render_screen_show#50 ) - (byte) game_over#18 ← phi( main::@7/(byte) game_over#2 ) - (byte) current_xpos#30 ← phi( main::@7/(byte) current_xpos#2 ) - (byte*) current_piece_gfx#23 ← phi( main::@7/(byte*) current_piece_gfx#2 ) - (byte) current_orientation#27 ← phi( main::@7/(byte) current_orientation#3 ) - (byte) current_piece_char#18 ← phi( main::@7/(byte) current_piece_char#1 ) - (byte*) current_piece#19 ← phi( main::@7/(byte*) current_piece#2 ) + (byte) next_piece_idx#21 ← phi( main::@7/(byte) next_piece_idx#2 ) + (byte) game_over#20 ← phi( main::@7/(byte) game_over#2 ) + (byte) current_xpos#32 ← phi( main::@7/(byte) current_xpos#2 ) + (byte*) current_piece_gfx#25 ← phi( main::@7/(byte*) current_piece_gfx#2 ) + (byte) current_orientation#29 ← phi( main::@7/(byte) current_orientation#3 ) + (byte) current_piece_char#20 ← phi( main::@7/(byte) current_piece_char#1 ) + (byte*) current_piece#21 ← phi( main::@7/(byte*) current_piece#2 ) (byte) level_bcd#23 ← phi( main::@7/(byte) level_bcd#2 ) (byte) current_movedown_slow#26 ← phi( main::@7/(byte) current_movedown_slow#4 ) (byte) level#22 ← phi( main::@7/(byte) level#2 ) (dword) score_bcd#17 ← phi( main::@7/(dword) score_bcd#2 ) (word) lines_bcd#18 ← phi( main::@7/(word) lines_bcd#2 ) - (byte) current_ypos#24 ← phi( main::@7/(byte) current_ypos#1 ) + (byte) current_ypos#26 ← phi( main::@7/(byte) current_ypos#1 ) (byte) current_movedown_counter#15 ← phi( main::@7/(byte) current_movedown_counter#2 ) (byte) play_movement::return#5 ← phi( main::@7/(byte) play_movement::return#3 ) - (byte~) main::$13 ← (byte) play_movement::return#5 + (byte~) main::$15 ← (byte) play_movement::return#5 (byte) current_movedown_counter#6 ← (byte) current_movedown_counter#15 - (byte) current_ypos#8 ← (byte) current_ypos#24 + (byte) current_ypos#9 ← (byte) current_ypos#26 (word) lines_bcd#7 ← (word) lines_bcd#18 (dword) score_bcd#7 ← (dword) score_bcd#17 (byte) level#9 ← (byte) level#22 (byte) current_movedown_slow#13 ← (byte) current_movedown_slow#26 (byte) level_bcd#10 ← (byte) level_bcd#23 - (byte*) current_piece#8 ← (byte*) current_piece#19 - (byte) current_piece_char#7 ← (byte) current_piece_char#18 - (byte) current_orientation#11 ← (byte) current_orientation#27 - (byte*) current_piece_gfx#10 ← (byte*) current_piece_gfx#23 - (byte) current_xpos#11 ← (byte) current_xpos#30 - (byte) game_over#8 ← (byte) game_over#18 - (byte) main::render#1 ← (byte~) main::$13 + (byte*) current_piece#9 ← (byte*) current_piece#21 + (byte) current_piece_char#8 ← (byte) current_piece_char#20 + (byte) current_orientation#12 ← (byte) current_orientation#29 + (byte*) current_piece_gfx#11 ← (byte*) current_piece_gfx#25 + (byte) current_xpos#12 ← (byte) current_xpos#32 + (byte) game_over#9 ← (byte) game_over#20 + (byte) next_piece_idx#9 ← (byte) next_piece_idx#21 + (byte) main::render#1 ← (byte~) main::$15 to:main::@11 -main::@8: scope:[main] from main::@35 main::@9 - (byte) level_bcd#77 ← phi( main::@35/(byte) level_bcd#55 main::@9/(byte) level_bcd#85 ) - (byte) level#75 ← phi( main::@35/(byte) level#51 main::@9/(byte) level#84 ) - (dword) score_bcd#65 ← phi( main::@35/(dword) score_bcd#45 main::@9/(dword) score_bcd#72 ) - (word) lines_bcd#67 ← phi( main::@35/(word) lines_bcd#45 main::@9/(word) lines_bcd#75 ) - (byte) current_movedown_counter#45 ← phi( main::@35/(byte) current_movedown_counter#34 main::@9/(byte) current_movedown_counter#49 ) - (byte) keyboard_modifiers#44 ← phi( main::@35/(byte) keyboard_modifiers#49 main::@9/(byte) keyboard_modifiers#50 ) - (byte) keyboard_events_size#53 ← phi( main::@35/(byte) keyboard_events_size#7 main::@9/(byte) keyboard_events_size#61 ) - (byte) render_screen_showing#30 ← phi( main::@35/(byte) render_screen_showing#35 main::@9/(byte) render_screen_showing#36 ) - (byte) game_over#65 ← phi( main::@35/(byte) game_over#17 main::@9/(byte) game_over#75 ) - (byte) current_ypos#77 ← phi( main::@35/(byte) current_ypos#60 main::@9/(byte) current_ypos#84 ) - (byte) current_xpos#100 ← phi( main::@35/(byte) current_xpos#75 main::@9/(byte) current_xpos#108 ) - (byte*) current_piece_gfx#88 ← phi( main::@35/(byte*) current_piece_gfx#60 main::@9/(byte*) current_piece_gfx#95 ) - (byte) current_orientation#78 ← phi( main::@35/(byte) current_orientation#60 main::@9/(byte) current_orientation#84 ) - (byte) current_piece_char#74 ← phi( main::@35/(byte) current_piece_char#48 main::@9/(byte) current_piece_char#83 ) - (byte*) current_piece#72 ← phi( main::@35/(byte*) current_piece#52 main::@9/(byte*) current_piece#78 ) - (byte) current_movedown_slow#81 ← phi( main::@35/(byte) current_movedown_slow#61 main::@9/(byte) current_movedown_slow#85 ) - (byte) render_screen_render#48 ← phi( main::@35/(byte) render_screen_render#52 main::@9/(byte) render_screen_render#53 ) - (byte) render_screen_show#46 ← phi( main::@35/(byte) render_screen_show#51 main::@9/(byte) render_screen_show#52 ) - (byte) main::render#3 ← phi( main::@35/(byte) main::render#0 main::@9/(byte) main::render#4 ) +main::@8: scope:[main] from main::@37 main::@9 + (byte) level_bcd#77 ← phi( main::@37/(byte) level_bcd#55 main::@9/(byte) level_bcd#85 ) + (byte) level#75 ← phi( main::@37/(byte) level#51 main::@9/(byte) level#84 ) + (dword) score_bcd#65 ← phi( main::@37/(dword) score_bcd#45 main::@9/(dword) score_bcd#72 ) + (word) lines_bcd#67 ← phi( main::@37/(word) lines_bcd#45 main::@9/(word) lines_bcd#75 ) + (byte) current_movedown_counter#45 ← phi( main::@37/(byte) current_movedown_counter#34 main::@9/(byte) current_movedown_counter#49 ) + (byte) keyboard_modifiers#44 ← phi( main::@37/(byte) keyboard_modifiers#49 main::@9/(byte) keyboard_modifiers#50 ) + (byte) keyboard_events_size#53 ← phi( main::@37/(byte) keyboard_events_size#7 main::@9/(byte) keyboard_events_size#61 ) + (byte) render_screen_showing#30 ← phi( main::@37/(byte) render_screen_showing#35 main::@9/(byte) render_screen_showing#36 ) + (byte) next_piece_idx#66 ← phi( main::@37/(byte) next_piece_idx#45 main::@9/(byte) next_piece_idx#73 ) + (byte) game_over#70 ← phi( main::@37/(byte) game_over#19 main::@9/(byte) game_over#79 ) + (byte) current_ypos#84 ← phi( main::@37/(byte) current_ypos#61 main::@9/(byte) current_ypos#91 ) + (byte) current_xpos#107 ← phi( main::@37/(byte) current_xpos#76 main::@9/(byte) current_xpos#115 ) + (byte*) current_piece_gfx#95 ← phi( main::@37/(byte*) current_piece_gfx#61 main::@9/(byte*) current_piece_gfx#102 ) + (byte) current_orientation#85 ← phi( main::@37/(byte) current_orientation#61 main::@9/(byte) current_orientation#91 ) + (byte) current_piece_char#81 ← phi( main::@37/(byte) current_piece_char#49 main::@9/(byte) current_piece_char#90 ) + (byte*) current_piece#79 ← phi( main::@37/(byte*) current_piece#53 main::@9/(byte*) current_piece#85 ) + (byte) current_movedown_slow#81 ← phi( main::@37/(byte) current_movedown_slow#61 main::@9/(byte) current_movedown_slow#86 ) + (byte) render_screen_render#51 ← phi( main::@37/(byte) render_screen_render#55 main::@9/(byte) render_screen_render#56 ) + (byte) render_screen_show#46 ← phi( main::@37/(byte) render_screen_show#51 main::@9/(byte) render_screen_show#52 ) + (byte) main::render#3 ← phi( main::@37/(byte) main::render#0 main::@9/(byte) main::render#4 ) if(true) goto main::@9 to:main::@11 main::@9: scope:[main] from main::@8 @@ -3293,42 +3523,44 @@ main::@9: scope:[main] from main::@8 (byte) keyboard_modifiers#50 ← phi( main::@8/(byte) keyboard_modifiers#44 ) (byte) keyboard_events_size#61 ← phi( main::@8/(byte) keyboard_events_size#53 ) (byte) render_screen_showing#36 ← phi( main::@8/(byte) render_screen_showing#30 ) - (byte) game_over#75 ← phi( main::@8/(byte) game_over#65 ) - (byte) current_ypos#84 ← phi( main::@8/(byte) current_ypos#77 ) - (byte) current_xpos#108 ← phi( main::@8/(byte) current_xpos#100 ) - (byte*) current_piece_gfx#95 ← phi( main::@8/(byte*) current_piece_gfx#88 ) - (byte) current_orientation#84 ← phi( main::@8/(byte) current_orientation#78 ) - (byte) current_piece_char#83 ← phi( main::@8/(byte) current_piece_char#74 ) - (byte*) current_piece#78 ← phi( main::@8/(byte*) current_piece#72 ) - (byte) current_movedown_slow#85 ← phi( main::@8/(byte) current_movedown_slow#81 ) - (byte) render_screen_render#53 ← phi( main::@8/(byte) render_screen_render#48 ) + (byte) next_piece_idx#73 ← phi( main::@8/(byte) next_piece_idx#66 ) + (byte) game_over#79 ← phi( main::@8/(byte) game_over#70 ) + (byte) current_ypos#91 ← phi( main::@8/(byte) current_ypos#84 ) + (byte) current_xpos#115 ← phi( main::@8/(byte) current_xpos#107 ) + (byte*) current_piece_gfx#102 ← phi( main::@8/(byte*) current_piece_gfx#95 ) + (byte) current_orientation#91 ← phi( main::@8/(byte) current_orientation#85 ) + (byte) current_piece_char#90 ← phi( main::@8/(byte) current_piece_char#81 ) + (byte*) current_piece#85 ← phi( main::@8/(byte*) current_piece#79 ) + (byte) current_movedown_slow#86 ← phi( main::@8/(byte) current_movedown_slow#81 ) + (byte) render_screen_render#56 ← phi( main::@8/(byte) render_screen_render#51 ) (byte) render_screen_show#52 ← phi( main::@8/(byte) render_screen_show#46 ) (byte) main::render#4 ← phi( main::@8/(byte) main::render#3 ) *((byte*) BORDERCOL#0) ← ++ *((byte*) BORDERCOL#0) to:main::@8 -main::@11: scope:[main] from main::@36 main::@8 - (byte) level_bcd#67 ← phi( main::@36/(byte) level_bcd#10 main::@8/(byte) level_bcd#77 ) - (byte) level#63 ← phi( main::@36/(byte) level#9 main::@8/(byte) level#75 ) - (dword) score_bcd#56 ← phi( main::@36/(dword) score_bcd#7 main::@8/(dword) score_bcd#65 ) - (word) lines_bcd#56 ← phi( main::@36/(word) lines_bcd#7 main::@8/(word) lines_bcd#67 ) - (byte) current_movedown_counter#41 ← phi( main::@36/(byte) current_movedown_counter#6 main::@8/(byte) current_movedown_counter#45 ) - (byte) keyboard_modifiers#37 ← phi( main::@36/(byte) keyboard_modifiers#43 main::@8/(byte) keyboard_modifiers#44 ) - (byte) keyboard_events_size#43 ← phi( main::@36/(byte) keyboard_events_size#52 main::@8/(byte) keyboard_events_size#53 ) - (byte) render_screen_showing#25 ← phi( main::@36/(byte) render_screen_showing#29 main::@8/(byte) render_screen_showing#30 ) - (byte) game_over#54 ← phi( main::@36/(byte) game_over#8 main::@8/(byte) game_over#65 ) - (byte) current_ypos#70 ← phi( main::@36/(byte) current_ypos#8 main::@8/(byte) current_ypos#77 ) - (byte) current_xpos#91 ← phi( main::@36/(byte) current_xpos#11 main::@8/(byte) current_xpos#100 ) - (byte*) current_piece_gfx#75 ← phi( main::@36/(byte*) current_piece_gfx#10 main::@8/(byte*) current_piece_gfx#88 ) - (byte) current_orientation#71 ← phi( main::@36/(byte) current_orientation#11 main::@8/(byte) current_orientation#78 ) - (byte) current_piece_char#62 ← phi( main::@36/(byte) current_piece_char#7 main::@8/(byte) current_piece_char#74 ) - (byte*) current_piece#64 ← phi( main::@36/(byte*) current_piece#8 main::@8/(byte*) current_piece#72 ) - (byte) current_movedown_slow#73 ← phi( main::@36/(byte) current_movedown_slow#13 main::@8/(byte) current_movedown_slow#81 ) - (byte) render_screen_render#42 ← phi( main::@36/(byte) render_screen_render#47 main::@8/(byte) render_screen_render#48 ) - (byte) render_screen_show#39 ← phi( main::@36/(byte) render_screen_show#45 main::@8/(byte) render_screen_show#46 ) - (byte) main::render#2 ← phi( main::@36/(byte) main::render#1 main::@8/(byte) main::render#3 ) - (bool~) main::$14 ← (byte) main::render#2 != (byte/signed byte/word/signed word/dword/signed dword) 0 - (bool~) main::$15 ← ! (bool~) main::$14 - if((bool~) main::$15) goto main::@12 +main::@11: scope:[main] from main::@38 main::@8 + (byte) level_bcd#67 ← phi( main::@38/(byte) level_bcd#10 main::@8/(byte) level_bcd#77 ) + (byte) level#63 ← phi( main::@38/(byte) level#9 main::@8/(byte) level#75 ) + (dword) score_bcd#56 ← phi( main::@38/(dword) score_bcd#7 main::@8/(dword) score_bcd#65 ) + (word) lines_bcd#56 ← phi( main::@38/(word) lines_bcd#7 main::@8/(word) lines_bcd#67 ) + (byte) current_movedown_counter#41 ← phi( main::@38/(byte) current_movedown_counter#6 main::@8/(byte) current_movedown_counter#45 ) + (byte) keyboard_modifiers#37 ← phi( main::@38/(byte) keyboard_modifiers#43 main::@8/(byte) keyboard_modifiers#44 ) + (byte) keyboard_events_size#43 ← phi( main::@38/(byte) keyboard_events_size#52 main::@8/(byte) keyboard_events_size#53 ) + (byte) render_screen_showing#25 ← phi( main::@38/(byte) render_screen_showing#29 main::@8/(byte) render_screen_showing#30 ) + (byte) next_piece_idx#56 ← phi( main::@38/(byte) next_piece_idx#9 main::@8/(byte) next_piece_idx#66 ) + (byte) game_over#57 ← phi( main::@38/(byte) game_over#9 main::@8/(byte) game_over#70 ) + (byte) current_ypos#74 ← phi( main::@38/(byte) current_ypos#9 main::@8/(byte) current_ypos#84 ) + (byte) current_xpos#95 ← phi( main::@38/(byte) current_xpos#12 main::@8/(byte) current_xpos#107 ) + (byte*) current_piece_gfx#78 ← phi( main::@38/(byte*) current_piece_gfx#11 main::@8/(byte*) current_piece_gfx#95 ) + (byte) current_orientation#74 ← phi( main::@38/(byte) current_orientation#12 main::@8/(byte) current_orientation#85 ) + (byte) current_piece_char#65 ← phi( main::@38/(byte) current_piece_char#8 main::@8/(byte) current_piece_char#81 ) + (byte*) current_piece#67 ← phi( main::@38/(byte*) current_piece#9 main::@8/(byte*) current_piece#79 ) + (byte) current_movedown_slow#73 ← phi( main::@38/(byte) current_movedown_slow#13 main::@8/(byte) current_movedown_slow#81 ) + (byte) render_screen_render#45 ← phi( main::@38/(byte) render_screen_render#50 main::@8/(byte) render_screen_render#51 ) + (byte) render_screen_show#39 ← phi( main::@38/(byte) render_screen_show#45 main::@8/(byte) render_screen_show#46 ) + (byte) main::render#2 ← phi( main::@38/(byte) main::render#1 main::@8/(byte) main::render#3 ) + (bool~) main::$16 ← (byte) main::render#2 != (byte/signed byte/word/signed word/dword/signed dword) 0 + (bool~) main::$17 ← ! (bool~) main::$16 + if((bool~) main::$17) goto main::@12 to:main::@23 main::@12: scope:[main] from main::@11 (byte) level_bcd#52 ← phi( main::@11/(byte) level_bcd#67 ) @@ -3339,121 +3571,149 @@ main::@12: scope:[main] from main::@11 (byte) keyboard_modifiers#29 ← phi( main::@11/(byte) keyboard_modifiers#37 ) (byte) keyboard_events_size#32 ← phi( main::@11/(byte) keyboard_events_size#43 ) (byte) render_screen_showing#16 ← phi( main::@11/(byte) render_screen_showing#25 ) - (byte) game_over#39 ← phi( main::@11/(byte) game_over#54 ) - (byte) current_ypos#57 ← phi( main::@11/(byte) current_ypos#70 ) - (byte) current_xpos#72 ← phi( main::@11/(byte) current_xpos#91 ) - (byte*) current_piece_gfx#57 ← phi( main::@11/(byte*) current_piece_gfx#75 ) - (byte) current_orientation#57 ← phi( main::@11/(byte) current_orientation#71 ) - (byte) current_piece_char#45 ← phi( main::@11/(byte) current_piece_char#62 ) - (byte*) current_piece#49 ← phi( main::@11/(byte*) current_piece#64 ) + (byte) next_piece_idx#42 ← phi( main::@11/(byte) next_piece_idx#56 ) + (byte) game_over#41 ← phi( main::@11/(byte) game_over#57 ) + (byte) current_ypos#58 ← phi( main::@11/(byte) current_ypos#74 ) + (byte) current_xpos#73 ← phi( main::@11/(byte) current_xpos#95 ) + (byte*) current_piece_gfx#58 ← phi( main::@11/(byte*) current_piece_gfx#78 ) + (byte) current_orientation#58 ← phi( main::@11/(byte) current_orientation#74 ) + (byte) current_piece_char#46 ← phi( main::@11/(byte) current_piece_char#65 ) + (byte*) current_piece#50 ← phi( main::@11/(byte*) current_piece#67 ) (byte) current_movedown_slow#58 ← phi( main::@11/(byte) current_movedown_slow#73 ) - (byte) render_screen_render#33 ← phi( main::@11/(byte) render_screen_render#42 ) + (byte) render_screen_render#37 ← phi( main::@11/(byte) render_screen_render#45 ) (byte) render_screen_show#28 ← phi( main::@11/(byte) render_screen_show#39 ) to:main::@1 main::@23: scope:[main] from main::@11 - (byte) level_bcd#94 ← phi( main::@11/(byte) level_bcd#67 ) - (byte) level#91 ← phi( main::@11/(byte) level#63 ) - (word) lines_bcd#82 ← phi( main::@11/(word) lines_bcd#56 ) - (byte) current_movedown_counter#53 ← phi( main::@11/(byte) current_movedown_counter#41 ) - (byte) keyboard_modifiers#54 ← phi( main::@11/(byte) keyboard_modifiers#37 ) - (byte) keyboard_events_size#69 ← phi( main::@11/(byte) keyboard_events_size#43 ) - (byte) render_screen_showing#41 ← phi( main::@11/(byte) render_screen_showing#25 ) - (byte) game_over#82 ← phi( main::@11/(byte) game_over#54 ) - (byte) current_orientation#88 ← phi( main::@11/(byte) current_orientation#71 ) - (byte*) current_piece#84 ← phi( main::@11/(byte*) current_piece#64 ) - (byte) current_movedown_slow#88 ← phi( main::@11/(byte) current_movedown_slow#73 ) - (byte) current_piece_char#89 ← phi( main::@11/(byte) current_piece_char#62 ) - (dword) score_bcd#73 ← phi( main::@11/(dword) score_bcd#56 ) - (byte*) current_piece_gfx#96 ← phi( main::@11/(byte*) current_piece_gfx#75 ) - (byte) render_screen_show#47 ← phi( main::@11/(byte) render_screen_show#39 ) - (byte) current_xpos#101 ← phi( main::@11/(byte) current_xpos#91 ) - (byte) current_ypos#61 ← phi( main::@11/(byte) current_ypos#70 ) - (byte) render_screen_render#27 ← phi( main::@11/(byte) render_screen_render#42 ) + (byte) level_bcd#100 ← phi( main::@11/(byte) level_bcd#67 ) + (byte) level#98 ← phi( main::@11/(byte) level#63 ) + (word) lines_bcd#87 ← phi( main::@11/(word) lines_bcd#56 ) + (byte) current_movedown_counter#57 ← phi( main::@11/(byte) current_movedown_counter#41 ) + (byte) keyboard_modifiers#57 ← phi( main::@11/(byte) keyboard_modifiers#37 ) + (byte) keyboard_events_size#73 ← phi( main::@11/(byte) keyboard_events_size#43 ) + (byte) render_screen_showing#44 ← phi( main::@11/(byte) render_screen_showing#25 ) + (byte) game_over#87 ← phi( main::@11/(byte) game_over#57 ) + (byte) current_orientation#98 ← phi( main::@11/(byte) current_orientation#74 ) + (byte*) current_piece#94 ← phi( main::@11/(byte*) current_piece#67 ) + (byte) current_movedown_slow#93 ← phi( main::@11/(byte) current_movedown_slow#73 ) + (dword) score_bcd#79 ← phi( main::@11/(dword) score_bcd#56 ) + (byte) current_piece_char#97 ← phi( main::@11/(byte) current_piece_char#65 ) + (byte) render_screen_show#53 ← phi( main::@11/(byte) render_screen_show#39 ) + (byte) next_piece_idx#74 ← phi( main::@11/(byte) next_piece_idx#56 ) + (byte*) current_piece_gfx#103 ← phi( main::@11/(byte*) current_piece_gfx#78 ) + (byte) current_xpos#108 ← phi( main::@11/(byte) current_xpos#95 ) + (byte) current_ypos#62 ← phi( main::@11/(byte) current_ypos#74 ) + (byte) render_screen_render#30 ← phi( main::@11/(byte) render_screen_render#45 ) call render_playfield - to:main::@37 -main::@37: scope:[main] from main::@23 - (byte) level_bcd#86 ← phi( main::@23/(byte) level_bcd#94 ) - (byte) level#85 ← phi( main::@23/(byte) level#91 ) - (word) lines_bcd#76 ← phi( main::@23/(word) lines_bcd#82 ) - (byte) current_movedown_counter#50 ← phi( main::@23/(byte) current_movedown_counter#53 ) - (byte) keyboard_modifiers#51 ← phi( main::@23/(byte) keyboard_modifiers#54 ) - (byte) keyboard_events_size#62 ← phi( main::@23/(byte) keyboard_events_size#69 ) - (byte) render_screen_showing#37 ← phi( main::@23/(byte) render_screen_showing#41 ) - (byte) game_over#76 ← phi( main::@23/(byte) game_over#82 ) - (byte) current_orientation#85 ← phi( main::@23/(byte) current_orientation#88 ) - (byte*) current_piece#79 ← phi( main::@23/(byte*) current_piece#84 ) - (byte) current_movedown_slow#86 ← phi( main::@23/(byte) current_movedown_slow#88 ) - (byte) current_piece_char#76 ← phi( main::@23/(byte) current_piece_char#89 ) - (dword) score_bcd#66 ← phi( main::@23/(dword) score_bcd#73 ) - (byte*) current_piece_gfx#77 ← phi( main::@23/(byte*) current_piece_gfx#96 ) - (byte) render_screen_show#40 ← phi( main::@23/(byte) render_screen_show#47 ) - (byte) current_xpos#78 ← phi( main::@23/(byte) current_xpos#101 ) - (byte) render_screen_render#35 ← phi( main::@23/(byte) render_screen_render#27 ) - (byte) current_ypos#28 ← phi( main::@23/(byte) current_ypos#61 ) - call render_moving - to:main::@38 -main::@38: scope:[main] from main::@37 - (byte) level_bcd#78 ← phi( main::@37/(byte) level_bcd#86 ) - (byte) level#76 ← phi( main::@37/(byte) level#85 ) - (word) lines_bcd#68 ← phi( main::@37/(word) lines_bcd#76 ) - (byte) current_movedown_counter#46 ← phi( main::@37/(byte) current_movedown_counter#50 ) - (byte) keyboard_modifiers#45 ← phi( main::@37/(byte) keyboard_modifiers#51 ) - (byte) keyboard_events_size#54 ← phi( main::@37/(byte) keyboard_events_size#62 ) - (byte) render_screen_showing#31 ← phi( main::@37/(byte) render_screen_showing#37 ) - (byte) game_over#66 ← phi( main::@37/(byte) game_over#76 ) - (byte) current_ypos#78 ← phi( main::@37/(byte) current_ypos#28 ) - (byte) current_xpos#102 ← phi( main::@37/(byte) current_xpos#78 ) - (byte*) current_piece_gfx#89 ← phi( main::@37/(byte*) current_piece_gfx#77 ) - (byte) current_orientation#79 ← phi( main::@37/(byte) current_orientation#85 ) - (byte) current_piece_char#75 ← phi( main::@37/(byte) current_piece_char#76 ) - (byte*) current_piece#73 ← phi( main::@37/(byte*) current_piece#79 ) - (byte) current_movedown_slow#82 ← phi( main::@37/(byte) current_movedown_slow#86 ) - (dword) score_bcd#47 ← phi( main::@37/(dword) score_bcd#66 ) - (byte) render_screen_show#31 ← phi( main::@37/(byte) render_screen_show#40 ) - (byte) render_screen_render#20 ← phi( main::@37/(byte) render_screen_render#35 ) - call render_score to:main::@39 -main::@39: scope:[main] from main::@38 - (byte) level_bcd#68 ← phi( main::@38/(byte) level_bcd#78 ) - (byte) level#64 ← phi( main::@38/(byte) level#76 ) - (dword) score_bcd#57 ← phi( main::@38/(dword) score_bcd#47 ) - (word) lines_bcd#57 ← phi( main::@38/(word) lines_bcd#68 ) - (byte) current_movedown_counter#42 ← phi( main::@38/(byte) current_movedown_counter#46 ) - (byte) keyboard_modifiers#38 ← phi( main::@38/(byte) keyboard_modifiers#45 ) - (byte) keyboard_events_size#44 ← phi( main::@38/(byte) keyboard_events_size#54 ) - (byte) render_screen_showing#26 ← phi( main::@38/(byte) render_screen_showing#31 ) - (byte) game_over#55 ← phi( main::@38/(byte) game_over#66 ) - (byte) current_ypos#71 ← phi( main::@38/(byte) current_ypos#78 ) - (byte) current_xpos#92 ← phi( main::@38/(byte) current_xpos#102 ) - (byte*) current_piece_gfx#76 ← phi( main::@38/(byte*) current_piece_gfx#89 ) - (byte) current_orientation#72 ← phi( main::@38/(byte) current_orientation#79 ) - (byte) current_piece_char#63 ← phi( main::@38/(byte) current_piece_char#75 ) - (byte*) current_piece#65 ← phi( main::@38/(byte*) current_piece#73 ) - (byte) current_movedown_slow#74 ← phi( main::@38/(byte) current_movedown_slow#82 ) - (byte) render_screen_show#21 ← phi( main::@38/(byte) render_screen_show#31 ) - (byte) render_screen_render#19 ← phi( main::@38/(byte) render_screen_render#20 ) - call render_screen_swap +main::@39: scope:[main] from main::@23 + (byte) level_bcd#94 ← phi( main::@23/(byte) level_bcd#100 ) + (byte) level#92 ← phi( main::@23/(byte) level#98 ) + (word) lines_bcd#82 ← phi( main::@23/(word) lines_bcd#87 ) + (byte) current_movedown_counter#53 ← phi( main::@23/(byte) current_movedown_counter#57 ) + (byte) keyboard_modifiers#54 ← phi( main::@23/(byte) keyboard_modifiers#57 ) + (byte) keyboard_events_size#69 ← phi( main::@23/(byte) keyboard_events_size#73 ) + (byte) render_screen_showing#41 ← phi( main::@23/(byte) render_screen_showing#44 ) + (byte) game_over#85 ← phi( main::@23/(byte) game_over#87 ) + (byte) current_orientation#95 ← phi( main::@23/(byte) current_orientation#98 ) + (byte*) current_piece#91 ← phi( main::@23/(byte*) current_piece#94 ) + (byte) current_movedown_slow#90 ← phi( main::@23/(byte) current_movedown_slow#93 ) + (dword) score_bcd#73 ← phi( main::@23/(dword) score_bcd#79 ) + (byte) current_piece_char#83 ← phi( main::@23/(byte) current_piece_char#97 ) + (byte) render_screen_show#47 ← phi( main::@23/(byte) render_screen_show#53 ) + (byte) next_piece_idx#67 ← phi( main::@23/(byte) next_piece_idx#74 ) + (byte*) current_piece_gfx#81 ← phi( main::@23/(byte*) current_piece_gfx#103 ) + (byte) current_xpos#79 ← phi( main::@23/(byte) current_xpos#108 ) + (byte) render_screen_render#39 ← phi( main::@23/(byte) render_screen_render#30 ) + (byte) current_ypos#30 ← phi( main::@23/(byte) current_ypos#62 ) + call render_moving to:main::@40 main::@40: scope:[main] from main::@39 - (byte) level_bcd#54 ← phi( main::@39/(byte) level_bcd#68 ) - (byte) level#50 ← phi( main::@39/(byte) level#64 ) - (dword) score_bcd#44 ← phi( main::@39/(dword) score_bcd#57 ) - (word) lines_bcd#44 ← phi( main::@39/(word) lines_bcd#57 ) - (byte) current_movedown_counter#33 ← phi( main::@39/(byte) current_movedown_counter#42 ) - (byte) keyboard_modifiers#31 ← phi( main::@39/(byte) keyboard_modifiers#38 ) - (byte) keyboard_events_size#34 ← phi( main::@39/(byte) keyboard_events_size#44 ) - (byte) render_screen_showing#18 ← phi( main::@39/(byte) render_screen_showing#26 ) - (byte) game_over#41 ← phi( main::@39/(byte) game_over#55 ) - (byte) current_ypos#59 ← phi( main::@39/(byte) current_ypos#71 ) - (byte) current_xpos#74 ← phi( main::@39/(byte) current_xpos#92 ) - (byte*) current_piece_gfx#59 ← phi( main::@39/(byte*) current_piece_gfx#76 ) - (byte) current_orientation#59 ← phi( main::@39/(byte) current_orientation#72 ) - (byte) current_piece_char#47 ← phi( main::@39/(byte) current_piece_char#63 ) - (byte*) current_piece#51 ← phi( main::@39/(byte*) current_piece#65 ) - (byte) current_movedown_slow#60 ← phi( main::@39/(byte) current_movedown_slow#74 ) - (byte) render_screen_show#15 ← phi( main::@39/(byte) render_screen_show#4 ) - (byte) render_screen_render#16 ← phi( main::@39/(byte) render_screen_render#4 ) - (byte) render_screen_render#6 ← (byte) render_screen_render#16 + (byte) level_bcd#86 ← phi( main::@39/(byte) level_bcd#94 ) + (byte) level#85 ← phi( main::@39/(byte) level#92 ) + (word) lines_bcd#76 ← phi( main::@39/(word) lines_bcd#82 ) + (byte) current_movedown_counter#50 ← phi( main::@39/(byte) current_movedown_counter#53 ) + (byte) keyboard_modifiers#51 ← phi( main::@39/(byte) keyboard_modifiers#54 ) + (byte) keyboard_events_size#62 ← phi( main::@39/(byte) keyboard_events_size#69 ) + (byte) render_screen_showing#37 ← phi( main::@39/(byte) render_screen_showing#41 ) + (byte) game_over#80 ← phi( main::@39/(byte) game_over#85 ) + (byte) current_ypos#92 ← phi( main::@39/(byte) current_ypos#30 ) + (byte) current_xpos#116 ← phi( main::@39/(byte) current_xpos#79 ) + (byte*) current_piece_gfx#104 ← phi( main::@39/(byte*) current_piece_gfx#81 ) + (byte) current_orientation#92 ← phi( main::@39/(byte) current_orientation#95 ) + (byte) current_piece_char#91 ← phi( main::@39/(byte) current_piece_char#83 ) + (byte*) current_piece#86 ← phi( main::@39/(byte*) current_piece#91 ) + (byte) current_movedown_slow#87 ← phi( main::@39/(byte) current_movedown_slow#90 ) + (dword) score_bcd#66 ← phi( main::@39/(dword) score_bcd#73 ) + (byte) render_screen_show#40 ← phi( main::@39/(byte) render_screen_show#47 ) + (byte) next_piece_idx#48 ← phi( main::@39/(byte) next_piece_idx#67 ) + (byte) render_screen_render#26 ← phi( main::@39/(byte) render_screen_render#39 ) + call render_next + to:main::@41 +main::@41: scope:[main] from main::@40 + (byte) level_bcd#78 ← phi( main::@40/(byte) level_bcd#86 ) + (byte) level#76 ← phi( main::@40/(byte) level#85 ) + (word) lines_bcd#68 ← phi( main::@40/(word) lines_bcd#76 ) + (byte) current_movedown_counter#46 ← phi( main::@40/(byte) current_movedown_counter#50 ) + (byte) keyboard_modifiers#45 ← phi( main::@40/(byte) keyboard_modifiers#51 ) + (byte) keyboard_events_size#54 ← phi( main::@40/(byte) keyboard_events_size#62 ) + (byte) render_screen_showing#31 ← phi( main::@40/(byte) render_screen_showing#37 ) + (byte) next_piece_idx#68 ← phi( main::@40/(byte) next_piece_idx#48 ) + (byte) game_over#71 ← phi( main::@40/(byte) game_over#80 ) + (byte) current_ypos#85 ← phi( main::@40/(byte) current_ypos#92 ) + (byte) current_xpos#109 ← phi( main::@40/(byte) current_xpos#116 ) + (byte*) current_piece_gfx#96 ← phi( main::@40/(byte*) current_piece_gfx#104 ) + (byte) current_orientation#86 ← phi( main::@40/(byte) current_orientation#92 ) + (byte) current_piece_char#82 ← phi( main::@40/(byte) current_piece_char#91 ) + (byte*) current_piece#80 ← phi( main::@40/(byte*) current_piece#86 ) + (byte) current_movedown_slow#82 ← phi( main::@40/(byte) current_movedown_slow#87 ) + (dword) score_bcd#47 ← phi( main::@40/(dword) score_bcd#66 ) + (byte) render_screen_show#31 ← phi( main::@40/(byte) render_screen_show#40 ) + (byte) render_screen_render#21 ← phi( main::@40/(byte) render_screen_render#26 ) + call render_score + to:main::@42 +main::@42: scope:[main] from main::@41 + (byte) level_bcd#68 ← phi( main::@41/(byte) level_bcd#78 ) + (byte) level#64 ← phi( main::@41/(byte) level#76 ) + (dword) score_bcd#57 ← phi( main::@41/(dword) score_bcd#47 ) + (word) lines_bcd#57 ← phi( main::@41/(word) lines_bcd#68 ) + (byte) current_movedown_counter#42 ← phi( main::@41/(byte) current_movedown_counter#46 ) + (byte) keyboard_modifiers#38 ← phi( main::@41/(byte) keyboard_modifiers#45 ) + (byte) keyboard_events_size#44 ← phi( main::@41/(byte) keyboard_events_size#54 ) + (byte) render_screen_showing#26 ← phi( main::@41/(byte) render_screen_showing#31 ) + (byte) next_piece_idx#57 ← phi( main::@41/(byte) next_piece_idx#68 ) + (byte) game_over#58 ← phi( main::@41/(byte) game_over#71 ) + (byte) current_ypos#75 ← phi( main::@41/(byte) current_ypos#85 ) + (byte) current_xpos#96 ← phi( main::@41/(byte) current_xpos#109 ) + (byte*) current_piece_gfx#79 ← phi( main::@41/(byte*) current_piece_gfx#96 ) + (byte) current_orientation#75 ← phi( main::@41/(byte) current_orientation#86 ) + (byte) current_piece_char#66 ← phi( main::@41/(byte) current_piece_char#82 ) + (byte*) current_piece#68 ← phi( main::@41/(byte*) current_piece#80 ) + (byte) current_movedown_slow#74 ← phi( main::@41/(byte) current_movedown_slow#82 ) + (byte) render_screen_show#21 ← phi( main::@41/(byte) render_screen_show#31 ) + (byte) render_screen_render#20 ← phi( main::@41/(byte) render_screen_render#21 ) + call render_screen_swap + to:main::@43 +main::@43: scope:[main] from main::@42 + (byte) level_bcd#54 ← phi( main::@42/(byte) level_bcd#68 ) + (byte) level#50 ← phi( main::@42/(byte) level#64 ) + (dword) score_bcd#44 ← phi( main::@42/(dword) score_bcd#57 ) + (word) lines_bcd#44 ← phi( main::@42/(word) lines_bcd#57 ) + (byte) current_movedown_counter#33 ← phi( main::@42/(byte) current_movedown_counter#42 ) + (byte) keyboard_modifiers#31 ← phi( main::@42/(byte) keyboard_modifiers#38 ) + (byte) keyboard_events_size#34 ← phi( main::@42/(byte) keyboard_events_size#44 ) + (byte) render_screen_showing#18 ← phi( main::@42/(byte) render_screen_showing#26 ) + (byte) next_piece_idx#44 ← phi( main::@42/(byte) next_piece_idx#57 ) + (byte) game_over#43 ← phi( main::@42/(byte) game_over#58 ) + (byte) current_ypos#60 ← phi( main::@42/(byte) current_ypos#75 ) + (byte) current_xpos#75 ← phi( main::@42/(byte) current_xpos#96 ) + (byte*) current_piece_gfx#60 ← phi( main::@42/(byte*) current_piece_gfx#79 ) + (byte) current_orientation#60 ← phi( main::@42/(byte) current_orientation#75 ) + (byte) current_piece_char#48 ← phi( main::@42/(byte) current_piece_char#66 ) + (byte*) current_piece#52 ← phi( main::@42/(byte*) current_piece#68 ) + (byte) current_movedown_slow#60 ← phi( main::@42/(byte) current_movedown_slow#74 ) + (byte) render_screen_show#15 ← phi( main::@42/(byte) render_screen_show#4 ) + (byte) render_screen_render#17 ← phi( main::@42/(byte) render_screen_render#4 ) + (byte) render_screen_render#6 ← (byte) render_screen_render#17 (byte) render_screen_show#6 ← (byte) render_screen_show#15 to:main::@1 main::@return: scope:[main] from main::@1 @@ -3465,26 +3725,28 @@ main::@return: scope:[main] from main::@1 (byte) keyboard_modifiers#16 ← phi( main::@1/(byte) keyboard_modifiers#24 ) (byte) keyboard_events_size#19 ← phi( main::@1/(byte) keyboard_events_size#27 ) (byte) render_screen_showing#9 ← phi( main::@1/(byte) render_screen_showing#13 ) - (byte) game_over#19 ← phi( main::@1/(byte) game_over#31 ) - (byte) current_ypos#25 ← phi( main::@1/(byte) current_ypos#46 ) - (byte) current_xpos#31 ← phi( main::@1/(byte) current_xpos#55 ) - (byte*) current_piece_gfx#24 ← phi( main::@1/(byte*) current_piece_gfx#42 ) - (byte) current_orientation#28 ← phi( main::@1/(byte) current_orientation#47 ) - (byte) current_piece_char#19 ← phi( main::@1/(byte) current_piece_char#33 ) - (byte*) current_piece#20 ← phi( main::@1/(byte*) current_piece#37 ) + (byte) next_piece_idx#22 ← phi( main::@1/(byte) next_piece_idx#34 ) + (byte) game_over#21 ← phi( main::@1/(byte) game_over#33 ) + (byte) current_ypos#27 ← phi( main::@1/(byte) current_ypos#47 ) + (byte) current_xpos#33 ← phi( main::@1/(byte) current_xpos#56 ) + (byte*) current_piece_gfx#26 ← phi( main::@1/(byte*) current_piece_gfx#43 ) + (byte) current_orientation#30 ← phi( main::@1/(byte) current_orientation#48 ) + (byte) current_piece_char#21 ← phi( main::@1/(byte) current_piece_char#34 ) + (byte*) current_piece#22 ← phi( main::@1/(byte*) current_piece#38 ) (byte) current_movedown_slow#27 ← phi( main::@1/(byte) current_movedown_slow#45 ) - (byte) render_screen_render#17 ← phi( main::@1/(byte) render_screen_render#25 ) + (byte) render_screen_render#18 ← phi( main::@1/(byte) render_screen_render#28 ) (byte) render_screen_show#16 ← phi( main::@1/(byte) render_screen_show#23 ) (byte) render_screen_show#7 ← (byte) render_screen_show#16 - (byte) render_screen_render#7 ← (byte) render_screen_render#17 + (byte) render_screen_render#7 ← (byte) render_screen_render#18 (byte) current_movedown_slow#14 ← (byte) current_movedown_slow#27 - (byte*) current_piece#9 ← (byte*) current_piece#20 - (byte) current_piece_char#8 ← (byte) current_piece_char#19 - (byte) current_orientation#12 ← (byte) current_orientation#28 - (byte*) current_piece_gfx#11 ← (byte*) current_piece_gfx#24 - (byte) current_xpos#12 ← (byte) current_xpos#31 - (byte) current_ypos#9 ← (byte) current_ypos#25 - (byte) game_over#9 ← (byte) game_over#19 + (byte*) current_piece#10 ← (byte*) current_piece#22 + (byte) current_piece_char#9 ← (byte) current_piece_char#21 + (byte) current_orientation#13 ← (byte) current_orientation#30 + (byte*) current_piece_gfx#12 ← (byte*) current_piece_gfx#26 + (byte) current_xpos#13 ← (byte) current_xpos#33 + (byte) current_ypos#10 ← (byte) current_ypos#27 + (byte) game_over#10 ← (byte) game_over#21 + (byte) next_piece_idx#10 ← (byte) next_piece_idx#22 (byte) render_screen_showing#4 ← (byte) render_screen_showing#9 (byte) keyboard_events_size#8 ← (byte) keyboard_events_size#19 (byte) keyboard_modifiers#8 ← (byte) keyboard_modifiers#16 @@ -3495,60 +3757,63 @@ main::@return: scope:[main] from main::@1 (byte) level_bcd#11 ← (byte) level_bcd#24 return to:@return -@37: scope:[] from @30 - (byte) irq_cnt#17 ← phi( @30/(byte) irq_cnt#19 ) - (byte) irq_sprite_ptr#14 ← phi( @30/(byte) irq_sprite_ptr#17 ) - (byte) level_bcd#41 ← phi( @30/(byte) level_bcd#56 ) - (byte) level#38 ← phi( @30/(byte) level#52 ) - (dword) score_bcd#34 ← phi( @30/(dword) score_bcd#46 ) - (word) lines_bcd#34 ← phi( @30/(word) lines_bcd#46 ) - (byte) current_movedown_counter#27 ← phi( @30/(byte) current_movedown_counter#35 ) - (byte) keyboard_modifiers#25 ← phi( @30/(byte) keyboard_modifiers#33 ) - (byte) keyboard_events_size#28 ← phi( @30/(byte) keyboard_events_size#36 ) - (byte) render_screen_showing#14 ← phi( @30/(byte) render_screen_showing#20 ) - (byte) game_over#32 ← phi( @30/(byte) game_over#43 ) - (byte) current_ypos#47 ← phi( @30/(byte) current_ypos#62 ) - (byte) current_xpos#56 ← phi( @30/(byte) current_xpos#76 ) - (byte*) current_piece_gfx#43 ← phi( @30/(byte*) current_piece_gfx#61 ) - (byte) current_orientation#48 ← phi( @30/(byte) current_orientation#61 ) - (byte) current_piece_char#34 ← phi( @30/(byte) current_piece_char#49 ) - (byte*) current_piece#38 ← phi( @30/(byte*) current_piece#53 ) - (byte) current_movedown_slow#46 ← phi( @30/(byte) current_movedown_slow#62 ) - (byte) render_screen_render#26 ← phi( @30/(byte) render_screen_render#36 ) - (byte) render_screen_show#24 ← phi( @30/(byte) render_screen_show#32 ) - (byte) irq_raster_next#10 ← phi( @30/(byte) irq_raster_next#17 ) - (byte) irq_sprite_ypos#9 ← phi( @30/(byte) irq_sprite_ypos#14 ) +@38: scope:[] from @31 + (byte) irq_cnt#17 ← phi( @31/(byte) irq_cnt#19 ) + (byte) irq_sprite_ptr#14 ← phi( @31/(byte) irq_sprite_ptr#17 ) + (byte) level_bcd#41 ← phi( @31/(byte) level_bcd#56 ) + (byte) level#38 ← phi( @31/(byte) level#52 ) + (dword) score_bcd#34 ← phi( @31/(dword) score_bcd#46 ) + (word) lines_bcd#34 ← phi( @31/(word) lines_bcd#46 ) + (byte) current_movedown_counter#27 ← phi( @31/(byte) current_movedown_counter#35 ) + (byte) keyboard_modifiers#25 ← phi( @31/(byte) keyboard_modifiers#33 ) + (byte) keyboard_events_size#28 ← phi( @31/(byte) keyboard_events_size#36 ) + (byte) render_screen_showing#14 ← phi( @31/(byte) render_screen_showing#20 ) + (byte) next_piece_idx#35 ← phi( @31/(byte) next_piece_idx#46 ) + (byte) game_over#34 ← phi( @31/(byte) game_over#45 ) + (byte) current_ypos#48 ← phi( @31/(byte) current_ypos#63 ) + (byte) current_xpos#57 ← phi( @31/(byte) current_xpos#77 ) + (byte*) current_piece_gfx#44 ← phi( @31/(byte*) current_piece_gfx#62 ) + (byte) current_orientation#49 ← phi( @31/(byte) current_orientation#62 ) + (byte) current_piece_char#35 ← phi( @31/(byte) current_piece_char#50 ) + (byte*) current_piece#39 ← phi( @31/(byte*) current_piece#54 ) + (byte) current_movedown_slow#46 ← phi( @31/(byte) current_movedown_slow#62 ) + (byte) render_screen_render#29 ← phi( @31/(byte) render_screen_render#40 ) + (byte) render_screen_show#24 ← phi( @31/(byte) render_screen_show#32 ) + (byte) irq_raster_next#10 ← phi( @31/(byte) irq_raster_next#17 ) + (byte) irq_sprite_ypos#9 ← phi( @31/(byte) irq_sprite_ypos#14 ) call main - to:@39 -@39: scope:[] from @37 - (byte) level_bcd#25 ← phi( @37/(byte) level_bcd#11 ) - (byte) level#24 ← phi( @37/(byte) level#10 ) - (dword) score_bcd#19 ← phi( @37/(dword) score_bcd#8 ) - (word) lines_bcd#20 ← phi( @37/(word) lines_bcd#8 ) - (byte) current_movedown_counter#17 ← phi( @37/(byte) current_movedown_counter#7 ) - (byte) keyboard_modifiers#17 ← phi( @37/(byte) keyboard_modifiers#8 ) - (byte) keyboard_events_size#20 ← phi( @37/(byte) keyboard_events_size#8 ) - (byte) render_screen_showing#10 ← phi( @37/(byte) render_screen_showing#4 ) - (byte) game_over#20 ← phi( @37/(byte) game_over#9 ) - (byte) current_ypos#26 ← phi( @37/(byte) current_ypos#9 ) - (byte) current_xpos#32 ← phi( @37/(byte) current_xpos#12 ) - (byte*) current_piece_gfx#25 ← phi( @37/(byte*) current_piece_gfx#11 ) - (byte) current_orientation#29 ← phi( @37/(byte) current_orientation#12 ) - (byte) current_piece_char#20 ← phi( @37/(byte) current_piece_char#8 ) - (byte*) current_piece#21 ← phi( @37/(byte*) current_piece#9 ) - (byte) current_movedown_slow#28 ← phi( @37/(byte) current_movedown_slow#14 ) - (byte) render_screen_render#18 ← phi( @37/(byte) render_screen_render#7 ) - (byte) render_screen_show#17 ← phi( @37/(byte) render_screen_show#7 ) + to:@40 +@40: scope:[] from @38 + (byte) level_bcd#25 ← phi( @38/(byte) level_bcd#11 ) + (byte) level#24 ← phi( @38/(byte) level#10 ) + (dword) score_bcd#19 ← phi( @38/(dword) score_bcd#8 ) + (word) lines_bcd#20 ← phi( @38/(word) lines_bcd#8 ) + (byte) current_movedown_counter#17 ← phi( @38/(byte) current_movedown_counter#7 ) + (byte) keyboard_modifiers#17 ← phi( @38/(byte) keyboard_modifiers#8 ) + (byte) keyboard_events_size#20 ← phi( @38/(byte) keyboard_events_size#8 ) + (byte) render_screen_showing#10 ← phi( @38/(byte) render_screen_showing#4 ) + (byte) next_piece_idx#23 ← phi( @38/(byte) next_piece_idx#10 ) + (byte) game_over#22 ← phi( @38/(byte) game_over#10 ) + (byte) current_ypos#28 ← phi( @38/(byte) current_ypos#10 ) + (byte) current_xpos#34 ← phi( @38/(byte) current_xpos#13 ) + (byte*) current_piece_gfx#27 ← phi( @38/(byte*) current_piece_gfx#12 ) + (byte) current_orientation#31 ← phi( @38/(byte) current_orientation#13 ) + (byte) current_piece_char#22 ← phi( @38/(byte) current_piece_char#9 ) + (byte*) current_piece#23 ← phi( @38/(byte*) current_piece#10 ) + (byte) current_movedown_slow#28 ← phi( @38/(byte) current_movedown_slow#14 ) + (byte) render_screen_render#19 ← phi( @38/(byte) render_screen_render#7 ) + (byte) render_screen_show#17 ← phi( @38/(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) render_screen_render#8 ← (byte) render_screen_render#19 (byte) current_movedown_slow#15 ← (byte) current_movedown_slow#28 - (byte*) current_piece#10 ← (byte*) current_piece#21 - (byte) current_piece_char#9 ← (byte) current_piece_char#20 - (byte) current_orientation#13 ← (byte) current_orientation#29 - (byte*) current_piece_gfx#12 ← (byte*) current_piece_gfx#25 - (byte) current_xpos#13 ← (byte) current_xpos#32 - (byte) current_ypos#10 ← (byte) current_ypos#26 - (byte) game_over#10 ← (byte) game_over#20 + (byte*) current_piece#11 ← (byte*) current_piece#23 + (byte) current_piece_char#10 ← (byte) current_piece_char#22 + (byte) current_orientation#14 ← (byte) current_orientation#31 + (byte*) current_piece_gfx#13 ← (byte*) current_piece_gfx#27 + (byte) current_xpos#14 ← (byte) current_xpos#34 + (byte) current_ypos#11 ← (byte) current_ypos#28 + (byte) game_over#11 ← (byte) game_over#22 + (byte) next_piece_idx#11 ← (byte) next_piece_idx#23 (byte) render_screen_showing#5 ← (byte) render_screen_showing#10 (byte) keyboard_events_size#9 ← (byte) keyboard_events_size#20 (byte) keyboard_modifiers#9 ← (byte) keyboard_modifiers#17 @@ -3558,7 +3823,7 @@ main::@return: scope:[main] from main::@1 (byte) level#11 ← (byte) level#24 (byte) level_bcd#12 ← (byte) level_bcd#25 to:@end -@end: scope:[] from @39 +@end: scope:[] from @40 SYMBOL TABLE SSA (byte~) $0 @@ -3593,13 +3858,13 @@ SYMBOL TABLE SSA (byte/signed word/word/dword/signed dword/signed byte~) $9 (label) @12 (label) @14 -(label) @22 (label) @23 -(label) @25 -(label) @30 -(label) @37 +(label) @24 +(label) @26 +(label) @31 (label) @38 (label) @39 +(label) @40 (label) @5 (label) @9 (label) @begin @@ -3846,6 +4111,8 @@ SYMBOL TABLE SSA (word[]) PIECES#0 (byte[]) PIECES_CHARS (byte[]) PIECES_CHARS#0 +(byte[]) PIECES_NEXT_CHARS +(byte[]) PIECES_NEXT_CHARS#0 (byte[]) PIECES_START_X (byte[]) PIECES_START_X#0 (byte[]) PIECES_START_Y @@ -4046,6 +4313,9 @@ SYMBOL TABLE SSA (byte) current_movedown_counter#58 (byte) current_movedown_counter#59 (byte) current_movedown_counter#6 +(byte) current_movedown_counter#60 +(byte) current_movedown_counter#61 +(byte) current_movedown_counter#62 (byte) current_movedown_counter#7 (byte) current_movedown_counter#8 (byte) current_movedown_counter#9 @@ -4143,6 +4413,9 @@ SYMBOL TABLE SSA (byte) current_movedown_slow#89 (byte) current_movedown_slow#9 (byte) current_movedown_slow#90 +(byte) current_movedown_slow#91 +(byte) current_movedown_slow#92 +(byte) current_movedown_slow#93 (byte) current_orientation (byte) current_orientation#0 (byte) current_orientation#1 @@ -4235,6 +4508,14 @@ SYMBOL TABLE SSA (byte) current_orientation#89 (byte) current_orientation#9 (byte) current_orientation#90 +(byte) current_orientation#91 +(byte) current_orientation#92 +(byte) current_orientation#93 +(byte) current_orientation#94 +(byte) current_orientation#95 +(byte) current_orientation#96 +(byte) current_orientation#97 +(byte) current_orientation#98 (byte*) current_piece (byte*) current_piece#0 (byte*) current_piece#1 @@ -4322,11 +4603,26 @@ SYMBOL TABLE SSA (byte*) current_piece#84 (byte*) current_piece#85 (byte*) current_piece#86 +(byte*) current_piece#87 +(byte*) current_piece#88 +(byte*) current_piece#89 (byte*) current_piece#9 +(byte*) current_piece#90 +(byte*) current_piece#91 +(byte*) current_piece#92 +(byte*) current_piece#93 +(byte*) current_piece#94 (byte) current_piece_char (byte) current_piece_char#0 (byte) current_piece_char#1 (byte) current_piece_char#10 +(byte) current_piece_char#100 +(byte) current_piece_char#101 +(byte) current_piece_char#102 +(byte) current_piece_char#103 +(byte) current_piece_char#104 +(byte) current_piece_char#105 +(byte) current_piece_char#106 (byte) current_piece_char#11 (byte) current_piece_char#12 (byte) current_piece_char#13 @@ -4423,6 +4719,7 @@ SYMBOL TABLE SSA (byte) current_piece_char#96 (byte) current_piece_char#97 (byte) current_piece_char#98 +(byte) current_piece_char#99 (byte*) current_piece_gfx (byte*) current_piece_gfx#0 (byte*) current_piece_gfx#1 @@ -4439,6 +4736,14 @@ SYMBOL TABLE SSA (byte*) current_piece_gfx#109 (byte*) current_piece_gfx#11 (byte*) current_piece_gfx#110 +(byte*) current_piece_gfx#111 +(byte*) current_piece_gfx#112 +(byte*) current_piece_gfx#113 +(byte*) current_piece_gfx#114 +(byte*) current_piece_gfx#115 +(byte*) current_piece_gfx#116 +(byte*) current_piece_gfx#117 +(byte*) current_piece_gfx#118 (byte*) current_piece_gfx#12 (byte*) current_piece_gfx#13 (byte*) current_piece_gfx#14 @@ -4562,6 +4867,14 @@ SYMBOL TABLE SSA (byte) current_xpos#119 (byte) current_xpos#12 (byte) current_xpos#120 +(byte) current_xpos#121 +(byte) current_xpos#122 +(byte) current_xpos#123 +(byte) current_xpos#124 +(byte) current_xpos#125 +(byte) current_xpos#126 +(byte) current_xpos#127 +(byte) current_xpos#128 (byte) current_xpos#13 (byte) current_xpos#14 (byte) current_xpos#15 @@ -4661,6 +4974,11 @@ SYMBOL TABLE SSA (byte) current_ypos#0 (byte) current_ypos#1 (byte) current_ypos#10 +(byte) current_ypos#100 +(byte) current_ypos#101 +(byte) current_ypos#102 +(byte) current_ypos#103 +(byte) current_ypos#104 (byte) current_ypos#11 (byte) current_ypos#12 (byte) current_ypos#13 @@ -4755,6 +5073,9 @@ SYMBOL TABLE SSA (byte) current_ypos#94 (byte) current_ypos#95 (byte) current_ypos#96 +(byte) current_ypos#97 +(byte) current_ypos#98 +(byte) current_ypos#99 (byte) game_over (byte) game_over#0 (byte) game_over#1 @@ -4840,6 +5161,10 @@ SYMBOL TABLE SSA (byte) game_over#82 (byte) game_over#83 (byte) game_over#84 +(byte) game_over#85 +(byte) game_over#86 +(byte) game_over#87 +(byte) game_over#88 (byte) game_over#9 (byte) irq_cnt (byte) irq_cnt#0 @@ -5175,6 +5500,9 @@ SYMBOL TABLE SSA (byte) keyboard_events_size#8 (byte) keyboard_events_size#80 (byte) keyboard_events_size#81 +(byte) keyboard_events_size#82 +(byte) keyboard_events_size#83 +(byte) keyboard_events_size#84 (byte) keyboard_events_size#9 (byte[8]) keyboard_matrix_col_bitmask (byte[8]) keyboard_matrix_col_bitmask#0 @@ -5255,6 +5583,9 @@ SYMBOL TABLE SSA (byte) keyboard_modifiers#60 (byte) keyboard_modifiers#61 (byte) keyboard_modifiers#62 +(byte) keyboard_modifiers#63 +(byte) keyboard_modifiers#64 +(byte) keyboard_modifiers#65 (byte) keyboard_modifiers#7 (byte) keyboard_modifiers#8 (byte) keyboard_modifiers#9 @@ -5358,6 +5689,9 @@ SYMBOL TABLE SSA (byte) level#94 (byte) level#95 (byte) level#96 +(byte) level#97 +(byte) level#98 +(byte) level#99 (byte) level_bcd (byte) level_bcd#0 (byte) level_bcd#1 @@ -5366,6 +5700,9 @@ SYMBOL TABLE SSA (byte) level_bcd#101 (byte) level_bcd#102 (byte) level_bcd#103 +(byte) level_bcd#104 +(byte) level_bcd#105 +(byte) level_bcd#106 (byte) level_bcd#11 (byte) level_bcd#12 (byte) level_bcd#13 @@ -5555,13 +5892,16 @@ SYMBOL TABLE SSA (word) lines_bcd#89 (word) lines_bcd#9 (word) lines_bcd#90 +(word) lines_bcd#91 +(word) lines_bcd#92 +(word) lines_bcd#93 (void()) main() -(byte~) main::$11 -(bool~) main::$12 +(bool~) main::$10 (byte~) main::$13 (bool~) main::$14 -(bool~) main::$15 -(bool~) main::$8 +(byte~) main::$15 +(bool~) main::$16 +(bool~) main::$17 (label) main::@1 (label) main::@11 (label) main::@12 @@ -5584,6 +5924,9 @@ SYMBOL TABLE SSA (label) main::@39 (label) main::@4 (label) main::@40 +(label) main::@41 +(label) main::@42 +(label) main::@43 (label) main::@5 (label) main::@6 (label) main::@7 @@ -5599,6 +5942,88 @@ SYMBOL TABLE SSA (byte) main::render#2 (byte) main::render#3 (byte) main::render#4 +(byte) next_piece_idx +(byte) next_piece_idx#0 +(byte) next_piece_idx#1 +(byte) next_piece_idx#10 +(byte) next_piece_idx#11 +(byte) next_piece_idx#12 +(byte) next_piece_idx#13 +(byte) next_piece_idx#14 +(byte) next_piece_idx#15 +(byte) next_piece_idx#16 +(byte) next_piece_idx#17 +(byte) next_piece_idx#18 +(byte) next_piece_idx#19 +(byte) next_piece_idx#2 +(byte) next_piece_idx#20 +(byte) next_piece_idx#21 +(byte) next_piece_idx#22 +(byte) next_piece_idx#23 +(byte) next_piece_idx#24 +(byte) next_piece_idx#25 +(byte) next_piece_idx#26 +(byte) next_piece_idx#27 +(byte) next_piece_idx#28 +(byte) next_piece_idx#29 +(byte) next_piece_idx#3 +(byte) next_piece_idx#30 +(byte) next_piece_idx#31 +(byte) next_piece_idx#32 +(byte) next_piece_idx#33 +(byte) next_piece_idx#34 +(byte) next_piece_idx#35 +(byte) next_piece_idx#36 +(byte) next_piece_idx#37 +(byte) next_piece_idx#38 +(byte) next_piece_idx#39 +(byte) next_piece_idx#4 +(byte) next_piece_idx#40 +(byte) next_piece_idx#41 +(byte) next_piece_idx#42 +(byte) next_piece_idx#43 +(byte) next_piece_idx#44 +(byte) next_piece_idx#45 +(byte) next_piece_idx#46 +(byte) next_piece_idx#47 +(byte) next_piece_idx#48 +(byte) next_piece_idx#49 +(byte) next_piece_idx#5 +(byte) next_piece_idx#50 +(byte) next_piece_idx#51 +(byte) next_piece_idx#52 +(byte) next_piece_idx#53 +(byte) next_piece_idx#54 +(byte) next_piece_idx#55 +(byte) next_piece_idx#56 +(byte) next_piece_idx#57 +(byte) next_piece_idx#58 +(byte) next_piece_idx#59 +(byte) next_piece_idx#6 +(byte) next_piece_idx#60 +(byte) next_piece_idx#61 +(byte) next_piece_idx#62 +(byte) next_piece_idx#63 +(byte) next_piece_idx#64 +(byte) next_piece_idx#65 +(byte) next_piece_idx#66 +(byte) next_piece_idx#67 +(byte) next_piece_idx#68 +(byte) next_piece_idx#69 +(byte) next_piece_idx#7 +(byte) next_piece_idx#70 +(byte) next_piece_idx#71 +(byte) next_piece_idx#72 +(byte) next_piece_idx#73 +(byte) next_piece_idx#74 +(byte) next_piece_idx#75 +(byte) next_piece_idx#76 +(byte) next_piece_idx#77 +(byte) next_piece_idx#78 +(byte) next_piece_idx#79 +(byte) next_piece_idx#8 +(byte) next_piece_idx#80 +(byte) next_piece_idx#9 (byte()) play_collision((byte) play_collision::xpos , (byte) play_collision::ypos , (byte) play_collision::orientation) (byte*~) play_collision::$0 (byte~) play_collision::$1 @@ -6126,22 +6551,24 @@ SYMBOL TABLE SSA (byte) play_remove_lines::y#7 (byte) play_remove_lines::y#8 (void()) play_spawn_current() -(bool~) play_spawn_current::$0 -(byte~) play_spawn_current::$1 +(byte~) play_spawn_current::$0 +(byte*~) play_spawn_current::$1 (byte~) play_spawn_current::$2 -(byte~) play_spawn_current::$3 -(byte*~) play_spawn_current::$4 -(byte~) play_spawn_current::$5 -(bool~) play_spawn_current::$6 -(bool~) play_spawn_current::$7 +(bool~) play_spawn_current::$3 +(bool~) play_spawn_current::$4 +(bool~) play_spawn_current::$5 +(byte~) play_spawn_current::$6 +(byte~) play_spawn_current::$7 (label) play_spawn_current::@1 (label) play_spawn_current::@10 (label) play_spawn_current::@2 (label) play_spawn_current::@3 (label) play_spawn_current::@4 -(label) play_spawn_current::@8 +(label) play_spawn_current::@5 (label) play_spawn_current::@9 (label) play_spawn_current::@return +(byte) play_spawn_current::current_piece_idx +(byte) play_spawn_current::current_piece_idx#0 (byte) play_spawn_current::piece_idx (byte) play_spawn_current::piece_idx#0 (byte) play_spawn_current::piece_idx#1 @@ -6355,6 +6782,78 @@ SYMBOL TABLE SSA (byte) render_moving::ypos2#6 (byte) render_moving::ypos2#7 (byte) render_moving::ypos2#8 +(void()) render_next() +(word/signed word/dword/signed dword~) render_next::$0 +(word/signed dword/dword/signed word~) render_next::$1 +(word/signed dword/dword/signed word~) render_next::$2 +(bool~) render_next::$3 +(byte*~) render_next::$4 +(byte*~) render_next::$5 +(byte~) render_next::$6 +(bool~) render_next::$7 +(bool~) render_next::$8 +(bool~) render_next::$9 +(label) render_next::@1 +(label) render_next::@11 +(label) render_next::@2 +(label) render_next::@3 +(label) render_next::@4 +(label) render_next::@5 +(label) render_next::@6 +(label) render_next::@7 +(label) render_next::@9 +(label) render_next::@return +(byte) render_next::c +(byte) render_next::c#0 +(byte) render_next::c#1 +(byte) render_next::c#2 +(byte) render_next::c#3 +(byte) render_next::c#4 +(byte) render_next::c#5 +(byte) render_next::cell +(byte) render_next::cell#0 +(byte) render_next::l +(byte) render_next::l#0 +(byte) render_next::l#1 +(byte) render_next::l#2 +(byte) render_next::l#3 +(byte) render_next::l#4 +(byte) render_next::l#5 +(byte) render_next::l#6 +(byte) render_next::l#7 +(word) render_next::next_area_offset +(word) render_next::next_area_offset#0 +(word) render_next::next_area_offset#1 +(word) render_next::next_area_offset#2 +(byte) render_next::next_piece_char +(byte) render_next::next_piece_char#0 +(byte) render_next::next_piece_char#1 +(byte) render_next::next_piece_char#2 +(byte) render_next::next_piece_char#3 +(byte) render_next::next_piece_char#4 +(byte) render_next::next_piece_char#5 +(byte) render_next::next_piece_char#6 +(byte*) render_next::next_piece_gfx +(byte*) render_next::next_piece_gfx#0 +(byte*) render_next::next_piece_gfx#1 +(byte*) render_next::next_piece_gfx#2 +(byte*) render_next::next_piece_gfx#3 +(byte*) render_next::next_piece_gfx#4 +(byte*) render_next::next_piece_gfx#5 +(byte*) render_next::next_piece_gfx#6 +(byte*) render_next::next_piece_gfx#7 +(byte*) render_next::screen_next_area +(byte*) render_next::screen_next_area#0 +(byte*) render_next::screen_next_area#1 +(byte*) render_next::screen_next_area#10 +(byte*) render_next::screen_next_area#2 +(byte*) render_next::screen_next_area#3 +(byte*) render_next::screen_next_area#4 +(byte*) render_next::screen_next_area#5 +(byte*) render_next::screen_next_area#6 +(byte*) render_next::screen_next_area#7 +(byte*) render_next::screen_next_area#8 +(byte*) render_next::screen_next_area#9 (void()) render_playfield() (byte/signed word/word/dword/signed dword~) render_playfield::$0 (byte/signed word/word/dword/signed dword~) render_playfield::$1 @@ -6571,6 +7070,10 @@ SYMBOL TABLE SSA (byte) render_screen_render#60 (byte) render_screen_render#61 (byte) render_screen_render#62 +(byte) render_screen_render#63 +(byte) render_screen_render#64 +(byte) render_screen_render#65 +(byte) render_screen_render#66 (byte) render_screen_render#7 (byte) render_screen_render#8 (byte) render_screen_render#9 @@ -6632,6 +7135,9 @@ SYMBOL TABLE SSA (byte) render_screen_show#58 (byte) render_screen_show#59 (byte) render_screen_show#6 +(byte) render_screen_show#60 +(byte) render_screen_show#61 +(byte) render_screen_show#62 (byte) render_screen_show#7 (byte) render_screen_show#8 (byte) render_screen_show#9 @@ -6679,7 +7185,10 @@ SYMBOL TABLE SSA (byte) render_screen_showing#45 (byte) render_screen_showing#46 (byte) render_screen_showing#47 +(byte) render_screen_showing#48 +(byte) render_screen_showing#49 (byte) render_screen_showing#5 +(byte) render_screen_showing#50 (byte) render_screen_showing#6 (byte) render_screen_showing#7 (byte) render_screen_showing#8 @@ -6852,6 +7361,9 @@ SYMBOL TABLE SSA (dword) score_bcd#84 (dword) score_bcd#85 (dword) score_bcd#86 +(dword) score_bcd#87 +(dword) score_bcd#88 +(dword) score_bcd#89 (dword) score_bcd#9 (byte*[PLAYFIELD_LINES#0]) screen_lines_1 (byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 @@ -6963,29 +7475,29 @@ Inversing boolean not [247] (bool~) keyboard_event_scan::$24 ← (byte~) keyboar Inversing boolean not [259] (bool~) keyboard_event_scan::$28 ← (byte~) keyboard_event_scan::$26 == (byte/signed byte/word/signed word/dword/signed dword) 0 from [258] (bool~) keyboard_event_scan::$27 ← (byte~) keyboard_event_scan::$26 != (byte/signed byte/word/signed word/dword/signed dword) 0 Inversing boolean not [518] (bool~) render_bcd::$2 ← (byte) render_bcd::only_low#6 != (byte/signed byte/word/signed word/dword/signed dword) 0 from [517] (bool~) render_bcd::$1 ← (byte) render_bcd::only_low#6 == (byte/signed byte/word/signed word/dword/signed dword) 0 Inversing boolean not [621] (bool~) render_moving::$4 ← (byte) render_moving::current_cell#0 == (byte/signed byte/word/signed word/dword/signed dword) 0 from [620] (bool~) render_moving::$3 ← (byte) render_moving::current_cell#0 != (byte/signed byte/word/signed word/dword/signed dword) 0 -Inversing boolean not [849] (bool~) play_movement::$2 ← (byte) game_over#1 == (byte/signed byte/word/signed word/dword/signed dword) 0 from [848] (bool~) play_movement::$1 ← (byte) game_over#1 != (byte/signed byte/word/signed word/dword/signed dword) 0 -Inversing boolean not [890] (bool~) play_move_down::$1 ← (byte) play_move_down::key_event#1 != (byte) KEY_SPACE#0 from [889] (bool~) play_move_down::$0 ← (byte) play_move_down::key_event#1 == (byte) KEY_SPACE#0 -Inversing boolean not [899] (bool~) play_move_down::$4 ← (byte~) play_move_down::$2 == (byte/signed byte/word/signed word/dword/signed dword) 0 from [898] (bool~) play_move_down::$3 ← (byte~) play_move_down::$2 != (byte/signed byte/word/signed word/dword/signed dword) 0 -Inversing boolean not [905] (bool~) play_move_down::$8 ← (byte) current_movedown_counter#12 < (byte) current_movedown_slow#19 from [904] (bool~) play_move_down::$7 ← (byte) current_movedown_counter#12 >= (byte) current_movedown_slow#19 -Inversing boolean not [909] (bool~) play_move_down::$6 ← (byte) current_movedown_counter#13 < (byte) current_movedown_fast#0 from [908] (bool~) play_move_down::$5 ← (byte) current_movedown_counter#13 >= (byte) current_movedown_fast#0 -Inversing boolean not [916] (bool~) play_move_down::$10 ← (byte) play_move_down::movedown#6 == (byte/signed byte/word/signed word/dword/signed dword) 0 from [915] (bool~) play_move_down::$9 ← (byte) play_move_down::movedown#6 != (byte/signed byte/word/signed word/dword/signed dword) 0 -Inversing boolean not [992] (bool~) play_move_leftright::$10 ← (byte~) play_move_leftright::$8 != (byte) COLLISION_NONE#0 from [991] (bool~) play_move_leftright::$9 ← (byte~) play_move_leftright::$8 == (byte) COLLISION_NONE#0 -Inversing boolean not [996] (bool~) play_move_leftright::$2 ← (byte) play_move_leftright::key_event#2 != (byte) KEY_DOT#0 from [995] (bool~) play_move_leftright::$1 ← (byte) play_move_leftright::key_event#2 == (byte) KEY_DOT#0 -Inversing boolean not [1009] (bool~) play_move_leftright::$6 ← (byte~) play_move_leftright::$4 != (byte) COLLISION_NONE#0 from [1008] (bool~) play_move_leftright::$5 ← (byte~) play_move_leftright::$4 == (byte) COLLISION_NONE#0 -Inversing boolean not [1056] (bool~) play_move_rotate::$8 ← (byte~) play_move_rotate::$6 != (byte) COLLISION_NONE#0 from [1055] (bool~) play_move_rotate::$7 ← (byte~) play_move_rotate::$6 == (byte) COLLISION_NONE#0 -Inversing boolean not [1084] (bool~) play_collision::$3 ← *((byte*) play_collision::piece_gfx#1 + (byte) play_collision::i#2) == (byte/signed byte/word/signed word/dword/signed dword) 0 from [1083] (bool~) play_collision::$2 ← *((byte*) play_collision::piece_gfx#1 + (byte) play_collision::i#2) != (byte/signed byte/word/signed word/dword/signed dword) 0 -Inversing boolean not [1095] (bool~) play_collision::$6 ← (byte) play_collision::ypos2#3 < (byte/signed word/word/dword/signed dword~) play_collision::$4 from [1094] (bool~) play_collision::$5 ← (byte) play_collision::ypos2#3 >= (byte/signed word/word/dword/signed dword~) play_collision::$4 -Inversing boolean not [1100] (bool~) play_collision::$9 ← (byte~) play_collision::$7 == (byte/signed byte/word/signed word/dword/signed dword) 0 from [1099] (bool~) play_collision::$8 ← (byte~) play_collision::$7 != (byte/signed byte/word/signed word/dword/signed dword) 0 -Inversing boolean not [1108] (bool~) play_collision::$11 ← (byte) play_collision::col#4 < (byte) PLAYFIELD_COLS#0 from [1107] (bool~) play_collision::$10 ← (byte) play_collision::col#4 >= (byte) PLAYFIELD_COLS#0 -Inversing boolean not [1113] (bool~) play_collision::$13 ← *((byte*) play_collision::playfield_line#1 + (byte) play_collision::col#5) == (byte/signed byte/word/signed word/dword/signed dword) 0 from [1112] (bool~) play_collision::$12 ← *((byte*) play_collision::playfield_line#1 + (byte) play_collision::col#5) != (byte/signed byte/word/signed word/dword/signed dword) 0 -Inversing boolean not [1135] (bool~) play_lock_current::$2 ← *((byte*) current_piece_gfx#20 + (byte) play_lock_current::i#2) == (byte/signed byte/word/signed word/dword/signed dword) 0 from [1134] (bool~) play_lock_current::$1 ← *((byte*) current_piece_gfx#20 + (byte) play_lock_current::i#2) != (byte/signed byte/word/signed word/dword/signed dword) 0 -Inversing boolean not [1180] (bool~) play_spawn_current::$7 ← (byte~) play_spawn_current::$5 != (byte) COLLISION_PLAYFIELD#0 from [1179] (bool~) play_spawn_current::$6 ← (byte~) play_spawn_current::$5 == (byte) COLLISION_PLAYFIELD#0 -Inversing boolean not [1211] (bool~) play_remove_lines::$7 ← (byte) play_remove_lines::c#0 != (byte/signed byte/word/signed word/dword/signed dword) 0 from [1210] (bool~) play_remove_lines::$6 ← (byte) play_remove_lines::c#0 == (byte/signed byte/word/signed word/dword/signed dword) 0 -Inversing boolean not [1223] (bool~) play_remove_lines::$10 ← (byte) play_remove_lines::full#2 != (byte/signed byte/word/signed word/dword/signed dword) 1 from [1222] (bool~) play_remove_lines::$9 ← (byte) play_remove_lines::full#2 == (byte/signed byte/word/signed word/dword/signed dword) 1 -Inversing boolean not [1246] (bool~) play_update_score::$1 ← (byte) play_update_score::removed#1 == (byte/signed byte/word/signed word/dword/signed dword) 0 from [1245] (bool~) play_update_score::$0 ← (byte) play_update_score::removed#1 != (byte/signed byte/word/signed word/dword/signed dword) 0 -Inversing boolean not [1263] (bool~) play_update_score::$8 ← (byte) play_update_score::lines_before#0 == (byte) play_update_score::lines_after#0 from [1262] (bool~) play_update_score::$7 ← (byte) play_update_score::lines_before#0 != (byte) play_update_score::lines_after#0 -Inversing boolean not [1291] (bool~) play_increase_level::$3 ← (byte~) play_increase_level::$1 != (byte/signed byte/word/signed word/dword/signed dword) 10 from [1290] (bool~) play_increase_level::$2 ← (byte~) play_increase_level::$1 == (byte/signed byte/word/signed word/dword/signed dword) 10 -Inversing boolean not [1390] (bool~) main::$15 ← (byte) main::render#2 == (byte/signed byte/word/signed word/dword/signed dword) 0 from [1389] (bool~) main::$14 ← (byte) main::render#2 != (byte/signed byte/word/signed word/dword/signed dword) 0 +Inversing boolean not [892] (bool~) play_movement::$2 ← (byte) game_over#1 == (byte/signed byte/word/signed word/dword/signed dword) 0 from [891] (bool~) play_movement::$1 ← (byte) game_over#1 != (byte/signed byte/word/signed word/dword/signed dword) 0 +Inversing boolean not [934] (bool~) play_move_down::$1 ← (byte) play_move_down::key_event#1 != (byte) KEY_SPACE#0 from [933] (bool~) play_move_down::$0 ← (byte) play_move_down::key_event#1 == (byte) KEY_SPACE#0 +Inversing boolean not [943] (bool~) play_move_down::$4 ← (byte~) play_move_down::$2 == (byte/signed byte/word/signed word/dword/signed dword) 0 from [942] (bool~) play_move_down::$3 ← (byte~) play_move_down::$2 != (byte/signed byte/word/signed word/dword/signed dword) 0 +Inversing boolean not [949] (bool~) play_move_down::$8 ← (byte) current_movedown_counter#12 < (byte) current_movedown_slow#19 from [948] (bool~) play_move_down::$7 ← (byte) current_movedown_counter#12 >= (byte) current_movedown_slow#19 +Inversing boolean not [953] (bool~) play_move_down::$6 ← (byte) current_movedown_counter#13 < (byte) current_movedown_fast#0 from [952] (bool~) play_move_down::$5 ← (byte) current_movedown_counter#13 >= (byte) current_movedown_fast#0 +Inversing boolean not [960] (bool~) play_move_down::$10 ← (byte) play_move_down::movedown#6 == (byte/signed byte/word/signed word/dword/signed dword) 0 from [959] (bool~) play_move_down::$9 ← (byte) play_move_down::movedown#6 != (byte/signed byte/word/signed word/dword/signed dword) 0 +Inversing boolean not [1038] (bool~) play_move_leftright::$10 ← (byte~) play_move_leftright::$8 != (byte) COLLISION_NONE#0 from [1037] (bool~) play_move_leftright::$9 ← (byte~) play_move_leftright::$8 == (byte) COLLISION_NONE#0 +Inversing boolean not [1042] (bool~) play_move_leftright::$2 ← (byte) play_move_leftright::key_event#2 != (byte) KEY_DOT#0 from [1041] (bool~) play_move_leftright::$1 ← (byte) play_move_leftright::key_event#2 == (byte) KEY_DOT#0 +Inversing boolean not [1055] (bool~) play_move_leftright::$6 ← (byte~) play_move_leftright::$4 != (byte) COLLISION_NONE#0 from [1054] (bool~) play_move_leftright::$5 ← (byte~) play_move_leftright::$4 == (byte) COLLISION_NONE#0 +Inversing boolean not [1102] (bool~) play_move_rotate::$8 ← (byte~) play_move_rotate::$6 != (byte) COLLISION_NONE#0 from [1101] (bool~) play_move_rotate::$7 ← (byte~) play_move_rotate::$6 == (byte) COLLISION_NONE#0 +Inversing boolean not [1130] (bool~) play_collision::$3 ← *((byte*) play_collision::piece_gfx#1 + (byte) play_collision::i#2) == (byte/signed byte/word/signed word/dword/signed dword) 0 from [1129] (bool~) play_collision::$2 ← *((byte*) play_collision::piece_gfx#1 + (byte) play_collision::i#2) != (byte/signed byte/word/signed word/dword/signed dword) 0 +Inversing boolean not [1141] (bool~) play_collision::$6 ← (byte) play_collision::ypos2#3 < (byte/signed word/word/dword/signed dword~) play_collision::$4 from [1140] (bool~) play_collision::$5 ← (byte) play_collision::ypos2#3 >= (byte/signed word/word/dword/signed dword~) play_collision::$4 +Inversing boolean not [1146] (bool~) play_collision::$9 ← (byte~) play_collision::$7 == (byte/signed byte/word/signed word/dword/signed dword) 0 from [1145] (bool~) play_collision::$8 ← (byte~) play_collision::$7 != (byte/signed byte/word/signed word/dword/signed dword) 0 +Inversing boolean not [1154] (bool~) play_collision::$11 ← (byte) play_collision::col#4 < (byte) PLAYFIELD_COLS#0 from [1153] (bool~) play_collision::$10 ← (byte) play_collision::col#4 >= (byte) PLAYFIELD_COLS#0 +Inversing boolean not [1159] (bool~) play_collision::$13 ← *((byte*) play_collision::playfield_line#1 + (byte) play_collision::col#5) == (byte/signed byte/word/signed word/dword/signed dword) 0 from [1158] (bool~) play_collision::$12 ← *((byte*) play_collision::playfield_line#1 + (byte) play_collision::col#5) != (byte/signed byte/word/signed word/dword/signed dword) 0 +Inversing boolean not [1181] (bool~) play_lock_current::$2 ← *((byte*) current_piece_gfx#21 + (byte) play_lock_current::i#2) == (byte/signed byte/word/signed word/dword/signed dword) 0 from [1180] (bool~) play_lock_current::$1 ← *((byte*) current_piece_gfx#21 + (byte) play_lock_current::i#2) != (byte/signed byte/word/signed word/dword/signed dword) 0 +Inversing boolean not [1215] (bool~) play_spawn_current::$4 ← (byte~) play_spawn_current::$2 != (byte) COLLISION_PLAYFIELD#0 from [1214] (bool~) play_spawn_current::$3 ← (byte~) play_spawn_current::$2 == (byte) COLLISION_PLAYFIELD#0 +Inversing boolean not [1260] (bool~) play_remove_lines::$7 ← (byte) play_remove_lines::c#0 != (byte/signed byte/word/signed word/dword/signed dword) 0 from [1259] (bool~) play_remove_lines::$6 ← (byte) play_remove_lines::c#0 == (byte/signed byte/word/signed word/dword/signed dword) 0 +Inversing boolean not [1272] (bool~) play_remove_lines::$10 ← (byte) play_remove_lines::full#2 != (byte/signed byte/word/signed word/dword/signed dword) 1 from [1271] (bool~) play_remove_lines::$9 ← (byte) play_remove_lines::full#2 == (byte/signed byte/word/signed word/dword/signed dword) 1 +Inversing boolean not [1295] (bool~) play_update_score::$1 ← (byte) play_update_score::removed#1 == (byte/signed byte/word/signed word/dword/signed dword) 0 from [1294] (bool~) play_update_score::$0 ← (byte) play_update_score::removed#1 != (byte/signed byte/word/signed word/dword/signed dword) 0 +Inversing boolean not [1312] (bool~) play_update_score::$8 ← (byte) play_update_score::lines_before#0 == (byte) play_update_score::lines_after#0 from [1311] (bool~) play_update_score::$7 ← (byte) play_update_score::lines_before#0 != (byte) play_update_score::lines_after#0 +Inversing boolean not [1340] (bool~) play_increase_level::$3 ← (byte~) play_increase_level::$1 != (byte/signed byte/word/signed word/dword/signed dword) 10 from [1339] (bool~) play_increase_level::$2 ← (byte~) play_increase_level::$1 == (byte/signed byte/word/signed word/dword/signed dword) 10 +Inversing boolean not [1453] (bool~) main::$17 ← (byte) main::render#2 == (byte/signed byte/word/signed word/dword/signed dword) 0 from [1452] (bool~) main::$16 ← (byte) main::render#2 != (byte/signed byte/word/signed word/dword/signed dword) 0 Successful SSA optimization Pass2UnaryNotSimplification Alias candidate removed (volatile)(byte) render_screen_showing#1 = (byte) render_screen_show#11 (byte) render_screen_showing#6 (byte) render_screen_showing#2 Alias candidate removed (volatile)(byte) IRQ_RASTER_FIRST#0 = (byte/signed word/word/dword/signed dword~) $4 (byte) irq_raster_next#0 (byte) irq_raster_next#24 (byte) irq_raster_next#23 (byte) irq_raster_next#22 (byte) irq_raster_next#20 (byte) irq_raster_next#17 (byte) irq_raster_next#10 @@ -6993,10 +7505,10 @@ Alias candidate removed (volatile)(byte) irq_sprite_ypos#0 = (byte/signed word/w Alias candidate removed (volatile)(byte) irq_sprite_ptr#0 = (byte/signed word/word/dword/signed dword~) $7 (byte) irq_sprite_ptr#18 (byte) irq_sprite_ptr#17 (byte) irq_sprite_ptr#14 Alias candidate removed (volatile)(byte) sprites_irq::raster_sprite_gfx_modify#0 = (byte/signed word/word/dword/signed dword~) sprites_irq::$0 Alias candidate removed (volatile)(byte) sprites_irq::toSpritePtr2_return#0 = (byte) sprites_irq::toSpritePtr2_$2#0 (byte) sprites_irq::toSpritePtr2_return#2 (byte) sprites_irq::toSpritePtr2_return#1 (byte) sprites_irq::toSpritePtr2_return#3 (byte~) sprites_irq::$5 (byte) irq_sprite_ptr#1 -Alias (byte) current_piece_char#34 = (byte) current_piece_char#97 (byte) current_piece_char#98 (byte) current_piece_char#96 (byte) current_piece_char#95 (byte) current_piece_char#94 (byte) current_piece_char#93 (byte) current_piece_char#90 (byte) current_piece_char#84 (byte) current_piece_char#78 (byte) current_piece_char#66 (byte) current_piece_char#56 (byte) current_piece_char#49 -Alias (byte*) current_piece_gfx#102 = (byte*) current_piece_gfx#109 (byte*) current_piece_gfx#110 (byte*) current_piece_gfx#108 (byte*) current_piece_gfx#107 (byte*) current_piece_gfx#106 (byte*) current_piece_gfx#105 (byte*) current_piece_gfx#97 (byte*) current_piece_gfx#90 (byte*) current_piece_gfx#79 (byte*) current_piece_gfx#70 (byte*) current_piece_gfx#61 (byte*) current_piece_gfx#43 -Alias (byte) current_xpos#103 = (byte) current_xpos#119 (byte) current_xpos#120 (byte) current_xpos#118 (byte) current_xpos#117 (byte) current_xpos#116 (byte) current_xpos#115 (byte) current_xpos#112 (byte) current_xpos#109 (byte) current_xpos#95 (byte) current_xpos#86 (byte) current_xpos#76 (byte) current_xpos#56 -Alias (byte) current_ypos#47 = (byte) current_ypos#95 (byte) current_ypos#96 (byte) current_ypos#94 (byte) current_ypos#93 (byte) current_ypos#92 (byte) current_ypos#91 (byte) current_ypos#88 (byte) current_ypos#85 (byte) current_ypos#79 (byte) current_ypos#72 (byte) current_ypos#67 (byte) current_ypos#62 +Alias (byte) current_piece_char#101 = (byte) current_piece_char#105 (byte) current_piece_char#106 (byte) current_piece_char#104 (byte) current_piece_char#103 (byte) current_piece_char#102 (byte) current_piece_char#98 (byte) current_piece_char#92 (byte) current_piece_char#85 (byte) current_piece_char#69 (byte) current_piece_char#57 (byte) current_piece_char#50 (byte) current_piece_char#35 +Alias (byte*) current_piece_gfx#105 = (byte*) current_piece_gfx#117 (byte*) current_piece_gfx#118 (byte*) current_piece_gfx#116 (byte*) current_piece_gfx#115 (byte*) current_piece_gfx#114 (byte*) current_piece_gfx#113 (byte*) current_piece_gfx#110 (byte*) current_piece_gfx#97 (byte*) current_piece_gfx#83 (byte*) current_piece_gfx#71 (byte*) current_piece_gfx#62 (byte*) current_piece_gfx#44 +Alias (byte) current_xpos#110 = (byte) current_xpos#127 (byte) current_xpos#128 (byte) current_xpos#126 (byte) current_xpos#125 (byte) current_xpos#124 (byte) current_xpos#123 (byte) current_xpos#120 (byte) current_xpos#117 (byte) current_xpos#99 (byte) current_xpos#87 (byte) current_xpos#77 (byte) current_xpos#57 +Alias (byte) current_ypos#100 = (byte) current_ypos#103 (byte) current_ypos#104 (byte) current_ypos#102 (byte) current_ypos#101 (byte) current_ypos#99 (byte) current_ypos#96 (byte) current_ypos#93 (byte) current_ypos#86 (byte) current_ypos#76 (byte) current_ypos#68 (byte) current_ypos#63 (byte) current_ypos#48 Alias (byte) keyboard_matrix_read::return#0 = (byte) keyboard_matrix_read::row_pressed_bits#0 (byte~) keyboard_matrix_read::$0 (byte) keyboard_matrix_read::return#3 (byte) keyboard_matrix_read::return#1 Alias (byte) KEY_MODIFIER_SHIFT#0 = (byte~) $0 Alias (byte) keyboard_matrix_read::return#2 = (byte) keyboard_matrix_read::return#4 @@ -7015,7 +7527,7 @@ Alias (byte) keyboard_event_scan::row_scan#3 = (byte) keyboard_event_scan::row_s Alias (byte) keyboard_event_scan::row#6 = (byte) keyboard_event_scan::row#9 Alias (byte) keyboard_event_scan::keycode#15 = (byte) keyboard_event_scan::keycode#2 Alias (byte) keyboard_events_size#30 = (byte) keyboard_events_size#64 -Alias (byte) keyboard_events_size#56 = (byte) keyboard_events_size#77 (byte) keyboard_events_size#74 (byte) keyboard_events_size#73 +Alias (byte) keyboard_events_size#56 = (byte) keyboard_events_size#78 (byte) keyboard_events_size#75 (byte) keyboard_events_size#74 Alias (byte) keyboard_event_pressed::return#0 = (byte) keyboard_event_pressed::return#7 Alias (byte) keyboard_modifiers#1 = (byte) keyboard_modifiers#18 (byte) keyboard_modifiers#10 Alias (byte) keyboard_event_pressed::return#1 = (byte) keyboard_event_pressed::return#8 @@ -7037,8 +7549,8 @@ Alias (byte) keyboard_event_pressed::return#11 = (byte) keyboard_event_pressed:: Alias (byte) keyboard_events_size#14 = (byte) keyboard_events_size#25 (byte) keyboard_events_size#15 Alias (byte) keyboard_event_get::return#2 = (byte) keyboard_event_get::return#4 Alias (byte) keyboard_events_size#16 = (byte) keyboard_events_size#5 -Alias (byte) keyboard_events_size#0 = (byte) keyboard_events_size#80 (byte) keyboard_events_size#78 (byte) keyboard_events_size#75 (byte) keyboard_events_size#71 (byte) keyboard_events_size#67 (byte) keyboard_events_size#58 (byte) keyboard_events_size#48 (byte) keyboard_events_size#40 (byte) keyboard_events_size#36 (byte) keyboard_events_size#28 -Alias (byte) keyboard_modifiers#0 = (byte) keyboard_modifiers#61 (byte) keyboard_modifiers#59 (byte) keyboard_modifiers#57 (byte) keyboard_modifiers#55 (byte) keyboard_modifiers#52 (byte) keyboard_modifiers#46 (byte) keyboard_modifiers#39 (byte) keyboard_modifiers#34 (byte) keyboard_modifiers#33 (byte) keyboard_modifiers#25 +Alias (byte) keyboard_events_size#0 = (byte) keyboard_events_size#81 (byte) keyboard_events_size#79 (byte) keyboard_events_size#76 (byte) keyboard_events_size#71 (byte) keyboard_events_size#67 (byte) keyboard_events_size#58 (byte) keyboard_events_size#48 (byte) keyboard_events_size#40 (byte) keyboard_events_size#36 (byte) keyboard_events_size#28 +Alias (byte) keyboard_modifiers#0 = (byte) keyboard_modifiers#62 (byte) keyboard_modifiers#60 (byte) keyboard_modifiers#58 (byte) keyboard_modifiers#55 (byte) keyboard_modifiers#52 (byte) keyboard_modifiers#46 (byte) keyboard_modifiers#39 (byte) keyboard_modifiers#34 (byte) keyboard_modifiers#33 (byte) keyboard_modifiers#25 Alias (byte) sid_rnd::return#0 = (byte) sid_rnd::return#3 (byte) sid_rnd::return#1 Alias (byte*) PLAYFIELD_SPRITE_PTRS_1#0 = (byte*~) $1 Alias (byte*) PLAYFIELD_SPRITE_PTRS_2#0 = (byte*~) $2 @@ -7084,34 +7596,47 @@ Alias (byte*) render_screen_original::oscr#5 = (byte*) render_screen_original::o Alias (byte*) render_screen_original::ocols#5 = (byte*) render_screen_original::ocols#6 Alias (byte) render_playfield::i#0 = (byte/signed word/word/dword/signed dword~) render_playfield::$0 Alias (byte) render_playfield::l#3 = (byte) render_playfield::l#4 -Alias (byte) render_screen_render#22 = (byte) render_screen_render#29 +Alias (byte) render_screen_render#23 = (byte) render_screen_render#32 Alias (byte) render_playfield::i#1 = (byte) render_playfield::i#4 Alias (byte) render_moving::ypos2#0 = (byte~) render_moving::$0 -Alias (byte) render_screen_render#14 = (byte) render_screen_render#23 (byte) render_screen_render#39 +Alias (byte) render_screen_render#14 = (byte) render_screen_render#24 (byte) render_screen_render#42 Alias (byte) render_moving::ypos2#2 = (byte) render_moving::ypos2#3 (byte) render_moving::ypos2#6 -Alias (byte) current_xpos#14 = (byte) current_xpos#33 (byte) current_xpos#80 -Alias (byte*) current_piece_gfx#26 = (byte*) current_piece_gfx#44 (byte*) current_piece_gfx#78 +Alias (byte) current_xpos#15 = (byte) current_xpos#35 (byte) current_xpos#81 +Alias (byte*) current_piece_gfx#28 = (byte*) current_piece_gfx#45 (byte*) current_piece_gfx#82 Alias (byte) render_moving::i#3 = (byte) render_moving::i#6 (byte) render_moving::i#5 -Alias (byte) current_piece_char#35 = (byte) current_piece_char#50 (byte) current_piece_char#77 +Alias (byte) current_piece_char#36 = (byte) current_piece_char#51 (byte) current_piece_char#84 Alias (byte) render_moving::l#4 = (byte) render_moving::l#8 (byte) render_moving::l#5 -Alias (byte) current_piece_char#10 = (byte) current_piece_char#21 +Alias (byte) current_piece_char#11 = (byte) current_piece_char#23 Alias (byte*) render_moving::screen_line#1 = (byte*) render_moving::screen_line#2 Alias (byte) render_moving::xpos#3 = (byte) render_moving::xpos#4 Alias (byte) render_moving::c#3 = (byte) render_moving::c#4 Alias (byte) render_moving::ypos2#7 = (byte) render_moving::ypos2#8 Alias (byte) render_moving::l#6 = (byte) render_moving::l#7 -Alias (byte*) current_piece_gfx#13 = (byte*) current_piece_gfx#45 +Alias (byte*) current_piece_gfx#14 = (byte*) current_piece_gfx#46 Alias (byte) render_moving::i#2 = (byte) render_moving::i#9 -Alias (byte) render_screen_render#43 = (byte) render_screen_render#44 -Alias (byte) current_xpos#93 = (byte) current_xpos#94 -Alias (byte) render_screen_show#0 = (byte) render_screen_show#59 (byte) render_screen_show#56 (byte) render_screen_show#53 (byte) render_screen_show#48 (byte) render_screen_show#43 (byte) render_screen_show#35 (byte) render_screen_show#32 (byte) render_screen_show#24 -Alias (byte) render_screen_render#0 = (byte) render_screen_render#58 (byte) render_screen_render#56 (byte) render_screen_render#54 (byte) render_screen_render#49 (byte) render_screen_render#45 (byte) render_screen_render#40 (byte) render_screen_render#36 (byte) render_screen_render#26 -Alias (byte) game_over#0 = (byte) game_over#84 (byte) game_over#83 (byte) game_over#77 (byte) game_over#67 (byte) game_over#56 (byte) game_over#49 (byte) game_over#43 (byte) game_over#32 -Alias (byte) render_screen_showing#0 = (byte) render_screen_showing#44 (byte) render_screen_showing#42 (byte) render_screen_showing#38 (byte) render_screen_showing#32 (byte) render_screen_showing#27 (byte) render_screen_showing#21 (byte) render_screen_showing#20 (byte) render_screen_showing#14 -Alias (word) lines_bcd#0 = (word) lines_bcd#87 (word) lines_bcd#83 (word) lines_bcd#77 (word) lines_bcd#70 (word) lines_bcd#60 (word) lines_bcd#53 (word) lines_bcd#46 (word) lines_bcd#34 -Alias (dword) score_bcd#0 = (dword) score_bcd#83 (dword) score_bcd#79 (dword) score_bcd#74 (dword) score_bcd#67 (dword) score_bcd#58 (dword) score_bcd#53 (dword) score_bcd#46 (dword) score_bcd#34 -Alias (byte) level#0 = (byte) level#96 (byte) level#92 (byte) level#86 (byte) level#77 (byte) level#65 (byte) level#59 (byte) level#52 (byte) level#38 -Alias (byte) level_bcd#0 = (byte) level_bcd#100 (byte) level_bcd#96 (byte) level_bcd#89 (byte) level_bcd#80 (byte) level_bcd#70 (byte) level_bcd#63 (byte) level_bcd#56 (byte) level_bcd#41 +Alias (byte) render_screen_render#46 = (byte) render_screen_render#47 +Alias (byte) current_xpos#97 = (byte) current_xpos#98 +Alias (word) render_next::next_area_offset#0 = (word/signed dword/dword/signed word~) render_next::$2 (word) render_next::next_area_offset#1 (word) render_next::next_area_offset#2 +Alias (byte) next_piece_idx#24 = (byte) next_piece_idx#36 (byte) next_piece_idx#25 +Alias (byte*) render_next::screen_next_area#0 = (byte*~) render_next::$5 +Alias (byte*) render_next::screen_next_area#1 = (byte*~) render_next::$4 +Alias (byte) render_next::next_piece_char#1 = (byte) render_next::next_piece_char#2 (byte) render_next::next_piece_char#6 +Alias (byte*) render_next::screen_next_area#4 = (byte*) render_next::screen_next_area#8 (byte*) render_next::screen_next_area#5 +Alias (byte) render_next::c#3 = (byte) render_next::c#5 (byte) render_next::c#4 +Alias (byte*) render_next::next_piece_gfx#1 = (byte*) render_next::next_piece_gfx#6 (byte*) render_next::next_piece_gfx#7 +Alias (byte) render_next::l#4 = (byte) render_next::l#6 (byte) render_next::l#5 +Alias (byte*) render_next::screen_next_area#2 = (byte*) render_next::screen_next_area#7 +Alias (byte) render_next::l#2 = (byte) render_next::l#3 +Alias (byte*) render_next::next_piece_gfx#4 = (byte*) render_next::next_piece_gfx#5 +Alias (byte) render_next::next_piece_char#4 = (byte) render_next::next_piece_char#5 +Alias (byte) render_screen_show#0 = (byte) render_screen_show#60 (byte) render_screen_show#57 (byte) render_screen_show#54 (byte) render_screen_show#48 (byte) render_screen_show#43 (byte) render_screen_show#35 (byte) render_screen_show#32 (byte) render_screen_show#24 +Alias (byte) render_screen_render#0 = (byte) render_screen_render#62 (byte) render_screen_render#60 (byte) render_screen_render#57 (byte) render_screen_render#52 (byte) render_screen_render#48 (byte) render_screen_render#43 (byte) render_screen_render#40 (byte) render_screen_render#29 +Alias (byte) game_over#0 = (byte) game_over#88 (byte) game_over#86 (byte) game_over#81 (byte) game_over#72 (byte) game_over#59 (byte) game_over#51 (byte) game_over#45 (byte) game_over#34 +Alias (byte) render_screen_showing#0 = (byte) render_screen_showing#45 (byte) render_screen_showing#42 (byte) render_screen_showing#38 (byte) render_screen_showing#32 (byte) render_screen_showing#27 (byte) render_screen_showing#21 (byte) render_screen_showing#20 (byte) render_screen_showing#14 +Alias (word) lines_bcd#0 = (word) lines_bcd#88 (word) lines_bcd#83 (word) lines_bcd#77 (word) lines_bcd#70 (word) lines_bcd#60 (word) lines_bcd#53 (word) lines_bcd#46 (word) lines_bcd#34 +Alias (dword) score_bcd#0 = (dword) score_bcd#84 (dword) score_bcd#80 (dword) score_bcd#74 (dword) score_bcd#67 (dword) score_bcd#58 (dword) score_bcd#53 (dword) score_bcd#46 (dword) score_bcd#34 +Alias (byte) level#0 = (byte) level#99 (byte) level#93 (byte) level#86 (byte) level#77 (byte) level#65 (byte) level#59 (byte) level#52 (byte) level#38 +Alias (byte) level_bcd#0 = (byte) level_bcd#101 (byte) level_bcd#96 (byte) level_bcd#89 (byte) level_bcd#80 (byte) level_bcd#70 (byte) level_bcd#63 (byte) level_bcd#56 (byte) level_bcd#41 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 @@ -7142,96 +7667,102 @@ Alias (byte) play_move_down::return#0 = (byte) play_move_down::return#4 Alias (byte) play_movement::render#0 = (byte) play_movement::render#4 Alias (byte) play_movement::key_event#1 = (byte) play_movement::key_event#4 (byte) play_movement::key_event#2 (byte) play_movement::key_event#3 Alias (byte) current_movedown_counter#1 = (byte) current_movedown_counter#9 (byte) current_movedown_counter#36 (byte) current_movedown_counter#28 (byte) current_movedown_counter#20 (byte) current_movedown_counter#19 -Alias (byte) current_ypos#0 = (byte) current_ypos#12 (byte) current_ypos#52 (byte) current_ypos#48 (byte) current_ypos#31 (byte) current_ypos#30 +Alias (byte) current_ypos#0 = (byte) current_ypos#13 (byte) current_ypos#53 (byte) current_ypos#49 (byte) current_ypos#33 (byte) current_ypos#32 Alias (word) lines_bcd#1 = (word) lines_bcd#12 (word) lines_bcd#48 (word) lines_bcd#36 (word) lines_bcd#24 (word) lines_bcd#23 Alias (dword) score_bcd#1 = (dword) score_bcd#11 (dword) score_bcd#48 (dword) score_bcd#36 (dword) score_bcd#24 (dword) score_bcd#23 Alias (byte) level#1 = (byte) level#13 (byte) level#54 (byte) level#40 (byte) level#28 (byte) level#27 Alias (byte) current_movedown_slow#17 = (byte) current_movedown_slow#3 (byte) current_movedown_slow#63 (byte) current_movedown_slow#47 (byte) current_movedown_slow#32 (byte) current_movedown_slow#31 Alias (byte) level_bcd#1 = (byte) level_bcd#14 (byte) level_bcd#58 (byte) level_bcd#43 (byte) level_bcd#29 (byte) level_bcd#28 -Alias (byte*) current_piece#1 = (byte*) current_piece#11 (byte*) current_piece#54 (byte*) current_piece#39 (byte*) current_piece#24 (byte*) current_piece#23 -Alias (byte) current_piece_char#0 = (byte) current_piece_char#11 (byte) current_piece_char#51 (byte) current_piece_char#37 (byte) current_piece_char#24 (byte) current_piece_char#23 -Alias (byte) current_orientation#1 = (byte) current_orientation#14 (byte) current_orientation#49 (byte) current_orientation#31 (byte) current_orientation#32 -Alias (byte*) current_piece_gfx#0 = (byte*) current_piece_gfx#14 (byte*) current_piece_gfx#46 (byte*) current_piece_gfx#29 (byte*) current_piece_gfx#30 -Alias (byte) current_xpos#0 = (byte) current_xpos#15 (byte) current_xpos#35 (byte) current_xpos#36 -Alias (byte) game_over#1 = (byte) game_over#11 (byte) game_over#44 (byte) game_over#33 (byte) game_over#23 (byte) game_over#22 +Alias (byte*) current_piece#1 = (byte*) current_piece#12 (byte*) current_piece#55 (byte*) current_piece#40 (byte*) current_piece#26 (byte*) current_piece#25 +Alias (byte) current_piece_char#0 = (byte) current_piece_char#12 (byte) current_piece_char#52 (byte) current_piece_char#38 (byte) current_piece_char#26 (byte) current_piece_char#25 +Alias (byte) current_orientation#1 = (byte) current_orientation#15 (byte) current_orientation#50 (byte) current_orientation#33 (byte) current_orientation#34 +Alias (byte*) current_piece_gfx#0 = (byte*) current_piece_gfx#15 (byte*) current_piece_gfx#47 (byte*) current_piece_gfx#31 (byte*) current_piece_gfx#32 +Alias (byte) current_xpos#0 = (byte) current_xpos#16 (byte) current_xpos#37 (byte) current_xpos#38 +Alias (byte) game_over#1 = (byte) game_over#12 (byte) game_over#46 (byte) game_over#35 (byte) game_over#25 (byte) game_over#24 +Alias (byte) next_piece_idx#1 = (byte) next_piece_idx#13 (byte) next_piece_idx#49 (byte) next_piece_idx#37 (byte) next_piece_idx#28 (byte) next_piece_idx#27 Alias (byte) play_movement::render#1 = (byte) play_movement::render#8 (byte) play_movement::render#5 (byte) play_movement::render#7 (byte) play_movement::return#1 Alias (byte) play_move_leftright::return#0 = (byte) play_move_leftright::return#5 -Alias (byte) current_xpos#1 = (byte) current_xpos#16 (byte) current_xpos#37 +Alias (byte) current_xpos#1 = (byte) current_xpos#17 (byte) current_xpos#39 Alias (byte) play_move_rotate::return#0 = (byte) play_move_rotate::return#5 Alias (byte) play_movement::render#2 = (byte) play_movement::render#6 -Alias (byte) current_orientation#15 = (byte) current_orientation#2 -Alias (byte*) current_piece_gfx#1 = (byte*) current_piece_gfx#15 +Alias (byte) current_orientation#16 = (byte) current_orientation#2 +Alias (byte*) current_piece_gfx#1 = (byte*) current_piece_gfx#16 Alias (byte) play_movement::return#0 = (byte) play_movement::render#3 Alias (byte) play_movement::return#2 = (byte) play_movement::return#4 Alias (byte) current_movedown_counter#10 = (byte) current_movedown_counter#2 -Alias (byte) current_ypos#1 = (byte) current_ypos#13 +Alias (byte) current_ypos#1 = (byte) current_ypos#14 Alias (word) lines_bcd#13 = (word) lines_bcd#2 Alias (dword) score_bcd#12 = (dword) score_bcd#2 Alias (byte) level#14 = (byte) level#2 Alias (byte) current_movedown_slow#18 = (byte) current_movedown_slow#4 Alias (byte) level_bcd#15 = (byte) level_bcd#2 -Alias (byte*) current_piece#12 = (byte*) current_piece#2 -Alias (byte) current_piece_char#1 = (byte) current_piece_char#12 -Alias (byte) current_orientation#16 = (byte) current_orientation#3 -Alias (byte*) current_piece_gfx#16 = (byte*) current_piece_gfx#2 -Alias (byte) current_xpos#17 = (byte) current_xpos#2 -Alias (byte) game_over#12 = (byte) game_over#2 +Alias (byte*) current_piece#13 = (byte*) current_piece#2 +Alias (byte) current_piece_char#1 = (byte) current_piece_char#13 +Alias (byte) current_orientation#17 = (byte) current_orientation#3 +Alias (byte*) current_piece_gfx#17 = (byte*) current_piece_gfx#2 +Alias (byte) current_xpos#18 = (byte) current_xpos#2 +Alias (byte) game_over#13 = (byte) game_over#2 +Alias (byte) next_piece_idx#14 = (byte) next_piece_idx#2 Alias (byte) keyboard_event_pressed::return#12 = (byte) keyboard_event_pressed::return#6 Alias (byte) current_movedown_counter#13 = (byte) current_movedown_counter#22 (byte) current_movedown_counter#29 (byte) current_movedown_counter#23 (byte) current_movedown_counter#21 Alias (byte) current_movedown_slow#33 = (byte) current_movedown_slow#34 (byte) current_movedown_slow#48 (byte) current_movedown_slow#49 (byte) current_movedown_slow#35 Alias (byte) play_move_down::movedown#10 = (byte) play_move_down::movedown#12 (byte) play_move_down::movedown#8 (byte) play_move_down::movedown#11 (byte) play_move_down::movedown#5 -Alias (byte) current_ypos#63 = (byte) current_ypos#64 (byte) current_ypos#73 (byte) current_ypos#74 (byte) current_ypos#65 -Alias (byte) current_xpos#81 = (byte) current_xpos#82 (byte) current_xpos#96 (byte) current_xpos#97 (byte) current_xpos#83 -Alias (byte) current_orientation#62 = (byte) current_orientation#63 (byte) current_orientation#73 (byte) current_orientation#74 (byte) current_orientation#64 +Alias (byte) current_ypos#64 = (byte) current_ypos#65 (byte) current_ypos#77 (byte) current_ypos#78 (byte) current_ypos#66 +Alias (byte) current_xpos#100 = (byte) current_xpos#83 (byte) current_xpos#101 (byte) current_xpos#84 (byte) current_xpos#82 +Alias (byte) current_orientation#63 = (byte) current_orientation#64 (byte) current_orientation#76 (byte) current_orientation#77 (byte) current_orientation#65 Alias (word) lines_bcd#61 = (word) lines_bcd#62 (word) lines_bcd#71 (word) lines_bcd#72 (word) lines_bcd#63 Alias (dword) score_bcd#59 = (dword) score_bcd#60 (dword) score_bcd#68 (dword) score_bcd#69 (dword) score_bcd#61 Alias (byte) level#66 = (byte) level#67 (byte) level#78 (byte) level#79 (byte) level#68 Alias (byte) level_bcd#71 = (byte) level_bcd#72 (byte) level_bcd#81 (byte) level_bcd#82 (byte) level_bcd#73 -Alias (byte*) current_piece#66 = (byte*) current_piece#67 (byte*) current_piece#74 (byte*) current_piece#75 (byte*) current_piece#68 -Alias (byte) current_piece_char#67 = (byte) current_piece_char#68 (byte) current_piece_char#79 (byte) current_piece_char#80 (byte) current_piece_char#69 -Alias (byte*) current_piece_gfx#80 = (byte*) current_piece_gfx#81 (byte*) current_piece_gfx#91 (byte*) current_piece_gfx#92 (byte*) current_piece_gfx#82 -Alias (byte) game_over#57 = (byte) game_over#58 (byte) game_over#68 (byte) game_over#69 (byte) game_over#59 +Alias (byte*) current_piece#69 = (byte*) current_piece#70 (byte*) current_piece#81 (byte*) current_piece#82 (byte*) current_piece#71 +Alias (byte) current_piece_char#70 = (byte) current_piece_char#71 (byte) current_piece_char#86 (byte) current_piece_char#87 (byte) current_piece_char#72 +Alias (byte*) current_piece_gfx#84 = (byte*) current_piece_gfx#85 (byte*) current_piece_gfx#98 (byte*) current_piece_gfx#99 (byte*) current_piece_gfx#86 +Alias (byte) game_over#60 = (byte) game_over#61 (byte) game_over#73 (byte) game_over#74 (byte) game_over#62 +Alias (byte) next_piece_idx#58 = (byte) next_piece_idx#59 (byte) next_piece_idx#69 (byte) next_piece_idx#70 (byte) next_piece_idx#60 Alias (byte) play_move_down::movedown#0 = (byte) play_move_down::movedown#4 Alias (byte) current_movedown_counter#3 = (byte) current_movedown_counter#37 Alias (byte) current_movedown_slow#64 = (byte) current_movedown_slow#65 -Alias (byte) current_ypos#80 = (byte) current_ypos#81 -Alias (byte) current_xpos#104 = (byte) current_xpos#105 -Alias (byte) current_orientation#80 = (byte) current_orientation#81 +Alias (byte) current_ypos#87 = (byte) current_ypos#88 +Alias (byte) current_xpos#111 = (byte) current_xpos#112 +Alias (byte) current_orientation#87 = (byte) current_orientation#88 Alias (word) lines_bcd#78 = (word) lines_bcd#79 Alias (dword) score_bcd#75 = (dword) score_bcd#76 Alias (byte) level#87 = (byte) level#88 Alias (byte) level_bcd#90 = (byte) level_bcd#91 -Alias (byte*) current_piece#80 = (byte*) current_piece#81 -Alias (byte) current_piece_char#85 = (byte) current_piece_char#86 -Alias (byte*) current_piece_gfx#98 = (byte*) current_piece_gfx#99 -Alias (byte) game_over#78 = (byte) game_over#79 +Alias (byte*) current_piece#87 = (byte*) current_piece#88 +Alias (byte) current_piece_char#93 = (byte) current_piece_char#94 +Alias (byte*) current_piece_gfx#106 = (byte*) current_piece_gfx#107 +Alias (byte) game_over#82 = (byte) game_over#83 +Alias (byte) next_piece_idx#75 = (byte) next_piece_idx#76 Alias (byte) play_move_down::movedown#7 = (byte) play_move_down::movedown#9 -Alias (byte) current_ypos#49 = (byte) current_ypos#50 -Alias (byte) current_xpos#59 = (byte) current_xpos#60 -Alias (byte) current_orientation#50 = (byte) current_orientation#51 +Alias (byte) current_ypos#50 = (byte) current_ypos#51 +Alias (byte) current_xpos#60 = (byte) current_xpos#61 +Alias (byte) current_orientation#51 = (byte) current_orientation#52 Alias (byte) current_movedown_counter#12 = (byte) current_movedown_counter#38 Alias (word) lines_bcd#49 = (word) lines_bcd#50 Alias (dword) score_bcd#49 = (dword) score_bcd#50 Alias (byte) level#55 = (byte) level#56 Alias (byte) current_movedown_slow#19 = (byte) current_movedown_slow#66 Alias (byte) level_bcd#59 = (byte) level_bcd#60 -Alias (byte*) current_piece#55 = (byte*) current_piece#56 -Alias (byte) current_piece_char#52 = (byte) current_piece_char#53 -Alias (byte*) current_piece_gfx#64 = (byte*) current_piece_gfx#65 -Alias (byte) game_over#45 = (byte) game_over#46 +Alias (byte*) current_piece#56 = (byte*) current_piece#57 +Alias (byte) current_piece_char#53 = (byte) current_piece_char#54 +Alias (byte*) current_piece_gfx#65 = (byte*) current_piece_gfx#66 +Alias (byte) game_over#47 = (byte) game_over#48 +Alias (byte) next_piece_idx#50 = (byte) next_piece_idx#51 Alias (byte) current_movedown_counter#24 = (byte) current_movedown_counter#30 -Alias (byte) current_ypos#14 = (byte) current_ypos#35 (byte) current_ypos#32 (byte) current_ypos#33 (byte) current_ypos#15 (byte) current_ypos#41 (byte) current_ypos#66 (byte) current_ypos#51 (byte) current_ypos#34 +Alias (byte) current_ypos#15 = (byte) current_ypos#37 (byte) current_ypos#34 (byte) current_ypos#35 (byte) current_ypos#16 (byte) current_ypos#43 (byte) current_ypos#67 (byte) current_ypos#52 (byte) current_ypos#36 Alias (word) lines_bcd#25 = (word) lines_bcd#26 (word) lines_bcd#37 (word) lines_bcd#64 (word) lines_bcd#51 (word) lines_bcd#40 (word) lines_bcd#52 (word) lines_bcd#38 Alias (dword) score_bcd#25 = (dword) score_bcd#26 (dword) score_bcd#37 (dword) score_bcd#62 (dword) score_bcd#51 (dword) score_bcd#40 (dword) score_bcd#52 (dword) score_bcd#38 Alias (byte) level#29 = (byte) level#30 (byte) level#41 (byte) level#69 (byte) level#57 (byte) level#44 (byte) level#58 (byte) level#42 Alias (byte) current_movedown_slow#36 = (byte) current_movedown_slow#37 (byte) current_movedown_slow#50 (byte) current_movedown_slow#75 (byte) current_movedown_slow#67 (byte) current_movedown_slow#53 (byte) current_movedown_slow#68 (byte) current_movedown_slow#51 Alias (byte) level_bcd#30 = (byte) level_bcd#31 (byte) level_bcd#44 (byte) level_bcd#74 (byte) level_bcd#61 (byte) level_bcd#47 (byte) level_bcd#62 (byte) level_bcd#45 -Alias (byte*) current_piece#25 = (byte*) current_piece#26 (byte*) current_piece#40 (byte*) current_piece#29 (byte*) current_piece#57 (byte*) current_piece#42 (byte*) current_piece#69 (byte*) current_piece#58 (byte*) current_piece#41 -Alias (byte) current_piece_char#25 = (byte) current_piece_char#26 (byte) current_piece_char#38 (byte) current_piece_char#70 (byte) current_piece_char#54 (byte) current_piece_char#40 (byte) current_piece_char#71 (byte) current_piece_char#55 (byte) current_piece_char#39 -Alias (byte) current_orientation#17 = (byte) current_orientation#35 (byte) current_orientation#33 (byte) current_orientation#65 (byte) current_orientation#53 (byte) current_orientation#75 (byte) current_orientation#66 (byte) current_orientation#52 (byte) current_orientation#34 -Alias (byte*) current_piece_gfx#31 = (byte*) current_piece_gfx#32 (byte*) current_piece_gfx#47 (byte*) current_piece_gfx#83 (byte*) current_piece_gfx#66 (byte*) current_piece_gfx#49 (byte*) current_piece_gfx#71 (byte*) current_piece_gfx#67 (byte*) current_piece_gfx#48 -Alias (byte) current_xpos#18 = (byte) current_xpos#40 (byte) current_xpos#38 (byte) current_xpos#84 (byte) current_xpos#62 (byte) current_xpos#68 (byte) current_xpos#85 (byte) current_xpos#61 (byte) current_xpos#39 -Alias (byte) game_over#24 = (byte) game_over#25 (byte) game_over#34 (byte) game_over#60 (byte) game_over#47 (byte) game_over#36 (byte) game_over#61 (byte) game_over#48 (byte) game_over#35 +Alias (byte*) current_piece#27 = (byte*) current_piece#28 (byte*) current_piece#41 (byte*) current_piece#31 (byte*) current_piece#58 (byte*) current_piece#43 (byte*) current_piece#72 (byte*) current_piece#59 (byte*) current_piece#42 +Alias (byte) current_piece_char#27 = (byte) current_piece_char#28 (byte) current_piece_char#39 (byte) current_piece_char#73 (byte) current_piece_char#55 (byte) current_piece_char#41 (byte) current_piece_char#74 (byte) current_piece_char#56 (byte) current_piece_char#40 +Alias (byte) current_orientation#18 = (byte) current_orientation#37 (byte) current_orientation#35 (byte) current_orientation#66 (byte) current_orientation#54 (byte) current_orientation#78 (byte) current_orientation#67 (byte) current_orientation#53 (byte) current_orientation#36 +Alias (byte*) current_piece_gfx#33 = (byte*) current_piece_gfx#34 (byte*) current_piece_gfx#48 (byte*) current_piece_gfx#87 (byte*) current_piece_gfx#67 (byte*) current_piece_gfx#50 (byte*) current_piece_gfx#72 (byte*) current_piece_gfx#68 (byte*) current_piece_gfx#49 +Alias (byte) current_xpos#19 = (byte) current_xpos#42 (byte) current_xpos#40 (byte) current_xpos#85 (byte) current_xpos#63 (byte) current_xpos#69 (byte) current_xpos#86 (byte) current_xpos#62 (byte) current_xpos#41 +Alias (byte) game_over#26 = (byte) game_over#27 (byte) game_over#36 (byte) game_over#63 (byte) game_over#49 (byte) game_over#38 (byte) game_over#64 (byte) game_over#50 (byte) game_over#37 +Alias (byte) next_piece_idx#29 = (byte) next_piece_idx#30 (byte) next_piece_idx#38 (byte) next_piece_idx#61 (byte) next_piece_idx#52 (byte) next_piece_idx#40 (byte) next_piece_idx#62 (byte) next_piece_idx#53 (byte) next_piece_idx#39 Alias (byte) play_collision::ypos#0 = (byte/signed word/word/dword/signed dword~) play_move_down::$11 Alias (byte) play_collision::return#0 = (byte) play_collision::return#11 Alias (byte) play_remove_lines::return#0 = (byte) play_remove_lines::return#3 @@ -7241,58 +7772,61 @@ Alias (dword) score_bcd#13 = (dword) score_bcd#3 (dword) score_bcd#39 Alias (byte) level#15 = (byte) level#3 (byte) level#43 Alias (byte) current_movedown_slow#20 = (byte) current_movedown_slow#5 (byte) current_movedown_slow#52 Alias (byte) level_bcd#16 = (byte) level_bcd#3 (byte) level_bcd#46 -Alias (byte*) current_piece#13 = (byte*) current_piece#3 -Alias (byte) current_piece_char#13 = (byte) current_piece_char#2 -Alias (byte) current_orientation#18 = (byte) current_orientation#4 -Alias (byte*) current_piece_gfx#17 = (byte*) current_piece_gfx#3 -Alias (byte) current_xpos#19 = (byte) current_xpos#3 -Alias (byte) current_ypos#16 = (byte) current_ypos#3 -Alias (byte) game_over#13 = (byte) game_over#3 +Alias (byte*) current_piece#14 = (byte*) current_piece#3 +Alias (byte) current_piece_char#14 = (byte) current_piece_char#2 +Alias (byte) current_orientation#19 = (byte) current_orientation#4 +Alias (byte*) current_piece_gfx#18 = (byte*) current_piece_gfx#3 +Alias (byte) current_xpos#20 = (byte) current_xpos#3 +Alias (byte) current_ypos#17 = (byte) current_ypos#3 +Alias (byte) game_over#14 = (byte) game_over#3 +Alias (byte) next_piece_idx#15 = (byte) next_piece_idx#3 Alias (byte) play_move_down::return#3 = (byte) play_move_down::return#5 Alias (byte) current_movedown_counter#14 = (byte) current_movedown_counter#5 -Alias (byte) current_ypos#17 = (byte) current_ypos#4 +Alias (byte) current_ypos#18 = (byte) current_ypos#4 Alias (word) lines_bcd#15 = (word) lines_bcd#4 Alias (dword) score_bcd#14 = (dword) score_bcd#4 Alias (byte) level#16 = (byte) level#4 Alias (byte) current_movedown_slow#21 = (byte) current_movedown_slow#6 Alias (byte) level_bcd#17 = (byte) level_bcd#4 -Alias (byte*) current_piece#14 = (byte*) current_piece#4 -Alias (byte) current_piece_char#14 = (byte) current_piece_char#3 -Alias (byte) current_orientation#19 = (byte) current_orientation#5 -Alias (byte*) current_piece_gfx#18 = (byte*) current_piece_gfx#4 -Alias (byte) current_xpos#20 = (byte) current_xpos#4 -Alias (byte) game_over#14 = (byte) game_over#4 -Alias (byte) current_xpos#21 = (byte) current_xpos#42 (byte) current_xpos#46 (byte) current_xpos#43 (byte) current_xpos#63 (byte) current_xpos#22 (byte) current_xpos#44 (byte) current_xpos#64 (byte) current_xpos#23 (byte) current_xpos#65 (byte) current_xpos#25 -Alias (byte) current_ypos#18 = (byte) current_ypos#37 (byte) current_ypos#38 (byte) current_ypos#19 -Alias (byte) current_orientation#20 = (byte) current_orientation#37 (byte) current_orientation#38 (byte) current_orientation#21 -Alias (byte*) current_piece#30 = (byte*) current_piece#43 (byte*) current_piece#44 (byte*) current_piece#31 +Alias (byte*) current_piece#15 = (byte*) current_piece#4 +Alias (byte) current_piece_char#15 = (byte) current_piece_char#3 +Alias (byte) current_orientation#20 = (byte) current_orientation#5 +Alias (byte*) current_piece_gfx#19 = (byte*) current_piece_gfx#4 +Alias (byte) current_xpos#21 = (byte) current_xpos#4 +Alias (byte) game_over#15 = (byte) game_over#4 +Alias (byte) next_piece_idx#16 = (byte) next_piece_idx#4 +Alias (byte) current_xpos#22 = (byte) current_xpos#44 (byte) current_xpos#48 (byte) current_xpos#45 (byte) current_xpos#64 (byte) current_xpos#23 (byte) current_xpos#46 (byte) current_xpos#65 (byte) current_xpos#24 (byte) current_xpos#66 (byte) current_xpos#26 +Alias (byte) current_ypos#19 = (byte) current_ypos#39 (byte) current_ypos#40 (byte) current_ypos#20 +Alias (byte) current_orientation#21 = (byte) current_orientation#39 (byte) current_orientation#40 (byte) current_orientation#22 +Alias (byte*) current_piece#32 = (byte*) current_piece#44 (byte*) current_piece#45 (byte*) current_piece#33 Alias (byte) play_collision::xpos#1 = (byte/signed word/word/dword/signed dword~) play_move_leftright::$7 Alias (byte) play_collision::return#1 = (byte) play_collision::return#12 Alias (byte) play_move_leftright::key_event#1 = (byte) play_move_leftright::key_event#2 Alias (byte) play_collision::xpos#2 = (byte/signed word/word/dword/signed dword~) play_move_leftright::$3 Alias (byte) play_collision::return#13 = (byte) play_collision::return#2 Alias (byte) play_move_leftright::return#2 = (byte) play_move_leftright::return#6 -Alias (byte) current_xpos#24 = (byte) current_xpos#6 -Alias (byte) current_orientation#22 = (byte) current_orientation#39 (byte) current_orientation#40 (byte) current_orientation#23 (byte) current_orientation#42 -Alias (byte) current_xpos#47 = (byte) current_xpos#66 (byte) current_xpos#67 (byte) current_xpos#48 -Alias (byte) current_ypos#39 = (byte) current_ypos#53 (byte) current_ypos#54 (byte) current_ypos#40 -Alias (byte*) current_piece#45 = (byte*) current_piece#59 (byte*) current_piece#60 (byte*) current_piece#46 -Alias (byte*) current_piece_gfx#35 = (byte*) current_piece_gfx#84 (byte*) current_piece_gfx#68 (byte*) current_piece_gfx#50 (byte*) current_piece_gfx#85 +Alias (byte) current_xpos#25 = (byte) current_xpos#6 +Alias (byte) current_orientation#23 = (byte) current_orientation#41 (byte) current_orientation#42 (byte) current_orientation#24 (byte) current_orientation#44 +Alias (byte) current_xpos#49 = (byte) current_xpos#67 (byte) current_xpos#68 (byte) current_xpos#50 +Alias (byte) current_ypos#41 = (byte) current_ypos#54 (byte) current_ypos#55 (byte) current_ypos#42 +Alias (byte*) current_piece#46 = (byte*) current_piece#60 (byte*) current_piece#61 (byte*) current_piece#47 +Alias (byte*) current_piece_gfx#37 = (byte*) current_piece_gfx#88 (byte*) current_piece_gfx#69 (byte*) current_piece_gfx#51 (byte*) current_piece_gfx#89 Alias (byte) play_move_rotate::orientation#1 = (byte/word/dword~) play_move_rotate::$5 Alias (byte) play_move_rotate::key_event#1 = (byte) play_move_rotate::key_event#2 Alias (byte) play_move_rotate::orientation#2 = (byte/word/dword~) play_move_rotate::$3 Alias (byte) play_move_rotate::return#2 = (byte) play_move_rotate::return#6 -Alias (byte) current_orientation#24 = (byte) current_orientation#6 -Alias (byte*) current_piece_gfx#19 = (byte*) current_piece_gfx#5 +Alias (byte) current_orientation#25 = (byte) current_orientation#6 +Alias (byte*) current_piece_gfx#20 = (byte*) current_piece_gfx#5 Alias (byte) play_collision::return#14 = (byte) play_collision::return#3 Alias (byte) play_move_rotate::orientation#3 = (byte) play_move_rotate::orientation#5 (byte) play_move_rotate::orientation#4 -Alias (byte*) current_piece#15 = (byte*) current_piece#28 (byte*) current_piece#32 -Alias (byte) current_orientation#41 = (byte) current_orientation#54 (byte) current_orientation#67 -Alias (byte*) current_piece_gfx#34 = (byte*) current_piece_gfx#51 (byte*) current_piece_gfx#69 +Alias (byte*) current_piece#16 = (byte*) current_piece#30 (byte*) current_piece#34 +Alias (byte) current_orientation#43 = (byte) current_orientation#55 (byte) current_orientation#68 +Alias (byte*) current_piece_gfx#36 = (byte*) current_piece_gfx#52 (byte*) current_piece_gfx#70 Alias (byte*) current_piece_gfx#6 = (byte*~) play_move_rotate::$9 Alias (byte) current_movedown_slow#0 = (byte) current_movedown_slow#62 (byte) current_movedown_slow#46 -Alias (byte*) current_piece#0 = (byte*) current_piece#53 (byte*) current_piece#38 -Alias (byte) current_orientation#0 = (byte) current_orientation#61 (byte) current_orientation#48 +Alias (byte*) current_piece#0 = (byte*) current_piece#54 (byte*) current_piece#39 +Alias (byte) current_orientation#0 = (byte) current_orientation#62 (byte) current_orientation#49 +Alias (byte) next_piece_idx#0 = (byte) next_piece_idx#46 (byte) next_piece_idx#35 Alias (byte) current_movedown_counter#0 = (byte) current_movedown_counter#35 (byte) current_movedown_counter#27 Alias (byte*) play_collision::piece_gfx#0 = (byte*~) play_collision::$0 Alias (byte) play_collision::ypos2#0 = (byte~) play_collision::$1 @@ -7312,39 +7846,40 @@ Alias (byte) play_collision::xpos#7 = (byte) play_collision::xpos#8 Alias (byte*) play_collision::piece_gfx#3 = (byte*) play_collision::piece_gfx#4 Alias (byte) play_collision::i#4 = (byte) play_collision::i#5 Alias (byte) play_lock_current::ypos2#0 = (byte~) play_lock_current::$0 -Alias (byte) current_piece_char#15 = (byte) current_piece_char#28 +Alias (byte) current_piece_char#16 = (byte) current_piece_char#30 Alias (byte*) play_lock_current::playfield_line#1 = (byte*) play_lock_current::playfield_line#2 Alias (byte) play_lock_current::col#3 = (byte) play_lock_current::col#4 Alias (byte) play_lock_current::c#3 = (byte) play_lock_current::c#4 -Alias (byte*) current_piece_gfx#20 = (byte*) current_piece_gfx#54 +Alias (byte*) current_piece_gfx#21 = (byte*) current_piece_gfx#55 Alias (byte) play_lock_current::i#1 = (byte) play_lock_current::i#6 Alias (byte) play_lock_current::ypos2#5 = (byte) play_lock_current::ypos2#6 Alias (byte) play_lock_current::l#4 = (byte) play_lock_current::l#5 -Alias (byte) current_xpos#87 = (byte) current_xpos#88 +Alias (byte) current_xpos#88 = (byte) current_xpos#89 Alias (byte) play_lock_current::ypos2#3 = (byte) play_lock_current::ypos2#4 Alias (byte) play_lock_current::l#2 = (byte) play_lock_current::l#3 -Alias (byte) current_xpos#50 = (byte) current_xpos#69 -Alias (byte*) current_piece_gfx#37 = (byte*) current_piece_gfx#53 +Alias (byte) current_xpos#52 = (byte) current_xpos#70 +Alias (byte*) current_piece_gfx#39 = (byte*) current_piece_gfx#54 Alias (byte) play_lock_current::i#4 = (byte) play_lock_current::i#5 -Alias (byte) current_piece_char#42 = (byte) current_piece_char#58 -Alias (byte) game_over#27 = (byte) game_over#80 (byte) game_over#62 (byte) game_over#71 (byte) game_over#50 (byte) game_over#37 -Alias (byte) sid_rnd::return#2 = (byte) sid_rnd::return#4 -Alias (byte) play_spawn_current::piece_idx#1 = (byte~) play_spawn_current::$2 -Alias (byte) play_spawn_current::piece_idx#2 = (byte) play_spawn_current::piece_idx#3 -Alias (byte*) current_piece_gfx#38 = (byte*) current_piece_gfx#7 (byte*~) play_spawn_current::$4 (byte*) current_piece_gfx#55 (byte*) current_piece_gfx#39 +Alias (byte) current_piece_char#43 = (byte) current_piece_char#59 +Alias (byte*) current_piece_gfx#7 = (byte*~) play_spawn_current::$1 (byte*) current_piece_gfx#91 (byte*) current_piece_gfx#90 Alias (byte) play_collision::return#10 = (byte) play_collision::return#16 -Alias (byte*) current_piece#33 = (byte*) current_piece#47 (byte*) current_piece#5 (byte*) current_piece#34 -Alias (byte) current_piece_char#29 = (byte) current_piece_char#43 (byte) current_piece_char#4 (byte) current_piece_char#30 -Alias (byte) current_orientation#43 = (byte) current_orientation#55 (byte) current_orientation#8 (byte) current_orientation#44 -Alias (byte) current_xpos#51 = (byte) current_xpos#70 (byte) current_xpos#8 (byte) current_xpos#52 -Alias (byte) current_ypos#42 = (byte) current_ypos#55 (byte) current_ypos#5 (byte) current_ypos#43 -Alias (byte*) current_piece#17 = (byte*) current_piece#6 -Alias (byte) current_piece_char#16 = (byte) current_piece_char#5 -Alias (byte) current_orientation#25 = (byte) current_orientation#9 -Alias (byte*) current_piece_gfx#21 = (byte*) current_piece_gfx#8 -Alias (byte) current_xpos#28 = (byte) current_xpos#9 -Alias (byte) current_ypos#22 = (byte) current_ypos#6 -Alias (byte) game_over#15 = (byte) game_over#6 +Alias (byte*) current_piece#5 = (byte*) current_piece#74 (byte*) current_piece#73 +Alias (byte) current_piece_char#4 = (byte) current_piece_char#76 (byte) current_piece_char#75 +Alias (byte) current_orientation#79 = (byte) current_orientation#80 (byte) current_orientation#8 +Alias (byte) current_xpos#102 = (byte) current_xpos#103 (byte) current_xpos#8 +Alias (byte) current_ypos#5 = (byte) current_ypos#80 (byte) current_ypos#79 +Alias (byte) game_over#65 = (byte) game_over#75 +Alias (byte*) current_piece#18 = (byte*) current_piece#75 (byte*) current_piece#48 (byte*) current_piece#63 (byte*) current_piece#35 (byte*) current_piece#6 +Alias (byte) current_piece_char#17 = (byte) current_piece_char#77 (byte) current_piece_char#44 (byte) current_piece_char#61 (byte) current_piece_char#31 (byte) current_piece_char#5 +Alias (byte) current_orientation#26 = (byte) current_orientation#81 (byte) current_orientation#56 (byte) current_orientation#70 (byte) current_orientation#45 (byte) current_orientation#9 +Alias (byte*) current_piece_gfx#22 = (byte*) current_piece_gfx#92 (byte*) current_piece_gfx#56 (byte*) current_piece_gfx#74 (byte*) current_piece_gfx#40 (byte*) current_piece_gfx#8 +Alias (byte) current_xpos#104 = (byte) current_xpos#71 (byte) current_xpos#91 (byte) current_xpos#53 (byte) current_xpos#29 (byte) current_xpos#9 +Alias (byte) current_ypos#23 = (byte) current_ypos#81 (byte) current_ypos#56 (byte) current_ypos#70 (byte) current_ypos#44 (byte) current_ypos#6 +Alias (byte) game_over#16 = (byte) game_over#66 (byte) game_over#39 (byte) game_over#53 (byte) game_over#29 (byte) game_over#6 +Alias (byte) sid_rnd::return#2 = (byte) sid_rnd::return#4 +Alias (byte) play_spawn_current::piece_idx#1 = (byte~) play_spawn_current::$7 +Alias (byte) play_spawn_current::piece_idx#2 = (byte) play_spawn_current::piece_idx#3 +Alias (byte) next_piece_idx#18 = (byte) next_piece_idx#5 (byte) next_piece_idx#6 Alias (byte) play_remove_lines::r#0 = (byte/signed word/word/dword/signed dword~) play_remove_lines::$1 Alias (byte) play_remove_lines::w#0 = (byte/signed word/word/dword/signed dword~) play_remove_lines::$3 Alias (byte) play_remove_lines::c#0 = (byte) play_remove_lines::c#2 @@ -7389,101 +7924,115 @@ Alias (byte) level#21 = (byte) level#35 (byte) level#47 (byte) level#8 Alias (byte) current_movedown_slow#11 = (byte) current_movedown_slow#42 (byte) current_movedown_slow#56 (byte) current_movedown_slow#24 Alias (byte) level_bcd#22 = (byte) level_bcd#38 (byte) level_bcd#51 (byte) level_bcd#9 Alias (byte) render_screen_show#22 = (byte) render_screen_show#27 -Alias (byte) render_screen_render#24 = (byte) render_screen_render#32 +Alias (byte) render_screen_render#27 = (byte) render_screen_render#35 Alias (byte) current_movedown_slow#43 = (byte) current_movedown_slow#78 (byte) current_movedown_slow#83 (byte) current_movedown_slow#70 (byte) current_movedown_slow#57 -Alias (byte*) current_piece#35 = (byte*) current_piece#76 (byte*) current_piece#82 (byte*) current_piece#70 (byte*) current_piece#61 (byte*) current_piece#48 -Alias (byte) current_piece_char#31 = (byte) current_piece_char#81 (byte) current_piece_char#87 (byte) current_piece_char#72 (byte) current_piece_char#59 (byte) current_piece_char#44 -Alias (byte) current_orientation#45 = (byte) current_orientation#82 (byte) current_orientation#86 (byte) current_orientation#76 (byte) current_orientation#68 (byte) current_orientation#56 -Alias (byte*) current_piece_gfx#100 = (byte*) current_piece_gfx#93 (byte*) current_piece_gfx#86 (byte*) current_piece_gfx#72 (byte*) current_piece_gfx#56 (byte*) current_piece_gfx#40 -Alias (byte) current_xpos#106 = (byte) current_xpos#110 (byte) current_xpos#98 (byte) current_xpos#89 (byte) current_xpos#71 (byte) current_xpos#53 -Alias (byte) current_ypos#44 = (byte) current_ypos#82 (byte) current_ypos#86 (byte) current_ypos#75 (byte) current_ypos#68 (byte) current_ypos#56 -Alias (byte) game_over#28 = (byte) game_over#72 (byte) game_over#81 (byte) game_over#63 (byte) game_over#51 (byte) game_over#38 -Alias (byte) level#49 = (byte) level#89 (byte) level#93 (byte) level#81 (byte) level#72 (byte) level#53 (byte) level#82 (byte) level#73 (byte) level#61 -Alias (byte) render_screen_showing#17 = (byte) render_screen_showing#46 (byte) render_screen_showing#47 (byte) render_screen_showing#45 (byte) render_screen_showing#43 (byte) render_screen_showing#39 (byte) render_screen_showing#33 (byte) render_screen_showing#28 (byte) render_screen_showing#22 -Alias (byte) keyboard_events_size#33 = (byte) keyboard_events_size#79 (byte) keyboard_events_size#81 (byte) keyboard_events_size#76 (byte) keyboard_events_size#72 (byte) keyboard_events_size#68 (byte) keyboard_events_size#59 (byte) keyboard_events_size#49 (byte) keyboard_events_size#41 -Alias (byte) keyboard_modifiers#30 = (byte) keyboard_modifiers#60 (byte) keyboard_modifiers#62 (byte) keyboard_modifiers#58 (byte) keyboard_modifiers#56 (byte) keyboard_modifiers#53 (byte) keyboard_modifiers#47 (byte) keyboard_modifiers#40 (byte) keyboard_modifiers#35 -Alias (byte) current_movedown_counter#32 = (byte) current_movedown_counter#58 (byte) current_movedown_counter#59 (byte) current_movedown_counter#57 (byte) current_movedown_counter#54 (byte) current_movedown_counter#51 (byte) current_movedown_counter#47 (byte) current_movedown_counter#43 (byte) current_movedown_counter#39 -Alias (word) lines_bcd#43 = (word) lines_bcd#89 (word) lines_bcd#90 (word) lines_bcd#88 (word) lines_bcd#84 (word) lines_bcd#80 (word) lines_bcd#73 (word) lines_bcd#65 (word) lines_bcd#54 -Alias (dword) score_bcd#43 = (dword) score_bcd#85 (dword) score_bcd#86 (dword) score_bcd#84 (dword) score_bcd#80 (dword) score_bcd#77 (dword) score_bcd#70 (dword) score_bcd#63 (dword) score_bcd#54 -Alias (byte) level_bcd#101 = (byte) level_bcd#102 (byte) level_bcd#103 (byte) level_bcd#97 (byte) level_bcd#92 (byte) level_bcd#83 (byte) level_bcd#75 (byte) level_bcd#65 (byte) level_bcd#53 -Alias (byte) render_screen_show#14 = (byte) render_screen_show#5 (byte) render_screen_show#57 (byte) render_screen_show#54 (byte) render_screen_show#49 (byte) render_screen_show#44 (byte) render_screen_show#36 (byte) render_screen_show#29 -Alias (byte) render_screen_render#15 = (byte) render_screen_render#5 (byte) render_screen_render#50 (byte) render_screen_render#46 (byte) render_screen_render#41 (byte) render_screen_render#28 (byte) render_screen_render#37 (byte) render_screen_render#34 -Alias (byte) current_movedown_slow#12 = (byte) current_movedown_slow#25 (byte) current_movedown_slow#79 (byte) current_movedown_slow#71 (byte) current_movedown_slow#59 -Alias (byte*) current_piece#18 = (byte*) current_piece#7 (byte*) current_piece#62 (byte*) current_piece#50 -Alias (byte) current_piece_char#17 = (byte) current_piece_char#6 (byte) current_piece_char#60 (byte) current_piece_char#46 -Alias (byte) current_orientation#10 = (byte) current_orientation#26 (byte) current_orientation#69 (byte) current_orientation#58 -Alias (byte*) current_piece_gfx#22 = (byte*) current_piece_gfx#9 (byte*) current_piece_gfx#73 (byte*) current_piece_gfx#58 -Alias (byte) current_xpos#10 = (byte) current_xpos#29 (byte) current_xpos#77 (byte) current_xpos#73 -Alias (byte) current_ypos#23 = (byte) current_ypos#7 (byte) current_ypos#27 (byte) current_ypos#58 -Alias (byte) game_over#16 = (byte) game_over#7 (byte) game_over#52 (byte) game_over#40 +Alias (byte) next_piece_idx#32 = (byte) next_piece_idx#71 (byte) next_piece_idx#77 (byte) next_piece_idx#63 (byte) next_piece_idx#54 (byte) next_piece_idx#41 +Alias (byte*) current_piece#36 = (byte*) current_piece#83 (byte*) current_piece#89 (byte*) current_piece#76 (byte*) current_piece#64 (byte*) current_piece#49 +Alias (byte) current_piece_char#32 = (byte) current_piece_char#88 (byte) current_piece_char#95 (byte) current_piece_char#78 (byte) current_piece_char#62 (byte) current_piece_char#45 +Alias (byte) current_orientation#46 = (byte) current_orientation#89 (byte) current_orientation#93 (byte) current_orientation#82 (byte) current_orientation#71 (byte) current_orientation#57 +Alias (byte*) current_piece_gfx#100 = (byte*) current_piece_gfx#108 (byte*) current_piece_gfx#93 (byte*) current_piece_gfx#75 (byte*) current_piece_gfx#57 (byte*) current_piece_gfx#41 +Alias (byte) current_xpos#105 = (byte) current_xpos#113 (byte) current_xpos#118 (byte) current_xpos#92 (byte) current_xpos#72 (byte) current_xpos#54 +Alias (byte) current_ypos#45 = (byte) current_ypos#89 (byte) current_ypos#94 (byte) current_ypos#82 (byte) current_ypos#71 (byte) current_ypos#57 +Alias (byte) game_over#30 = (byte) game_over#76 (byte) game_over#84 (byte) game_over#67 (byte) game_over#54 (byte) game_over#40 +Alias (byte) level#49 = (byte) level#89 (byte) level#94 (byte) level#81 (byte) level#72 (byte) level#53 (byte) level#95 (byte) level#90 (byte) level#82 (byte) level#73 (byte) level#61 +Alias (byte) render_screen_showing#17 = (byte) render_screen_showing#49 (byte) render_screen_showing#50 (byte) render_screen_showing#48 (byte) render_screen_showing#47 (byte) render_screen_showing#46 (byte) render_screen_showing#43 (byte) render_screen_showing#39 (byte) render_screen_showing#33 (byte) render_screen_showing#28 (byte) render_screen_showing#22 +Alias (byte) keyboard_events_size#33 = (byte) keyboard_events_size#83 (byte) keyboard_events_size#84 (byte) keyboard_events_size#82 (byte) keyboard_events_size#80 (byte) keyboard_events_size#77 (byte) keyboard_events_size#72 (byte) keyboard_events_size#68 (byte) keyboard_events_size#59 (byte) keyboard_events_size#49 (byte) keyboard_events_size#41 +Alias (byte) keyboard_modifiers#30 = (byte) keyboard_modifiers#64 (byte) keyboard_modifiers#65 (byte) keyboard_modifiers#63 (byte) keyboard_modifiers#61 (byte) keyboard_modifiers#59 (byte) keyboard_modifiers#56 (byte) keyboard_modifiers#53 (byte) keyboard_modifiers#47 (byte) keyboard_modifiers#40 (byte) keyboard_modifiers#35 +Alias (byte) current_movedown_counter#32 = (byte) current_movedown_counter#61 (byte) current_movedown_counter#62 (byte) current_movedown_counter#60 (byte) current_movedown_counter#59 (byte) current_movedown_counter#58 (byte) current_movedown_counter#54 (byte) current_movedown_counter#51 (byte) current_movedown_counter#47 (byte) current_movedown_counter#43 (byte) current_movedown_counter#39 +Alias (word) lines_bcd#43 = (word) lines_bcd#92 (word) lines_bcd#93 (word) lines_bcd#91 (word) lines_bcd#90 (word) lines_bcd#89 (word) lines_bcd#84 (word) lines_bcd#80 (word) lines_bcd#73 (word) lines_bcd#65 (word) lines_bcd#54 +Alias (dword) score_bcd#43 = (dword) score_bcd#88 (dword) score_bcd#89 (dword) score_bcd#87 (dword) score_bcd#86 (dword) score_bcd#85 (dword) score_bcd#81 (dword) score_bcd#77 (dword) score_bcd#70 (dword) score_bcd#63 (dword) score_bcd#54 +Alias (byte) level_bcd#102 = (byte) level_bcd#105 (byte) level_bcd#106 (byte) level_bcd#104 (byte) level_bcd#103 (byte) level_bcd#97 (byte) level_bcd#92 (byte) level_bcd#83 (byte) level_bcd#75 (byte) level_bcd#65 (byte) level_bcd#53 +Alias (byte) render_screen_show#14 = (byte) render_screen_show#5 (byte) render_screen_show#62 (byte) render_screen_show#61 (byte) render_screen_show#58 (byte) render_screen_show#55 (byte) render_screen_show#49 (byte) render_screen_show#44 (byte) render_screen_show#36 (byte) render_screen_show#29 +Alias (byte) render_screen_render#16 = (byte) render_screen_render#5 (byte) render_screen_render#58 (byte) render_screen_render#53 (byte) render_screen_render#49 (byte) render_screen_render#44 (byte) render_screen_render#31 (byte) render_screen_render#36 (byte) render_screen_render#25 (byte) render_screen_render#38 +Alias (byte) current_movedown_slow#12 = (byte) current_movedown_slow#25 (byte) current_movedown_slow#88 (byte) current_movedown_slow#84 (byte) current_movedown_slow#79 (byte) current_movedown_slow#71 (byte) current_movedown_slow#59 +Alias (byte*) current_piece#19 = (byte*) current_piece#7 +Alias (byte) current_piece_char#18 = (byte) current_piece_char#6 +Alias (byte) current_orientation#10 = (byte) current_orientation#27 +Alias (byte*) current_piece_gfx#23 = (byte*) current_piece_gfx#9 +Alias (byte) current_xpos#10 = (byte) current_xpos#30 +Alias (byte) current_ypos#24 = (byte) current_ypos#7 +Alias (byte) game_over#17 = (byte) game_over#7 +Alias (byte) next_piece_idx#19 = (byte) next_piece_idx#7 +Alias (byte*) current_piece#20 = (byte*) current_piece#8 (byte*) current_piece#77 (byte*) current_piece#65 (byte*) current_piece#51 +Alias (byte) current_piece_char#19 = (byte) current_piece_char#7 (byte) current_piece_char#79 (byte) current_piece_char#63 (byte) current_piece_char#47 +Alias (byte) current_orientation#11 = (byte) current_orientation#28 (byte) current_orientation#83 (byte) current_orientation#72 (byte) current_orientation#59 +Alias (byte*) current_piece_gfx#10 = (byte*) current_piece_gfx#24 (byte*) current_piece_gfx#80 (byte*) current_piece_gfx#76 (byte*) current_piece_gfx#59 +Alias (byte) current_xpos#11 = (byte) current_xpos#31 (byte) current_xpos#78 (byte) current_xpos#93 (byte) current_xpos#74 +Alias (byte) current_ypos#25 = (byte) current_ypos#8 (byte) current_ypos#29 (byte) current_ypos#72 (byte) current_ypos#59 +Alias (byte) game_over#18 = (byte) game_over#8 (byte) game_over#68 (byte) game_over#55 (byte) game_over#42 +Alias (byte) next_piece_idx#20 = (byte) next_piece_idx#8 (byte) next_piece_idx#64 (byte) next_piece_idx#47 (byte) next_piece_idx#43 Alias (byte) render_screen_show#16 = (byte) render_screen_show#37 (byte) render_screen_show#23 (byte) render_screen_show#7 Alias (byte) render_screen_showing#13 = (byte) render_screen_showing#23 (byte) render_screen_showing#9 (byte) render_screen_showing#4 Alias (byte) keyboard_events_size#19 = (byte) keyboard_events_size#50 (byte) keyboard_events_size#27 (byte) keyboard_events_size#8 Alias (byte) keyboard_modifiers#16 = (byte) keyboard_modifiers#41 (byte) keyboard_modifiers#24 (byte) keyboard_modifiers#8 -Alias (byte) game_over#19 = (byte) game_over#73 (byte) game_over#31 (byte) game_over#9 +Alias (byte) game_over#10 = (byte) game_over#77 (byte) game_over#33 (byte) game_over#21 Alias (byte) current_movedown_counter#16 = (byte) current_movedown_counter#55 (byte) current_movedown_counter#26 (byte) current_movedown_counter#7 -Alias (byte) current_ypos#25 = (byte) current_ypos#89 (byte) current_ypos#46 (byte) current_ypos#9 +Alias (byte) current_ypos#10 = (byte) current_ypos#97 (byte) current_ypos#47 (byte) current_ypos#27 Alias (word) lines_bcd#19 = (word) lines_bcd#85 (word) lines_bcd#33 (word) lines_bcd#8 -Alias (dword) score_bcd#18 = (dword) score_bcd#81 (dword) score_bcd#33 (dword) score_bcd#8 -Alias (byte) level#10 = (byte) level#94 (byte) level#37 (byte) level#23 -Alias (byte) current_movedown_slow#14 = (byte) current_movedown_slow#89 (byte) current_movedown_slow#45 (byte) current_movedown_slow#27 +Alias (dword) score_bcd#18 = (dword) score_bcd#82 (dword) score_bcd#33 (dword) score_bcd#8 +Alias (byte) level#10 = (byte) level#96 (byte) level#37 (byte) level#23 +Alias (byte) current_movedown_slow#14 = (byte) current_movedown_slow#91 (byte) current_movedown_slow#45 (byte) current_movedown_slow#27 Alias (byte) level_bcd#11 = (byte) level_bcd#98 (byte) level_bcd#40 (byte) level_bcd#24 -Alias (byte*) current_piece#20 = (byte*) current_piece#85 (byte*) current_piece#37 (byte*) current_piece#9 -Alias (byte) current_piece_char#19 = (byte) current_piece_char#91 (byte) current_piece_char#33 (byte) current_piece_char#8 -Alias (byte) current_orientation#12 = (byte) current_orientation#89 (byte) current_orientation#47 (byte) current_orientation#28 -Alias (byte*) current_piece_gfx#103 = (byte*) current_piece_gfx#42 (byte*) current_piece_gfx#24 (byte*) current_piece_gfx#11 -Alias (byte) current_xpos#113 = (byte) current_xpos#55 (byte) current_xpos#31 (byte) current_xpos#12 -Alias (byte) render_screen_render#17 = (byte) render_screen_render#61 (byte) render_screen_render#25 (byte) render_screen_render#7 -Alias (byte) render_screen_show#18 = (byte) render_screen_show#38 (byte) render_screen_show#30 (byte) render_screen_show#58 (byte) render_screen_show#55 (byte) render_screen_show#51 (byte) render_screen_show#50 (byte) render_screen_show#45 +Alias (byte*) current_piece#10 = (byte*) current_piece#92 (byte*) current_piece#38 (byte*) current_piece#22 +Alias (byte) current_piece_char#21 = (byte) current_piece_char#99 (byte) current_piece_char#34 (byte) current_piece_char#9 +Alias (byte) current_orientation#13 = (byte) current_orientation#96 (byte) current_orientation#48 (byte) current_orientation#30 +Alias (byte*) current_piece_gfx#111 = (byte*) current_piece_gfx#43 (byte*) current_piece_gfx#26 (byte*) current_piece_gfx#12 +Alias (byte) current_xpos#121 = (byte) current_xpos#56 (byte) current_xpos#33 (byte) current_xpos#13 +Alias (byte) next_piece_idx#10 = (byte) next_piece_idx#79 (byte) next_piece_idx#34 (byte) next_piece_idx#22 +Alias (byte) render_screen_render#18 = (byte) render_screen_render#65 (byte) render_screen_render#28 (byte) render_screen_render#7 +Alias (byte) render_screen_show#18 = (byte) render_screen_show#38 (byte) render_screen_show#30 (byte) render_screen_show#59 (byte) render_screen_show#56 (byte) render_screen_show#51 (byte) render_screen_show#50 (byte) render_screen_show#45 Alias (byte) render_screen_showing#12 = (byte) render_screen_showing#24 (byte) render_screen_showing#19 Alias (byte) keyboard_events_size#26 = (byte) keyboard_events_size#51 (byte) keyboard_events_size#42 (byte) keyboard_events_size#35 Alias (byte) keyboard_modifiers#23 = (byte) keyboard_modifiers#42 (byte) keyboard_modifiers#36 (byte) keyboard_modifiers#32 -Alias (byte) game_over#17 = (byte) game_over#74 (byte) game_over#64 (byte) game_over#53 (byte) game_over#42 (byte) game_over#29 (byte) game_over#30 +Alias (byte) game_over#19 = (byte) game_over#78 (byte) game_over#69 (byte) game_over#56 (byte) game_over#44 (byte) game_over#31 (byte) game_over#32 Alias (byte) current_movedown_counter#25 = (byte) current_movedown_counter#56 (byte) current_movedown_counter#52 (byte) current_movedown_counter#48 (byte) current_movedown_counter#44 (byte) current_movedown_counter#40 (byte) current_movedown_counter#34 -Alias (byte) current_ypos#45 = (byte) current_ypos#90 (byte) current_ypos#87 (byte) current_ypos#83 (byte) current_ypos#76 (byte) current_ypos#69 (byte) current_ypos#60 +Alias (byte) current_ypos#46 = (byte) current_ypos#98 (byte) current_ypos#95 (byte) current_ypos#90 (byte) current_ypos#83 (byte) current_ypos#73 (byte) current_ypos#61 Alias (word) lines_bcd#32 = (word) lines_bcd#86 (word) lines_bcd#81 (word) lines_bcd#74 (word) lines_bcd#66 (word) lines_bcd#55 (word) lines_bcd#45 -Alias (dword) score_bcd#32 = (dword) score_bcd#82 (dword) score_bcd#78 (dword) score_bcd#71 (dword) score_bcd#64 (dword) score_bcd#55 (dword) score_bcd#45 -Alias (byte) level#36 = (byte) level#95 (byte) level#90 (byte) level#83 (byte) level#74 (byte) level#62 (byte) level#51 -Alias (byte) current_movedown_slow#44 = (byte) current_movedown_slow#90 (byte) current_movedown_slow#87 (byte) current_movedown_slow#84 (byte) current_movedown_slow#80 (byte) current_movedown_slow#72 (byte) current_movedown_slow#61 +Alias (dword) score_bcd#32 = (dword) score_bcd#83 (dword) score_bcd#78 (dword) score_bcd#71 (dword) score_bcd#64 (dword) score_bcd#55 (dword) score_bcd#45 +Alias (byte) level#36 = (byte) level#97 (byte) level#91 (byte) level#83 (byte) level#74 (byte) level#62 (byte) level#51 +Alias (byte) current_movedown_slow#44 = (byte) current_movedown_slow#92 (byte) current_movedown_slow#89 (byte) current_movedown_slow#85 (byte) current_movedown_slow#80 (byte) current_movedown_slow#72 (byte) current_movedown_slow#61 Alias (byte) level_bcd#39 = (byte) level_bcd#99 (byte) level_bcd#93 (byte) level_bcd#84 (byte) level_bcd#76 (byte) level_bcd#66 (byte) level_bcd#55 -Alias (byte*) current_piece#36 = (byte*) current_piece#86 (byte*) current_piece#83 (byte*) current_piece#77 (byte*) current_piece#71 (byte*) current_piece#63 (byte*) current_piece#52 -Alias (byte) current_piece_char#32 = (byte) current_piece_char#92 (byte) current_piece_char#88 (byte) current_piece_char#82 (byte) current_piece_char#73 (byte) current_piece_char#61 (byte) current_piece_char#48 -Alias (byte) current_orientation#46 = (byte) current_orientation#90 (byte) current_orientation#87 (byte) current_orientation#83 (byte) current_orientation#77 (byte) current_orientation#70 (byte) current_orientation#60 -Alias (byte*) current_piece_gfx#101 = (byte*) current_piece_gfx#104 (byte*) current_piece_gfx#94 (byte*) current_piece_gfx#87 (byte*) current_piece_gfx#74 (byte*) current_piece_gfx#60 (byte*) current_piece_gfx#41 -Alias (byte) current_xpos#107 = (byte) current_xpos#114 (byte) current_xpos#111 (byte) current_xpos#99 (byte) current_xpos#90 (byte) current_xpos#75 (byte) current_xpos#54 -Alias (byte) render_screen_render#47 = (byte) render_screen_render#62 (byte) render_screen_render#60 (byte) render_screen_render#59 (byte) render_screen_render#57 (byte) render_screen_render#55 (byte) render_screen_render#52 (byte) render_screen_render#51 +Alias (byte*) current_piece#37 = (byte*) current_piece#93 (byte*) current_piece#90 (byte*) current_piece#84 (byte*) current_piece#78 (byte*) current_piece#66 (byte*) current_piece#53 +Alias (byte) current_piece_char#100 = (byte) current_piece_char#96 (byte) current_piece_char#89 (byte) current_piece_char#80 (byte) current_piece_char#64 (byte) current_piece_char#49 (byte) current_piece_char#33 +Alias (byte) current_orientation#47 = (byte) current_orientation#97 (byte) current_orientation#94 (byte) current_orientation#90 (byte) current_orientation#84 (byte) current_orientation#73 (byte) current_orientation#61 +Alias (byte*) current_piece_gfx#101 = (byte*) current_piece_gfx#112 (byte*) current_piece_gfx#109 (byte*) current_piece_gfx#94 (byte*) current_piece_gfx#77 (byte*) current_piece_gfx#61 (byte*) current_piece_gfx#42 +Alias (byte) current_xpos#106 = (byte) current_xpos#122 (byte) current_xpos#119 (byte) current_xpos#114 (byte) current_xpos#94 (byte) current_xpos#76 (byte) current_xpos#55 +Alias (byte) next_piece_idx#33 = (byte) next_piece_idx#80 (byte) next_piece_idx#78 (byte) next_piece_idx#72 (byte) next_piece_idx#65 (byte) next_piece_idx#55 (byte) next_piece_idx#45 +Alias (byte) render_screen_render#50 = (byte) render_screen_render#66 (byte) render_screen_render#64 (byte) render_screen_render#63 (byte) render_screen_render#61 (byte) render_screen_render#59 (byte) render_screen_render#55 (byte) render_screen_render#54 Alias (byte) render_screen_showing#29 = (byte) render_screen_showing#3 (byte) render_screen_showing#8 (byte) render_screen_showing#40 (byte) render_screen_showing#35 (byte) render_screen_showing#34 Alias (byte) keyboard_events_size#17 = (byte) keyboard_events_size#6 Alias (byte) keyboard_modifiers#15 = (byte) keyboard_modifiers#7 (byte) keyboard_modifiers#49 (byte) keyboard_modifiers#48 (byte) keyboard_modifiers#43 Alias (byte) keyboard_event_get::return#3 = (byte) keyboard_event_get::return#5 Alias (byte) keyboard_events_size#18 = (byte) keyboard_events_size#7 (byte) keyboard_events_size#60 (byte) keyboard_events_size#52 -Alias (byte) main::key_event#0 = (byte~) main::$11 (byte) main::key_event#1 +Alias (byte) main::key_event#0 = (byte~) main::$13 (byte) main::key_event#1 Alias (byte) play_movement::return#3 = (byte) play_movement::return#5 Alias (byte) current_movedown_counter#15 = (byte) current_movedown_counter#6 -Alias (byte) current_ypos#24 = (byte) current_ypos#8 +Alias (byte) current_ypos#26 = (byte) current_ypos#9 Alias (word) lines_bcd#18 = (word) lines_bcd#7 Alias (dword) score_bcd#17 = (dword) score_bcd#7 Alias (byte) level#22 = (byte) level#9 Alias (byte) current_movedown_slow#13 = (byte) current_movedown_slow#26 Alias (byte) level_bcd#10 = (byte) level_bcd#23 -Alias (byte*) current_piece#19 = (byte*) current_piece#8 -Alias (byte) current_piece_char#18 = (byte) current_piece_char#7 -Alias (byte) current_orientation#11 = (byte) current_orientation#27 -Alias (byte*) current_piece_gfx#10 = (byte*) current_piece_gfx#23 -Alias (byte) current_xpos#11 = (byte) current_xpos#30 -Alias (byte) game_over#18 = (byte) game_over#8 -Alias (byte) main::render#1 = (byte~) main::$13 +Alias (byte*) current_piece#21 = (byte*) current_piece#9 +Alias (byte) current_piece_char#20 = (byte) current_piece_char#8 +Alias (byte) current_orientation#12 = (byte) current_orientation#29 +Alias (byte*) current_piece_gfx#11 = (byte*) current_piece_gfx#25 +Alias (byte) current_xpos#12 = (byte) current_xpos#32 +Alias (byte) game_over#20 = (byte) game_over#9 +Alias (byte) next_piece_idx#21 = (byte) next_piece_idx#9 +Alias (byte) main::render#1 = (byte~) main::$15 Alias (byte) main::render#3 = (byte) main::render#4 Alias (byte) render_screen_show#46 = (byte) render_screen_show#52 -Alias (byte) render_screen_render#48 = (byte) render_screen_render#53 -Alias (byte) current_movedown_slow#81 = (byte) current_movedown_slow#85 -Alias (byte*) current_piece#72 = (byte*) current_piece#78 -Alias (byte) current_piece_char#74 = (byte) current_piece_char#83 -Alias (byte) current_orientation#78 = (byte) current_orientation#84 -Alias (byte*) current_piece_gfx#88 = (byte*) current_piece_gfx#95 -Alias (byte) current_xpos#100 = (byte) current_xpos#108 -Alias (byte) current_ypos#77 = (byte) current_ypos#84 -Alias (byte) game_over#65 = (byte) game_over#75 +Alias (byte) render_screen_render#51 = (byte) render_screen_render#56 +Alias (byte) current_movedown_slow#81 = (byte) current_movedown_slow#86 +Alias (byte*) current_piece#79 = (byte*) current_piece#85 +Alias (byte) current_piece_char#81 = (byte) current_piece_char#90 +Alias (byte) current_orientation#85 = (byte) current_orientation#91 +Alias (byte*) current_piece_gfx#102 = (byte*) current_piece_gfx#95 +Alias (byte) current_xpos#107 = (byte) current_xpos#115 +Alias (byte) current_ypos#84 = (byte) current_ypos#91 +Alias (byte) game_over#70 = (byte) game_over#79 +Alias (byte) next_piece_idx#66 = (byte) next_piece_idx#73 Alias (byte) render_screen_showing#30 = (byte) render_screen_showing#36 Alias (byte) keyboard_events_size#53 = (byte) keyboard_events_size#61 Alias (byte) keyboard_modifiers#44 = (byte) keyboard_modifiers#50 @@ -7492,36 +8041,38 @@ Alias (word) lines_bcd#67 = (word) lines_bcd#75 Alias (dword) score_bcd#65 = (dword) score_bcd#72 Alias (byte) level#75 = (byte) level#84 Alias (byte) level_bcd#77 = (byte) level_bcd#85 -Alias (byte) render_screen_show#21 = (byte) render_screen_show#28 (byte) render_screen_show#39 (byte) render_screen_show#47 (byte) render_screen_show#40 (byte) render_screen_show#31 -Alias (byte) render_screen_render#19 = (byte) render_screen_render#33 (byte) render_screen_render#42 (byte) render_screen_render#27 (byte) render_screen_render#35 (byte) render_screen_render#20 -Alias (byte) current_movedown_slow#58 = (byte) current_movedown_slow#73 (byte) current_movedown_slow#88 (byte) current_movedown_slow#86 (byte) current_movedown_slow#82 (byte) current_movedown_slow#74 (byte) current_movedown_slow#60 -Alias (byte*) current_piece#49 = (byte*) current_piece#64 (byte*) current_piece#84 (byte*) current_piece#79 (byte*) current_piece#73 (byte*) current_piece#65 (byte*) current_piece#51 -Alias (byte) current_piece_char#45 = (byte) current_piece_char#62 (byte) current_piece_char#89 (byte) current_piece_char#76 (byte) current_piece_char#75 (byte) current_piece_char#63 (byte) current_piece_char#47 -Alias (byte) current_orientation#57 = (byte) current_orientation#71 (byte) current_orientation#88 (byte) current_orientation#85 (byte) current_orientation#79 (byte) current_orientation#72 (byte) current_orientation#59 -Alias (byte*) current_piece_gfx#57 = (byte*) current_piece_gfx#75 (byte*) current_piece_gfx#96 (byte*) current_piece_gfx#77 (byte*) current_piece_gfx#89 (byte*) current_piece_gfx#76 (byte*) current_piece_gfx#59 -Alias (byte) current_xpos#101 = (byte) current_xpos#72 (byte) current_xpos#91 (byte) current_xpos#78 (byte) current_xpos#102 (byte) current_xpos#92 (byte) current_xpos#74 -Alias (byte) current_ypos#28 = (byte) current_ypos#57 (byte) current_ypos#70 (byte) current_ypos#61 (byte) current_ypos#78 (byte) current_ypos#71 (byte) current_ypos#59 -Alias (byte) game_over#39 = (byte) game_over#54 (byte) game_over#82 (byte) game_over#76 (byte) game_over#66 (byte) game_over#55 (byte) game_over#41 -Alias (byte) render_screen_showing#16 = (byte) render_screen_showing#25 (byte) render_screen_showing#41 (byte) render_screen_showing#37 (byte) render_screen_showing#31 (byte) render_screen_showing#26 (byte) render_screen_showing#18 -Alias (byte) keyboard_events_size#32 = (byte) keyboard_events_size#43 (byte) keyboard_events_size#69 (byte) keyboard_events_size#62 (byte) keyboard_events_size#54 (byte) keyboard_events_size#44 (byte) keyboard_events_size#34 -Alias (byte) keyboard_modifiers#29 = (byte) keyboard_modifiers#37 (byte) keyboard_modifiers#54 (byte) keyboard_modifiers#51 (byte) keyboard_modifiers#45 (byte) keyboard_modifiers#38 (byte) keyboard_modifiers#31 -Alias (byte) current_movedown_counter#31 = (byte) current_movedown_counter#41 (byte) current_movedown_counter#53 (byte) current_movedown_counter#50 (byte) current_movedown_counter#46 (byte) current_movedown_counter#42 (byte) current_movedown_counter#33 -Alias (word) lines_bcd#42 = (word) lines_bcd#56 (word) lines_bcd#82 (word) lines_bcd#76 (word) lines_bcd#68 (word) lines_bcd#57 (word) lines_bcd#44 -Alias (dword) score_bcd#42 = (dword) score_bcd#56 (dword) score_bcd#73 (dword) score_bcd#66 (dword) score_bcd#47 (dword) score_bcd#57 (dword) score_bcd#44 -Alias (byte) level#48 = (byte) level#63 (byte) level#91 (byte) level#85 (byte) level#76 (byte) level#64 (byte) level#50 -Alias (byte) level_bcd#52 = (byte) level_bcd#67 (byte) level_bcd#94 (byte) level_bcd#86 (byte) level_bcd#78 (byte) level_bcd#68 (byte) level_bcd#54 -Alias (byte) render_screen_render#16 = (byte) render_screen_render#6 +Alias (byte) render_screen_show#21 = (byte) render_screen_show#28 (byte) render_screen_show#39 (byte) render_screen_show#53 (byte) render_screen_show#47 (byte) render_screen_show#40 (byte) render_screen_show#31 +Alias (byte) render_screen_render#20 = (byte) render_screen_render#37 (byte) render_screen_render#45 (byte) render_screen_render#30 (byte) render_screen_render#39 (byte) render_screen_render#26 (byte) render_screen_render#21 +Alias (byte) current_movedown_slow#58 = (byte) current_movedown_slow#73 (byte) current_movedown_slow#93 (byte) current_movedown_slow#90 (byte) current_movedown_slow#87 (byte) current_movedown_slow#82 (byte) current_movedown_slow#74 (byte) current_movedown_slow#60 +Alias (byte*) current_piece#50 = (byte*) current_piece#67 (byte*) current_piece#94 (byte*) current_piece#91 (byte*) current_piece#86 (byte*) current_piece#80 (byte*) current_piece#68 (byte*) current_piece#52 +Alias (byte) current_piece_char#46 = (byte) current_piece_char#65 (byte) current_piece_char#97 (byte) current_piece_char#83 (byte) current_piece_char#91 (byte) current_piece_char#82 (byte) current_piece_char#66 (byte) current_piece_char#48 +Alias (byte) current_orientation#58 = (byte) current_orientation#74 (byte) current_orientation#98 (byte) current_orientation#95 (byte) current_orientation#92 (byte) current_orientation#86 (byte) current_orientation#75 (byte) current_orientation#60 +Alias (byte*) current_piece_gfx#103 = (byte*) current_piece_gfx#58 (byte*) current_piece_gfx#78 (byte*) current_piece_gfx#81 (byte*) current_piece_gfx#104 (byte*) current_piece_gfx#96 (byte*) current_piece_gfx#79 (byte*) current_piece_gfx#60 +Alias (byte) current_xpos#108 = (byte) current_xpos#73 (byte) current_xpos#95 (byte) current_xpos#79 (byte) current_xpos#116 (byte) current_xpos#109 (byte) current_xpos#96 (byte) current_xpos#75 +Alias (byte) current_ypos#30 = (byte) current_ypos#58 (byte) current_ypos#74 (byte) current_ypos#62 (byte) current_ypos#92 (byte) current_ypos#85 (byte) current_ypos#75 (byte) current_ypos#60 +Alias (byte) game_over#41 = (byte) game_over#57 (byte) game_over#87 (byte) game_over#85 (byte) game_over#80 (byte) game_over#71 (byte) game_over#58 (byte) game_over#43 +Alias (byte) next_piece_idx#42 = (byte) next_piece_idx#56 (byte) next_piece_idx#74 (byte) next_piece_idx#67 (byte) next_piece_idx#48 (byte) next_piece_idx#68 (byte) next_piece_idx#57 (byte) next_piece_idx#44 +Alias (byte) render_screen_showing#16 = (byte) render_screen_showing#25 (byte) render_screen_showing#44 (byte) render_screen_showing#41 (byte) render_screen_showing#37 (byte) render_screen_showing#31 (byte) render_screen_showing#26 (byte) render_screen_showing#18 +Alias (byte) keyboard_events_size#32 = (byte) keyboard_events_size#43 (byte) keyboard_events_size#73 (byte) keyboard_events_size#69 (byte) keyboard_events_size#62 (byte) keyboard_events_size#54 (byte) keyboard_events_size#44 (byte) keyboard_events_size#34 +Alias (byte) keyboard_modifiers#29 = (byte) keyboard_modifiers#37 (byte) keyboard_modifiers#57 (byte) keyboard_modifiers#54 (byte) keyboard_modifiers#51 (byte) keyboard_modifiers#45 (byte) keyboard_modifiers#38 (byte) keyboard_modifiers#31 +Alias (byte) current_movedown_counter#31 = (byte) current_movedown_counter#41 (byte) current_movedown_counter#57 (byte) current_movedown_counter#53 (byte) current_movedown_counter#50 (byte) current_movedown_counter#46 (byte) current_movedown_counter#42 (byte) current_movedown_counter#33 +Alias (word) lines_bcd#42 = (word) lines_bcd#56 (word) lines_bcd#87 (word) lines_bcd#82 (word) lines_bcd#76 (word) lines_bcd#68 (word) lines_bcd#57 (word) lines_bcd#44 +Alias (dword) score_bcd#42 = (dword) score_bcd#56 (dword) score_bcd#79 (dword) score_bcd#73 (dword) score_bcd#66 (dword) score_bcd#47 (dword) score_bcd#57 (dword) score_bcd#44 +Alias (byte) level#48 = (byte) level#63 (byte) level#98 (byte) level#92 (byte) level#85 (byte) level#76 (byte) level#64 (byte) level#50 +Alias (byte) level_bcd#100 = (byte) level_bcd#52 (byte) level_bcd#67 (byte) level_bcd#94 (byte) level_bcd#86 (byte) level_bcd#78 (byte) level_bcd#68 (byte) level_bcd#54 +Alias (byte) render_screen_render#17 = (byte) render_screen_render#6 Alias (byte) render_screen_show#15 = (byte) render_screen_show#6 Alias (byte) render_screen_show#17 = (byte) render_screen_show#8 -Alias (byte) render_screen_render#18 = (byte) render_screen_render#8 +Alias (byte) render_screen_render#19 = (byte) render_screen_render#8 Alias (byte) current_movedown_slow#15 = (byte) current_movedown_slow#28 -Alias (byte*) current_piece#10 = (byte*) current_piece#21 -Alias (byte) current_piece_char#20 = (byte) current_piece_char#9 -Alias (byte) current_orientation#13 = (byte) current_orientation#29 -Alias (byte*) current_piece_gfx#12 = (byte*) current_piece_gfx#25 -Alias (byte) current_xpos#13 = (byte) current_xpos#32 -Alias (byte) current_ypos#10 = (byte) current_ypos#26 -Alias (byte) game_over#10 = (byte) game_over#20 +Alias (byte*) current_piece#11 = (byte*) current_piece#23 +Alias (byte) current_piece_char#10 = (byte) current_piece_char#22 +Alias (byte) current_orientation#14 = (byte) current_orientation#31 +Alias (byte*) current_piece_gfx#13 = (byte*) current_piece_gfx#27 +Alias (byte) current_xpos#14 = (byte) current_xpos#34 +Alias (byte) current_ypos#11 = (byte) current_ypos#28 +Alias (byte) game_over#11 = (byte) game_over#22 +Alias (byte) next_piece_idx#11 = (byte) next_piece_idx#23 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 @@ -7550,12 +8101,18 @@ Alias (byte) render_moving::xpos#2 = (byte) render_moving::xpos#3 Alias (byte) render_moving::c#2 = (byte) render_moving::c#3 Alias (byte) render_moving::ypos2#5 = (byte) render_moving::ypos2#7 Alias (byte) render_moving::l#3 = (byte) render_moving::l#6 -Alias (byte*) current_piece_gfx#13 = (byte*) current_piece_gfx#27 +Alias (byte*) current_piece_gfx#14 = (byte*) current_piece_gfx#29 Alias (byte) render_moving::i#2 = (byte) render_moving::i#7 -Alias (byte) current_piece_char#10 = (byte) current_piece_char#36 +Alias (byte) current_piece_char#11 = (byte) current_piece_char#37 Alias (byte*) render_moving::screen_line#1 = (byte*) render_moving::screen_line#3 -Alias (byte) render_screen_render#38 = (byte) render_screen_render#43 -Alias (byte) current_xpos#79 = (byte) current_xpos#93 +Alias (byte) render_screen_render#41 = (byte) render_screen_render#46 +Alias (byte) current_xpos#80 = (byte) current_xpos#97 +Alias (byte) next_piece_idx#12 = (byte) next_piece_idx#24 +Alias (byte*) render_next::screen_next_area#4 = (byte*) render_next::screen_next_area#6 +Alias (byte) render_next::c#2 = (byte) render_next::c#3 +Alias (byte*) render_next::next_piece_gfx#1 = (byte*) render_next::next_piece_gfx#4 +Alias (byte) render_next::l#2 = (byte) render_next::l#4 +Alias (byte) render_next::next_piece_char#1 = (byte) render_next::next_piece_char#4 Alias (byte) irq_cnt#10 = (byte) irq_cnt#4 Alias (byte) irq_raster_next#11 = (byte) irq_raster_next#14 Alias (byte) irq_sprite_ypos#10 = (byte) irq_sprite_ypos#15 @@ -7567,28 +8124,30 @@ Alias (dword) score_bcd#1 = (dword) score_bcd#12 Alias (byte) level#1 = (byte) level#14 Alias (byte) current_movedown_slow#17 = (byte) current_movedown_slow#18 Alias (byte) level_bcd#1 = (byte) level_bcd#15 -Alias (byte*) current_piece#1 = (byte*) current_piece#12 +Alias (byte*) current_piece#1 = (byte*) current_piece#13 Alias (byte) current_piece_char#0 = (byte) current_piece_char#1 -Alias (byte) game_over#1 = (byte) game_over#12 +Alias (byte) game_over#1 = (byte) game_over#13 +Alias (byte) next_piece_idx#1 = (byte) next_piece_idx#14 Alias (byte) current_movedown_counter#12 = (byte) current_movedown_counter#13 (byte) current_movedown_counter#3 (byte) current_movedown_counter#24 Alias (byte) current_movedown_slow#19 = (byte) current_movedown_slow#33 (byte) current_movedown_slow#64 (byte) current_movedown_slow#36 -Alias (byte) current_ypos#14 = (byte) current_ypos#63 (byte) current_ypos#80 (byte) current_ypos#49 -Alias (byte) current_xpos#104 = (byte) current_xpos#81 (byte) current_xpos#59 (byte) current_xpos#18 -Alias (byte) current_orientation#17 = (byte) current_orientation#62 (byte) current_orientation#80 (byte) current_orientation#50 +Alias (byte) current_ypos#15 = (byte) current_ypos#64 (byte) current_ypos#87 (byte) current_ypos#50 +Alias (byte) current_xpos#100 = (byte) current_xpos#111 (byte) current_xpos#60 (byte) current_xpos#19 +Alias (byte) current_orientation#18 = (byte) current_orientation#63 (byte) current_orientation#87 (byte) current_orientation#51 Alias (word) lines_bcd#25 = (word) lines_bcd#61 (word) lines_bcd#78 (word) lines_bcd#49 Alias (dword) score_bcd#25 = (dword) score_bcd#59 (dword) score_bcd#75 (dword) score_bcd#49 Alias (byte) level#29 = (byte) level#66 (byte) level#87 (byte) level#55 Alias (byte) level_bcd#30 = (byte) level_bcd#71 (byte) level_bcd#90 (byte) level_bcd#59 -Alias (byte*) current_piece#25 = (byte*) current_piece#66 (byte*) current_piece#80 (byte*) current_piece#55 -Alias (byte) current_piece_char#25 = (byte) current_piece_char#67 (byte) current_piece_char#85 (byte) current_piece_char#52 -Alias (byte*) current_piece_gfx#31 = (byte*) current_piece_gfx#80 (byte*) current_piece_gfx#98 (byte*) current_piece_gfx#64 -Alias (byte) game_over#24 = (byte) game_over#57 (byte) game_over#78 (byte) game_over#45 -Alias (byte) current_xpos#21 = (byte) current_xpos#45 -Alias (byte) current_xpos#26 = (byte) current_xpos#47 -Alias (byte) current_ypos#20 = (byte) current_ypos#39 -Alias (byte*) current_piece#15 = (byte*) current_piece#45 -Alias (byte) current_orientation#22 = (byte) current_orientation#41 -Alias (byte*) current_piece_gfx#34 = (byte*) current_piece_gfx#35 +Alias (byte*) current_piece#27 = (byte*) current_piece#69 (byte*) current_piece#87 (byte*) current_piece#56 +Alias (byte) current_piece_char#27 = (byte) current_piece_char#70 (byte) current_piece_char#93 (byte) current_piece_char#53 +Alias (byte*) current_piece_gfx#106 = (byte*) current_piece_gfx#84 (byte*) current_piece_gfx#65 (byte*) current_piece_gfx#33 +Alias (byte) game_over#26 = (byte) game_over#60 (byte) game_over#82 (byte) game_over#47 +Alias (byte) next_piece_idx#29 = (byte) next_piece_idx#58 (byte) next_piece_idx#75 (byte) next_piece_idx#50 +Alias (byte) current_xpos#22 = (byte) current_xpos#47 +Alias (byte) current_xpos#27 = (byte) current_xpos#49 +Alias (byte) current_ypos#21 = (byte) current_ypos#41 +Alias (byte*) current_piece#16 = (byte*) current_piece#46 +Alias (byte) current_orientation#23 = (byte) current_orientation#43 +Alias (byte*) current_piece_gfx#36 = (byte*) current_piece_gfx#37 Alias (byte) play_collision::col#2 = (byte) play_collision::col#3 Alias (byte) play_collision::c#2 = (byte) play_collision::c#3 Alias (byte*) play_collision::piece_gfx#1 = (byte*) play_collision::piece_gfx#3 @@ -7599,19 +8158,19 @@ Alias (byte) play_collision::xpos#10 = (byte) play_collision::xpos#7 Alias (byte*) play_collision::playfield_line#1 = (byte*) play_collision::playfield_line#6 Alias (byte) play_lock_current::col#2 = (byte) play_lock_current::col#3 Alias (byte) play_lock_current::c#2 = (byte) play_lock_current::c#3 -Alias (byte*) current_piece_gfx#20 = (byte*) current_piece_gfx#37 +Alias (byte*) current_piece_gfx#21 = (byte*) current_piece_gfx#39 Alias (byte) play_lock_current::i#1 = (byte) play_lock_current::i#4 Alias (byte) play_lock_current::ypos2#3 = (byte) play_lock_current::ypos2#5 Alias (byte) play_lock_current::l#2 = (byte) play_lock_current::l#4 -Alias (byte) current_piece_char#15 = (byte) current_piece_char#42 +Alias (byte) current_piece_char#16 = (byte) current_piece_char#43 Alias (byte*) play_lock_current::playfield_line#1 = (byte*) play_lock_current::playfield_line#3 -Alias (byte) current_xpos#50 = (byte) current_xpos#87 -Alias (byte*) current_piece#17 = (byte*) current_piece#33 -Alias (byte) current_piece_char#16 = (byte) current_piece_char#29 -Alias (byte) current_orientation#25 = (byte) current_orientation#43 -Alias (byte*) current_piece_gfx#21 = (byte*) current_piece_gfx#38 -Alias (byte) current_xpos#28 = (byte) current_xpos#51 -Alias (byte) current_ypos#22 = (byte) current_ypos#42 +Alias (byte) current_xpos#52 = (byte) current_xpos#88 +Alias (byte*) current_piece#5 = (byte*) current_piece#62 +Alias (byte) current_piece_char#4 = (byte) current_piece_char#60 +Alias (byte) current_orientation#69 = (byte) current_orientation#79 +Alias (byte*) current_piece_gfx#7 = (byte*) current_piece_gfx#73 +Alias (byte) current_xpos#102 = (byte) current_xpos#90 +Alias (byte) current_ypos#5 = (byte) current_ypos#69 Alias (byte) play_remove_lines::c#0 = (byte) play_remove_lines::c#1 Alias (byte) play_remove_lines::w#4 = (byte) play_remove_lines::w#8 Alias (byte) play_remove_lines::x#2 = (byte) play_remove_lines::x#3 @@ -7641,14 +8200,16 @@ Self Phi Eliminated (byte) render_screen_original::y#2 Self Phi Eliminated (byte*) render_screen_original::oscr#5 Self Phi Eliminated (byte*) render_screen_original::ocols#5 Self Phi Eliminated (byte) render_playfield::l#3 -Self Phi Eliminated (byte) render_screen_render#22 -Self Phi Eliminated (byte*) current_piece_gfx#13 -Self Phi Eliminated (byte) current_piece_char#10 +Self Phi Eliminated (byte) render_screen_render#23 +Self Phi Eliminated (byte*) current_piece_gfx#14 +Self Phi Eliminated (byte) current_piece_char#11 Self Phi Eliminated (byte*) render_moving::screen_line#1 Self Phi Eliminated (byte) render_moving::ypos2#5 Self Phi Eliminated (byte) render_moving::l#3 -Self Phi Eliminated (byte) render_screen_render#38 -Self Phi Eliminated (byte) current_xpos#79 +Self Phi Eliminated (byte) render_screen_render#41 +Self Phi Eliminated (byte) current_xpos#80 +Self Phi Eliminated (byte) render_next::next_piece_char#1 +Self Phi Eliminated (byte) render_next::l#2 Self Phi Eliminated (byte) sprites_irq::raster_sprite_gfx_modify#1 Self Phi Eliminated (byte) irq_sprite_ptr#10 Self Phi Eliminated (byte) render_screen_showing#11 @@ -7662,13 +8223,19 @@ Self Phi Eliminated (byte) play_collision::ypos2#10 Self Phi Eliminated (byte) play_collision::l#10 Self Phi Eliminated (byte) play_collision::xpos#10 Self Phi Eliminated (byte*) play_collision::playfield_line#1 -Self Phi Eliminated (byte*) current_piece_gfx#20 -Self Phi Eliminated (byte) current_piece_char#15 +Self Phi Eliminated (byte*) current_piece_gfx#21 +Self Phi Eliminated (byte) current_piece_char#16 Self Phi Eliminated (byte*) play_lock_current::playfield_line#1 Self Phi Eliminated (byte) play_lock_current::ypos2#3 Self Phi Eliminated (byte) play_lock_current::l#2 -Self Phi Eliminated (byte) current_xpos#50 -Self Phi Eliminated (byte) game_over#27 +Self Phi Eliminated (byte) current_xpos#52 +Self Phi Eliminated (byte*) current_piece#18 +Self Phi Eliminated (byte) current_piece_char#17 +Self Phi Eliminated (byte) current_orientation#26 +Self Phi Eliminated (byte*) current_piece_gfx#22 +Self Phi Eliminated (byte) current_xpos#104 +Self Phi Eliminated (byte) current_ypos#23 +Self Phi Eliminated (byte) game_over#16 Self Phi Eliminated (byte) play_remove_lines::y#2 Self Phi Eliminated (byte) play_remove_lines::removed#10 Self Phi Eliminated (byte) play_remove_lines::removed#3 @@ -7679,31 +8246,33 @@ Self Phi Eliminated (byte) render_screen_show#18 Self Phi Eliminated (byte) render_screen_showing#12 Self Phi Eliminated (byte) keyboard_events_size#26 Self Phi Eliminated (byte) keyboard_modifiers#23 -Self Phi Eliminated (byte) game_over#17 +Self Phi Eliminated (byte) game_over#19 Self Phi Eliminated (byte) current_movedown_counter#25 -Self Phi Eliminated (byte) current_ypos#45 +Self Phi Eliminated (byte) current_ypos#46 Self Phi Eliminated (word) lines_bcd#32 Self Phi Eliminated (dword) score_bcd#32 Self Phi Eliminated (byte) level#36 Self Phi Eliminated (byte) current_movedown_slow#44 Self Phi Eliminated (byte) level_bcd#39 -Self Phi Eliminated (byte*) current_piece#36 -Self Phi Eliminated (byte) current_piece_char#32 -Self Phi Eliminated (byte) current_orientation#46 +Self Phi Eliminated (byte*) current_piece#37 +Self Phi Eliminated (byte) current_piece_char#100 +Self Phi Eliminated (byte) current_orientation#47 Self Phi Eliminated (byte*) current_piece_gfx#101 -Self Phi Eliminated (byte) current_xpos#107 -Self Phi Eliminated (byte) render_screen_render#47 +Self Phi Eliminated (byte) current_xpos#106 +Self Phi Eliminated (byte) next_piece_idx#33 +Self Phi Eliminated (byte) render_screen_render#50 Self Phi Eliminated (byte) main::render#3 Self Phi Eliminated (byte) render_screen_show#46 -Self Phi Eliminated (byte) render_screen_render#48 +Self Phi Eliminated (byte) render_screen_render#51 Self Phi Eliminated (byte) current_movedown_slow#81 -Self Phi Eliminated (byte*) current_piece#72 -Self Phi Eliminated (byte) current_piece_char#74 -Self Phi Eliminated (byte) current_orientation#78 -Self Phi Eliminated (byte*) current_piece_gfx#88 -Self Phi Eliminated (byte) current_xpos#100 -Self Phi Eliminated (byte) current_ypos#77 -Self Phi Eliminated (byte) game_over#65 +Self Phi Eliminated (byte*) current_piece#79 +Self Phi Eliminated (byte) current_piece_char#81 +Self Phi Eliminated (byte) current_orientation#85 +Self Phi Eliminated (byte*) current_piece_gfx#102 +Self Phi Eliminated (byte) current_xpos#107 +Self Phi Eliminated (byte) current_ypos#84 +Self Phi Eliminated (byte) game_over#70 +Self Phi Eliminated (byte) next_piece_idx#66 Self Phi Eliminated (byte) render_screen_showing#30 Self Phi Eliminated (byte) keyboard_events_size#53 Self Phi Eliminated (byte) keyboard_modifiers#44 @@ -7713,10 +8282,10 @@ Self Phi Eliminated (dword) score_bcd#65 Self Phi Eliminated (byte) level#75 Self Phi Eliminated (byte) level_bcd#77 Successful SSA optimization Pass2SelfPhiElimination -Redundant Phi (byte) current_piece_char#34 VOID -Redundant Phi (byte*) current_piece_gfx#102 VOID -Redundant Phi (byte) current_xpos#103 VOID -Redundant Phi (byte) current_ypos#47 VOID +Redundant Phi (byte) current_piece_char#101 VOID +Redundant Phi (byte*) current_piece_gfx#105 VOID +Redundant Phi (byte) current_xpos#110 VOID +Redundant Phi (byte) current_ypos#100 VOID Redundant Phi (byte) keyboard_matrix_read::rowid#1 (byte) keyboard_matrix_read::rowid#0 Redundant Phi (byte) keyboard_events_size#55 (byte) keyboard_events_size#26 Redundant Phi (byte) keyboard_event_scan::row_scan#1 (byte) keyboard_event_scan::row_scan#0 @@ -7725,12 +8294,12 @@ Redundant Phi (byte) keyboard_events_size#14 (byte) keyboard_events_size#17 Redundant Phi (byte) render_screen_show#10 (byte) render_screen_show#18 Redundant Phi (byte) render_screen_show#11 (byte) render_screen_show#10 Redundant Phi (byte) render_screen_showing#6 (byte) render_screen_showing#1 -Redundant Phi (byte) render_screen_render#10 (byte) render_screen_render#19 +Redundant Phi (byte) render_screen_render#10 (byte) render_screen_render#20 Redundant Phi (byte) render_screen_show#12 (byte) render_screen_show#21 -Redundant Phi (byte) render_screen_render#12 (byte) render_screen_render#19 +Redundant Phi (byte) render_screen_render#12 (byte) render_screen_render#20 Redundant Phi (dword) score_bcd#10 (dword) score_bcd#42 Redundant Phi (word) lines_bcd#10 (word) lines_bcd#42 -Redundant Phi (byte) level_bcd#13 (byte) level_bcd#52 +Redundant Phi (byte) level_bcd#13 (byte) level_bcd#100 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 @@ -7742,14 +8311,16 @@ Redundant Phi (byte) render_screen_original::y#2 (byte) render_screen_original:: Redundant Phi (byte*) render_screen_original::oscr#5 (byte*) render_screen_original::oscr#1 Redundant Phi (byte*) render_screen_original::ocols#5 (byte*) render_screen_original::ocols#1 Redundant Phi (byte) render_playfield::l#3 (byte) render_playfield::l#2 -Redundant Phi (byte) render_screen_render#22 (byte) render_screen_render#13 -Redundant Phi (byte*) current_piece_gfx#13 (byte*) current_piece_gfx#26 -Redundant Phi (byte) current_piece_char#10 (byte) current_piece_char#35 +Redundant Phi (byte) render_screen_render#23 (byte) render_screen_render#13 +Redundant Phi (byte*) current_piece_gfx#14 (byte*) current_piece_gfx#28 +Redundant Phi (byte) current_piece_char#11 (byte) current_piece_char#36 Redundant Phi (byte*) render_moving::screen_line#1 (byte*) render_moving::screen_line#0 Redundant Phi (byte) render_moving::ypos2#5 (byte) render_moving::ypos2#2 Redundant Phi (byte) render_moving::l#3 (byte) render_moving::l#4 -Redundant Phi (byte) render_screen_render#38 (byte) render_screen_render#14 -Redundant Phi (byte) current_xpos#79 (byte) current_xpos#14 +Redundant Phi (byte) render_screen_render#41 (byte) render_screen_render#14 +Redundant Phi (byte) current_xpos#80 (byte) current_xpos#15 +Redundant Phi (byte) render_next::next_piece_char#1 (byte) render_next::next_piece_char#3 +Redundant Phi (byte) render_next::l#2 (byte) render_next::l#7 Redundant Phi (byte) irq_sprite_ypos#24 (byte) irq_sprite_ypos#0 Redundant Phi (byte) irq_raster_next#24 (byte) irq_raster_next#0 Redundant Phi (byte) irq_sprite_ypos#22 (byte) irq_sprite_ypos#24 @@ -7777,71 +8348,75 @@ Redundant Phi (byte) level#12 (byte) level#39 Redundant Phi (byte) current_movedown_slow#16 (byte) current_movedown_slow#1 Redundant Phi (byte) play_movement::key_event#1 (byte) play_movement::key_event#0 Redundant Phi (byte) current_movedown_counter#18 (byte) current_movedown_counter#25 -Redundant Phi (byte) current_ypos#29 (byte) current_ypos#45 +Redundant Phi (byte) current_ypos#31 (byte) current_ypos#46 Redundant Phi (word) lines_bcd#22 (word) lines_bcd#32 Redundant Phi (dword) score_bcd#22 (dword) score_bcd#32 Redundant Phi (byte) level#26 (byte) level#36 Redundant Phi (byte) current_movedown_slow#30 (byte) current_movedown_slow#44 Redundant Phi (byte) level_bcd#27 (byte) level_bcd#39 -Redundant Phi (byte*) current_piece#22 (byte*) current_piece#36 -Redundant Phi (byte) current_piece_char#22 (byte) current_piece_char#32 -Redundant Phi (byte) current_orientation#30 (byte) current_orientation#46 -Redundant Phi (byte*) current_piece_gfx#28 (byte*) current_piece_gfx#101 -Redundant Phi (byte) current_xpos#34 (byte) current_xpos#107 -Redundant Phi (byte) game_over#21 (byte) game_over#17 +Redundant Phi (byte*) current_piece#24 (byte*) current_piece#37 +Redundant Phi (byte) current_piece_char#24 (byte) current_piece_char#100 +Redundant Phi (byte) current_orientation#32 (byte) current_orientation#47 +Redundant Phi (byte*) current_piece_gfx#30 (byte*) current_piece_gfx#101 +Redundant Phi (byte) current_xpos#36 (byte) current_xpos#106 +Redundant Phi (byte) game_over#23 (byte) game_over#19 +Redundant Phi (byte) next_piece_idx#26 (byte) next_piece_idx#33 Redundant Phi (byte) current_movedown_counter#1 (byte) current_movedown_counter#14 -Redundant Phi (byte) current_ypos#0 (byte) current_ypos#17 +Redundant Phi (byte) current_ypos#0 (byte) current_ypos#18 Redundant Phi (word) lines_bcd#1 (word) lines_bcd#15 Redundant Phi (dword) score_bcd#1 (dword) score_bcd#14 Redundant Phi (byte) level#1 (byte) level#16 Redundant Phi (byte) current_movedown_slow#17 (byte) current_movedown_slow#21 Redundant Phi (byte) level_bcd#1 (byte) level_bcd#17 -Redundant Phi (byte*) current_piece#1 (byte*) current_piece#14 -Redundant Phi (byte) current_piece_char#0 (byte) current_piece_char#14 -Redundant Phi (byte) current_orientation#1 (byte) current_orientation#19 -Redundant Phi (byte*) current_piece_gfx#0 (byte*) current_piece_gfx#18 -Redundant Phi (byte) current_xpos#0 (byte) current_xpos#20 -Redundant Phi (byte) game_over#1 (byte) game_over#14 -Redundant Phi (byte) current_xpos#1 (byte) current_xpos#24 -Redundant Phi (byte) current_orientation#15 (byte) current_orientation#24 -Redundant Phi (byte*) current_piece_gfx#1 (byte*) current_piece_gfx#19 +Redundant Phi (byte*) current_piece#1 (byte*) current_piece#15 +Redundant Phi (byte) current_piece_char#0 (byte) current_piece_char#15 +Redundant Phi (byte) current_orientation#1 (byte) current_orientation#20 +Redundant Phi (byte*) current_piece_gfx#0 (byte*) current_piece_gfx#19 +Redundant Phi (byte) current_xpos#0 (byte) current_xpos#21 +Redundant Phi (byte) game_over#1 (byte) game_over#15 +Redundant Phi (byte) next_piece_idx#1 (byte) next_piece_idx#16 +Redundant Phi (byte) current_xpos#1 (byte) current_xpos#25 +Redundant Phi (byte) current_orientation#16 (byte) current_orientation#25 +Redundant Phi (byte*) current_piece_gfx#1 (byte*) current_piece_gfx#20 Redundant Phi (byte) current_movedown_counter#11 (byte) current_movedown_counter#18 Redundant Phi (byte) play_move_down::key_event#1 (byte) play_move_down::key_event#0 Redundant Phi (byte) current_movedown_slow#19 (byte) current_movedown_slow#30 -Redundant Phi (byte) current_ypos#14 (byte) current_ypos#29 -Redundant Phi (byte) current_xpos#104 (byte) current_xpos#34 -Redundant Phi (byte) current_orientation#17 (byte) current_orientation#30 +Redundant Phi (byte) current_ypos#15 (byte) current_ypos#31 +Redundant Phi (byte) current_xpos#100 (byte) current_xpos#36 +Redundant Phi (byte) current_orientation#18 (byte) current_orientation#32 Redundant Phi (word) lines_bcd#25 (word) lines_bcd#22 Redundant Phi (dword) score_bcd#25 (dword) score_bcd#22 Redundant Phi (byte) level#29 (byte) level#26 Redundant Phi (byte) level_bcd#30 (byte) level_bcd#27 -Redundant Phi (byte*) current_piece#25 (byte*) current_piece#22 -Redundant Phi (byte) current_piece_char#25 (byte) current_piece_char#22 -Redundant Phi (byte*) current_piece_gfx#31 (byte*) current_piece_gfx#28 -Redundant Phi (byte) game_over#24 (byte) game_over#21 +Redundant Phi (byte*) current_piece#27 (byte*) current_piece#24 +Redundant Phi (byte) current_piece_char#27 (byte) current_piece_char#24 +Redundant Phi (byte*) current_piece_gfx#106 (byte*) current_piece_gfx#30 +Redundant Phi (byte) game_over#26 (byte) game_over#23 +Redundant Phi (byte) next_piece_idx#29 (byte) next_piece_idx#26 Redundant Phi (word) lines_bcd#14 (word) lines_bcd#17 Redundant Phi (dword) score_bcd#13 (dword) score_bcd#16 Redundant Phi (byte) level#15 (byte) level#18 Redundant Phi (byte) current_movedown_slow#20 (byte) current_movedown_slow#23 Redundant Phi (byte) level_bcd#16 (byte) level_bcd#19 -Redundant Phi (byte*) current_piece#13 (byte*) current_piece#17 -Redundant Phi (byte) current_piece_char#13 (byte) current_piece_char#16 -Redundant Phi (byte) current_orientation#18 (byte) current_orientation#25 -Redundant Phi (byte*) current_piece_gfx#17 (byte*) current_piece_gfx#21 -Redundant Phi (byte) current_xpos#19 (byte) current_xpos#28 -Redundant Phi (byte) current_ypos#16 (byte) current_ypos#22 -Redundant Phi (byte) game_over#13 (byte) game_over#15 +Redundant Phi (byte*) current_piece#14 (byte*) current_piece#18 +Redundant Phi (byte) current_piece_char#14 (byte) current_piece_char#17 +Redundant Phi (byte) current_orientation#19 (byte) current_orientation#26 +Redundant Phi (byte*) current_piece_gfx#18 (byte*) current_piece_gfx#22 +Redundant Phi (byte) current_xpos#20 (byte) current_xpos#104 +Redundant Phi (byte) current_ypos#17 (byte) current_ypos#23 +Redundant Phi (byte) game_over#14 (byte) game_over#16 +Redundant Phi (byte) next_piece_idx#15 (byte) next_piece_idx#18 Redundant Phi (byte) play_move_leftright::key_event#1 (byte) play_move_leftright::key_event#0 -Redundant Phi (byte) current_xpos#21 (byte) current_xpos#0 -Redundant Phi (byte) current_ypos#18 (byte) current_ypos#0 -Redundant Phi (byte) current_orientation#20 (byte) current_orientation#1 -Redundant Phi (byte*) current_piece#30 (byte*) current_piece#1 +Redundant Phi (byte) current_xpos#22 (byte) current_xpos#0 +Redundant Phi (byte) current_ypos#19 (byte) current_ypos#0 +Redundant Phi (byte) current_orientation#21 (byte) current_orientation#1 +Redundant Phi (byte*) current_piece#32 (byte*) current_piece#1 Redundant Phi (byte) play_move_rotate::key_event#1 (byte) play_move_rotate::key_event#0 -Redundant Phi (byte) current_orientation#22 (byte) current_orientation#1 -Redundant Phi (byte) current_xpos#26 (byte) current_xpos#1 -Redundant Phi (byte) current_ypos#20 (byte) current_ypos#0 -Redundant Phi (byte*) current_piece#15 (byte*) current_piece#1 -Redundant Phi (byte*) current_piece_gfx#34 (byte*) current_piece_gfx#0 +Redundant Phi (byte) current_orientation#23 (byte) current_orientation#1 +Redundant Phi (byte) current_xpos#27 (byte) current_xpos#1 +Redundant Phi (byte) current_ypos#21 (byte) current_ypos#0 +Redundant Phi (byte*) current_piece#16 (byte*) current_piece#1 +Redundant Phi (byte*) current_piece_gfx#36 (byte*) current_piece_gfx#0 Redundant Phi (byte) irq_sprite_ypos#14 (byte) irq_sprite_ypos#18 Redundant Phi (byte) irq_raster_next#17 (byte) irq_raster_next#20 Redundant Phi (byte) irq_sprite_ptr#17 (byte) irq_sprite_ptr#18 @@ -7850,17 +8425,23 @@ Redundant Phi (byte) play_collision::ypos2#10 (byte) play_collision::ypos2#2 Redundant Phi (byte) play_collision::l#10 (byte) play_collision::l#6 Redundant Phi (byte) play_collision::xpos#10 (byte) play_collision::col#0 Redundant Phi (byte*) play_collision::playfield_line#1 (byte*) play_collision::playfield_line#0 -Redundant Phi (byte) current_ypos#21 (byte) current_ypos#14 -Redundant Phi (byte) current_xpos#49 (byte) current_xpos#104 -Redundant Phi (byte*) current_piece_gfx#52 (byte*) current_piece_gfx#31 -Redundant Phi (byte) current_piece_char#57 (byte) current_piece_char#25 -Redundant Phi (byte*) current_piece_gfx#20 (byte*) current_piece_gfx#36 -Redundant Phi (byte) current_piece_char#15 (byte) current_piece_char#41 +Redundant Phi (byte) current_ypos#22 (byte) current_ypos#15 +Redundant Phi (byte) current_xpos#51 (byte) current_xpos#100 +Redundant Phi (byte*) current_piece_gfx#53 (byte*) current_piece_gfx#106 +Redundant Phi (byte) current_piece_char#58 (byte) current_piece_char#27 +Redundant Phi (byte*) current_piece_gfx#21 (byte*) current_piece_gfx#38 +Redundant Phi (byte) current_piece_char#16 (byte) current_piece_char#42 Redundant Phi (byte*) play_lock_current::playfield_line#1 (byte*) play_lock_current::playfield_line#0 Redundant Phi (byte) play_lock_current::ypos2#3 (byte) play_lock_current::ypos2#2 Redundant Phi (byte) play_lock_current::l#2 (byte) play_lock_current::l#6 -Redundant Phi (byte) current_xpos#50 (byte) current_xpos#27 -Redundant Phi (byte) game_over#27 (byte) game_over#70 +Redundant Phi (byte) current_xpos#52 (byte) current_xpos#28 +Redundant Phi (byte*) current_piece#18 (byte*) current_piece#5 +Redundant Phi (byte) current_piece_char#17 (byte) current_piece_char#4 +Redundant Phi (byte) current_orientation#26 (byte) current_orientation#69 +Redundant Phi (byte*) current_piece_gfx#22 (byte*) current_piece_gfx#7 +Redundant Phi (byte) current_xpos#104 (byte) current_xpos#102 +Redundant Phi (byte) current_ypos#23 (byte) current_ypos#5 +Redundant Phi (byte) game_over#16 (byte) game_over#52 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 @@ -7879,15 +8460,16 @@ Redundant Phi (byte) level#21 (byte) level#20 Redundant Phi (byte) current_movedown_slow#11 (byte) current_movedown_slow#69 Redundant Phi (byte) level_bcd#22 (byte) level_bcd#64 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) render_screen_render#27 (byte) render_screen_render#0 Redundant Phi (byte) current_movedown_slow#43 (byte) current_movedown_slow#0 -Redundant Phi (byte*) current_piece#35 (byte*) current_piece#0 -Redundant Phi (byte) current_piece_char#31 (byte) current_piece_char#34 -Redundant Phi (byte) current_orientation#45 (byte) current_orientation#0 -Redundant Phi (byte*) current_piece_gfx#100 (byte*) current_piece_gfx#102 -Redundant Phi (byte) current_xpos#106 (byte) current_xpos#103 -Redundant Phi (byte) current_ypos#44 (byte) current_ypos#47 -Redundant Phi (byte) game_over#28 (byte) game_over#0 +Redundant Phi (byte) next_piece_idx#32 (byte) next_piece_idx#0 +Redundant Phi (byte*) current_piece#36 (byte*) current_piece#0 +Redundant Phi (byte) current_piece_char#32 (byte) current_piece_char#101 +Redundant Phi (byte) current_orientation#46 (byte) current_orientation#0 +Redundant Phi (byte*) current_piece_gfx#100 (byte*) current_piece_gfx#105 +Redundant Phi (byte) current_xpos#105 (byte) current_xpos#110 +Redundant Phi (byte) current_ypos#45 (byte) current_ypos#100 +Redundant Phi (byte) game_over#30 (byte) game_over#0 Redundant Phi (byte) level#49 (byte) level#0 Redundant Phi (byte) render_screen_showing#17 (byte) render_screen_showing#0 Redundant Phi (byte) keyboard_events_size#33 (byte) keyboard_events_size#0 @@ -7895,63 +8477,75 @@ Redundant Phi (byte) keyboard_modifiers#30 (byte) keyboard_modifiers#0 Redundant Phi (byte) current_movedown_counter#32 (byte) current_movedown_counter#0 Redundant Phi (word) lines_bcd#43 (word) lines_bcd#0 Redundant Phi (dword) score_bcd#43 (dword) score_bcd#0 -Redundant Phi (byte) level_bcd#101 (byte) level_bcd#0 +Redundant Phi (byte) level_bcd#102 (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) render_screen_render#16 (byte) render_screen_render#1 Redundant Phi (byte) current_movedown_slow#12 (byte) current_movedown_slow#16 -Redundant Phi (byte*) current_piece#18 (byte*) current_piece#17 -Redundant Phi (byte) current_piece_char#17 (byte) current_piece_char#16 -Redundant Phi (byte) current_orientation#10 (byte) current_orientation#25 -Redundant Phi (byte*) current_piece_gfx#22 (byte*) current_piece_gfx#21 -Redundant Phi (byte) current_xpos#10 (byte) current_xpos#28 -Redundant Phi (byte) current_ypos#23 (byte) current_ypos#22 -Redundant Phi (byte) game_over#16 (byte) game_over#15 +Redundant Phi (byte*) current_piece#19 (byte*) current_piece#18 +Redundant Phi (byte) current_piece_char#18 (byte) current_piece_char#17 +Redundant Phi (byte) current_orientation#10 (byte) current_orientation#26 +Redundant Phi (byte*) current_piece_gfx#23 (byte*) current_piece_gfx#22 +Redundant Phi (byte) current_xpos#10 (byte) current_xpos#104 +Redundant Phi (byte) current_ypos#24 (byte) current_ypos#23 +Redundant Phi (byte) game_over#17 (byte) game_over#16 +Redundant Phi (byte) next_piece_idx#19 (byte) next_piece_idx#18 +Redundant Phi (byte*) current_piece#20 (byte*) current_piece#18 +Redundant Phi (byte) current_piece_char#19 (byte) current_piece_char#17 +Redundant Phi (byte) current_orientation#11 (byte) current_orientation#26 +Redundant Phi (byte*) current_piece_gfx#10 (byte*) current_piece_gfx#22 +Redundant Phi (byte) current_xpos#11 (byte) current_xpos#104 +Redundant Phi (byte) current_ypos#25 (byte) current_ypos#23 +Redundant Phi (byte) game_over#18 (byte) game_over#16 +Redundant Phi (byte) next_piece_idx#20 (byte) next_piece_idx#18 Redundant Phi (byte) render_screen_show#18 (byte) render_screen_show#16 Redundant Phi (byte) render_screen_showing#12 (byte) render_screen_showing#13 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) game_over#17 (byte) game_over#19 +Redundant Phi (byte) game_over#19 (byte) game_over#10 Redundant Phi (byte) current_movedown_counter#25 (byte) current_movedown_counter#16 -Redundant Phi (byte) current_ypos#45 (byte) current_ypos#25 +Redundant Phi (byte) current_ypos#46 (byte) current_ypos#10 Redundant Phi (word) lines_bcd#32 (word) lines_bcd#19 Redundant Phi (dword) score_bcd#32 (dword) score_bcd#18 Redundant Phi (byte) level#36 (byte) level#10 Redundant Phi (byte) current_movedown_slow#44 (byte) current_movedown_slow#14 Redundant Phi (byte) level_bcd#39 (byte) level_bcd#11 -Redundant Phi (byte*) current_piece#36 (byte*) current_piece#20 -Redundant Phi (byte) current_piece_char#32 (byte) current_piece_char#19 -Redundant Phi (byte) current_orientation#46 (byte) current_orientation#12 -Redundant Phi (byte*) current_piece_gfx#101 (byte*) current_piece_gfx#103 -Redundant Phi (byte) current_xpos#107 (byte) current_xpos#113 -Redundant Phi (byte) render_screen_render#47 (byte) render_screen_render#17 +Redundant Phi (byte*) current_piece#37 (byte*) current_piece#10 +Redundant Phi (byte) current_piece_char#100 (byte) current_piece_char#21 +Redundant Phi (byte) current_orientation#47 (byte) current_orientation#13 +Redundant Phi (byte*) current_piece_gfx#101 (byte*) current_piece_gfx#111 +Redundant Phi (byte) current_xpos#106 (byte) current_xpos#121 +Redundant Phi (byte) next_piece_idx#33 (byte) next_piece_idx#10 +Redundant Phi (byte) render_screen_render#50 (byte) render_screen_render#18 Redundant Phi (byte) render_screen_showing#29 (byte) render_screen_showing#2 Redundant Phi (byte) keyboard_events_size#17 (byte) keyboard_events_size#13 Redundant Phi (byte) keyboard_modifiers#15 (byte) keyboard_modifiers#14 Redundant Phi (byte) keyboard_events_size#18 (byte) keyboard_events_size#16 Redundant Phi (byte) current_movedown_counter#15 (byte) current_movedown_counter#1 -Redundant Phi (byte) current_ypos#24 (byte) current_ypos#0 +Redundant Phi (byte) current_ypos#26 (byte) current_ypos#0 Redundant Phi (word) lines_bcd#18 (word) lines_bcd#1 Redundant Phi (dword) score_bcd#17 (dword) score_bcd#1 Redundant Phi (byte) level#22 (byte) level#1 Redundant Phi (byte) current_movedown_slow#13 (byte) current_movedown_slow#17 Redundant Phi (byte) level_bcd#10 (byte) level_bcd#1 -Redundant Phi (byte*) current_piece#19 (byte*) current_piece#1 -Redundant Phi (byte) current_piece_char#18 (byte) current_piece_char#0 -Redundant Phi (byte) current_orientation#11 (byte) current_orientation#16 -Redundant Phi (byte*) current_piece_gfx#10 (byte*) current_piece_gfx#16 -Redundant Phi (byte) current_xpos#11 (byte) current_xpos#17 -Redundant Phi (byte) game_over#18 (byte) game_over#1 +Redundant Phi (byte*) current_piece#21 (byte*) current_piece#1 +Redundant Phi (byte) current_piece_char#20 (byte) current_piece_char#0 +Redundant Phi (byte) current_orientation#12 (byte) current_orientation#17 +Redundant Phi (byte*) current_piece_gfx#11 (byte*) current_piece_gfx#17 +Redundant Phi (byte) current_xpos#12 (byte) current_xpos#18 +Redundant Phi (byte) game_over#20 (byte) game_over#1 +Redundant Phi (byte) next_piece_idx#21 (byte) next_piece_idx#1 Redundant Phi (byte) main::render#3 (byte) main::render#0 Redundant Phi (byte) render_screen_show#46 (byte) render_screen_show#18 -Redundant Phi (byte) render_screen_render#48 (byte) render_screen_render#47 +Redundant Phi (byte) render_screen_render#51 (byte) render_screen_render#50 Redundant Phi (byte) current_movedown_slow#81 (byte) current_movedown_slow#44 -Redundant Phi (byte*) current_piece#72 (byte*) current_piece#36 -Redundant Phi (byte) current_piece_char#74 (byte) current_piece_char#32 -Redundant Phi (byte) current_orientation#78 (byte) current_orientation#46 -Redundant Phi (byte*) current_piece_gfx#88 (byte*) current_piece_gfx#101 -Redundant Phi (byte) current_xpos#100 (byte) current_xpos#107 -Redundant Phi (byte) current_ypos#77 (byte) current_ypos#45 -Redundant Phi (byte) game_over#65 (byte) game_over#17 +Redundant Phi (byte*) current_piece#79 (byte*) current_piece#37 +Redundant Phi (byte) current_piece_char#81 (byte) current_piece_char#100 +Redundant Phi (byte) current_orientation#85 (byte) current_orientation#47 +Redundant Phi (byte*) current_piece_gfx#102 (byte*) current_piece_gfx#101 +Redundant Phi (byte) current_xpos#107 (byte) current_xpos#106 +Redundant Phi (byte) current_ypos#84 (byte) current_ypos#46 +Redundant Phi (byte) game_over#70 (byte) game_over#19 +Redundant Phi (byte) next_piece_idx#66 (byte) next_piece_idx#33 Redundant Phi (byte) render_screen_showing#30 (byte) render_screen_showing#29 Redundant Phi (byte) keyboard_events_size#53 (byte) keyboard_events_size#18 Redundant Phi (byte) keyboard_modifiers#44 (byte) keyboard_modifiers#15 @@ -7960,21 +8554,22 @@ Redundant Phi (word) lines_bcd#67 (word) lines_bcd#32 Redundant Phi (dword) score_bcd#65 (dword) score_bcd#32 Redundant Phi (byte) level#75 (byte) level#36 Redundant Phi (byte) level_bcd#77 (byte) level_bcd#39 -Redundant Phi (byte) render_screen_render#16 (byte) render_screen_render#11 +Redundant Phi (byte) render_screen_render#17 (byte) render_screen_render#11 Redundant Phi (byte) render_screen_show#15 (byte) render_screen_show#13 Redundant Phi (byte) irq_sprite_ypos#9 (byte) irq_sprite_ypos#14 Redundant Phi (byte) irq_raster_next#10 (byte) irq_raster_next#17 Redundant Phi (byte) irq_sprite_ptr#14 (byte) irq_sprite_ptr#17 Redundant Phi (byte) render_screen_show#17 (byte) render_screen_show#16 -Redundant Phi (byte) render_screen_render#18 (byte) render_screen_render#17 +Redundant Phi (byte) render_screen_render#19 (byte) render_screen_render#18 Redundant Phi (byte) current_movedown_slow#15 (byte) current_movedown_slow#14 -Redundant Phi (byte*) current_piece#10 (byte*) current_piece#20 -Redundant Phi (byte) current_piece_char#20 (byte) current_piece_char#19 -Redundant Phi (byte) current_orientation#13 (byte) current_orientation#12 -Redundant Phi (byte*) current_piece_gfx#12 (byte*) current_piece_gfx#103 -Redundant Phi (byte) current_xpos#13 (byte) current_xpos#113 -Redundant Phi (byte) current_ypos#10 (byte) current_ypos#25 -Redundant Phi (byte) game_over#10 (byte) game_over#19 +Redundant Phi (byte*) current_piece#11 (byte*) current_piece#10 +Redundant Phi (byte) current_piece_char#10 (byte) current_piece_char#21 +Redundant Phi (byte) current_orientation#14 (byte) current_orientation#13 +Redundant Phi (byte*) current_piece_gfx#13 (byte*) current_piece_gfx#111 +Redundant Phi (byte) current_xpos#14 (byte) current_xpos#121 +Redundant Phi (byte) current_ypos#11 (byte) current_ypos#10 +Redundant Phi (byte) game_over#11 (byte) game_over#10 +Redundant Phi (byte) next_piece_idx#11 (byte) next_piece_idx#10 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 @@ -7987,12 +8582,12 @@ Successful SSA optimization Pass2RedundantPhiElimination Redundant Phi (byte) keyboard_event_scan::row#4 (byte) keyboard_event_scan::row#2 Redundant Phi (byte) render_moving::ypos2#4 (byte) render_moving::ypos2#2 Redundant Phi (byte) render_moving::l#2 (byte) render_moving::l#4 -Redundant Phi (byte) render_screen_render#31 (byte) render_screen_render#14 -Redundant Phi (byte) current_xpos#58 (byte) current_xpos#14 -Redundant Phi (byte*) current_piece_gfx#63 (byte*) current_piece_gfx#26 -Redundant Phi (byte) current_piece_char#65 (byte) current_piece_char#35 +Redundant Phi (byte) render_screen_render#34 (byte) render_screen_render#14 +Redundant Phi (byte) current_xpos#59 (byte) current_xpos#15 +Redundant Phi (byte*) current_piece_gfx#64 (byte*) current_piece_gfx#28 +Redundant Phi (byte) current_piece_char#68 (byte) current_piece_char#36 Redundant Phi (byte) render_screen_show#21 (byte) render_screen_show#16 -Redundant Phi (byte) render_screen_render#19 (byte) render_screen_render#17 +Redundant Phi (byte) render_screen_render#20 (byte) render_screen_render#18 Redundant Phi (byte) render_screen_showing#16 (byte) render_screen_showing#2 Redundant Phi (byte) keyboard_events_size#32 (byte) keyboard_events_size#16 Redundant Phi (byte) keyboard_modifiers#29 (byte) keyboard_modifiers#14 @@ -8010,7 +8605,7 @@ Simple Condition (bool~) keyboard_event_scan::$28 [260] if((byte~) keyboard_even Simple Condition (bool~) keyboard_event_get::$0 [283] if((byte) keyboard_events_size#13==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_get::@1 Simple Condition (bool~) render_init::$15 [390] if((byte) render_init::i#1!=rangelast(0,render_init::$12)) goto render_init::@1 Simple Condition (bool~) render_show::$0 [400] 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 [454] 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::$0 [454] if((byte) render_screen_render#18==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_score::@1 Simple Condition (bool~) render_bcd::$2 [519] 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 [550] 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 [560] if((byte) render_screen_original::x#2!=(byte/signed byte/word/signed word/dword/signed dword) 36) goto render_screen_original::@3 @@ -8022,52 +8617,56 @@ Simple Condition (bool~) render_moving::$1 [604] if((byte) render_moving::ypos2# Simple Condition (bool~) render_moving::$6 [616] if((byte) render_moving::l#1!=rangelast(0,3)) goto render_moving::@1 Simple Condition (bool~) render_moving::$4 [622] if((byte) render_moving::current_cell#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_moving::@5 Simple Condition (bool~) render_moving::$5 [627] if((byte) render_moving::c#1!=rangelast(0,3)) goto render_moving::@4 -Simple Condition (bool~) sprites_init::$4 [650] if((byte) sprites_init::s#1!=rangelast(0,3)) goto sprites_init::@1 -Simple Condition (bool~) sprites_irq::$1 [696] if(*((byte*) RASTER#0)<(byte) sprites_irq::raster_sprite_gfx_modify#0) goto sprites_irq::@1 -Simple Condition (bool~) sprites_irq::$2 [700] if((byte) render_screen_showing#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sprites_irq::@2 -Simple Condition (bool~) sprites_irq::$3 [718] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 9) goto sprites_irq::@4 -Simple Condition (bool~) sprites_irq::$4 [735] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto sprites_irq::@5 -Simple Condition (bool~) play_init::$2 [811] if((byte) play_init::j#1!=rangelast(0,play_init::$0)) goto play_init::@1 -Simple Condition (bool~) play_init::$5 [823] if((byte) play_init::b#1!=rangelast(0,4)) goto play_init::@2 -Simple Condition (bool~) play_movement::$2 [850] if((byte) game_over#14==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_movement::@1 -Simple Condition (bool~) play_move_down::$1 [891] if((byte) play_move_down::key_event#0!=(byte) KEY_SPACE#0) goto play_move_down::@1 -Simple Condition (bool~) play_move_down::$4 [900] if((byte~) play_move_down::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@2 -Simple Condition (bool~) play_move_down::$8 [906] if((byte) current_movedown_counter#12<(byte) current_movedown_slow#14) goto play_move_down::@4 -Simple Condition (bool~) play_move_down::$6 [910] if((byte) current_movedown_counter#12<(byte) current_movedown_fast#0) goto play_move_down::@3 -Simple Condition (bool~) play_move_down::$10 [917] if((byte) play_move_down::movedown#6==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@5 -Simple Condition (bool~) play_move_down::$13 [932] if((byte~) play_move_down::$12==(byte) COLLISION_NONE#0) goto play_move_down::@6 -Simple Condition (bool~) play_move_leftright::$0 [981] if((byte) play_move_leftright::key_event#0==(byte) KEY_COMMA#0) goto play_move_leftright::@1 -Simple Condition (bool~) play_move_leftright::$10 [993] if((byte~) play_move_leftright::$8!=(byte) COLLISION_NONE#0) goto play_move_leftright::@5 -Simple Condition (bool~) play_move_leftright::$2 [997] if((byte) play_move_leftright::key_event#0!=(byte) KEY_DOT#0) goto play_move_leftright::@2 -Simple Condition (bool~) play_move_leftright::$6 [1010] if((byte~) play_move_leftright::$4!=(byte) COLLISION_NONE#0) goto play_move_leftright::@3 -Simple Condition (bool~) play_move_rotate::$0 [1028] if((byte) play_move_rotate::key_event#0==(byte) KEY_Z#0) goto play_move_rotate::@1 -Simple Condition (bool~) play_move_rotate::$1 [1035] if((byte) play_move_rotate::key_event#0==(byte) KEY_X#0) goto play_move_rotate::@2 -Simple Condition (bool~) play_move_rotate::$8 [1057] if((byte~) play_move_rotate::$6!=(byte) COLLISION_NONE#0) goto play_move_rotate::@5 -Simple Condition (bool~) play_collision::$3 [1086] if(*((byte*) play_collision::piece_gfx#2 + (byte) play_collision::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@3 -Simple Condition (bool~) play_collision::$14 [1091] if((byte) play_collision::c#1!=rangelast(0,3)) goto play_collision::@2 -Simple Condition (bool~) play_collision::$6 [1096] if((byte) play_collision::ypos2#2<(byte/signed word/word/dword/signed dword~) play_collision::$4) goto play_collision::@4 -Simple Condition (bool~) play_collision::$9 [1101] if((byte~) play_collision::$7==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@5 -Simple Condition (bool~) play_collision::$11 [1109] if((byte) play_collision::col#2<(byte) PLAYFIELD_COLS#0) goto play_collision::@6 -Simple Condition (bool~) play_collision::$13 [1114] if(*((byte*) play_collision::playfield_line#0 + (byte) play_collision::col#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@7 -Simple Condition (bool~) play_collision::$15 [1122] if((byte) play_collision::l#1!=rangelast(0,3)) goto play_collision::@1 -Simple Condition (bool~) play_lock_current::$2 [1137] if(*((byte*) current_piece_gfx#36 + (byte) play_lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_lock_current::@3 -Simple Condition (bool~) play_lock_current::$3 [1142] if((byte) play_lock_current::c#1!=rangelast(0,3)) goto play_lock_current::@2 -Simple Condition (bool~) play_lock_current::$4 [1149] if((byte) play_lock_current::l#1!=rangelast(0,3)) goto play_lock_current::@1 -Simple Condition (bool~) play_spawn_current::$0 [1155] if((byte) play_spawn_current::piece_idx#2==(byte/signed byte/word/signed word/dword/signed dword) 7) goto play_spawn_current::@2 -Simple Condition (bool~) play_spawn_current::$7 [1181] if((byte~) play_spawn_current::$5!=(byte) COLLISION_PLAYFIELD#0) goto play_spawn_current::@4 -Simple Condition (bool~) play_remove_lines::$7 [1212] if((byte) play_remove_lines::c#0!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_remove_lines::@3 -Simple Condition (bool~) play_remove_lines::$8 [1218] if((byte) play_remove_lines::x#1!=rangelast(0,play_remove_lines::$5)) goto play_remove_lines::@2 -Simple Condition (bool~) play_remove_lines::$10 [1224] if((byte) play_remove_lines::full#2!=(byte/signed byte/word/signed word/dword/signed dword) 1) goto play_remove_lines::@4 -Simple Condition (bool~) play_remove_lines::$12 [1228] if((byte) play_remove_lines::y#1!=rangelast(0,play_remove_lines::$4)) goto play_remove_lines::@1 -Simple Condition (bool~) play_remove_lines::$13 [1235] if((byte) play_remove_lines::w#6!=(byte/word/signed word/dword/signed dword) 255) goto play_remove_lines::@6 -Simple Condition (bool~) play_update_score::$1 [1247] if((byte) play_update_score::removed#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_update_score::@1 -Simple Condition (bool~) play_update_score::$8 [1264] if((byte) play_update_score::lines_before#0==(byte) play_update_score::lines_after#0) goto play_update_score::@2 -Simple Condition (bool~) play_increase_level::$0 [1282] if((byte) level#20>(byte/signed byte/word/signed word/dword/signed dword) 29) goto play_increase_level::@1 -Simple Condition (bool~) play_increase_level::$3 [1292] if((byte~) play_increase_level::$1!=(byte/signed byte/word/signed word/dword/signed dword) 10) goto play_increase_level::@3 -Simple Condition (bool~) play_increase_level::$5 [1304] if((byte) play_increase_level::b#1!=rangelast(0,4)) goto play_increase_level::@4 -Simple Condition (bool~) main::$8 [1345] if(*((byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@5 -Simple Condition (bool~) main::$12 [1363] if((byte) game_over#19==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@7 -Simple Condition (bool~) main::$15 [1391] if((byte) main::render#2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@12 +Simple Condition (bool~) render_next::$3 [637] if((byte) render_screen_render#15==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_next::@1 +Simple Condition (bool~) render_next::$7 [655] if((byte) render_next::cell#0!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_next::@5 +Simple Condition (bool~) render_next::$8 [664] if((byte) render_next::c#1!=rangelast(0,3)) goto render_next::@4 +Simple Condition (bool~) render_next::$9 [669] if((byte) render_next::l#1!=rangelast(0,3)) goto render_next::@3 +Simple Condition (bool~) sprites_init::$4 [690] if((byte) sprites_init::s#1!=rangelast(0,3)) goto sprites_init::@1 +Simple Condition (bool~) sprites_irq::$1 [736] if(*((byte*) RASTER#0)<(byte) sprites_irq::raster_sprite_gfx_modify#0) goto sprites_irq::@1 +Simple Condition (bool~) sprites_irq::$2 [740] if((byte) render_screen_showing#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sprites_irq::@2 +Simple Condition (bool~) sprites_irq::$3 [758] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 9) goto sprites_irq::@4 +Simple Condition (bool~) sprites_irq::$4 [775] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto sprites_irq::@5 +Simple Condition (bool~) play_init::$2 [853] if((byte) play_init::j#1!=rangelast(0,play_init::$0)) goto play_init::@1 +Simple Condition (bool~) play_init::$5 [865] if((byte) play_init::b#1!=rangelast(0,4)) goto play_init::@2 +Simple Condition (bool~) play_movement::$2 [893] if((byte) game_over#15==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_movement::@1 +Simple Condition (bool~) play_move_down::$1 [935] if((byte) play_move_down::key_event#0!=(byte) KEY_SPACE#0) goto play_move_down::@1 +Simple Condition (bool~) play_move_down::$4 [944] if((byte~) play_move_down::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@2 +Simple Condition (bool~) play_move_down::$8 [950] if((byte) current_movedown_counter#12<(byte) current_movedown_slow#14) goto play_move_down::@4 +Simple Condition (bool~) play_move_down::$6 [954] if((byte) current_movedown_counter#12<(byte) current_movedown_fast#0) goto play_move_down::@3 +Simple Condition (bool~) play_move_down::$10 [961] if((byte) play_move_down::movedown#6==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@5 +Simple Condition (bool~) play_move_down::$13 [976] if((byte~) play_move_down::$12==(byte) COLLISION_NONE#0) goto play_move_down::@6 +Simple Condition (bool~) play_move_leftright::$0 [1027] if((byte) play_move_leftright::key_event#0==(byte) KEY_COMMA#0) goto play_move_leftright::@1 +Simple Condition (bool~) play_move_leftright::$10 [1039] if((byte~) play_move_leftright::$8!=(byte) COLLISION_NONE#0) goto play_move_leftright::@5 +Simple Condition (bool~) play_move_leftright::$2 [1043] if((byte) play_move_leftright::key_event#0!=(byte) KEY_DOT#0) goto play_move_leftright::@2 +Simple Condition (bool~) play_move_leftright::$6 [1056] if((byte~) play_move_leftright::$4!=(byte) COLLISION_NONE#0) goto play_move_leftright::@3 +Simple Condition (bool~) play_move_rotate::$0 [1074] if((byte) play_move_rotate::key_event#0==(byte) KEY_Z#0) goto play_move_rotate::@1 +Simple Condition (bool~) play_move_rotate::$1 [1081] if((byte) play_move_rotate::key_event#0==(byte) KEY_X#0) goto play_move_rotate::@2 +Simple Condition (bool~) play_move_rotate::$8 [1103] if((byte~) play_move_rotate::$6!=(byte) COLLISION_NONE#0) goto play_move_rotate::@5 +Simple Condition (bool~) play_collision::$3 [1132] if(*((byte*) play_collision::piece_gfx#2 + (byte) play_collision::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@3 +Simple Condition (bool~) play_collision::$14 [1137] if((byte) play_collision::c#1!=rangelast(0,3)) goto play_collision::@2 +Simple Condition (bool~) play_collision::$6 [1142] if((byte) play_collision::ypos2#2<(byte/signed word/word/dword/signed dword~) play_collision::$4) goto play_collision::@4 +Simple Condition (bool~) play_collision::$9 [1147] if((byte~) play_collision::$7==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@5 +Simple Condition (bool~) play_collision::$11 [1155] if((byte) play_collision::col#2<(byte) PLAYFIELD_COLS#0) goto play_collision::@6 +Simple Condition (bool~) play_collision::$13 [1160] if(*((byte*) play_collision::playfield_line#0 + (byte) play_collision::col#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@7 +Simple Condition (bool~) play_collision::$15 [1168] if((byte) play_collision::l#1!=rangelast(0,3)) goto play_collision::@1 +Simple Condition (bool~) play_lock_current::$2 [1183] if(*((byte*) current_piece_gfx#38 + (byte) play_lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_lock_current::@3 +Simple Condition (bool~) play_lock_current::$3 [1188] if((byte) play_lock_current::c#1!=rangelast(0,3)) goto play_lock_current::@2 +Simple Condition (bool~) play_lock_current::$4 [1195] if((byte) play_lock_current::l#1!=rangelast(0,3)) goto play_lock_current::@1 +Simple Condition (bool~) play_spawn_current::$4 [1216] if((byte~) play_spawn_current::$2!=(byte) COLLISION_PLAYFIELD#0) goto play_spawn_current::@1 +Simple Condition (bool~) play_spawn_current::$5 [1223] if((byte) play_spawn_current::piece_idx#2==(byte/signed byte/word/signed word/dword/signed dword) 7) goto play_spawn_current::@3 +Simple Condition (bool~) play_remove_lines::$7 [1261] if((byte) play_remove_lines::c#0!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_remove_lines::@3 +Simple Condition (bool~) play_remove_lines::$8 [1267] if((byte) play_remove_lines::x#1!=rangelast(0,play_remove_lines::$5)) goto play_remove_lines::@2 +Simple Condition (bool~) play_remove_lines::$10 [1273] if((byte) play_remove_lines::full#2!=(byte/signed byte/word/signed word/dword/signed dword) 1) goto play_remove_lines::@4 +Simple Condition (bool~) play_remove_lines::$12 [1277] 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 [1284] 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 [1296] 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 [1313] if((byte) play_update_score::lines_before#0==(byte) play_update_score::lines_after#0) goto play_update_score::@2 +Simple Condition (bool~) play_increase_level::$0 [1331] if((byte) level#20>(byte/signed byte/word/signed word/dword/signed dword) 29) goto play_increase_level::@1 +Simple Condition (bool~) play_increase_level::$3 [1341] if((byte~) play_increase_level::$1!=(byte/signed byte/word/signed word/dword/signed dword) 10) goto play_increase_level::@3 +Simple Condition (bool~) play_increase_level::$5 [1353] if((byte) play_increase_level::b#1!=rangelast(0,4)) goto play_increase_level::@4 +Simple Condition (bool~) main::$10 [1407] if(*((byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@5 +Simple Condition (bool~) main::$14 [1425] if((byte) game_over#10==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@7 +Simple Condition (bool~) main::$17 [1454] if((byte) main::render#2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@12 Successful SSA optimization Pass2ConditionalJumpSimplification Constant (const byte*) PROCPORT_DDR#0 = ((byte*))0 Constant (const byte) PROCPORT_DDR_MEMORY_MASK#0 = 7 @@ -8283,6 +8882,9 @@ Constant (const byte) render_playfield::c#0 = 0 Constant (const byte) render_moving::i#0 = 0 Constant (const byte) render_moving::l#0 = 0 Constant (const byte) render_moving::c#0 = 0 +Constant (const word/signed word/dword/signed dword) render_next::$0 = 40*12 +Constant (const byte) render_next::l#0 = 0 +Constant (const byte) render_next::c#0 = 0 Constant (const byte/signed byte/word/signed word/dword/signed dword) sprites_init::$0 = 15*8 Constant (const byte) sprites_init::s#0 = 0 Constant (const byte) SPRITES_FIRST_YPOS#0 = 49 @@ -8301,9 +8903,11 @@ Constant (const byte/signed byte/word/signed word/dword/signed dword) $18 = 4*4 Constant (const byte[$19]) PIECE_O#0 = { 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0 } Constant (const byte/signed byte/word/signed word/dword/signed dword) $20 = 4*4 Constant (const byte[$21]) PIECE_I#0 = { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0 } -Constant (const byte[]) PIECES_CHARS#0 = { 100, 101, 165, 101, 100, 100, 165 } +Constant (const byte[]) PIECES_CHARS#0 = { 101, 102, 166, 102, 101, 101, 166 } +Constant (const byte[]) PIECES_NEXT_CHARS#0 = { 99, 100, 164, 100, 99, 99, 164 } Constant (const byte[]) PIECES_START_X#0 = { 4, 4, 4, 4, 4, 4, 4 } Constant (const byte[]) PIECES_START_Y#0 = { 1, 1, 1, 1, 1, 0, 1 } +Constant (const byte) next_piece_idx#0 = 0 Constant (const byte*) current_piece#0 = ((byte*))0 Constant (const byte) current_orientation#0 = 0 Constant (const byte[]) MOVEDOWN_SLOW_SPEEDS#0 = { 48, 43, 38, 33, 28, 23, 18, 13, 8, 6, 5, 5, 5, 4, 4, 4, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 } @@ -8338,8 +8942,8 @@ Constant (const byte) play_collision::c#0 = 0 Constant (const byte) play_lock_current::i#0 = 0 Constant (const byte) play_lock_current::l#0 = 0 Constant (const byte) play_lock_current::c#0 = 0 +Constant (const byte) current_orientation#69 = 0 Constant (const byte) play_spawn_current::piece_idx#0 = 7 -Constant (const byte) current_orientation#25 = 0 Constant (const byte) game_over#5 = 1 Constant (const byte) play_remove_lines::removed#0 = 0 Constant (const byte) play_remove_lines::y#0 = 0 @@ -8385,6 +8989,7 @@ Constant (const byte*) render_screen_original::cols#0 = COLS#0 Constant (const byte) render_playfield::i#0 = PLAYFIELD_COLS#0*2 Constant (const byte/signed word/word/dword/signed dword) render_playfield::$1 = PLAYFIELD_LINES#0-1 Constant (const byte/signed word/word/dword/signed dword) render_playfield::$4 = PLAYFIELD_COLS#0-1 +Constant (const word/signed dword/dword/signed word) render_next::$1 = render_next::$0+24 Constant (const byte) sprites_init::xpos#0 = 24+sprites_init::$0 Constant (const byte/signed word/word/dword/signed dword) $4 = SPRITES_FIRST_YPOS#0+19 Constant (const byte/signed word/word/dword/signed dword) $5 = SPRITES_FIRST_YPOS#0+21 @@ -8416,7 +9021,7 @@ Constant (const byte) play_collision::return#6 = COLLISION_LEFT#0 Constant (const byte) play_collision::return#7 = COLLISION_RIGHT#0 Constant (const byte) play_collision::return#8 = COLLISION_PLAYFIELD#0 Constant (const byte) play_collision::return#9 = COLLISION_NONE#0 -Constant (const byte) play_collision::orientation#4 = current_orientation#25 +Constant (const byte) play_collision::orientation#4 = current_orientation#69 Constant (const byte) play_remove_lines::$0 = PLAYFIELD_LINES#0*PLAYFIELD_COLS#0 Constant (const byte) play_remove_lines::$2 = PLAYFIELD_LINES#0*PLAYFIELD_COLS#0 Constant (const byte/signed word/word/dword/signed dword) play_remove_lines::$4 = PLAYFIELD_LINES#0-1 @@ -8437,6 +9042,7 @@ 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) render_next::next_area_offset#0 = render_next::$1+4 Constant (const byte) IRQ_RASTER_FIRST#0 = $4 Constant (const word) toSpritePtr1_$1#0 = toSpritePtr1_$0#0>>6 Constant (const word) sprites_irq::toSpritePtr2_$0#0 = ((word))sprites_irq::toSpritePtr2_sprite#0 @@ -8451,6 +9057,8 @@ 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_next::screen_next_area#0 = PLAYFIELD_SCREEN_1#0+render_next::next_area_offset#0 +Constant (const byte*) render_next::screen_next_area#1 = PLAYFIELD_SCREEN_2#0+render_next::next_area_offset#0 Constant (const byte) toSpritePtr1_return#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 @@ -8494,7 +9102,7 @@ Consolidated array index constant in *(PLAYFIELD_SPRITE_PTRS_2#0+3) Consolidated array index constant in *(playfield_lines_idx#0+PLAYFIELD_LINES#0) Consolidated array index constant in *(MOVEDOWN_SLOW_SPEEDS#0+level#0) Successful SSA optimization Pass2ConstantAdditionElimination -if() condition always true - replacing block destination [493] if(true) goto main::@2 +if() condition always true - replacing block destination [517] if(true) goto main::@2 Removing PHI-reference to removed block (main::@8) in block main::@11 Removing PHI-reference to removed block (main::@8) in block main::@11 Removing PHI-reference to removed block (main::@8) in block main::@11 @@ -8509,11 +9117,13 @@ Removing PHI-reference to removed block (main::@8) in block main::@11 Removing PHI-reference to removed block (main::@8) in block main::@11 Removing PHI-reference to removed block (main::@8) in block main::@11 Removing PHI-reference to removed block (main::@8) in block main::@11 -if() condition always true - replacing block destination [505] if(true) goto main::@9 +Removing PHI-reference to removed block (main::@8) in block main::@11 +if() condition always true - replacing block destination [529] if(true) goto main::@9 Successful SSA optimization Pass2ConstantIfs Successful SSA optimization PassNEliminateUnusedVars Successful SSA optimization PassNEliminateUnusedVars -Eliminating Noop Cast (byte*) current_piece#17 ← ((byte*)) *((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) +Eliminating Noop Cast (byte*) render_next::next_piece_gfx#0 ← ((byte*)) *((const word[]) PIECES#0 + (byte~) render_next::$6) +Eliminating Noop Cast (byte*) current_piece#5 ← ((byte*)) *((const word[]) PIECES#0 + (byte~) play_spawn_current::$0) Successful SSA optimization Pass2NopCastElimination Removing unused block main::@return Successful SSA optimization Pass2EliminateUnusedBlocks @@ -8533,6 +9143,10 @@ Resolved ranged next value render_moving::l#1 ← ++ render_moving::l#4 to ++ Resolved ranged comparison value if(render_moving::l#1!=rangelast(0,3)) goto render_moving::@1 to (byte/signed byte/word/signed word/dword/signed dword) 4 Resolved ranged next value render_moving::c#1 ← ++ render_moving::c#2 to ++ Resolved ranged comparison value if(render_moving::c#1!=rangelast(0,3)) goto render_moving::@4 to (byte/signed byte/word/signed word/dword/signed dword) 4 +Resolved ranged next value render_next::c#1 ← ++ render_next::c#2 to ++ +Resolved ranged comparison value if(render_next::c#1!=rangelast(0,3)) goto render_next::@4 to (byte/signed byte/word/signed word/dword/signed dword) 4 +Resolved ranged next value render_next::l#1 ← ++ render_next::l#7 to ++ +Resolved ranged comparison value if(render_next::l#1!=rangelast(0,3)) goto render_next::@3 to (byte/signed byte/word/signed word/dword/signed dword) 4 Resolved ranged next value sprites_init::s#1 ← ++ sprites_init::s#2 to ++ Resolved ranged comparison value if(sprites_init::s#1!=rangelast(0,3)) goto sprites_init::@1 to (byte/signed byte/word/signed word/dword/signed dword) 4 Resolved ranged next value play_init::j#1 ← ++ play_init::j#2 to ++ @@ -8570,9 +9184,10 @@ Culled Empty Block (label) render_show::@3 Culled Empty Block (label) render_show::toD0182_@return Culled Empty Block (label) render_show::@6 Culled Empty Block (label) render_score::@1 +Culled Empty Block (label) render_next::@1 Culled Empty Block (label) toSpritePtr1_@return Culled Empty Block (label) sprites_irq::toSpritePtr2_@return -Culled Empty Block (label) @25 +Culled Empty Block (label) @26 Culled Empty Block (label) play_movement::@2 Culled Empty Block (label) play_move_down::@3 Culled Empty Block (label) play_move_down::@5 @@ -8583,26 +9198,25 @@ 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) @30 +Culled Empty Block (label) @31 Culled Empty Block (label) play_collision::@9 Culled Empty Block (label) play_collision::@11 Culled Empty Block (label) play_collision::@13 Culled Empty Block (label) play_collision::@7 Culled Empty Block (label) play_collision::@15 Culled Empty Block (label) play_collision::@18 -Culled Empty Block (label) play_spawn_current::@4 Culled Empty Block (label) play_remove_lines::@7 Culled Empty Block (label) play_update_score::@1 Culled Empty Block (label) play_update_score::@2 Culled Empty Block (label) play_update_score::@5 Culled Empty Block (label) play_increase_level::@1 -Culled Empty Block (label) main::@32 +Culled Empty Block (label) main::@34 Culled Empty Block (label) main::@2 Culled Empty Block (label) main::@5 Culled Empty Block (label) main::@8 Culled Empty Block (label) main::@12 -Culled Empty Block (label) main::@40 -Culled Empty Block (label) @39 +Culled Empty Block (label) main::@43 +Culled Empty Block (label) @40 Successful SSA optimization Pass2CullEmptyBlocks Alias candidate removed (volatile)(byte) sprites_irq::raster_sprite_gfx_modify#0 = (byte/signed word/word/dword/signed dword~) sprites_irq::$0 Alias (byte) render_screen_showing#1 = (byte) render_screen_showing#2 @@ -8612,41 +9226,44 @@ Alias candidate removed (volatile)(byte) sprites_irq::raster_sprite_gfx_modify#0 Self Phi Eliminated (byte) render_screen_original::SPACE#3 Self Phi Eliminated (byte) render_screen_render#13 Self Phi Eliminated (byte) render_screen_render#14 -Self Phi Eliminated (byte) current_xpos#14 -Self Phi Eliminated (byte*) current_piece_gfx#26 -Self Phi Eliminated (byte) current_piece_char#35 +Self Phi Eliminated (byte) current_xpos#15 +Self Phi Eliminated (byte*) current_piece_gfx#28 +Self Phi Eliminated (byte) current_piece_char#36 +Self Phi Eliminated (byte) render_next::next_piece_char#3 Self Phi Eliminated (byte) play_collision::col#0 Self Phi Eliminated (byte*) play_collision::piece_gfx#2 -Self Phi Eliminated (byte) current_xpos#27 -Self Phi Eliminated (byte*) current_piece_gfx#36 -Self Phi Eliminated (byte) current_piece_char#41 +Self Phi Eliminated (byte) current_xpos#28 +Self Phi Eliminated (byte*) current_piece_gfx#38 +Self Phi Eliminated (byte) current_piece_char#42 Self Phi Eliminated (byte) render_screen_show#16 -Self Phi Eliminated (byte) render_screen_render#17 +Self Phi Eliminated (byte) render_screen_render#18 Successful SSA optimization Pass2SelfPhiElimination Redundant Phi (byte) render_screen_original::SPACE#3 (const byte) render_screen_original::SPACE#0 -Redundant Phi (byte) render_screen_render#13 (byte) render_screen_render#21 -Redundant Phi (byte) render_screen_render#14 (byte) render_screen_render#30 -Redundant Phi (byte) current_xpos#14 (byte) current_xpos#57 -Redundant Phi (byte*) current_piece_gfx#26 (byte*) current_piece_gfx#62 -Redundant Phi (byte) current_piece_char#35 (byte) current_piece_char#64 +Redundant Phi (byte) render_screen_render#13 (byte) render_screen_render#22 +Redundant Phi (byte) render_screen_render#14 (byte) render_screen_render#33 +Redundant Phi (byte) current_xpos#15 (byte) current_xpos#58 +Redundant Phi (byte*) current_piece_gfx#28 (byte*) current_piece_gfx#63 +Redundant Phi (byte) current_piece_char#36 (byte) current_piece_char#67 +Redundant Phi (byte) render_next::next_piece_char#3 (byte) render_next::next_piece_char#0 Redundant Phi (byte) play_collision::col#0 (byte) play_collision::xpos#6 Redundant Phi (byte*) play_collision::piece_gfx#2 (byte*) play_collision::piece_gfx#0 -Redundant Phi (byte) current_xpos#27 (byte) current_xpos#113 -Redundant Phi (byte*) current_piece_gfx#36 (byte*) current_piece_gfx#103 -Redundant Phi (byte) current_piece_char#41 (byte) current_piece_char#19 +Redundant Phi (byte) current_xpos#28 (byte) current_xpos#121 +Redundant Phi (byte*) current_piece_gfx#38 (byte*) current_piece_gfx#111 +Redundant Phi (byte) current_piece_char#42 (byte) current_piece_char#21 Redundant Phi (byte) current_movedown_slow#58 (byte) current_movedown_slow#21 -Redundant Phi (byte*) current_piece#49 (byte*) current_piece#14 -Redundant Phi (byte) current_piece_char#45 (byte) current_piece_char#14 -Redundant Phi (byte) current_orientation#57 (byte) current_orientation#16 -Redundant Phi (byte*) current_piece_gfx#57 (byte*) current_piece_gfx#16 -Redundant Phi (byte) current_xpos#101 (byte) current_xpos#17 -Redundant Phi (byte) current_ypos#28 (byte) current_ypos#17 -Redundant Phi (byte) game_over#39 (byte) game_over#14 +Redundant Phi (byte*) current_piece#50 (byte*) current_piece#15 +Redundant Phi (byte) current_piece_char#46 (byte) current_piece_char#15 +Redundant Phi (byte) current_orientation#58 (byte) current_orientation#17 +Redundant Phi (byte*) current_piece_gfx#103 (byte*) current_piece_gfx#17 +Redundant Phi (byte) current_xpos#108 (byte) current_xpos#18 +Redundant Phi (byte) current_ypos#30 (byte) current_ypos#18 +Redundant Phi (byte) game_over#41 (byte) game_over#15 +Redundant Phi (byte) next_piece_idx#42 (byte) next_piece_idx#16 Redundant Phi (byte) current_movedown_counter#31 (byte) current_movedown_counter#14 Redundant Phi (word) lines_bcd#42 (word) lines_bcd#15 Redundant Phi (dword) score_bcd#42 (dword) score_bcd#14 Redundant Phi (byte) level#48 (byte) level#16 -Redundant Phi (byte) level_bcd#52 (byte) level_bcd#17 +Redundant Phi (byte) level_bcd#100 (byte) level_bcd#17 Successful SSA optimization Pass2RedundantPhiElimination Alias candidate removed (volatile)(byte) sprites_irq::raster_sprite_gfx_modify#0 = (byte/signed word/word/dword/signed dword~) sprites_irq::$0 Inlining constant with var siblings (const byte) keyboard_event_scan::keycode#0 @@ -8688,6 +9305,10 @@ Inlining constant with var siblings (const byte) render_playfield::i#0 Inlining constant with var siblings (const byte) render_moving::i#0 Inlining constant with var siblings (const byte) render_moving::l#0 Inlining constant with var siblings (const byte) render_moving::c#0 +Inlining constant with var siblings (const byte) render_next::l#0 +Inlining constant with var siblings (const byte) render_next::c#0 +Inlining constant with var siblings (const byte*) render_next::screen_next_area#0 +Inlining constant with var siblings (const byte*) render_next::screen_next_area#1 Inlining constant with var siblings (const byte) sprites_init::s#0 Inlining constant with var siblings (const byte) sprites_init::xpos#0 Inlining constant with different constant siblings (const byte) sprites_irq::toSpritePtr2_return#1 @@ -8736,9 +9357,10 @@ Inlining constant with var siblings (const byte) level#0 Inlining constant with var siblings (const byte) game_over#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) next_piece_idx#0 Inlining constant with var siblings (const byte) current_movedown_counter#0 Inlining constant with var siblings (const byte) current_movedown_counter#4 -Inlining constant with var siblings (const byte) current_orientation#25 +Inlining constant with var siblings (const byte) current_orientation#69 Inlining constant with var siblings (const byte) game_over#5 Inlining constant with var siblings (const byte) current_movedown_slow#9 Inlining constant with var siblings (const byte) keyboard_modifiers#2 @@ -8767,6 +9389,7 @@ Constant inlined play_remove_lines::$2 = (const byte) PLAYFIELD_LINES#0*(const b 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 current_orientation#69 = (byte/signed byte/word/signed word/dword/signed dword) 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 @@ -8782,6 +9405,7 @@ Constant inlined render_init::$9 = (byte/signed byte/word/signed word/dword/sign Constant inlined play_lock_current::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined play_remove_lines::y#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined render_init::$7 = (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 +Constant inlined render_next::screen_next_area#1 = (const byte*) PLAYFIELD_SCREEN_2#0+(const word) render_next::next_area_offset#0 Constant inlined $10 = (byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 4 Constant inlined $11 = (byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 4 Constant inlined render_init::$6 = (byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40 @@ -8804,6 +9428,7 @@ Constant inlined render_playfield::l#0 = (byte/signed byte/word/signed word/dwor Constant inlined render_moving::c#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined render_show::toD0182_$6#0 = >((word))(const byte*) PLAYFIELD_CHARSET#0>>(byte/signed byte/word/signed word/dword/signed dword) 2 Constant inlined render_screen_original::x#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined render_next::screen_next_area#0 = (const byte*) PLAYFIELD_SCREEN_1#0+(const word) render_next::next_area_offset#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 = (byte/signed byte/word/signed word/dword/signed dword) 4*(byte/signed byte/word/signed word/dword/signed dword) 4 @@ -8847,6 +9472,7 @@ Constant inlined toSpritePtr1_$0#0 = ((word))(const byte*) PLAYFIELD_SPRITES#0 Constant inlined render_show::toD0181_$0#0 = ((word))(const byte*) PLAYFIELD_SCREEN_1#0 Constant inlined play_init::$0 = (const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1 Constant inlined keyboard_events_size#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined render_next::l#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined play_movement::render#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined play_remove_lines::r#0 = (const byte) PLAYFIELD_LINES#0*(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1 Constant inlined keyboard_modifiers#2 = (byte/signed byte/word/signed word/dword/signed dword) 0|(const byte) KEY_MODIFIER_LSHIFT#0 @@ -8875,9 +9501,9 @@ Constant inlined play_move_leftright::return#1 = (byte/signed byte/word/signed w Constant inlined render_show::toD0182_$0#0 = ((word))(const byte*) PLAYFIELD_SCREEN_2#0 Constant inlined play_move_leftright::return#4 = (byte/signed byte/word/signed word/dword/signed dword) 1 Constant inlined play_move_leftright::return#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined next_piece_idx#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined keyboard_event_scan::keycode#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined play_collision::c#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 -Constant inlined current_orientation#25 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined sprites_irq::toSpritePtr2_$2#0 = (const byte) sprites_irq::toSpritePtr2_return#0 Constant inlined render_show::toD0181_$1#0 = ((word))(const byte*) PLAYFIELD_SCREEN_1#0&(word/signed word/dword/signed dword) 16383 Constant inlined sprites_init::$0 = (byte/signed byte/word/signed word/dword/signed dword) 15*(byte/signed byte/word/signed word/dword/signed dword) 8 @@ -8893,11 +9519,14 @@ Constant inlined sprites_irq::toSpritePtr2_return#1 = (const byte) sprites_irq:: Constant inlined keyboard_event_scan::row#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined render_playfield::$1 = (const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1 Constant inlined play_init::b#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined render_next::c#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 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) 0 Constant inlined level#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined play_init::idx#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 +Constant inlined render_next::$1 = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 12+(byte/signed byte/word/signed word/dword/signed dword) 24 +Constant inlined render_next::$0 = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 12 Constant inlined play_collision::orientation#4 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined render_moving::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0 Constant inlined render_show::toD0182_$3#0 = >((word))(const byte*) PLAYFIELD_SCREEN_2#0&(word/signed word/dword/signed dword) 16383<<(byte/signed byte/word/signed word/dword/signed dword) 2 @@ -8925,8 +9554,10 @@ Simplifying constant plus zero PLAYFIELD_SPRITE_PTRS_2#0+0 Simplifying constant plus zero MOVEDOWN_SLOW_SPEEDS#0+0 Simplifying constant integer increment ++0 Successful SSA optimization Pass2ConstantSimplification -Added new block during phi lifting main::@41(between main::@11 and main::@1) +Added new block during phi lifting main::@44(between main::@11 and main::@1) Added new block during phi lifting render_bcd::@3(between render_bcd and render_bcd::@1) +Added new block during phi lifting render_next::@13(between render_next::@11 and render_next::@3) +Added new block during phi lifting render_next::@14(between render_next::@6 and render_next::@4) Added new block during phi lifting render_moving::@11(between render_moving::@3 and render_moving::@1) Added new block during phi lifting render_moving::@12(between render_moving::@5 and render_moving::@3) Added new block during phi lifting render_moving::@13(between render_moving::@5 and render_moving::@4) @@ -8950,7 +9581,7 @@ 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#3 to new block ( play_move_down::@4 -> play_move_down::@26 ) during phi lifting. -Added new block during phi lifting play_spawn_current::@11(between play_spawn_current::@10 and play_spawn_current::@return) +Added new block during phi lifting play_spawn_current::@11(between play_spawn_current::@9 and play_spawn_current::@1) Added new block during phi lifting play_update_score::@6(between play_update_score and play_update_score::@return) Added new block during phi lifting play_update_score::@7(between play_update_score::@3 and play_update_score::@return) Added new block during phi lifting play_increase_level::@9(between play_increase_level::@2 and play_increase_level::@3) @@ -8984,25 +9615,26 @@ Added new block during phi lifting render_screen_original::@13(between render_sc Added new block during phi lifting render_screen_original::@14(between render_screen_original::@4 and render_screen_original::@4) Adding NOP phi() at start of @begin Adding NOP phi() at start of toSpritePtr1 -Adding NOP phi() at start of @37 +Adding NOP phi() at start of @38 Adding NOP phi() at start of @end Adding NOP phi() at start of main Adding NOP phi() at start of main::@26 Adding NOP phi() at start of main::@27 Adding NOP phi() at start of main::@28 Adding NOP phi() at start of main::@29 -Adding NOP phi() at start of main::@30 +Adding NOP phi() at start of main::@31 Adding NOP phi() at start of main::@6 -Adding NOP phi() at start of main::@33 -Adding NOP phi() at start of main::@34 -Adding NOP phi() at start of main::@38 -Adding NOP phi() at start of main::@39 +Adding NOP phi() at start of main::@35 +Adding NOP phi() at start of main::@36 +Adding NOP phi() at start of main::@41 +Adding NOP phi() at start of main::@42 Adding NOP phi() at start of render_score::@3 +Adding NOP phi() at start of render_next::@7 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 -Adding NOP phi() at start of play_spawn_current::@8 -Adding NOP phi() at start of play_spawn_current::@2 +Adding NOP phi() at start of play_spawn_current::@5 +Adding NOP phi() at start of play_spawn_current::@3 Adding NOP phi() at start of play_update_score::@4 Adding NOP phi() at start of play_remove_lines Adding NOP phi() at start of play_remove_lines::@8 @@ -9017,310 +9649,335 @@ Adding NOP phi() at start of render_init::@4 Adding NOP phi() at start of sprites_irq::toSpritePtr2 CALL GRAPH Calls in [] to main:12 -Calls in [main] to sid_rnd_init:15 render_init:17 sprites_init:19 sprites_irq_init:21 play_init:23 play_spawn_current:25 render_playfield:27 render_moving:32 render_show:43 keyboard_event_scan:45 keyboard_event_get:47 play_movement:53 render_playfield:58 render_moving:64 render_score:66 render_screen_swap:68 -Calls in [render_score] to render_bcd:109 render_bcd:114 render_bcd:119 render_bcd:124 render_bcd:129 render_bcd:134 -Calls in [play_movement] to play_move_down:205 play_move_leftright:217 play_move_rotate:222 -Calls in [play_move_rotate] to play_collision:247 -Calls in [play_move_leftright] to play_collision:299 play_collision:316 -Calls in [play_move_down] to keyboard_event_pressed:327 play_collision:347 play_lock_current:352 play_remove_lines:354 play_update_score:358 play_spawn_current:360 -Calls in [play_spawn_current] to play_collision:429 sid_rnd:438 -Calls in [play_update_score] to play_increase_level:458 -Calls in [keyboard_event_scan] to keyboard_matrix_read:578 keyboard_event_pressed:589 keyboard_event_pressed:595 keyboard_event_pressed:602 keyboard_event_pressed:609 -Calls in [render_init] to render_screen_original:715 render_screen_original:717 +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 play_spawn_current:28 render_playfield:30 render_moving:35 render_next:37 render_show:49 keyboard_event_scan:51 keyboard_event_get:53 play_movement:59 render_playfield:64 render_moving:70 render_next:73 render_score:75 render_screen_swap:77 +Calls in [render_score] to render_bcd:120 render_bcd:125 render_bcd:130 render_bcd:135 render_bcd:140 render_bcd:145 +Calls in [play_movement] to play_move_down:246 play_move_leftright:258 play_move_rotate:263 +Calls in [play_move_rotate] to play_collision:288 +Calls in [play_move_leftright] to play_collision:340 play_collision:357 +Calls in [play_move_down] to keyboard_event_pressed:368 play_collision:388 play_lock_current:393 play_remove_lines:395 play_update_score:399 play_spawn_current:402 +Calls in [play_spawn_current] to play_collision:474 sid_rnd:485 +Calls in [play_update_score] to play_increase_level:506 +Calls in [keyboard_event_scan] to keyboard_matrix_read:626 keyboard_event_pressed:637 keyboard_event_pressed:643 keyboard_event_pressed:650 keyboard_event_pressed:657 +Calls in [render_init] to render_screen_original:763 render_screen_original:765 -Created 162 initial phi equivalence classes -Not coalescing [28] current_ypos#100 ← current_ypos#22 -Not coalescing [29] current_xpos#124 ← current_xpos#28 -Not coalescing [30] current_piece_gfx#114 ← current_piece_gfx#21 -Not coalescing [31] current_piece_char#102 ← current_piece_char#16 -Coalesced [33] current_movedown_slow#92 ← current_movedown_slow#1 -Coalesced [35] current_piece_char#100 ← current_piece_char#16 -Coalesced [36] current_piece_gfx#112 ← current_piece_gfx#21 -Coalesced [37] current_xpos#122 ← current_xpos#28 -Coalesced [38] current_ypos#98 ← current_ypos#22 -Coalesced [39] game_over#86 ← game_over#15 -Not coalescing [57] render_screen_render#65 ← render_screen_render#17 -Not coalescing [59] current_ypos#101 ← current_ypos#17 -Not coalescing [60] render_screen_render#64 ← render_screen_render#17 -Not coalescing [61] current_xpos#125 ← current_xpos#17 -Not coalescing [62] current_piece_gfx#115 ← current_piece_gfx#16 -Not coalescing [63] current_piece_char#103 ← current_piece_char#14 -Coalesced [69] render_screen_show#60 ← render_screen_show#13 -Coalesced [70] render_screen_render#63 ← render_screen_render#11 -Coalesced [71] current_movedown_slow#93 ← current_movedown_slow#21 -Coalesced [72] current_piece#89 ← current_piece#14 -Coalesced [73] current_piece_char#101 ← current_piece_char#14 -Coalesced [74] current_orientation#92 ← current_orientation#16 -Coalesced [75] current_piece_gfx#113 ← current_piece_gfx#16 -Coalesced [76] current_xpos#123 ← current_xpos#17 -Coalesced [77] current_ypos#99 ← current_ypos#17 -Coalesced [78] game_over#87 ← game_over#14 -Coalesced [79] keyboard_events_size#83 ← keyboard_events_size#16 -Coalesced [80] current_movedown_counter#61 ← current_movedown_counter#14 -Coalesced [81] lines_bcd#92 ← lines_bcd#15 -Coalesced [82] score_bcd#88 ← score_bcd#14 -Coalesced [83] level#98 ← level#16 -Coalesced [84] level_bcd#105 ← level_bcd#17 -Coalesced (already) [85] current_movedown_slow#91 ← current_movedown_slow#21 -Coalesced (already) [86] current_piece#87 ← current_piece#14 -Coalesced (already) [87] current_piece_char#99 ← current_piece_char#14 -Coalesced (already) [88] current_orientation#91 ← current_orientation#16 -Coalesced (already) [89] current_piece_gfx#111 ← current_piece_gfx#16 -Coalesced (already) [90] current_xpos#121 ← current_xpos#17 -Coalesced (already) [91] current_ypos#97 ← current_ypos#17 -Coalesced (already) [92] game_over#85 ← game_over#14 -Coalesced (already) [93] keyboard_events_size#82 ← keyboard_events_size#16 -Coalesced (already) [94] current_movedown_counter#60 ← current_movedown_counter#14 -Coalesced (already) [95] lines_bcd#91 ← lines_bcd#15 -Coalesced (already) [96] score_bcd#87 ← score_bcd#14 -Coalesced (already) [97] level#97 ← level#16 -Coalesced (already) [98] level_bcd#104 ← level_bcd#17 -Coalesced [107] render_bcd::screen#7 ← render_bcd::screen#0 -Coalesced [108] render_bcd::bcd#9 ← render_bcd::bcd#0 -Coalesced [112] render_bcd::screen#8 ← render_bcd::screen#1 -Coalesced [113] render_bcd::bcd#10 ← render_bcd::bcd#1 -Coalesced [117] render_bcd::screen#9 ← render_bcd::screen#2 -Coalesced [118] render_bcd::bcd#11 ← render_bcd::bcd#2 -Coalesced [122] render_bcd::screen#10 ← render_bcd::screen#3 -Coalesced [123] render_bcd::bcd#12 ← render_bcd::bcd#3 -Coalesced [127] render_bcd::screen#11 ← render_bcd::screen#4 -Coalesced [128] render_bcd::bcd#13 ← render_bcd::bcd#4 -Coalesced [132] render_bcd::screen#12 ← render_bcd::screen#5 -Coalesced [133] render_bcd::bcd#14 ← render_bcd::bcd#5 -Coalesced [143] render_bcd::screen_pos#6 ← render_bcd::screen_pos#2 -Coalesced [150] render_bcd::screen_pos#5 ← render_bcd::screen_pos#0 -Coalesced [153] render_moving::ypos2#9 ← render_moving::ypos2#0 -Coalesced [157] render_moving::i#12 ← render_moving::i#1 -Coalesced [163] render_moving::ypos2#10 ← render_moving::ypos2#1 -Coalesced [164] render_moving::i#10 ← render_moving::i#8 -Coalesced [165] render_moving::l#9 ← render_moving::l#1 -Coalesced [169] render_moving::i#13 ← render_moving::i#3 -Coalesced [170] render_moving::xpos#5 ← render_moving::xpos#0 -Coalesced [179] render_moving::i#11 ← render_moving::i#2 -Coalesced (already) [180] render_moving::i#14 ← render_moving::i#2 -Coalesced [181] render_moving::xpos#6 ← render_moving::xpos#1 -Coalesced [182] render_moving::c#5 ← render_moving::c#1 -Coalesced [188] render_playfield::i#6 ← render_playfield::i#3 -Coalesced [189] render_playfield::screen_line#3 ← render_playfield::screen_line#0 -Coalesced [199] render_playfield::l#5 ← render_playfield::l#1 -Coalesced [200] render_playfield::i#5 ← render_playfield::i#1 -Coalesced (already) [201] render_playfield::i#7 ← render_playfield::i#1 -Coalesced [202] render_playfield::screen_line#4 ← render_playfield::screen_line#1 -Coalesced [203] render_playfield::c#3 ← render_playfield::c#1 -Coalesced [210] play_movement::return#6 ← play_movement::render#1 -Coalesced [211] current_orientation#93 ← current_orientation#19 -Coalesced [212] current_piece_gfx#116 ← current_piece_gfx#18 -Coalesced [213] current_xpos#126 ← current_xpos#20 -Coalesced [226] play_movement::return#7 ← play_movement::return#0 -Coalesced [227] current_orientation#94 ← current_orientation#24 -Coalesced [228] current_piece_gfx#117 ← current_piece_gfx#19 -Coalesced [229] current_xpos#127 ← current_xpos#24 -Coalesced (already) [232] current_orientation#97 ← current_orientation#19 -Coalesced (already) [233] current_piece_gfx#120 ← current_piece_gfx#18 -Coalesced [238] play_move_rotate::orientation#7 ← play_move_rotate::orientation#2 -Not coalescing [243] current_piece#93 ← current_piece#14 -Coalesced [244] play_collision::orientation#9 ← play_collision::orientation#3 -Coalesced [245] play_collision::ypos#9 ← play_collision::ypos#3 -Coalesced [246] play_collision::xpos#18 ← play_collision::xpos#3 -Coalesced [253] current_orientation#95 ← current_orientation#7 -Coalesced [254] current_piece_gfx#118 ← current_piece_gfx#6 -Coalesced (already) [255] current_orientation#96 ← current_orientation#19 -Coalesced (already) [256] current_piece_gfx#119 ← current_piece_gfx#18 -Coalesced [259] play_move_rotate::orientation#6 ← play_move_rotate::orientation#1 -Coalesced [263] play_collision::ypos2#11 ← play_collision::ypos2#0 -Coalesced [266] play_collision::i#12 ← play_collision::i#3 -Not coalescing [267] play_collision::col#9 ← play_collision::xpos#6 -Coalesced [284] play_collision::ypos2#12 ← play_collision::ypos2#1 -Not coalescing [285] play_collision::i#11 ← play_collision::i#1 -Coalesced [286] play_collision::l#11 ← play_collision::l#1 -Not coalescing [287] play_collision::i#13 ← play_collision::i#1 -Coalesced [288] play_collision::col#10 ← play_collision::col#1 -Coalesced [289] play_collision::c#9 ← play_collision::c#1 -Not coalescing [295] current_piece#92 ← current_piece#14 -Coalesced [296] play_collision::orientation#8 ← play_collision::orientation#2 -Coalesced [297] play_collision::ypos#8 ← play_collision::ypos#2 -Coalesced [298] play_collision::xpos#17 ← play_collision::xpos#2 -Coalesced [304] current_xpos#130 ← current_xpos#5 -Coalesced (already) [307] current_xpos#129 ← current_xpos#20 -Coalesced (already) [308] current_xpos#132 ← current_xpos#20 -Not coalescing [312] current_piece#91 ← current_piece#14 -Coalesced [313] play_collision::orientation#7 ← play_collision::orientation#1 -Coalesced [314] play_collision::ypos#7 ← play_collision::ypos#1 -Coalesced [315] play_collision::xpos#16 ← play_collision::xpos#1 -Coalesced [321] current_xpos#128 ← current_xpos#7 -Coalesced (already) [322] current_xpos#131 ← current_xpos#20 -Coalesced [333] play_move_down::movedown#13 ← play_move_down::movedown#2 -Coalesced [337] play_move_down::movedown#16 ← play_move_down::movedown#3 -Not coalescing [343] current_piece#90 ← current_piece#20 -Coalesced [344] play_collision::orientation#6 ← play_collision::orientation#0 -Coalesced [345] play_collision::ypos#6 ← play_collision::ypos#0 -Coalesced [346] play_collision::xpos#15 ← play_collision::xpos#0 -Coalesced [359] game_over#92 ← game_over#19 -Coalesced [361] current_ypos#102 ← current_ypos#22 -Coalesced [362] lines_bcd#93 ← lines_bcd#17 -Coalesced [363] score_bcd#89 ← score_bcd#16 -Coalesced [364] level#99 ← level#18 -Coalesced [365] current_movedown_slow#94 ← current_movedown_slow#23 -Coalesced [366] level_bcd#106 ← level_bcd#19 -Coalesced [368] current_piece_char#104 ← current_piece_char#16 -Coalesced [369] current_piece_gfx#121 ← current_piece_gfx#21 -Coalesced [370] current_xpos#133 ← current_xpos#28 -Coalesced [371] game_over#88 ← game_over#15 -Coalesced (already) [373] current_ypos#105 ← current_ypos#36 -Coalesced [374] lines_bcd#96 ← lines_bcd#27 -Coalesced [375] score_bcd#92 ← score_bcd#27 -Coalesced [376] level#102 ← level#31 -Coalesced [377] current_movedown_slow#97 ← current_movedown_slow#38 -Coalesced [378] level_bcd#109 ← level_bcd#32 -Coalesced [379] current_piece#98 ← current_piece#27 -Coalesced (already) [380] current_piece_char#107 ← current_piece_char#27 -Coalesced [381] current_orientation#100 ← current_orientation#36 -Coalesced (already) [382] current_piece_gfx#124 ← current_piece_gfx#33 -Coalesced (already) [383] current_xpos#136 ← current_xpos#41 -Coalesced (already) [384] game_over#91 ← game_over#26 -Coalesced [388] current_ypos#103 ← current_ypos#2 -Coalesced (already) [389] lines_bcd#94 ← lines_bcd#19 -Coalesced (already) [390] score_bcd#90 ← score_bcd#18 -Coalesced (already) [391] level#100 ← level#10 -Coalesced (already) [392] current_movedown_slow#95 ← current_movedown_slow#14 -Coalesced (already) [393] level_bcd#107 ← level_bcd#11 -Coalesced (already) [394] current_piece#96 ← current_piece#20 -Coalesced (already) [395] current_piece_char#105 ← current_piece_char#19 -Coalesced (already) [396] current_orientation#98 ← current_orientation#12 -Coalesced (already) [397] current_piece_gfx#122 ← current_piece_gfx#103 -Coalesced (already) [398] current_xpos#134 ← current_xpos#113 -Coalesced (already) [399] game_over#89 ← game_over#19 -Coalesced [400] current_movedown_counter#62 ← current_movedown_counter#12 -Coalesced (already) [401] current_ypos#104 ← current_ypos#25 -Coalesced (already) [402] lines_bcd#95 ← lines_bcd#19 -Coalesced (already) [403] score_bcd#91 ← score_bcd#18 -Coalesced (already) [404] level#101 ← level#10 -Coalesced (already) [405] current_movedown_slow#96 ← current_movedown_slow#14 -Coalesced (already) [406] level_bcd#108 ← level_bcd#11 -Coalesced (already) [407] current_piece#97 ← current_piece#20 -Coalesced (already) [408] current_piece_char#106 ← current_piece_char#19 -Coalesced (already) [409] current_orientation#99 ← current_orientation#12 -Coalesced (already) [410] current_piece_gfx#123 ← current_piece_gfx#103 -Coalesced (already) [411] current_xpos#135 ← current_xpos#113 -Coalesced (already) [412] game_over#90 ← game_over#19 -Coalesced [413] play_move_down::movedown#17 ← play_move_down::movedown#7 -Coalesced [414] play_move_down::movedown#15 ← play_move_down::movedown#10 -Coalesced (already) [415] play_move_down::movedown#14 ← play_move_down::movedown#10 -Coalesced [427] play_collision::ypos#10 ← play_collision::ypos#4 -Coalesced [428] play_collision::xpos#19 ← play_collision::xpos#4 -Coalesced (already) [436] game_over#93 ← game_over#70 -Coalesced [442] play_spawn_current::piece_idx#4 ← play_spawn_current::piece_idx#1 -Coalesced [459] lines_bcd#99 ← lines_bcd#30 -Coalesced [460] score_bcd#95 ← score_bcd#30 -Coalesced [461] level#105 ← level#20 -Coalesced [462] current_movedown_slow#100 ← current_movedown_slow#69 -Coalesced [463] level_bcd#112 ← level_bcd#64 -Coalesced (already) [466] lines_bcd#98 ← lines_bcd#30 -Coalesced (already) [467] score_bcd#94 ← score_bcd#30 -Coalesced (already) [468] level#104 ← level#10 -Coalesced (already) [469] current_movedown_slow#99 ← current_movedown_slow#14 -Coalesced (already) [470] level_bcd#111 ← level_bcd#11 -Coalesced (already) [471] lines_bcd#97 ← lines_bcd#19 -Coalesced (already) [472] score_bcd#93 ← score_bcd#18 -Coalesced (already) [473] level#103 ← level#10 -Coalesced (already) [474] current_movedown_slow#98 ← current_movedown_slow#14 -Coalesced (already) [475] level_bcd#110 ← level_bcd#11 -Coalesced [479] current_movedown_slow#101 ← current_movedown_slow#10 -Coalesced [485] level_bcd#114 ← level_bcd#8 -Coalesced [495] play_increase_level::b#3 ← play_increase_level::b#1 -Coalesced [496] level_bcd#113 ← level_bcd#21 -Coalesced [499] play_remove_lines::r#10 ← play_remove_lines::r#3 -Coalesced [500] play_remove_lines::w#14 ← play_remove_lines::w#12 -Coalesced [514] play_remove_lines::w#16 ← play_remove_lines::w#2 -Coalesced [515] play_remove_lines::removed#13 ← play_remove_lines::removed#1 -Coalesced [519] play_remove_lines::w#18 ← play_remove_lines::w#11 -Coalesced [525] play_remove_lines::w#19 ← play_remove_lines::w#3 -Coalesced [526] play_remove_lines::r#9 ← play_remove_lines::r#1 -Coalesced [527] play_remove_lines::w#13 ← play_remove_lines::w#11 -Coalesced [528] play_remove_lines::y#9 ← play_remove_lines::y#1 -Coalesced [529] play_remove_lines::removed#12 ← play_remove_lines::removed#7 -Coalesced [530] play_remove_lines::w#17 ← play_remove_lines::w#1 -Coalesced (already) [531] play_remove_lines::removed#14 ← play_remove_lines::removed#11 -Coalesced (already) [532] play_remove_lines::r#11 ← play_remove_lines::r#1 -Coalesced (already) [533] play_remove_lines::w#15 ← play_remove_lines::w#1 -Coalesced [534] play_remove_lines::x#5 ← play_remove_lines::x#1 -Coalesced [535] play_remove_lines::full#5 ← play_remove_lines::full#2 -Coalesced (already) [536] play_remove_lines::full#6 ← play_remove_lines::full#4 -Coalesced [538] play_lock_current::ypos2#7 ← play_lock_current::ypos2#0 -Coalesced [542] play_lock_current::i#8 ← play_lock_current::i#3 -Coalesced [543] play_lock_current::col#5 ← play_lock_current::col#0 -Coalesced [555] play_lock_current::ypos2#8 ← play_lock_current::ypos2#1 -Not coalescing [556] play_lock_current::i#7 ← play_lock_current::i#1 -Coalesced [557] play_lock_current::l#7 ← play_lock_current::l#1 -Not coalescing [558] play_lock_current::i#9 ← play_lock_current::i#1 -Coalesced [559] play_lock_current::col#6 ← play_lock_current::col#1 -Coalesced [560] play_lock_current::c#5 ← play_lock_current::c#1 -Coalesced [570] keyboard_event_get::return#6 ← keyboard_event_get::return#1 -Coalesced [571] keyboard_events_size#85 ← keyboard_events_size#4 -Coalesced [574] keyboard_events_size#84 ← keyboard_events_size#13 -Coalesced [575] keyboard_events_size#86 ← keyboard_events_size#19 -Coalesced [583] keyboard_event_scan::keycode#17 ← keyboard_event_scan::keycode#1 -Coalesced (already) [584] keyboard_events_size#88 ← keyboard_events_size#29 -Coalesced [600] keyboard_modifiers#63 ← keyboard_modifiers#3 -Coalesced [607] keyboard_modifiers#65 ← keyboard_modifiers#4 -Coalesced [615] keyboard_modifiers#66 ← keyboard_modifiers#12 -Coalesced [616] keyboard_modifiers#64 ← keyboard_modifiers#11 -Coalesced [617] keyboard_event_scan::row#15 ← keyboard_event_scan::row#1 -Coalesced [618] keyboard_event_scan::keycode#16 ← keyboard_event_scan::keycode#14 -Coalesced (already) [619] keyboard_events_size#87 ← keyboard_events_size#13 -Coalesced [620] keyboard_event_scan::keycode#19 ← keyboard_event_scan::keycode#11 -Coalesced [621] keyboard_events_size#90 ← keyboard_events_size#29 -Coalesced [631] keyboard_events_size#92 ← keyboard_events_size#2 -Coalesced [637] keyboard_event_scan::keycode#18 ← keyboard_event_scan::keycode#15 -Coalesced [638] keyboard_events_size#89 ← keyboard_events_size#30 -Coalesced [639] keyboard_event_scan::col#9 ← keyboard_event_scan::col#1 -Coalesced (already) [640] keyboard_event_scan::keycode#20 ← keyboard_event_scan::keycode#15 -Coalesced (already) [641] keyboard_events_size#91 ← keyboard_events_size#30 -Coalesced [645] keyboard_events_size#95 ← keyboard_events_size#1 -Coalesced (already) [646] keyboard_events_size#94 ← keyboard_events_size#10 -Coalesced (already) [647] keyboard_events_size#93 ← keyboard_events_size#10 -Coalesced [675] play_init::b#3 ← play_init::b#1 -Coalesced [676] play_init::j#3 ← play_init::j#1 -Coalesced [677] play_init::pli#3 ← play_init::pli#1 -Coalesced [678] play_init::idx#3 ← play_init::idx#1 -Coalesced [703] sprites_init::s#3 ← sprites_init::s#1 -Coalesced [704] sprites_init::xpos#3 ← sprites_init::xpos#1 -Coalesced [728] render_init::i#3 ← render_init::i#1 -Coalesced [729] render_init::li_1#3 ← render_init::li_1#1 -Coalesced [730] render_init::li_2#3 ← render_init::li_2#1 -Coalesced [732] render_screen_original::screen#11 ← render_screen_original::screen#9 -Coalesced [734] render_screen_original::screen#13 ← render_screen_original::screen#8 -Coalesced [735] render_screen_original::cols#10 ← render_screen_original::cols#7 -Coalesced [743] render_screen_original::oscr#8 ← render_screen_original::oscr#4 -Coalesced [744] render_screen_original::screen#15 ← render_screen_original::screen#2 -Coalesced [745] render_screen_original::ocols#8 ← render_screen_original::ocols#4 -Coalesced [746] render_screen_original::cols#12 ← render_screen_original::cols#1 -Coalesced [747] render_screen_original::x#8 ← render_screen_original::x#1 -Coalesced [757] render_screen_original::screen#17 ← render_screen_original::screen#3 -Coalesced [758] render_screen_original::cols#14 ← render_screen_original::cols#2 -Coalesced [759] render_screen_original::x#10 ← render_screen_original::x#2 -Coalesced [770] render_screen_original::screen#12 ← render_screen_original::screen#10 -Coalesced [771] render_screen_original::cols#9 ← render_screen_original::cols#3 -Coalesced [772] render_screen_original::oscr#7 ← render_screen_original::oscr#1 -Coalesced [773] render_screen_original::ocols#7 ← render_screen_original::ocols#1 -Coalesced [774] render_screen_original::y#7 ← render_screen_original::y#1 -Coalesced [775] render_screen_original::screen#18 ← render_screen_original::screen#10 -Coalesced [776] render_screen_original::cols#15 ← render_screen_original::cols#3 -Coalesced [777] render_screen_original::x#11 ← render_screen_original::x#3 -Coalesced (already) [778] render_screen_original::oscr#9 ← render_screen_original::oscr#1 -Coalesced [779] render_screen_original::screen#16 ← render_screen_original::screen#3 -Coalesced (already) [780] render_screen_original::ocols#9 ← render_screen_original::ocols#1 -Coalesced [781] render_screen_original::cols#13 ← render_screen_original::cols#2 -Coalesced [782] render_screen_original::x#9 ← render_screen_original::x#2 -Coalesced (already) [783] render_screen_original::screen#14 ← render_screen_original::screen#2 -Coalesced (already) [784] render_screen_original::cols#11 ← render_screen_original::cols#1 -Coalesced [785] render_screen_original::x#7 ← render_screen_original::x#1 -Coalesced [812] irq_raster_next#25 ← irq_raster_next#3 -Coalesced [821] irq_raster_next#27 ← irq_raster_next#2 -Coalesced [826] irq_raster_next#26 ← irq_raster_next#1 -Coalesced down to 91 phi equivalence classes -Culled Empty Block (label) main::@41 +Created 175 initial phi equivalence classes +Coalesced [26] next_piece_idx#90 ← next_piece_idx#18 +Coalesced [27] game_over#96 ← game_over#52 +Not coalescing [31] current_ypos#108 ← current_ypos#5 +Not coalescing [32] current_xpos#132 ← current_xpos#102 +Not coalescing [33] current_piece_gfx#122 ← current_piece_gfx#7 +Not coalescing [34] current_piece_char#110 ← current_piece_char#4 +Not coalescing [36] next_piece_idx#84 ← next_piece_idx#18 +Coalesced [38] current_movedown_slow#95 ← current_movedown_slow#1 +Coalesced [40] current_piece_char#108 ← current_piece_char#4 +Coalesced [41] current_piece_gfx#120 ← current_piece_gfx#7 +Coalesced [42] current_xpos#130 ← current_xpos#102 +Coalesced [43] current_ypos#106 ← current_ypos#5 +Coalesced [44] game_over#90 ← game_over#52 +Coalesced [45] next_piece_idx#82 ← next_piece_idx#18 +Not coalescing [63] render_screen_render#70 ← render_screen_render#18 +Not coalescing [65] current_ypos#109 ← current_ypos#18 +Not coalescing [66] render_screen_render#69 ← render_screen_render#18 +Not coalescing [67] current_xpos#133 ← current_xpos#18 +Not coalescing [68] current_piece_gfx#123 ← current_piece_gfx#17 +Not coalescing [69] current_piece_char#111 ← current_piece_char#15 +Not coalescing [71] render_screen_render#68 ← render_screen_render#18 +Not coalescing [72] next_piece_idx#85 ← next_piece_idx#16 +Coalesced [78] render_screen_show#63 ← render_screen_show#13 +Coalesced [79] render_screen_render#67 ← render_screen_render#11 +Coalesced [80] current_movedown_slow#96 ← current_movedown_slow#21 +Coalesced [81] current_piece#97 ← current_piece#15 +Coalesced [82] current_piece_char#109 ← current_piece_char#15 +Coalesced [83] current_orientation#100 ← current_orientation#17 +Coalesced [84] current_piece_gfx#121 ← current_piece_gfx#17 +Coalesced [85] current_xpos#131 ← current_xpos#18 +Coalesced [86] current_ypos#107 ← current_ypos#18 +Coalesced [87] game_over#91 ← game_over#15 +Coalesced [88] next_piece_idx#83 ← next_piece_idx#16 +Coalesced [89] keyboard_events_size#86 ← keyboard_events_size#16 +Coalesced [90] current_movedown_counter#64 ← current_movedown_counter#14 +Coalesced [91] lines_bcd#95 ← lines_bcd#15 +Coalesced [92] score_bcd#91 ← score_bcd#14 +Coalesced [93] level#101 ← level#16 +Coalesced [94] level_bcd#108 ← level_bcd#17 +Coalesced (already) [95] current_movedown_slow#94 ← current_movedown_slow#21 +Coalesced (already) [96] current_piece#95 ← current_piece#15 +Coalesced (already) [97] current_piece_char#107 ← current_piece_char#15 +Coalesced (already) [98] current_orientation#99 ← current_orientation#17 +Coalesced (already) [99] current_piece_gfx#119 ← current_piece_gfx#17 +Coalesced (already) [100] current_xpos#129 ← current_xpos#18 +Coalesced (already) [101] current_ypos#105 ← current_ypos#18 +Coalesced (already) [102] game_over#89 ← game_over#15 +Coalesced (already) [103] next_piece_idx#81 ← next_piece_idx#16 +Coalesced (already) [104] keyboard_events_size#85 ← keyboard_events_size#16 +Coalesced (already) [105] current_movedown_counter#63 ← current_movedown_counter#14 +Coalesced (already) [106] lines_bcd#94 ← lines_bcd#15 +Coalesced (already) [107] score_bcd#90 ← score_bcd#14 +Coalesced (already) [108] level#100 ← level#16 +Coalesced (already) [109] level_bcd#107 ← level_bcd#17 +Coalesced [118] render_bcd::screen#7 ← render_bcd::screen#0 +Coalesced [119] render_bcd::bcd#9 ← render_bcd::bcd#0 +Coalesced [123] render_bcd::screen#8 ← render_bcd::screen#1 +Coalesced [124] render_bcd::bcd#10 ← render_bcd::bcd#1 +Coalesced [128] render_bcd::screen#9 ← render_bcd::screen#2 +Coalesced [129] render_bcd::bcd#11 ← render_bcd::bcd#2 +Coalesced [133] render_bcd::screen#10 ← render_bcd::screen#3 +Coalesced [134] render_bcd::bcd#12 ← render_bcd::bcd#3 +Coalesced [138] render_bcd::screen#11 ← render_bcd::screen#4 +Coalesced [139] render_bcd::bcd#13 ← render_bcd::bcd#4 +Coalesced [143] render_bcd::screen#12 ← render_bcd::screen#5 +Coalesced [144] render_bcd::bcd#14 ← render_bcd::bcd#5 +Coalesced [154] render_bcd::screen_pos#6 ← render_bcd::screen_pos#2 +Coalesced [161] render_bcd::screen_pos#5 ← render_bcd::screen_pos#0 +Coalesced [169] render_next::screen_next_area#12 ← render_next::screen_next_area#10 +Coalesced [171] render_next::next_piece_gfx#10 ← render_next::next_piece_gfx#3 +Coalesced [172] render_next::screen_next_area#13 ← render_next::screen_next_area#9 +Coalesced [185] render_next::next_piece_gfx#8 ← render_next::next_piece_gfx#1 +Coalesced [186] render_next::screen_next_area#11 ← render_next::screen_next_area#3 +Coalesced [187] render_next::l#8 ← render_next::l#1 +Coalesced (already) [188] render_next::next_piece_gfx#11 ← render_next::next_piece_gfx#1 +Coalesced [189] render_next::screen_next_area#14 ← render_next::screen_next_area#2 +Coalesced [190] render_next::c#6 ← render_next::c#1 +Coalesced [194] render_moving::ypos2#9 ← render_moving::ypos2#0 +Coalesced [198] render_moving::i#12 ← render_moving::i#1 +Coalesced [204] render_moving::ypos2#10 ← render_moving::ypos2#1 +Coalesced [205] render_moving::i#10 ← render_moving::i#8 +Coalesced [206] render_moving::l#9 ← render_moving::l#1 +Coalesced [210] render_moving::i#13 ← render_moving::i#3 +Coalesced [211] render_moving::xpos#5 ← render_moving::xpos#0 +Coalesced [220] render_moving::i#11 ← render_moving::i#2 +Coalesced (already) [221] render_moving::i#14 ← render_moving::i#2 +Coalesced [222] render_moving::xpos#6 ← render_moving::xpos#1 +Coalesced [223] render_moving::c#5 ← render_moving::c#1 +Coalesced [229] render_playfield::i#6 ← render_playfield::i#3 +Coalesced [230] render_playfield::screen_line#3 ← render_playfield::screen_line#0 +Coalesced [240] render_playfield::l#5 ← render_playfield::l#1 +Coalesced [241] render_playfield::i#5 ← render_playfield::i#1 +Coalesced (already) [242] render_playfield::i#7 ← render_playfield::i#1 +Coalesced [243] render_playfield::screen_line#4 ← render_playfield::screen_line#1 +Coalesced [244] render_playfield::c#3 ← render_playfield::c#1 +Coalesced [251] play_movement::return#6 ← play_movement::render#1 +Coalesced [252] current_orientation#101 ← current_orientation#20 +Coalesced [253] current_piece_gfx#124 ← current_piece_gfx#19 +Coalesced [254] current_xpos#134 ← current_xpos#21 +Coalesced [267] play_movement::return#7 ← play_movement::return#0 +Coalesced [268] current_orientation#102 ← current_orientation#25 +Coalesced [269] current_piece_gfx#125 ← current_piece_gfx#20 +Coalesced [270] current_xpos#135 ← current_xpos#25 +Coalesced (already) [273] current_orientation#105 ← current_orientation#20 +Coalesced (already) [274] current_piece_gfx#128 ← current_piece_gfx#19 +Coalesced [279] play_move_rotate::orientation#7 ← play_move_rotate::orientation#2 +Not coalescing [284] current_piece#101 ← current_piece#15 +Coalesced [285] play_collision::orientation#9 ← play_collision::orientation#3 +Coalesced [286] play_collision::ypos#9 ← play_collision::ypos#3 +Coalesced [287] play_collision::xpos#18 ← play_collision::xpos#3 +Coalesced [294] current_orientation#103 ← current_orientation#7 +Coalesced [295] current_piece_gfx#126 ← current_piece_gfx#6 +Coalesced (already) [296] current_orientation#104 ← current_orientation#20 +Coalesced (already) [297] current_piece_gfx#127 ← current_piece_gfx#19 +Coalesced [300] play_move_rotate::orientation#6 ← play_move_rotate::orientation#1 +Coalesced [304] play_collision::ypos2#11 ← play_collision::ypos2#0 +Coalesced [307] play_collision::i#12 ← play_collision::i#3 +Not coalescing [308] play_collision::col#9 ← play_collision::xpos#6 +Coalesced [325] play_collision::ypos2#12 ← play_collision::ypos2#1 +Not coalescing [326] play_collision::i#11 ← play_collision::i#1 +Coalesced [327] play_collision::l#11 ← play_collision::l#1 +Not coalescing [328] play_collision::i#13 ← play_collision::i#1 +Coalesced [329] play_collision::col#10 ← play_collision::col#1 +Coalesced [330] play_collision::c#9 ← play_collision::c#1 +Not coalescing [336] current_piece#100 ← current_piece#15 +Coalesced [337] play_collision::orientation#8 ← play_collision::orientation#2 +Coalesced [338] play_collision::ypos#8 ← play_collision::ypos#2 +Coalesced [339] play_collision::xpos#17 ← play_collision::xpos#2 +Coalesced [345] current_xpos#138 ← current_xpos#5 +Coalesced (already) [348] current_xpos#137 ← current_xpos#21 +Coalesced (already) [349] current_xpos#140 ← current_xpos#21 +Not coalescing [353] current_piece#99 ← current_piece#15 +Coalesced [354] play_collision::orientation#7 ← play_collision::orientation#1 +Coalesced [355] play_collision::ypos#7 ← play_collision::ypos#1 +Coalesced [356] play_collision::xpos#16 ← play_collision::xpos#1 +Coalesced [362] current_xpos#136 ← current_xpos#7 +Coalesced (already) [363] current_xpos#139 ← current_xpos#21 +Coalesced [374] play_move_down::movedown#13 ← play_move_down::movedown#2 +Coalesced [378] play_move_down::movedown#16 ← play_move_down::movedown#3 +Not coalescing [384] current_piece#98 ← current_piece#10 +Coalesced [385] play_collision::orientation#6 ← play_collision::orientation#0 +Coalesced [386] play_collision::ypos#6 ← play_collision::ypos#0 +Coalesced [387] play_collision::xpos#15 ← play_collision::xpos#0 +Coalesced (already) [400] next_piece_idx#91 ← next_piece_idx#10 +Coalesced (already) [401] game_over#97 ← game_over#10 +Coalesced [403] current_ypos#110 ← current_ypos#5 +Coalesced [404] lines_bcd#96 ← lines_bcd#17 +Coalesced [405] score_bcd#92 ← score_bcd#16 +Coalesced [406] level#102 ← level#18 +Coalesced [407] current_movedown_slow#97 ← current_movedown_slow#23 +Coalesced [408] level_bcd#109 ← level_bcd#19 +Coalesced [410] current_piece_char#112 ← current_piece_char#4 +Coalesced [411] current_piece_gfx#129 ← current_piece_gfx#7 +Coalesced [412] current_xpos#141 ← current_xpos#102 +Coalesced [413] game_over#92 ← game_over#52 +Coalesced [414] next_piece_idx#86 ← next_piece_idx#18 +Coalesced (already) [416] current_ypos#113 ← current_ypos#38 +Coalesced [417] lines_bcd#99 ← lines_bcd#27 +Coalesced [418] score_bcd#95 ← score_bcd#27 +Coalesced [419] level#105 ← level#31 +Coalesced [420] current_movedown_slow#100 ← current_movedown_slow#38 +Coalesced [421] level_bcd#112 ← level_bcd#32 +Coalesced [422] current_piece#106 ← current_piece#29 +Coalesced (already) [423] current_piece_char#115 ← current_piece_char#29 +Coalesced [424] current_orientation#108 ← current_orientation#38 +Coalesced (already) [425] current_piece_gfx#132 ← current_piece_gfx#35 +Coalesced (already) [426] current_xpos#144 ← current_xpos#43 +Coalesced (already) [427] game_over#95 ← game_over#28 +Coalesced (already) [428] next_piece_idx#89 ← next_piece_idx#31 +Coalesced [432] current_ypos#111 ← current_ypos#2 +Coalesced (already) [433] lines_bcd#97 ← lines_bcd#19 +Coalesced (already) [434] score_bcd#93 ← score_bcd#18 +Coalesced (already) [435] level#103 ← level#10 +Coalesced (already) [436] current_movedown_slow#98 ← current_movedown_slow#14 +Coalesced (already) [437] level_bcd#110 ← level_bcd#11 +Coalesced (already) [438] current_piece#104 ← current_piece#10 +Coalesced (already) [439] current_piece_char#113 ← current_piece_char#21 +Coalesced (already) [440] current_orientation#106 ← current_orientation#13 +Coalesced (already) [441] current_piece_gfx#130 ← current_piece_gfx#111 +Coalesced (already) [442] current_xpos#142 ← current_xpos#121 +Coalesced (already) [443] game_over#93 ← game_over#10 +Coalesced (already) [444] next_piece_idx#87 ← next_piece_idx#10 +Coalesced [445] current_movedown_counter#65 ← current_movedown_counter#12 +Coalesced (already) [446] current_ypos#112 ← current_ypos#10 +Coalesced (already) [447] lines_bcd#98 ← lines_bcd#19 +Coalesced (already) [448] score_bcd#94 ← score_bcd#18 +Coalesced (already) [449] level#104 ← level#10 +Coalesced (already) [450] current_movedown_slow#99 ← current_movedown_slow#14 +Coalesced (already) [451] level_bcd#111 ← level_bcd#11 +Coalesced (already) [452] current_piece#105 ← current_piece#10 +Coalesced (already) [453] current_piece_char#114 ← current_piece_char#21 +Coalesced (already) [454] current_orientation#107 ← current_orientation#13 +Coalesced (already) [455] current_piece_gfx#131 ← current_piece_gfx#111 +Coalesced (already) [456] current_xpos#143 ← current_xpos#121 +Coalesced (already) [457] game_over#94 ← game_over#10 +Coalesced (already) [458] next_piece_idx#88 ← next_piece_idx#10 +Coalesced [459] play_move_down::movedown#17 ← play_move_down::movedown#7 +Coalesced [460] play_move_down::movedown#15 ← play_move_down::movedown#10 +Coalesced (already) [461] play_move_down::movedown#14 ← play_move_down::movedown#10 +Coalesced [472] play_collision::ypos#10 ← play_collision::ypos#4 +Coalesced [473] play_collision::xpos#19 ← play_collision::xpos#4 +Coalesced [482] next_piece_idx#18 ← play_spawn_current::piece_idx#2 +Coalesced [489] play_spawn_current::piece_idx#4 ← play_spawn_current::piece_idx#1 +Coalesced (already) [490] game_over#98 ← game_over#65 +Coalesced [507] lines_bcd#102 ← lines_bcd#30 +Coalesced [508] score_bcd#98 ← score_bcd#30 +Coalesced [509] level#108 ← level#20 +Coalesced [510] current_movedown_slow#103 ← current_movedown_slow#69 +Coalesced [511] level_bcd#115 ← level_bcd#64 +Coalesced (already) [514] lines_bcd#101 ← lines_bcd#30 +Coalesced (already) [515] score_bcd#97 ← score_bcd#30 +Coalesced (already) [516] level#107 ← level#10 +Coalesced (already) [517] current_movedown_slow#102 ← current_movedown_slow#14 +Coalesced (already) [518] level_bcd#114 ← level_bcd#11 +Coalesced (already) [519] lines_bcd#100 ← lines_bcd#19 +Coalesced (already) [520] score_bcd#96 ← score_bcd#18 +Coalesced (already) [521] level#106 ← level#10 +Coalesced (already) [522] current_movedown_slow#101 ← current_movedown_slow#14 +Coalesced (already) [523] level_bcd#113 ← level_bcd#11 +Coalesced [527] current_movedown_slow#104 ← current_movedown_slow#10 +Coalesced [533] level_bcd#117 ← level_bcd#8 +Coalesced [543] play_increase_level::b#3 ← play_increase_level::b#1 +Coalesced [544] level_bcd#116 ← level_bcd#21 +Coalesced [547] play_remove_lines::r#10 ← play_remove_lines::r#3 +Coalesced [548] play_remove_lines::w#14 ← play_remove_lines::w#12 +Coalesced [562] play_remove_lines::w#16 ← play_remove_lines::w#2 +Coalesced [563] play_remove_lines::removed#13 ← play_remove_lines::removed#1 +Coalesced [567] play_remove_lines::w#18 ← play_remove_lines::w#11 +Coalesced [573] play_remove_lines::w#19 ← play_remove_lines::w#3 +Coalesced [574] play_remove_lines::r#9 ← play_remove_lines::r#1 +Coalesced [575] play_remove_lines::w#13 ← play_remove_lines::w#11 +Coalesced [576] play_remove_lines::y#9 ← play_remove_lines::y#1 +Coalesced [577] play_remove_lines::removed#12 ← play_remove_lines::removed#7 +Coalesced [578] play_remove_lines::w#17 ← play_remove_lines::w#1 +Coalesced (already) [579] play_remove_lines::removed#14 ← play_remove_lines::removed#11 +Coalesced (already) [580] play_remove_lines::r#11 ← play_remove_lines::r#1 +Coalesced (already) [581] play_remove_lines::w#15 ← play_remove_lines::w#1 +Coalesced [582] play_remove_lines::x#5 ← play_remove_lines::x#1 +Coalesced [583] play_remove_lines::full#5 ← play_remove_lines::full#2 +Coalesced (already) [584] play_remove_lines::full#6 ← play_remove_lines::full#4 +Coalesced [586] play_lock_current::ypos2#7 ← play_lock_current::ypos2#0 +Coalesced [590] play_lock_current::i#8 ← play_lock_current::i#3 +Coalesced [591] play_lock_current::col#5 ← play_lock_current::col#0 +Coalesced [603] play_lock_current::ypos2#8 ← play_lock_current::ypos2#1 +Not coalescing [604] play_lock_current::i#7 ← play_lock_current::i#1 +Coalesced [605] play_lock_current::l#7 ← play_lock_current::l#1 +Not coalescing [606] play_lock_current::i#9 ← play_lock_current::i#1 +Coalesced [607] play_lock_current::col#6 ← play_lock_current::col#1 +Coalesced [608] play_lock_current::c#5 ← play_lock_current::c#1 +Coalesced [618] keyboard_event_get::return#6 ← keyboard_event_get::return#1 +Coalesced [619] keyboard_events_size#88 ← keyboard_events_size#4 +Coalesced [622] keyboard_events_size#87 ← keyboard_events_size#13 +Coalesced [623] keyboard_events_size#89 ← keyboard_events_size#19 +Coalesced [631] keyboard_event_scan::keycode#17 ← keyboard_event_scan::keycode#1 +Coalesced (already) [632] keyboard_events_size#91 ← keyboard_events_size#29 +Coalesced [648] keyboard_modifiers#66 ← keyboard_modifiers#3 +Coalesced [655] keyboard_modifiers#68 ← keyboard_modifiers#4 +Coalesced [663] keyboard_modifiers#69 ← keyboard_modifiers#12 +Coalesced [664] keyboard_modifiers#67 ← keyboard_modifiers#11 +Coalesced [665] keyboard_event_scan::row#15 ← keyboard_event_scan::row#1 +Coalesced [666] keyboard_event_scan::keycode#16 ← keyboard_event_scan::keycode#14 +Coalesced (already) [667] keyboard_events_size#90 ← keyboard_events_size#13 +Coalesced [668] keyboard_event_scan::keycode#19 ← keyboard_event_scan::keycode#11 +Coalesced [669] keyboard_events_size#93 ← keyboard_events_size#29 +Coalesced [679] keyboard_events_size#95 ← keyboard_events_size#2 +Coalesced [685] keyboard_event_scan::keycode#18 ← keyboard_event_scan::keycode#15 +Coalesced [686] keyboard_events_size#92 ← keyboard_events_size#30 +Coalesced [687] keyboard_event_scan::col#9 ← keyboard_event_scan::col#1 +Coalesced (already) [688] keyboard_event_scan::keycode#20 ← keyboard_event_scan::keycode#15 +Coalesced (already) [689] keyboard_events_size#94 ← keyboard_events_size#30 +Coalesced [693] keyboard_events_size#98 ← keyboard_events_size#1 +Coalesced (already) [694] keyboard_events_size#97 ← keyboard_events_size#10 +Coalesced (already) [695] keyboard_events_size#96 ← keyboard_events_size#10 +Coalesced [723] play_init::b#3 ← play_init::b#1 +Coalesced [724] play_init::j#3 ← play_init::j#1 +Coalesced [725] play_init::pli#3 ← play_init::pli#1 +Coalesced [726] play_init::idx#3 ← play_init::idx#1 +Coalesced [751] sprites_init::s#3 ← sprites_init::s#1 +Coalesced [752] sprites_init::xpos#3 ← sprites_init::xpos#1 +Coalesced [776] render_init::i#3 ← render_init::i#1 +Coalesced [777] render_init::li_1#3 ← render_init::li_1#1 +Coalesced [778] render_init::li_2#3 ← render_init::li_2#1 +Coalesced [780] render_screen_original::screen#11 ← render_screen_original::screen#9 +Coalesced [782] render_screen_original::screen#13 ← render_screen_original::screen#8 +Coalesced [783] render_screen_original::cols#10 ← render_screen_original::cols#7 +Coalesced [791] render_screen_original::oscr#8 ← render_screen_original::oscr#4 +Coalesced [792] render_screen_original::screen#15 ← render_screen_original::screen#2 +Coalesced [793] render_screen_original::ocols#8 ← render_screen_original::ocols#4 +Coalesced [794] render_screen_original::cols#12 ← render_screen_original::cols#1 +Coalesced [795] render_screen_original::x#8 ← render_screen_original::x#1 +Coalesced [805] render_screen_original::screen#17 ← render_screen_original::screen#3 +Coalesced [806] render_screen_original::cols#14 ← render_screen_original::cols#2 +Coalesced [807] render_screen_original::x#10 ← render_screen_original::x#2 +Coalesced [818] render_screen_original::screen#12 ← render_screen_original::screen#10 +Coalesced [819] render_screen_original::cols#9 ← render_screen_original::cols#3 +Coalesced [820] render_screen_original::oscr#7 ← render_screen_original::oscr#1 +Coalesced [821] render_screen_original::ocols#7 ← render_screen_original::ocols#1 +Coalesced [822] render_screen_original::y#7 ← render_screen_original::y#1 +Coalesced [823] render_screen_original::screen#18 ← render_screen_original::screen#10 +Coalesced [824] render_screen_original::cols#15 ← render_screen_original::cols#3 +Coalesced [825] render_screen_original::x#11 ← render_screen_original::x#3 +Coalesced (already) [826] render_screen_original::oscr#9 ← render_screen_original::oscr#1 +Coalesced [827] render_screen_original::screen#16 ← render_screen_original::screen#3 +Coalesced (already) [828] render_screen_original::ocols#9 ← render_screen_original::ocols#1 +Coalesced [829] render_screen_original::cols#13 ← render_screen_original::cols#2 +Coalesced [830] render_screen_original::x#9 ← render_screen_original::x#2 +Coalesced (already) [831] render_screen_original::screen#14 ← render_screen_original::screen#2 +Coalesced (already) [832] render_screen_original::cols#11 ← render_screen_original::cols#1 +Coalesced [833] render_screen_original::x#7 ← render_screen_original::x#1 +Coalesced [860] irq_raster_next#25 ← irq_raster_next#3 +Coalesced [869] irq_raster_next#27 ← irq_raster_next#2 +Coalesced [874] irq_raster_next#26 ← irq_raster_next#1 +Coalesced down to 97 phi equivalence classes +Culled Empty Block (label) main::@44 Culled Empty Block (label) render_bcd::@3 +Culled Empty Block (label) render_next::@13 +Culled Empty Block (label) render_next::@14 Culled Empty Block (label) render_moving::@11 Culled Empty Block (label) render_moving::@12 Culled Empty Block (label) render_moving::@13 @@ -9336,7 +9993,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_spawn_current::@8 +Culled Empty Block (label) play_spawn_current::@5 +Culled Empty Block (label) play_spawn_current::@4 Culled Empty Block (label) play_update_score::@7 Culled Empty Block (label) play_update_score::@6 Culled Empty Block (label) play_increase_level::@10 @@ -9366,7 +10024,7 @@ Culled Empty Block (label) render_screen_original::@12 Culled Empty Block (label) render_screen_original::@10 Adding NOP phi() at start of @begin Adding NOP phi() at start of toSpritePtr1 -Adding NOP phi() at start of @37 +Adding NOP phi() at start of @38 Adding NOP phi() at start of @end Adding NOP phi() at start of main Adding NOP phi() at start of main::@26 @@ -9374,18 +10032,20 @@ Adding NOP phi() at start of main::@27 Adding NOP phi() at start of main::@28 Adding NOP phi() at start of main::@29 Adding NOP phi() at start of main::@30 +Adding NOP phi() at start of main::@31 Adding NOP phi() at start of main::@6 -Adding NOP phi() at start of main::@33 -Adding NOP phi() at start of main::@34 -Adding NOP phi() at start of main::@38 -Adding NOP phi() at start of main::@39 +Adding NOP phi() at start of main::@35 +Adding NOP phi() at start of main::@36 +Adding NOP phi() at start of main::@41 +Adding NOP phi() at start of main::@42 Adding NOP phi() at start of render_score::@3 +Adding NOP phi() at start of render_next::@7 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 Adding NOP phi() at start of play_move_down::@21 +Adding NOP phi() at start of play_spawn_current::@3 Adding NOP phi() at start of play_spawn_current::@11 -Adding NOP phi() at start of play_spawn_current::@2 Adding NOP phi() at start of play_update_score::@4 Adding NOP phi() at start of play_remove_lines Adding NOP phi() at start of play_remove_lines::@18 @@ -9420,8 +10080,8 @@ FINAL CONTROL FLOW GRAPH }} kickasm(location (const byte*) PLAYFIELD_COLORS_ORIGINAL#0) {{ .import binary "playfield-screen.col" }} - to:@22 -@22: scope:[] from @14 + to:@23 +@23: scope:[] from @14 kickasm(location (const byte*) PLAYFIELD_SPRITES#0) {{ .var sprites = LoadPicture("playfield-sprites.png", List().add($010101, $000000)) // Put the sprites into memory .for(var sy=0;sy<10;sy++) { @@ -9437,25 +10097,25 @@ FINAL CONTROL FLOW GRAPH } } }} - to:@23 -@23: scope:[] from @22 + to:@24 +@24: scope:[] from @23 [6] (byte) irq_raster_next#0 ← (const byte) IRQ_RASTER_FIRST#0 [7] (byte) irq_sprite_ypos#0 ← (const byte) SPRITES_FIRST_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 21 to:toSpritePtr1 -toSpritePtr1: scope:[] from @23 +toSpritePtr1: scope:[] from @24 [8] phi() - to:@38 -@38: scope:[] from toSpritePtr1 + to:@39 +@39: scope:[] from toSpritePtr1 [9] (byte) irq_sprite_ptr#0 ← (const byte) toSpritePtr1_return#0+(byte/signed byte/word/signed word/dword/signed dword) 3 [10] (byte) irq_cnt#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 - to:@37 -@37: scope:[] from @38 + to:@38 +@38: scope:[] from @39 [11] phi() [12] call main to:@end -@end: scope:[] from @37 +@end: scope:[] from @38 [13] phi() -main: scope:[main] from @37 +main: scope:[main] from @38 [14] phi() [15] call sid_rnd_init to:main::@25 @@ -9481,1082 +10141,1146 @@ main::@29: scope:[main] from main::@28 to:main::@30 main::@30: scope:[main] from main::@29 [26] phi() - [27] call render_playfield + [27] call play_spawn_current to:main::@31 main::@31: scope:[main] from main::@30 - [28] (byte~) current_ypos#100 ← (byte) current_ypos#22 - [29] (byte~) current_xpos#124 ← (byte) current_xpos#28 - [30] (byte*~) current_piece_gfx#114 ← (byte*) current_piece_gfx#21 - [31] (byte~) current_piece_char#102 ← (byte) current_piece_char#16 - [32] call render_moving - [33] (byte*~) current_piece#88 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) + [28] phi() + [29] call render_playfield + to:main::@32 +main::@32: scope:[main] from main::@31 + [30] (byte~) current_ypos#108 ← (byte) current_ypos#5 + [31] (byte~) current_xpos#132 ← (byte) current_xpos#102 + [32] (byte*~) current_piece_gfx#122 ← (byte*) current_piece_gfx#7 + [33] (byte~) current_piece_char#110 ← (byte) current_piece_char#4 + [34] call render_moving + to:main::@33 +main::@33: scope:[main] from main::@32 + [35] (byte~) next_piece_idx#84 ← (byte) play_spawn_current::piece_idx#2 + [36] call render_next + [37] (byte*~) current_piece#96 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$0) to:main::@1 -main::@1: scope:[main] from main::@11 main::@31 main::@39 - [34] (byte) level_bcd#11 ← phi( main::@11/(byte) level_bcd#17 main::@31/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@39/(byte) level_bcd#17 ) - [34] (byte) level#10 ← phi( main::@11/(byte) level#16 main::@31/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@39/(byte) level#16 ) - [34] (dword) score_bcd#18 ← phi( main::@11/(dword) score_bcd#14 main::@31/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@39/(dword) score_bcd#14 ) - [34] (word) lines_bcd#19 ← phi( main::@11/(word) lines_bcd#15 main::@31/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@39/(word) lines_bcd#15 ) - [34] (byte) current_movedown_counter#16 ← phi( main::@11/(byte) current_movedown_counter#14 main::@31/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@39/(byte) current_movedown_counter#14 ) - [34] (byte) keyboard_events_size#19 ← phi( main::@11/(byte) keyboard_events_size#16 main::@31/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@39/(byte) keyboard_events_size#16 ) - [34] (byte) game_over#19 ← phi( main::@11/(byte) game_over#14 main::@31/(byte) game_over#15 main::@39/(byte) game_over#14 ) - [34] (byte) current_ypos#25 ← phi( main::@11/(byte) current_ypos#17 main::@31/(byte) current_ypos#22 main::@39/(byte) current_ypos#17 ) - [34] (byte) current_xpos#113 ← phi( main::@11/(byte) current_xpos#17 main::@31/(byte) current_xpos#28 main::@39/(byte) current_xpos#17 ) - [34] (byte*) current_piece_gfx#103 ← phi( main::@11/(byte*) current_piece_gfx#16 main::@31/(byte*) current_piece_gfx#21 main::@39/(byte*) current_piece_gfx#16 ) - [34] (byte) current_orientation#12 ← phi( main::@11/(byte) current_orientation#16 main::@31/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@39/(byte) current_orientation#16 ) - [34] (byte) current_piece_char#19 ← phi( main::@11/(byte) current_piece_char#14 main::@31/(byte) current_piece_char#16 main::@39/(byte) current_piece_char#14 ) - [34] (byte*) current_piece#20 ← phi( main::@11/(byte*) current_piece#14 main::@31/(byte*~) current_piece#88 main::@39/(byte*) current_piece#14 ) - [34] (byte) current_movedown_slow#14 ← phi( main::@11/(byte) current_movedown_slow#21 main::@31/(byte) current_movedown_slow#1 main::@39/(byte) current_movedown_slow#21 ) - [34] (byte) render_screen_render#17 ← phi( main::@31/(byte/signed byte/word/signed word/dword/signed dword) 64 main::@39/(byte) render_screen_render#11 ) - [34] (byte) render_screen_show#16 ← phi( main::@31/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@39/(byte) render_screen_show#13 ) +main::@1: scope:[main] from main::@11 main::@33 main::@42 + [38] (byte) level_bcd#11 ← phi( main::@11/(byte) level_bcd#17 main::@33/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@42/(byte) level_bcd#17 ) + [38] (byte) level#10 ← phi( main::@11/(byte) level#16 main::@33/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@42/(byte) level#16 ) + [38] (dword) score_bcd#18 ← phi( main::@11/(dword) score_bcd#14 main::@33/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@42/(dword) score_bcd#14 ) + [38] (word) lines_bcd#19 ← phi( main::@11/(word) lines_bcd#15 main::@33/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@42/(word) lines_bcd#15 ) + [38] (byte) current_movedown_counter#16 ← phi( main::@11/(byte) current_movedown_counter#14 main::@33/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@42/(byte) current_movedown_counter#14 ) + [38] (byte) keyboard_events_size#19 ← phi( main::@11/(byte) keyboard_events_size#16 main::@33/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@42/(byte) keyboard_events_size#16 ) + [38] (byte) next_piece_idx#10 ← phi( main::@11/(byte) next_piece_idx#16 main::@33/(byte) play_spawn_current::piece_idx#2 main::@42/(byte) next_piece_idx#16 ) + [38] (byte) game_over#10 ← phi( main::@11/(byte) game_over#15 main::@33/(byte) game_over#52 main::@42/(byte) game_over#15 ) + [38] (byte) current_ypos#10 ← phi( main::@11/(byte) current_ypos#18 main::@33/(byte) current_ypos#5 main::@42/(byte) current_ypos#18 ) + [38] (byte) current_xpos#121 ← phi( main::@11/(byte) current_xpos#18 main::@33/(byte) current_xpos#102 main::@42/(byte) current_xpos#18 ) + [38] (byte*) current_piece_gfx#111 ← phi( main::@11/(byte*) current_piece_gfx#17 main::@33/(byte*) current_piece_gfx#7 main::@42/(byte*) current_piece_gfx#17 ) + [38] (byte) current_orientation#13 ← phi( main::@11/(byte) current_orientation#17 main::@33/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@42/(byte) current_orientation#17 ) + [38] (byte) current_piece_char#21 ← phi( main::@11/(byte) current_piece_char#15 main::@33/(byte) current_piece_char#4 main::@42/(byte) current_piece_char#15 ) + [38] (byte*) current_piece#10 ← phi( main::@11/(byte*) current_piece#15 main::@33/(byte*~) current_piece#96 main::@42/(byte*) current_piece#15 ) + [38] (byte) current_movedown_slow#14 ← phi( main::@11/(byte) current_movedown_slow#21 main::@33/(byte) current_movedown_slow#1 main::@42/(byte) current_movedown_slow#21 ) + [38] (byte) render_screen_render#18 ← phi( main::@33/(byte/signed byte/word/signed word/dword/signed dword) 64 main::@42/(byte) render_screen_render#11 ) + [38] (byte) render_screen_show#16 ← phi( main::@33/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@42/(byte) render_screen_show#13 ) to:main::@4 main::@4: scope:[main] from main::@1 main::@4 - [35] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 + [39] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 to:main::@6 main::@6: scope:[main] from main::@4 - [36] phi() - [37] call render_show - to:main::@33 -main::@33: scope:[main] from main::@6 - [38] phi() - [39] call keyboard_event_scan - to:main::@34 -main::@34: scope:[main] from main::@33 [40] phi() - [41] call keyboard_event_get - [42] (byte) keyboard_event_get::return#3 ← (byte) keyboard_event_get::return#2 + [41] call render_show to:main::@35 -main::@35: scope:[main] from main::@34 - [43] (byte) main::key_event#0 ← (byte) keyboard_event_get::return#3 - [44] if((byte) game_over#19==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@7 - to:main::@9 -main::@9: scope:[main] from main::@35 main::@9 - [45] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) - to:main::@9 -main::@7: scope:[main] from main::@35 - [46] (byte) play_movement::key_event#0 ← (byte) main::key_event#0 - [47] call play_movement - [48] (byte) play_movement::return#3 ← (byte) play_movement::return#2 +main::@35: scope:[main] from main::@6 + [42] phi() + [43] call keyboard_event_scan to:main::@36 -main::@36: scope:[main] from main::@7 - [49] (byte) main::render#1 ← (byte) play_movement::return#3 +main::@36: scope:[main] from main::@35 + [44] phi() + [45] call keyboard_event_get + [46] (byte) keyboard_event_get::return#3 ← (byte) keyboard_event_get::return#2 + to:main::@37 +main::@37: scope:[main] from main::@36 + [47] (byte) main::key_event#0 ← (byte) keyboard_event_get::return#3 + [48] if((byte) game_over#10==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@7 + to:main::@9 +main::@9: scope:[main] from main::@37 main::@9 + [49] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) + to:main::@9 +main::@7: scope:[main] from main::@37 + [50] (byte) play_movement::key_event#0 ← (byte) main::key_event#0 + [51] call play_movement + [52] (byte) play_movement::return#3 ← (byte) play_movement::return#2 + to:main::@38 +main::@38: scope:[main] from main::@7 + [53] (byte) main::render#1 ← (byte) play_movement::return#3 to:main::@11 -main::@11: scope:[main] from main::@36 - [50] if((byte) main::render#1==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@1 +main::@11: scope:[main] from main::@38 + [54] if((byte) main::render#1==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@1 to:main::@23 main::@23: scope:[main] from main::@11 - [51] (byte~) render_screen_render#65 ← (byte) render_screen_render#17 - [52] call render_playfield - to:main::@37 -main::@37: scope:[main] from main::@23 - [53] (byte~) current_ypos#101 ← (byte) current_ypos#17 - [54] (byte~) render_screen_render#64 ← (byte) render_screen_render#17 - [55] (byte~) current_xpos#125 ← (byte) current_xpos#17 - [56] (byte*~) current_piece_gfx#115 ← (byte*) current_piece_gfx#16 - [57] (byte~) current_piece_char#103 ← (byte) current_piece_char#14 - [58] call render_moving - to:main::@38 -main::@38: scope:[main] from main::@37 - [59] phi() - [60] call render_score + [55] (byte~) render_screen_render#70 ← (byte) render_screen_render#18 + [56] call render_playfield to:main::@39 -main::@39: scope:[main] from main::@38 - [61] phi() - [62] call render_screen_swap +main::@39: scope:[main] from main::@23 + [57] (byte~) current_ypos#109 ← (byte) current_ypos#18 + [58] (byte~) render_screen_render#69 ← (byte) render_screen_render#18 + [59] (byte~) current_xpos#133 ← (byte) current_xpos#18 + [60] (byte*~) current_piece_gfx#123 ← (byte*) current_piece_gfx#17 + [61] (byte~) current_piece_char#111 ← (byte) current_piece_char#15 + [62] call render_moving + to:main::@40 +main::@40: scope:[main] from main::@39 + [63] (byte~) render_screen_render#68 ← (byte) render_screen_render#18 + [64] (byte~) next_piece_idx#85 ← (byte) next_piece_idx#16 + [65] call render_next + to:main::@41 +main::@41: scope:[main] from main::@40 + [66] phi() + [67] call render_score + to:main::@42 +main::@42: scope:[main] from main::@41 + [68] phi() + [69] call render_screen_swap to:main::@1 -render_screen_swap: scope:[render_screen_swap] from main::@39 - [63] (byte) render_screen_render#11 ← (byte) render_screen_render#17 ^ (byte/signed byte/word/signed word/dword/signed dword) 64 - [64] (byte) render_screen_show#13 ← (byte) render_screen_show#16 ^ (byte/signed byte/word/signed word/dword/signed dword) 64 +render_screen_swap: scope:[render_screen_swap] from main::@42 + [70] (byte) render_screen_render#11 ← (byte) render_screen_render#18 ^ (byte/signed byte/word/signed word/dword/signed dword) 64 + [71] (byte) render_screen_show#13 ← (byte) render_screen_show#16 ^ (byte/signed byte/word/signed word/dword/signed dword) 64 to:render_screen_swap::@return render_screen_swap::@return: scope:[render_screen_swap] from render_screen_swap - [65] return + [72] return to:@return -render_score: scope:[render_score] from main::@38 - [66] if((byte) render_screen_render#17==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_score::@2 +render_score: scope:[render_score] from main::@41 + [73] if((byte) render_screen_render#18==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_score::@2 to:render_score::@3 render_score::@3: scope:[render_score] from render_score - [67] phi() + [74] phi() to:render_score::@2 render_score::@2: scope:[render_score] from render_score render_score::@3 - [68] (byte*) render_score::screen#2 ← phi( render_score/(const byte*) PLAYFIELD_SCREEN_1#0 render_score::@3/(const byte*) PLAYFIELD_SCREEN_2#0 ) - [69] (byte*) render_bcd::screen#0 ← (byte*) render_score::screen#2 - [70] (byte) render_bcd::bcd#0 ← *((const byte*) render_score::score_bytes#0+(byte/signed byte/word/signed word/dword/signed dword) 2) - [71] call render_bcd + [75] (byte*) render_score::screen#2 ← phi( render_score/(const byte*) PLAYFIELD_SCREEN_1#0 render_score::@3/(const byte*) PLAYFIELD_SCREEN_2#0 ) + [76] (byte*) render_bcd::screen#0 ← (byte*) render_score::screen#2 + [77] (byte) render_bcd::bcd#0 ← *((const byte*) render_score::score_bytes#0+(byte/signed byte/word/signed word/dword/signed dword) 2) + [78] call render_bcd to:render_score::@5 render_score::@5: scope:[render_score] from render_score::@2 - [72] (byte*) render_bcd::screen#1 ← (byte*) render_score::screen#2 - [73] (byte) render_bcd::bcd#1 ← *((const byte*) render_score::score_bytes#0+(byte/signed byte/word/signed word/dword/signed dword) 1) - [74] call render_bcd + [79] (byte*) render_bcd::screen#1 ← (byte*) render_score::screen#2 + [80] (byte) render_bcd::bcd#1 ← *((const byte*) render_score::score_bytes#0+(byte/signed byte/word/signed word/dword/signed dword) 1) + [81] call render_bcd to:render_score::@6 render_score::@6: scope:[render_score] from render_score::@5 - [75] (byte*) render_bcd::screen#2 ← (byte*) render_score::screen#2 - [76] (byte) render_bcd::bcd#2 ← *((const byte*) render_score::score_bytes#0) - [77] call render_bcd + [82] (byte*) render_bcd::screen#2 ← (byte*) render_score::screen#2 + [83] (byte) render_bcd::bcd#2 ← *((const byte*) render_score::score_bytes#0) + [84] call render_bcd to:render_score::@7 render_score::@7: scope:[render_score] from render_score::@6 - [78] (byte) render_bcd::bcd#3 ← > (word) lines_bcd#15 - [79] (byte*) render_bcd::screen#3 ← (byte*) render_score::screen#2 - [80] call render_bcd + [85] (byte) render_bcd::bcd#3 ← > (word) lines_bcd#15 + [86] (byte*) render_bcd::screen#3 ← (byte*) render_score::screen#2 + [87] call render_bcd to:render_score::@8 render_score::@8: scope:[render_score] from render_score::@7 - [81] (byte) render_bcd::bcd#4 ← < (word) lines_bcd#15 - [82] (byte*) render_bcd::screen#4 ← (byte*) render_score::screen#2 - [83] call render_bcd + [88] (byte) render_bcd::bcd#4 ← < (word) lines_bcd#15 + [89] (byte*) render_bcd::screen#4 ← (byte*) render_score::screen#2 + [90] call render_bcd to:render_score::@9 render_score::@9: scope:[render_score] from render_score::@8 - [84] (byte*) render_bcd::screen#5 ← (byte*) render_score::screen#2 - [85] (byte) render_bcd::bcd#5 ← (byte) level_bcd#17 - [86] call render_bcd + [91] (byte*) render_bcd::screen#5 ← (byte*) render_score::screen#2 + [92] (byte) render_bcd::bcd#5 ← (byte) level_bcd#17 + [93] call render_bcd to:render_score::@return render_score::@return: scope:[render_score] from render_score::@9 - [87] return + [94] 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 - [88] (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 ) - [88] (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 ) - [88] (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 ) - [88] (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 ) - [89] (byte*) render_bcd::screen_pos#0 ← (byte*) render_bcd::screen#6 + (word) render_bcd::offset#6 - [90] if((byte) render_bcd::only_low#6!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_bcd::@1 + [95] (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 ) + [95] (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 ) + [95] (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 ) + [95] (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 ) + [96] (byte*) render_bcd::screen_pos#0 ← (byte*) render_bcd::screen#6 + (word) render_bcd::offset#6 + [97] 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 - [91] (byte~) render_bcd::$3 ← (byte) render_bcd::bcd#6 >> (byte/signed byte/word/signed word/dword/signed dword) 4 - [92] (byte~) render_bcd::$4 ← (const byte) render_bcd::ZERO_CHAR#0 + (byte~) render_bcd::$3 - [93] *((byte*) render_bcd::screen_pos#0) ← (byte~) render_bcd::$4 - [94] (byte*) render_bcd::screen_pos#2 ← ++ (byte*) render_bcd::screen_pos#0 + [98] (byte~) render_bcd::$3 ← (byte) render_bcd::bcd#6 >> (byte/signed byte/word/signed word/dword/signed dword) 4 + [99] (byte~) render_bcd::$4 ← (const byte) render_bcd::ZERO_CHAR#0 + (byte~) render_bcd::$3 + [100] *((byte*) render_bcd::screen_pos#0) ← (byte~) render_bcd::$4 + [101] (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 - [95] (byte*) render_bcd::screen_pos#3 ← phi( render_bcd/(byte*) render_bcd::screen_pos#0 render_bcd::@2/(byte*) render_bcd::screen_pos#2 ) - [96] (byte~) render_bcd::$5 ← (byte) render_bcd::bcd#6 & (byte/signed byte/word/signed word/dword/signed dword) 15 - [97] (byte~) render_bcd::$6 ← (const byte) render_bcd::ZERO_CHAR#0 + (byte~) render_bcd::$5 - [98] *((byte*) render_bcd::screen_pos#3) ← (byte~) render_bcd::$6 - [99] (byte*) render_bcd::screen_pos#1 ← ++ (byte*) render_bcd::screen_pos#3 + [102] (byte*) render_bcd::screen_pos#3 ← phi( render_bcd/(byte*) render_bcd::screen_pos#0 render_bcd::@2/(byte*) render_bcd::screen_pos#2 ) + [103] (byte~) render_bcd::$5 ← (byte) render_bcd::bcd#6 & (byte/signed byte/word/signed word/dword/signed dword) 15 + [104] (byte~) render_bcd::$6 ← (const byte) render_bcd::ZERO_CHAR#0 + (byte~) render_bcd::$5 + [105] *((byte*) render_bcd::screen_pos#3) ← (byte~) render_bcd::$6 + [106] (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 - [100] return + [107] return to:@return -render_moving: scope:[render_moving] from main::@31 main::@37 - [101] (byte) current_piece_char#64 ← phi( main::@31/(byte~) current_piece_char#102 main::@37/(byte~) current_piece_char#103 ) - [101] (byte*) current_piece_gfx#62 ← phi( main::@31/(byte*~) current_piece_gfx#114 main::@37/(byte*~) current_piece_gfx#115 ) - [101] (byte) current_xpos#57 ← phi( main::@31/(byte~) current_xpos#124 main::@37/(byte~) current_xpos#125 ) - [101] (byte) render_screen_render#30 ← phi( main::@31/(byte/signed byte/word/signed word/dword/signed dword) 64 main::@37/(byte~) render_screen_render#64 ) - [101] (byte) current_ypos#11 ← phi( main::@31/(byte~) current_ypos#100 main::@37/(byte~) current_ypos#101 ) - [102] (byte) render_moving::ypos2#0 ← (byte) current_ypos#11 << (byte/signed byte/word/signed word/dword/signed dword) 1 +render_next: scope:[render_next] from main::@33 main::@40 + [108] (byte) next_piece_idx#12 ← phi( main::@33/(byte~) next_piece_idx#84 main::@40/(byte~) next_piece_idx#85 ) + [108] (byte) render_screen_render#15 ← phi( main::@33/(byte/signed byte/word/signed word/dword/signed dword) 64 main::@40/(byte~) render_screen_render#68 ) + [109] if((byte) render_screen_render#15==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_next::@2 + to:render_next::@7 +render_next::@7: scope:[render_next] from render_next + [110] phi() + to:render_next::@2 +render_next::@2: scope:[render_next] from render_next render_next::@7 + [111] (byte*) render_next::screen_next_area#10 ← phi( render_next/(const byte*) PLAYFIELD_SCREEN_1#0+(const word) render_next::next_area_offset#0 render_next::@7/(const byte*) PLAYFIELD_SCREEN_2#0+(const word) render_next::next_area_offset#0 ) + [112] (byte~) render_next::$6 ← (byte) next_piece_idx#12 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [113] (byte) render_next::next_piece_char#0 ← *((const byte[]) PIECES_NEXT_CHARS#0 + (byte) next_piece_idx#12) + [114] (byte*~) render_next::next_piece_gfx#9 ← (byte*)*((const word[]) PIECES#0 + (byte~) render_next::$6) + to:render_next::@3 +render_next::@3: scope:[render_next] from render_next::@11 render_next::@2 + [115] (byte) render_next::l#7 ← phi( render_next::@11/(byte) render_next::l#1 render_next::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [115] (byte*) render_next::screen_next_area#9 ← phi( render_next::@11/(byte*) render_next::screen_next_area#3 render_next::@2/(byte*) render_next::screen_next_area#10 ) + [115] (byte*) render_next::next_piece_gfx#3 ← phi( render_next::@11/(byte*) render_next::next_piece_gfx#1 render_next::@2/(byte*~) render_next::next_piece_gfx#9 ) + to:render_next::@4 +render_next::@4: scope:[render_next] from render_next::@3 render_next::@6 + [116] (byte) render_next::c#2 ← phi( render_next::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 render_next::@6/(byte) render_next::c#1 ) + [116] (byte*) render_next::screen_next_area#4 ← phi( render_next::@3/(byte*) render_next::screen_next_area#9 render_next::@6/(byte*) render_next::screen_next_area#2 ) + [116] (byte*) render_next::next_piece_gfx#2 ← phi( render_next::@3/(byte*) render_next::next_piece_gfx#3 render_next::@6/(byte*) render_next::next_piece_gfx#1 ) + [117] (byte) render_next::cell#0 ← *((byte*) render_next::next_piece_gfx#2) + [118] (byte*) render_next::next_piece_gfx#1 ← ++ (byte*) render_next::next_piece_gfx#2 + [119] if((byte) render_next::cell#0!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_next::@5 + to:render_next::@9 +render_next::@9: scope:[render_next] from render_next::@4 + [120] *((byte*) render_next::screen_next_area#4) ← (byte/signed byte/word/signed word/dword/signed dword) 0 + to:render_next::@6 +render_next::@6: scope:[render_next] from render_next::@5 render_next::@9 + [121] (byte*) render_next::screen_next_area#2 ← ++ (byte*) render_next::screen_next_area#4 + [122] (byte) render_next::c#1 ← ++ (byte) render_next::c#2 + [123] if((byte) render_next::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_next::@4 + to:render_next::@11 +render_next::@11: scope:[render_next] from render_next::@6 + [124] (byte*) render_next::screen_next_area#3 ← (byte*) render_next::screen_next_area#2 + (byte/signed byte/word/signed word/dword/signed dword) 36 + [125] (byte) render_next::l#1 ← ++ (byte) render_next::l#7 + [126] if((byte) render_next::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_next::@3 + to:render_next::@return +render_next::@return: scope:[render_next] from render_next::@11 + [127] return + to:@return +render_next::@5: scope:[render_next] from render_next::@4 + [128] *((byte*) render_next::screen_next_area#4) ← (byte) render_next::next_piece_char#0 + to:render_next::@6 +render_moving: scope:[render_moving] from main::@32 main::@39 + [129] (byte) current_piece_char#67 ← phi( main::@32/(byte~) current_piece_char#110 main::@39/(byte~) current_piece_char#111 ) + [129] (byte*) current_piece_gfx#63 ← phi( main::@32/(byte*~) current_piece_gfx#122 main::@39/(byte*~) current_piece_gfx#123 ) + [129] (byte) current_xpos#58 ← phi( main::@32/(byte~) current_xpos#132 main::@39/(byte~) current_xpos#133 ) + [129] (byte) render_screen_render#33 ← phi( main::@32/(byte/signed byte/word/signed word/dword/signed dword) 64 main::@39/(byte~) render_screen_render#69 ) + [129] (byte) current_ypos#12 ← phi( main::@32/(byte~) current_ypos#108 main::@39/(byte~) current_ypos#109 ) + [130] (byte) render_moving::ypos2#0 ← (byte) current_ypos#12 << (byte/signed byte/word/signed word/dword/signed dword) 1 to:render_moving::@1 render_moving::@1: scope:[render_moving] from render_moving render_moving::@3 - [103] (byte) render_moving::l#4 ← phi( render_moving/(byte/signed byte/word/signed word/dword/signed dword) 0 render_moving::@3/(byte) render_moving::l#1 ) - [103] (byte) render_moving::i#3 ← phi( render_moving/(byte/signed byte/word/signed word/dword/signed dword) 0 render_moving::@3/(byte) render_moving::i#8 ) - [103] (byte) render_moving::ypos2#2 ← phi( render_moving/(byte) render_moving::ypos2#0 render_moving::@3/(byte) render_moving::ypos2#1 ) - [104] if((byte) render_moving::ypos2#2>(byte/signed byte/word/signed word/dword/signed dword) 2) goto render_moving::@2 + [131] (byte) render_moving::l#4 ← phi( render_moving/(byte/signed byte/word/signed word/dword/signed dword) 0 render_moving::@3/(byte) render_moving::l#1 ) + [131] (byte) render_moving::i#3 ← phi( render_moving/(byte/signed byte/word/signed word/dword/signed dword) 0 render_moving::@3/(byte) render_moving::i#8 ) + [131] (byte) render_moving::ypos2#2 ← phi( render_moving/(byte) render_moving::ypos2#0 render_moving::@3/(byte) render_moving::ypos2#1 ) + [132] if((byte) render_moving::ypos2#2>(byte/signed byte/word/signed word/dword/signed dword) 2) goto render_moving::@2 to:render_moving::@6 render_moving::@6: scope:[render_moving] from render_moving::@1 - [105] (byte) render_moving::i#1 ← (byte) render_moving::i#3 + (byte/signed byte/word/signed word/dword/signed dword) 4 + [133] (byte) render_moving::i#1 ← (byte) render_moving::i#3 + (byte/signed byte/word/signed word/dword/signed dword) 4 to:render_moving::@3 render_moving::@3: scope:[render_moving] from render_moving::@5 render_moving::@6 - [106] (byte) render_moving::i#8 ← phi( render_moving::@5/(byte) render_moving::i#2 render_moving::@6/(byte) render_moving::i#1 ) - [107] (byte) render_moving::ypos2#1 ← (byte) render_moving::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 - [108] (byte) render_moving::l#1 ← ++ (byte) render_moving::l#4 - [109] if((byte) render_moving::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_moving::@1 + [134] (byte) render_moving::i#8 ← phi( render_moving::@5/(byte) render_moving::i#2 render_moving::@6/(byte) render_moving::i#1 ) + [135] (byte) render_moving::ypos2#1 ← (byte) render_moving::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 + [136] (byte) render_moving::l#1 ← ++ (byte) render_moving::l#4 + [137] if((byte) render_moving::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_moving::@1 to:render_moving::@return render_moving::@return: scope:[render_moving] from render_moving::@3 - [110] return + [138] return to:@return render_moving::@2: scope:[render_moving] from render_moving::@1 - [111] (byte~) render_moving::$2 ← (byte) render_screen_render#30 + (byte) render_moving::ypos2#2 - [112] (byte*) render_moving::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_moving::$2) - [113] (byte) render_moving::xpos#0 ← (byte) current_xpos#57 + [139] (byte~) render_moving::$2 ← (byte) render_screen_render#33 + (byte) render_moving::ypos2#2 + [140] (byte*) render_moving::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_moving::$2) + [141] (byte) render_moving::xpos#0 ← (byte) current_xpos#58 to:render_moving::@4 render_moving::@4: scope:[render_moving] from render_moving::@2 render_moving::@5 - [114] (byte) render_moving::c#2 ← phi( render_moving::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 render_moving::@5/(byte) render_moving::c#1 ) - [114] (byte) render_moving::xpos#2 ← phi( render_moving::@2/(byte) render_moving::xpos#0 render_moving::@5/(byte) render_moving::xpos#1 ) - [114] (byte) render_moving::i#4 ← phi( render_moving::@2/(byte) render_moving::i#3 render_moving::@5/(byte) render_moving::i#2 ) - [115] (byte) render_moving::current_cell#0 ← *((byte*) current_piece_gfx#62 + (byte) render_moving::i#4) - [116] (byte) render_moving::i#2 ← ++ (byte) render_moving::i#4 - [117] if((byte) render_moving::current_cell#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_moving::@5 + [142] (byte) render_moving::c#2 ← phi( render_moving::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 render_moving::@5/(byte) render_moving::c#1 ) + [142] (byte) render_moving::xpos#2 ← phi( render_moving::@2/(byte) render_moving::xpos#0 render_moving::@5/(byte) render_moving::xpos#1 ) + [142] (byte) render_moving::i#4 ← phi( render_moving::@2/(byte) render_moving::i#3 render_moving::@5/(byte) render_moving::i#2 ) + [143] (byte) render_moving::current_cell#0 ← *((byte*) current_piece_gfx#63 + (byte) render_moving::i#4) + [144] (byte) render_moving::i#2 ← ++ (byte) render_moving::i#4 + [145] if((byte) render_moving::current_cell#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_moving::@5 to:render_moving::@8 render_moving::@8: scope:[render_moving] from render_moving::@4 - [118] *((byte*) render_moving::screen_line#0 + (byte) render_moving::xpos#2) ← (byte) current_piece_char#64 + [146] *((byte*) render_moving::screen_line#0 + (byte) render_moving::xpos#2) ← (byte) current_piece_char#67 to:render_moving::@5 render_moving::@5: scope:[render_moving] from render_moving::@4 render_moving::@8 - [119] (byte) render_moving::xpos#1 ← ++ (byte) render_moving::xpos#2 - [120] (byte) render_moving::c#1 ← ++ (byte) render_moving::c#2 - [121] if((byte) render_moving::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_moving::@4 + [147] (byte) render_moving::xpos#1 ← ++ (byte) render_moving::xpos#2 + [148] (byte) render_moving::c#1 ← ++ (byte) render_moving::c#2 + [149] if((byte) render_moving::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_moving::@4 to:render_moving::@3 -render_playfield: scope:[render_playfield] from main::@23 main::@30 - [122] (byte) render_screen_render#21 ← phi( main::@23/(byte~) render_screen_render#65 main::@30/(byte/signed byte/word/signed word/dword/signed dword) 64 ) +render_playfield: scope:[render_playfield] from main::@23 main::@31 + [150] (byte) render_screen_render#22 ← phi( main::@23/(byte~) render_screen_render#70 main::@31/(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 - [123] (byte) render_playfield::i#3 ← phi( render_playfield/(const byte) PLAYFIELD_COLS#0*(byte/signed byte/word/signed word/dword/signed dword) 2 render_playfield::@3/(byte) render_playfield::i#1 ) - [123] (byte) render_playfield::l#2 ← phi( render_playfield/(byte/signed byte/word/signed word/dword/signed dword) 2 render_playfield::@3/(byte) render_playfield::l#1 ) - [124] (byte~) render_playfield::$2 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [125] (byte~) render_playfield::$3 ← (byte) render_screen_render#21 + (byte~) render_playfield::$2 - [126] (byte*) render_playfield::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_playfield::$3) + [151] (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 ) + [151] (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 ) + [152] (byte~) render_playfield::$2 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [153] (byte~) render_playfield::$3 ← (byte) render_screen_render#22 + (byte~) render_playfield::$2 + [154] (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 - [127] (byte) render_playfield::c#2 ← phi( render_playfield::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 render_playfield::@2/(byte) render_playfield::c#1 ) - [127] (byte*) render_playfield::screen_line#2 ← phi( render_playfield::@1/(byte*) render_playfield::screen_line#0 render_playfield::@2/(byte*) render_playfield::screen_line#1 ) - [127] (byte) render_playfield::i#2 ← phi( render_playfield::@1/(byte) render_playfield::i#3 render_playfield::@2/(byte) render_playfield::i#1 ) - [128] *((byte*) render_playfield::screen_line#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2) - [129] (byte*) render_playfield::screen_line#1 ← ++ (byte*) render_playfield::screen_line#2 - [130] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2 - [131] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2 - [132] if((byte) render_playfield::c#1!=(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_playfield::@2 + [155] (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 ) + [155] (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 ) + [155] (byte) render_playfield::i#2 ← phi( render_playfield::@1/(byte) render_playfield::i#3 render_playfield::@2/(byte) render_playfield::i#1 ) + [156] *((byte*) render_playfield::screen_line#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2) + [157] (byte*) render_playfield::screen_line#1 ← ++ (byte*) render_playfield::screen_line#2 + [158] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2 + [159] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2 + [160] 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 - [133] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2 - [134] if((byte) render_playfield::l#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_playfield::@1 + [161] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2 + [162] 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 - [135] return + [163] return to:@return play_movement: scope:[play_movement] from main::@7 - [136] (byte) play_move_down::key_event#0 ← (byte) play_movement::key_event#0 - [137] call play_move_down - [138] (byte) play_move_down::return#0 ← (byte) play_move_down::return#3 + [164] (byte) play_move_down::key_event#0 ← (byte) play_movement::key_event#0 + [165] call play_move_down + [166] (byte) play_move_down::return#0 ← (byte) play_move_down::return#3 to:play_movement::@5 play_movement::@5: scope:[play_movement] from play_movement - [139] (byte~) play_movement::$0 ← (byte) play_move_down::return#0 - [140] (byte) play_movement::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) play_movement::$0 - [141] if((byte) game_over#14==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_movement::@1 + [167] (byte~) play_movement::$0 ← (byte) play_move_down::return#0 + [168] (byte) play_movement::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) play_movement::$0 + [169] if((byte) game_over#15==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_movement::@1 to:play_movement::@return play_movement::@return: scope:[play_movement] from play_movement::@5 play_movement::@7 - [142] (byte) current_xpos#17 ← phi( play_movement::@5/(byte) current_xpos#20 play_movement::@7/(byte) current_xpos#24 ) - [142] (byte*) current_piece_gfx#16 ← phi( play_movement::@5/(byte*) current_piece_gfx#18 play_movement::@7/(byte*) current_piece_gfx#19 ) - [142] (byte) current_orientation#16 ← phi( play_movement::@5/(byte) current_orientation#19 play_movement::@7/(byte) current_orientation#24 ) - [142] (byte) play_movement::return#2 ← phi( play_movement::@5/(byte) play_movement::render#1 play_movement::@7/(byte) play_movement::return#0 ) - [143] return + [170] (byte) current_xpos#18 ← phi( play_movement::@5/(byte) current_xpos#21 play_movement::@7/(byte) current_xpos#25 ) + [170] (byte*) current_piece_gfx#17 ← phi( play_movement::@5/(byte*) current_piece_gfx#19 play_movement::@7/(byte*) current_piece_gfx#20 ) + [170] (byte) current_orientation#17 ← phi( play_movement::@5/(byte) current_orientation#20 play_movement::@7/(byte) current_orientation#25 ) + [170] (byte) play_movement::return#2 ← phi( play_movement::@5/(byte) play_movement::render#1 play_movement::@7/(byte) play_movement::return#0 ) + [171] return to:@return play_movement::@1: scope:[play_movement] from play_movement::@5 - [144] (byte) play_move_leftright::key_event#0 ← (byte) play_movement::key_event#0 - [145] call play_move_leftright - [146] (byte) play_move_leftright::return#0 ← (byte) play_move_leftright::return#2 + [172] (byte) play_move_leftright::key_event#0 ← (byte) play_movement::key_event#0 + [173] call play_move_leftright + [174] (byte) play_move_leftright::return#0 ← (byte) play_move_leftright::return#2 to:play_movement::@6 play_movement::@6: scope:[play_movement] from play_movement::@1 - [147] (byte~) play_movement::$3 ← (byte) play_move_leftright::return#0 - [148] (byte) play_movement::render#2 ← (byte) play_movement::render#1 + (byte~) play_movement::$3 - [149] (byte) play_move_rotate::key_event#0 ← (byte) play_movement::key_event#0 - [150] call play_move_rotate - [151] (byte) play_move_rotate::return#0 ← (byte) play_move_rotate::return#2 + [175] (byte~) play_movement::$3 ← (byte) play_move_leftright::return#0 + [176] (byte) play_movement::render#2 ← (byte) play_movement::render#1 + (byte~) play_movement::$3 + [177] (byte) play_move_rotate::key_event#0 ← (byte) play_movement::key_event#0 + [178] call play_move_rotate + [179] (byte) play_move_rotate::return#0 ← (byte) play_move_rotate::return#2 to:play_movement::@7 play_movement::@7: scope:[play_movement] from play_movement::@6 - [152] (byte~) play_movement::$4 ← (byte) play_move_rotate::return#0 - [153] (byte) play_movement::return#0 ← (byte) play_movement::render#2 + (byte~) play_movement::$4 + [180] (byte~) play_movement::$4 ← (byte) play_move_rotate::return#0 + [181] (byte) play_movement::return#0 ← (byte) play_movement::render#2 + (byte~) play_movement::$4 to:play_movement::@return play_move_rotate: scope:[play_move_rotate] from play_movement::@6 - [154] if((byte) play_move_rotate::key_event#0==(const byte) KEY_Z#0) goto play_move_rotate::@1 + [182] 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 - [155] if((byte) play_move_rotate::key_event#0==(const byte) KEY_X#0) goto play_move_rotate::@2 + [183] 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 - [156] (byte*) current_piece_gfx#19 ← phi( play_move_rotate::@11/(byte*) current_piece_gfx#6 play_move_rotate::@14/(byte*) current_piece_gfx#18 play_move_rotate::@6/(byte*) current_piece_gfx#18 ) - [156] (byte) current_orientation#24 ← phi( play_move_rotate::@11/(byte) current_orientation#7 play_move_rotate::@14/(byte) current_orientation#19 play_move_rotate::@6/(byte) current_orientation#19 ) - [156] (byte) play_move_rotate::return#2 ← phi( play_move_rotate::@11/(byte/signed byte/word/signed word/dword/signed dword) 1 play_move_rotate::@14/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_rotate::@6/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [157] return + [184] (byte*) current_piece_gfx#20 ← phi( play_move_rotate::@11/(byte*) current_piece_gfx#6 play_move_rotate::@14/(byte*) current_piece_gfx#19 play_move_rotate::@6/(byte*) current_piece_gfx#19 ) + [184] (byte) current_orientation#25 ← phi( play_move_rotate::@11/(byte) current_orientation#7 play_move_rotate::@14/(byte) current_orientation#20 play_move_rotate::@6/(byte) current_orientation#20 ) + [184] (byte) play_move_rotate::return#2 ← phi( play_move_rotate::@11/(byte/signed byte/word/signed word/dword/signed dword) 1 play_move_rotate::@14/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_rotate::@6/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [185] return to:@return play_move_rotate::@2: scope:[play_move_rotate] from play_move_rotate::@6 - [158] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#19 + (byte/signed byte/word/signed word/dword/signed dword) 16 - [159] (byte) play_move_rotate::orientation#2 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 & (byte/signed byte/word/signed word/dword/signed dword) 63 + [186] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#20 + (byte/signed byte/word/signed word/dword/signed dword) 16 + [187] (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 - [160] (byte) play_move_rotate::orientation#3 ← phi( play_move_rotate::@1/(byte) play_move_rotate::orientation#1 play_move_rotate::@2/(byte) play_move_rotate::orientation#2 ) - [161] (byte) play_collision::xpos#3 ← (byte) current_xpos#24 - [162] (byte) play_collision::ypos#3 ← (byte) current_ypos#17 - [163] (byte) play_collision::orientation#3 ← (byte) play_move_rotate::orientation#3 - [164] (byte*~) current_piece#93 ← (byte*) current_piece#14 - [165] call play_collision - [166] (byte) play_collision::return#14 ← (byte) play_collision::return#15 + [188] (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 ) + [189] (byte) play_collision::xpos#3 ← (byte) current_xpos#25 + [190] (byte) play_collision::ypos#3 ← (byte) current_ypos#18 + [191] (byte) play_collision::orientation#3 ← (byte) play_move_rotate::orientation#3 + [192] (byte*~) current_piece#101 ← (byte*) current_piece#15 + [193] call play_collision + [194] (byte) play_collision::return#14 ← (byte) play_collision::return#15 to:play_move_rotate::@14 play_move_rotate::@14: scope:[play_move_rotate] from play_move_rotate::@4 - [167] (byte~) play_move_rotate::$6 ← (byte) play_collision::return#14 - [168] if((byte~) play_move_rotate::$6!=(const byte) COLLISION_NONE#0) goto play_move_rotate::@return + [195] (byte~) play_move_rotate::$6 ← (byte) play_collision::return#14 + [196] 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 - [169] (byte) current_orientation#7 ← (byte) play_move_rotate::orientation#3 - [170] (byte*) current_piece_gfx#6 ← (byte*) current_piece#14 + (byte) current_orientation#7 + [197] (byte) current_orientation#7 ← (byte) play_move_rotate::orientation#3 + [198] (byte*) current_piece_gfx#6 ← (byte*) current_piece#15 + (byte) current_orientation#7 to:play_move_rotate::@return play_move_rotate::@1: scope:[play_move_rotate] from play_move_rotate - [171] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#19 - (byte/signed byte/word/signed word/dword/signed dword) 16 - [172] (byte) play_move_rotate::orientation#1 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 & (byte/signed byte/word/signed word/dword/signed dword) 63 + [199] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#20 - (byte/signed byte/word/signed word/dword/signed dword) 16 + [200] (byte) play_move_rotate::orientation#1 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 & (byte/signed byte/word/signed word/dword/signed dword) 63 to:play_move_rotate::@4 -play_collision: scope:[play_collision] from play_move_down::@12 play_move_leftright::@1 play_move_leftright::@7 play_move_rotate::@4 play_spawn_current::@3 - [173] (byte) play_collision::xpos#6 ← phi( play_move_down::@12/(byte) play_collision::xpos#0 play_move_leftright::@1/(byte) play_collision::xpos#1 play_move_leftright::@7/(byte) play_collision::xpos#2 play_move_rotate::@4/(byte) play_collision::xpos#3 play_spawn_current::@3/(byte) play_collision::xpos#4 ) - [173] (byte) play_collision::ypos#5 ← phi( play_move_down::@12/(byte) play_collision::ypos#0 play_move_leftright::@1/(byte) play_collision::ypos#1 play_move_leftright::@7/(byte) play_collision::ypos#2 play_move_rotate::@4/(byte) play_collision::ypos#3 play_spawn_current::@3/(byte) play_collision::ypos#4 ) - [173] (byte) play_collision::orientation#5 ← phi( play_move_down::@12/(byte) play_collision::orientation#0 play_move_leftright::@1/(byte) play_collision::orientation#1 play_move_leftright::@7/(byte) play_collision::orientation#2 play_move_rotate::@4/(byte) play_collision::orientation#3 play_spawn_current::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [173] (byte*) current_piece#16 ← phi( play_move_down::@12/(byte*~) current_piece#90 play_move_leftright::@1/(byte*~) current_piece#91 play_move_leftright::@7/(byte*~) current_piece#92 play_move_rotate::@4/(byte*~) current_piece#93 play_spawn_current::@3/(byte*~) current_piece#94 ) - [174] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#16 + (byte) play_collision::orientation#5 - [175] (byte) play_collision::ypos2#0 ← (byte) play_collision::ypos#5 << (byte/signed byte/word/signed word/dword/signed dword) 1 +play_collision: scope:[play_collision] from play_move_down::@12 play_move_leftright::@1 play_move_leftright::@7 play_move_rotate::@4 play_spawn_current + [201] (byte) play_collision::xpos#6 ← phi( play_move_down::@12/(byte) play_collision::xpos#0 play_move_leftright::@1/(byte) play_collision::xpos#1 play_move_leftright::@7/(byte) play_collision::xpos#2 play_move_rotate::@4/(byte) play_collision::xpos#3 play_spawn_current/(byte) play_collision::xpos#4 ) + [201] (byte) play_collision::ypos#5 ← phi( play_move_down::@12/(byte) play_collision::ypos#0 play_move_leftright::@1/(byte) play_collision::ypos#1 play_move_leftright::@7/(byte) play_collision::ypos#2 play_move_rotate::@4/(byte) play_collision::ypos#3 play_spawn_current/(byte) play_collision::ypos#4 ) + [201] (byte) play_collision::orientation#5 ← phi( play_move_down::@12/(byte) play_collision::orientation#0 play_move_leftright::@1/(byte) play_collision::orientation#1 play_move_leftright::@7/(byte) play_collision::orientation#2 play_move_rotate::@4/(byte) play_collision::orientation#3 play_spawn_current/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [201] (byte*) current_piece#17 ← phi( play_move_down::@12/(byte*~) current_piece#98 play_move_leftright::@1/(byte*~) current_piece#99 play_move_leftright::@7/(byte*~) current_piece#100 play_move_rotate::@4/(byte*~) current_piece#101 play_spawn_current/(byte*~) current_piece#102 ) + [202] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#17 + (byte) play_collision::orientation#5 + [203] (byte) play_collision::ypos2#0 ← (byte) play_collision::ypos#5 << (byte/signed byte/word/signed word/dword/signed dword) 1 to:play_collision::@1 play_collision::@1: scope:[play_collision] from play_collision play_collision::@20 - [176] (byte) play_collision::l#6 ← phi( play_collision/(byte/signed byte/word/signed word/dword/signed dword) 0 play_collision::@20/(byte) play_collision::l#1 ) - [176] (byte) play_collision::i#3 ← phi( play_collision/(byte/signed byte/word/signed word/dword/signed dword) 0 play_collision::@20/(byte~) play_collision::i#11 ) - [176] (byte) play_collision::ypos2#2 ← phi( play_collision/(byte) play_collision::ypos2#0 play_collision::@20/(byte) play_collision::ypos2#1 ) - [177] (byte*) play_collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_collision::ypos2#2) - [178] (byte~) play_collision::col#9 ← (byte) play_collision::xpos#6 + [204] (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 ) + [204] (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 ) + [204] (byte) play_collision::ypos2#2 ← phi( play_collision/(byte) play_collision::ypos2#0 play_collision::@20/(byte) play_collision::ypos2#1 ) + [205] (byte*) play_collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_collision::ypos2#2) + [206] (byte~) play_collision::col#9 ← (byte) play_collision::xpos#6 to:play_collision::@2 play_collision::@2: scope:[play_collision] from play_collision::@1 play_collision::@21 - [179] (byte) play_collision::c#2 ← phi( play_collision::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 play_collision::@21/(byte) play_collision::c#1 ) - [179] (byte) play_collision::col#2 ← phi( play_collision::@1/(byte~) play_collision::col#9 play_collision::@21/(byte) play_collision::col#1 ) - [179] (byte) play_collision::i#2 ← phi( play_collision::@1/(byte) play_collision::i#3 play_collision::@21/(byte~) play_collision::i#13 ) - [180] (byte) play_collision::i#1 ← ++ (byte) play_collision::i#2 - [181] if(*((byte*) play_collision::piece_gfx#0 + (byte) play_collision::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@3 + [207] (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 ) + [207] (byte) play_collision::col#2 ← phi( play_collision::@1/(byte~) play_collision::col#9 play_collision::@21/(byte) play_collision::col#1 ) + [207] (byte) play_collision::i#2 ← phi( play_collision::@1/(byte) play_collision::i#3 play_collision::@21/(byte~) play_collision::i#13 ) + [208] (byte) play_collision::i#1 ← ++ (byte) play_collision::i#2 + [209] 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 - [182] if((byte) play_collision::ypos2#2<(byte/signed byte/word/signed word/dword/signed dword) 2*(const byte) PLAYFIELD_LINES#0) goto play_collision::@4 + [210] 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 - [183] (byte) play_collision::return#15 ← phi( play_collision::@4/(const byte) COLLISION_LEFT#0 play_collision::@5/(const byte) COLLISION_RIGHT#0 play_collision::@6/(const byte) COLLISION_PLAYFIELD#0 play_collision::@17/(const byte) COLLISION_NONE#0 play_collision::@8/(const byte) COLLISION_BOTTOM#0 ) - [184] return + [211] (byte) play_collision::return#15 ← phi( play_collision::@4/(const byte) COLLISION_LEFT#0 play_collision::@5/(const byte) COLLISION_RIGHT#0 play_collision::@6/(const byte) COLLISION_PLAYFIELD#0 play_collision::@17/(const byte) COLLISION_NONE#0 play_collision::@8/(const byte) COLLISION_BOTTOM#0 ) + [212] return to:@return play_collision::@4: scope:[play_collision] from play_collision::@8 - [185] (byte~) play_collision::$7 ← (byte) play_collision::col#2 & (byte/word/signed word/dword/signed dword) 128 - [186] if((byte~) play_collision::$7==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@5 + [213] (byte~) play_collision::$7 ← (byte) play_collision::col#2 & (byte/word/signed word/dword/signed dword) 128 + [214] 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 - [187] if((byte) play_collision::col#2<(const byte) PLAYFIELD_COLS#0) goto play_collision::@6 + [215] 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 - [188] if(*((byte*) play_collision::playfield_line#0 + (byte) play_collision::col#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@3 + [216] 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 - [189] (byte) play_collision::col#1 ← ++ (byte) play_collision::col#2 - [190] (byte) play_collision::c#1 ← ++ (byte) play_collision::c#2 - [191] if((byte) play_collision::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_collision::@21 + [217] (byte) play_collision::col#1 ← ++ (byte) play_collision::col#2 + [218] (byte) play_collision::c#1 ← ++ (byte) play_collision::c#2 + [219] 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 - [192] (byte) play_collision::ypos2#1 ← (byte) play_collision::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 - [193] (byte) play_collision::l#1 ← ++ (byte) play_collision::l#6 - [194] if((byte) play_collision::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_collision::@20 + [220] (byte) play_collision::ypos2#1 ← (byte) play_collision::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 + [221] (byte) play_collision::l#1 ← ++ (byte) play_collision::l#6 + [222] 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 - [195] (byte~) play_collision::i#11 ← (byte) play_collision::i#1 + [223] (byte~) play_collision::i#11 ← (byte) play_collision::i#1 to:play_collision::@1 play_collision::@21: scope:[play_collision] from play_collision::@3 - [196] (byte~) play_collision::i#13 ← (byte) play_collision::i#1 + [224] (byte~) play_collision::i#13 ← (byte) play_collision::i#1 to:play_collision::@2 play_move_leftright: scope:[play_move_leftright] from play_movement::@1 - [197] if((byte) play_move_leftright::key_event#0==(const byte) KEY_COMMA#0) goto play_move_leftright::@1 + [225] 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 - [198] if((byte) play_move_leftright::key_event#0!=(const byte) KEY_DOT#0) goto play_move_leftright::@return + [226] 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 - [199] (byte) play_collision::xpos#2 ← (byte) current_xpos#20 + (byte/signed byte/word/signed word/dword/signed dword) 1 - [200] (byte) play_collision::ypos#2 ← (byte) current_ypos#17 - [201] (byte) play_collision::orientation#2 ← (byte) current_orientation#19 - [202] (byte*~) current_piece#92 ← (byte*) current_piece#14 - [203] call play_collision - [204] (byte) play_collision::return#13 ← (byte) play_collision::return#15 + [227] (byte) play_collision::xpos#2 ← (byte) current_xpos#21 + (byte/signed byte/word/signed word/dword/signed dword) 1 + [228] (byte) play_collision::ypos#2 ← (byte) current_ypos#18 + [229] (byte) play_collision::orientation#2 ← (byte) current_orientation#20 + [230] (byte*~) current_piece#100 ← (byte*) current_piece#15 + [231] call play_collision + [232] (byte) play_collision::return#13 ← (byte) play_collision::return#15 to:play_move_leftright::@15 play_move_leftright::@15: scope:[play_move_leftright] from play_move_leftright::@7 - [205] (byte~) play_move_leftright::$4 ← (byte) play_collision::return#13 - [206] if((byte~) play_move_leftright::$4!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return + [233] (byte~) play_move_leftright::$4 ← (byte) play_collision::return#13 + [234] 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 - [207] (byte) current_xpos#5 ← ++ (byte) current_xpos#20 + [235] (byte) current_xpos#5 ← ++ (byte) current_xpos#21 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 - [208] (byte) current_xpos#24 ← phi( play_move_leftright::@11/(byte) current_xpos#7 play_move_leftright::@15/(byte) current_xpos#20 play_move_leftright::@8/(byte) current_xpos#5 play_move_leftright::@14/(byte) current_xpos#20 play_move_leftright::@6/(byte) current_xpos#20 ) - [208] (byte) play_move_leftright::return#2 ← phi( play_move_leftright::@11/(byte/signed byte/word/signed word/dword/signed dword) 1 play_move_leftright::@15/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_leftright::@8/(byte/signed byte/word/signed word/dword/signed dword) 1 play_move_leftright::@14/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_leftright::@6/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [209] return + [236] (byte) current_xpos#25 ← phi( play_move_leftright::@11/(byte) current_xpos#7 play_move_leftright::@15/(byte) current_xpos#21 play_move_leftright::@8/(byte) current_xpos#5 play_move_leftright::@14/(byte) current_xpos#21 play_move_leftright::@6/(byte) current_xpos#21 ) + [236] (byte) play_move_leftright::return#2 ← phi( play_move_leftright::@11/(byte/signed byte/word/signed word/dword/signed dword) 1 play_move_leftright::@15/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_leftright::@8/(byte/signed byte/word/signed word/dword/signed dword) 1 play_move_leftright::@14/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_leftright::@6/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [237] return to:@return play_move_leftright::@1: scope:[play_move_leftright] from play_move_leftright - [210] (byte) play_collision::xpos#1 ← (byte) current_xpos#20 - (byte/signed byte/word/signed word/dword/signed dword) 1 - [211] (byte) play_collision::ypos#1 ← (byte) current_ypos#17 - [212] (byte) play_collision::orientation#1 ← (byte) current_orientation#19 - [213] (byte*~) current_piece#91 ← (byte*) current_piece#14 - [214] call play_collision - [215] (byte) play_collision::return#1 ← (byte) play_collision::return#15 + [238] (byte) play_collision::xpos#1 ← (byte) current_xpos#21 - (byte/signed byte/word/signed word/dword/signed dword) 1 + [239] (byte) play_collision::ypos#1 ← (byte) current_ypos#18 + [240] (byte) play_collision::orientation#1 ← (byte) current_orientation#20 + [241] (byte*~) current_piece#99 ← (byte*) current_piece#15 + [242] call play_collision + [243] (byte) play_collision::return#1 ← (byte) play_collision::return#15 to:play_move_leftright::@14 play_move_leftright::@14: scope:[play_move_leftright] from play_move_leftright::@1 - [216] (byte~) play_move_leftright::$8 ← (byte) play_collision::return#1 - [217] if((byte~) play_move_leftright::$8!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return + [244] (byte~) play_move_leftright::$8 ← (byte) play_collision::return#1 + [245] 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 - [218] (byte) current_xpos#7 ← -- (byte) current_xpos#20 + [246] (byte) current_xpos#7 ← -- (byte) current_xpos#21 to:play_move_leftright::@return play_move_down: scope:[play_move_down] from play_movement - [219] (byte) current_movedown_counter#12 ← ++ (byte) current_movedown_counter#16 - [220] if((byte) play_move_down::key_event#0!=(const byte) KEY_SPACE#0) goto play_move_down::@1 + [247] (byte) current_movedown_counter#12 ← ++ (byte) current_movedown_counter#16 + [248] 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 - [221] phi() + [249] phi() to:play_move_down::@1 play_move_down::@1: scope:[play_move_down] from play_move_down play_move_down::@8 - [222] (byte) play_move_down::movedown#10 ← phi( play_move_down/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_down::@8/(byte/signed byte/word/signed word/dword/signed dword) 1 ) - [223] call keyboard_event_pressed - [224] (byte) keyboard_event_pressed::return#12 ← (byte) keyboard_event_pressed::return#11 + [250] (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 ) + [251] call keyboard_event_pressed + [252] (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 - [225] (byte~) play_move_down::$2 ← (byte) keyboard_event_pressed::return#12 - [226] if((byte~) play_move_down::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@2 + [253] (byte~) play_move_down::$2 ← (byte) keyboard_event_pressed::return#12 + [254] 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 - [227] if((byte) current_movedown_counter#12<(const byte) current_movedown_fast#0) goto play_move_down::@2 + [255] if((byte) current_movedown_counter#12<(const byte) current_movedown_fast#0) goto play_move_down::@2 to:play_move_down::@10 play_move_down::@10: scope:[play_move_down] from play_move_down::@9 - [228] (byte) play_move_down::movedown#2 ← ++ (byte) play_move_down::movedown#10 + [256] (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 - [229] (byte) play_move_down::movedown#7 ← phi( play_move_down::@10/(byte) play_move_down::movedown#2 play_move_down::@17/(byte) play_move_down::movedown#10 play_move_down::@9/(byte) play_move_down::movedown#10 ) - [230] if((byte) current_movedown_counter#12<(byte) current_movedown_slow#14) goto play_move_down::@4 + [257] (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 ) + [258] if((byte) current_movedown_counter#12<(byte) current_movedown_slow#14) goto play_move_down::@4 to:play_move_down::@11 play_move_down::@11: scope:[play_move_down] from play_move_down::@2 - [231] (byte) play_move_down::movedown#3 ← ++ (byte) play_move_down::movedown#7 + [259] (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 - [232] (byte) play_move_down::movedown#6 ← phi( play_move_down::@11/(byte) play_move_down::movedown#3 play_move_down::@2/(byte) play_move_down::movedown#7 ) - [233] if((byte) play_move_down::movedown#6==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@return + [260] (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 ) + [261] 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 - [234] (byte) play_collision::ypos#0 ← (byte) current_ypos#25 + (byte/signed byte/word/signed word/dword/signed dword) 1 - [235] (byte) play_collision::xpos#0 ← (byte) current_xpos#113 - [236] (byte) play_collision::orientation#0 ← (byte) current_orientation#12 - [237] (byte*~) current_piece#90 ← (byte*) current_piece#20 - [238] call play_collision - [239] (byte) play_collision::return#0 ← (byte) play_collision::return#15 + [262] (byte) play_collision::ypos#0 ← (byte) current_ypos#10 + (byte/signed byte/word/signed word/dword/signed dword) 1 + [263] (byte) play_collision::xpos#0 ← (byte) current_xpos#121 + [264] (byte) play_collision::orientation#0 ← (byte) current_orientation#13 + [265] (byte*~) current_piece#98 ← (byte*) current_piece#10 + [266] call play_collision + [267] (byte) play_collision::return#0 ← (byte) play_collision::return#15 to:play_move_down::@18 play_move_down::@18: scope:[play_move_down] from play_move_down::@12 - [240] (byte~) play_move_down::$12 ← (byte) play_collision::return#0 - [241] if((byte~) play_move_down::$12==(const byte) COLLISION_NONE#0) goto play_move_down::@6 + [268] (byte~) play_move_down::$12 ← (byte) play_collision::return#0 + [269] 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 - [242] phi() - [243] call play_lock_current + [270] phi() + [271] call play_lock_current to:play_move_down::@19 play_move_down::@19: scope:[play_move_down] from play_move_down::@13 - [244] phi() - [245] call play_remove_lines - [246] (byte) play_remove_lines::return#0 ← (byte) play_remove_lines::removed#7 + [272] phi() + [273] call play_remove_lines + [274] (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 - [247] (byte) play_move_down::removed#0 ← (byte) play_remove_lines::return#0 - [248] (byte) play_update_score::removed#0 ← (byte) play_move_down::removed#0 - [249] call play_update_score + [275] (byte) play_move_down::removed#0 ← (byte) play_remove_lines::return#0 + [276] (byte) play_update_score::removed#0 ← (byte) play_move_down::removed#0 + [277] call play_update_score to:play_move_down::@21 play_move_down::@21: scope:[play_move_down] from play_move_down::@20 - [250] phi() - [251] call play_spawn_current - [252] (byte*~) current_piece#95 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) + [278] phi() + [279] call play_spawn_current + [280] (byte*~) current_piece#103 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$0) to:play_move_down::@7 play_move_down::@7: scope:[play_move_down] from play_move_down::@21 play_move_down::@6 - [253] (byte) game_over#26 ← phi( play_move_down::@21/(byte) game_over#15 play_move_down::@6/(byte) game_over#19 ) - [253] (byte) current_xpos#41 ← phi( play_move_down::@21/(byte) current_xpos#28 play_move_down::@6/(byte) current_xpos#113 ) - [253] (byte*) current_piece_gfx#33 ← phi( play_move_down::@21/(byte*) current_piece_gfx#21 play_move_down::@6/(byte*) current_piece_gfx#103 ) - [253] (byte) current_orientation#36 ← phi( play_move_down::@21/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_down::@6/(byte) current_orientation#12 ) - [253] (byte) current_piece_char#27 ← phi( play_move_down::@21/(byte) current_piece_char#16 play_move_down::@6/(byte) current_piece_char#19 ) - [253] (byte*) current_piece#27 ← phi( play_move_down::@21/(byte*~) current_piece#95 play_move_down::@6/(byte*) current_piece#20 ) - [253] (byte) level_bcd#32 ← phi( play_move_down::@21/(byte) level_bcd#19 play_move_down::@6/(byte) level_bcd#11 ) - [253] (byte) current_movedown_slow#38 ← phi( play_move_down::@21/(byte) current_movedown_slow#23 play_move_down::@6/(byte) current_movedown_slow#14 ) - [253] (byte) level#31 ← phi( play_move_down::@21/(byte) level#18 play_move_down::@6/(byte) level#10 ) - [253] (dword) score_bcd#27 ← phi( play_move_down::@21/(dword) score_bcd#16 play_move_down::@6/(dword) score_bcd#18 ) - [253] (word) lines_bcd#27 ← phi( play_move_down::@21/(word) lines_bcd#17 play_move_down::@6/(word) lines_bcd#19 ) - [253] (byte) current_ypos#36 ← phi( play_move_down::@21/(byte) current_ypos#22 play_move_down::@6/(byte) current_ypos#2 ) + [281] (byte) next_piece_idx#31 ← phi( play_move_down::@21/(byte) play_spawn_current::piece_idx#2 play_move_down::@6/(byte) next_piece_idx#10 ) + [281] (byte) game_over#28 ← phi( play_move_down::@21/(byte) game_over#52 play_move_down::@6/(byte) game_over#10 ) + [281] (byte) current_xpos#43 ← phi( play_move_down::@21/(byte) current_xpos#102 play_move_down::@6/(byte) current_xpos#121 ) + [281] (byte*) current_piece_gfx#35 ← phi( play_move_down::@21/(byte*) current_piece_gfx#7 play_move_down::@6/(byte*) current_piece_gfx#111 ) + [281] (byte) current_orientation#38 ← phi( play_move_down::@21/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_down::@6/(byte) current_orientation#13 ) + [281] (byte) current_piece_char#29 ← phi( play_move_down::@21/(byte) current_piece_char#4 play_move_down::@6/(byte) current_piece_char#21 ) + [281] (byte*) current_piece#29 ← phi( play_move_down::@21/(byte*~) current_piece#103 play_move_down::@6/(byte*) current_piece#10 ) + [281] (byte) level_bcd#32 ← phi( play_move_down::@21/(byte) level_bcd#19 play_move_down::@6/(byte) level_bcd#11 ) + [281] (byte) current_movedown_slow#38 ← phi( play_move_down::@21/(byte) current_movedown_slow#23 play_move_down::@6/(byte) current_movedown_slow#14 ) + [281] (byte) level#31 ← phi( play_move_down::@21/(byte) level#18 play_move_down::@6/(byte) level#10 ) + [281] (dword) score_bcd#27 ← phi( play_move_down::@21/(dword) score_bcd#16 play_move_down::@6/(dword) score_bcd#18 ) + [281] (word) lines_bcd#27 ← phi( play_move_down::@21/(word) lines_bcd#17 play_move_down::@6/(word) lines_bcd#19 ) + [281] (byte) current_ypos#38 ← phi( play_move_down::@21/(byte) current_ypos#5 play_move_down::@6/(byte) current_ypos#2 ) to:play_move_down::@return play_move_down::@return: scope:[play_move_down] from play_move_down::@4 play_move_down::@7 - [254] (byte) game_over#14 ← phi( play_move_down::@4/(byte) game_over#19 play_move_down::@7/(byte) game_over#26 ) - [254] (byte) current_xpos#20 ← phi( play_move_down::@4/(byte) current_xpos#113 play_move_down::@7/(byte) current_xpos#41 ) - [254] (byte*) current_piece_gfx#18 ← phi( play_move_down::@4/(byte*) current_piece_gfx#103 play_move_down::@7/(byte*) current_piece_gfx#33 ) - [254] (byte) current_orientation#19 ← phi( play_move_down::@4/(byte) current_orientation#12 play_move_down::@7/(byte) current_orientation#36 ) - [254] (byte) current_piece_char#14 ← phi( play_move_down::@4/(byte) current_piece_char#19 play_move_down::@7/(byte) current_piece_char#27 ) - [254] (byte*) current_piece#14 ← phi( play_move_down::@4/(byte*) current_piece#20 play_move_down::@7/(byte*) current_piece#27 ) - [254] (byte) level_bcd#17 ← phi( play_move_down::@4/(byte) level_bcd#11 play_move_down::@7/(byte) level_bcd#32 ) - [254] (byte) current_movedown_slow#21 ← phi( play_move_down::@4/(byte) current_movedown_slow#14 play_move_down::@7/(byte) current_movedown_slow#38 ) - [254] (byte) level#16 ← phi( play_move_down::@4/(byte) level#10 play_move_down::@7/(byte) level#31 ) - [254] (dword) score_bcd#14 ← phi( play_move_down::@4/(dword) score_bcd#18 play_move_down::@7/(dword) score_bcd#27 ) - [254] (word) lines_bcd#15 ← phi( play_move_down::@4/(word) lines_bcd#19 play_move_down::@7/(word) lines_bcd#27 ) - [254] (byte) current_ypos#17 ← phi( play_move_down::@4/(byte) current_ypos#25 play_move_down::@7/(byte) current_ypos#36 ) - [254] (byte) current_movedown_counter#14 ← phi( play_move_down::@4/(byte) current_movedown_counter#12 play_move_down::@7/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [254] (byte) play_move_down::return#3 ← phi( play_move_down::@4/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_down::@7/(byte/signed byte/word/signed word/dword/signed dword) 1 ) - [255] return + [282] (byte) next_piece_idx#16 ← phi( play_move_down::@4/(byte) next_piece_idx#10 play_move_down::@7/(byte) next_piece_idx#31 ) + [282] (byte) game_over#15 ← phi( play_move_down::@4/(byte) game_over#10 play_move_down::@7/(byte) game_over#28 ) + [282] (byte) current_xpos#21 ← phi( play_move_down::@4/(byte) current_xpos#121 play_move_down::@7/(byte) current_xpos#43 ) + [282] (byte*) current_piece_gfx#19 ← phi( play_move_down::@4/(byte*) current_piece_gfx#111 play_move_down::@7/(byte*) current_piece_gfx#35 ) + [282] (byte) current_orientation#20 ← phi( play_move_down::@4/(byte) current_orientation#13 play_move_down::@7/(byte) current_orientation#38 ) + [282] (byte) current_piece_char#15 ← phi( play_move_down::@4/(byte) current_piece_char#21 play_move_down::@7/(byte) current_piece_char#29 ) + [282] (byte*) current_piece#15 ← phi( play_move_down::@4/(byte*) current_piece#10 play_move_down::@7/(byte*) current_piece#29 ) + [282] (byte) level_bcd#17 ← phi( play_move_down::@4/(byte) level_bcd#11 play_move_down::@7/(byte) level_bcd#32 ) + [282] (byte) current_movedown_slow#21 ← phi( play_move_down::@4/(byte) current_movedown_slow#14 play_move_down::@7/(byte) current_movedown_slow#38 ) + [282] (byte) level#16 ← phi( play_move_down::@4/(byte) level#10 play_move_down::@7/(byte) level#31 ) + [282] (dword) score_bcd#14 ← phi( play_move_down::@4/(dword) score_bcd#18 play_move_down::@7/(dword) score_bcd#27 ) + [282] (word) lines_bcd#15 ← phi( play_move_down::@4/(word) lines_bcd#19 play_move_down::@7/(word) lines_bcd#27 ) + [282] (byte) current_ypos#18 ← phi( play_move_down::@4/(byte) current_ypos#10 play_move_down::@7/(byte) current_ypos#38 ) + [282] (byte) current_movedown_counter#14 ← phi( play_move_down::@4/(byte) current_movedown_counter#12 play_move_down::@7/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [282] (byte) play_move_down::return#3 ← phi( play_move_down::@4/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_down::@7/(byte/signed byte/word/signed word/dword/signed dword) 1 ) + [283] return to:@return play_move_down::@6: scope:[play_move_down] from play_move_down::@18 - [256] (byte) current_ypos#2 ← ++ (byte) current_ypos#25 + [284] (byte) current_ypos#2 ← ++ (byte) current_ypos#10 to:play_move_down::@7 -play_spawn_current: scope:[play_spawn_current] from main::@29 play_move_down::@21 - [257] (byte) game_over#70 ← phi( main::@29/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_down::@21/(byte) game_over#19 ) +play_spawn_current: scope:[play_spawn_current] from main::@29 main::@30 play_move_down::@21 + [285] (byte) game_over#65 ← phi( main::@29/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@30/(byte) game_over#52 play_move_down::@21/(byte) game_over#10 ) + [285] (byte) next_piece_idx#17 ← phi( main::@29/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@30/(byte) play_spawn_current::piece_idx#2 play_move_down::@21/(byte) next_piece_idx#10 ) + [286] (byte) play_spawn_current::current_piece_idx#0 ← (byte) next_piece_idx#17 + [287] (byte~) play_spawn_current::$0 ← (byte) play_spawn_current::current_piece_idx#0 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [288] (byte) current_piece_char#4 ← *((const byte[]) PIECES_CHARS#0 + (byte) play_spawn_current::current_piece_idx#0) + [289] (byte*) current_piece_gfx#7 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$0) + (byte/signed byte/word/signed word/dword/signed dword) 0 + [290] (byte) current_xpos#102 ← *((const byte[]) PIECES_START_X#0 + (byte) play_spawn_current::current_piece_idx#0) + [291] (byte) current_ypos#5 ← *((const byte[]) PIECES_START_Y#0 + (byte) play_spawn_current::current_piece_idx#0) + [292] (byte) play_collision::xpos#4 ← (byte) current_xpos#102 + [293] (byte) play_collision::ypos#4 ← (byte) current_ypos#5 + [294] (byte*~) current_piece#102 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$0) + [295] call play_collision + [296] (byte) play_collision::return#10 ← (byte) play_collision::return#15 + to:play_spawn_current::@9 +play_spawn_current::@9: scope:[play_spawn_current] from play_spawn_current + [297] (byte~) play_spawn_current::$2 ← (byte) play_collision::return#10 + [298] if((byte~) play_spawn_current::$2!=(const byte) COLLISION_PLAYFIELD#0) goto play_spawn_current::@11 to:play_spawn_current::@1 -play_spawn_current::@1: scope:[play_spawn_current] from play_spawn_current play_spawn_current::@9 - [258] (byte) play_spawn_current::piece_idx#2 ← phi( play_spawn_current/(byte/signed byte/word/signed word/dword/signed dword) 7 play_spawn_current::@9/(byte) play_spawn_current::piece_idx#1 ) - [259] if((byte) play_spawn_current::piece_idx#2==(byte/signed byte/word/signed word/dword/signed dword) 7) goto play_spawn_current::@2 - to:play_spawn_current::@3 -play_spawn_current::@3: scope:[play_spawn_current] from play_spawn_current::@1 - [260] (byte~) play_spawn_current::$3 ← (byte) play_spawn_current::piece_idx#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [261] (byte) current_piece_char#16 ← *((const byte[]) PIECES_CHARS#0 + (byte) play_spawn_current::piece_idx#2) - [262] (byte*) current_piece_gfx#21 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) + (byte/signed byte/word/signed word/dword/signed dword) 0 - [263] (byte) current_xpos#28 ← *((const byte[]) PIECES_START_X#0 + (byte) play_spawn_current::piece_idx#2) - [264] (byte) current_ypos#22 ← *((const byte[]) PIECES_START_Y#0 + (byte) play_spawn_current::piece_idx#2) - [265] (byte) play_collision::xpos#4 ← (byte) current_xpos#28 - [266] (byte) play_collision::ypos#4 ← (byte) current_ypos#22 - [267] (byte*~) current_piece#94 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) - [268] call play_collision - [269] (byte) play_collision::return#10 ← (byte) play_collision::return#15 +play_spawn_current::@1: scope:[play_spawn_current] from play_spawn_current::@11 play_spawn_current::@9 + [299] (byte) game_over#52 ← phi( play_spawn_current::@9/(byte/signed byte/word/signed word/dword/signed dword) 1 play_spawn_current::@11/(byte) game_over#65 ) + to:play_spawn_current::@2 +play_spawn_current::@2: scope:[play_spawn_current] from play_spawn_current::@1 play_spawn_current::@10 + [300] (byte) play_spawn_current::piece_idx#2 ← phi( play_spawn_current::@1/(byte/signed byte/word/signed word/dword/signed dword) 7 play_spawn_current::@10/(byte) play_spawn_current::piece_idx#1 ) + [301] if((byte) play_spawn_current::piece_idx#2==(byte/signed byte/word/signed word/dword/signed dword) 7) goto play_spawn_current::@3 + to:play_spawn_current::@return +play_spawn_current::@return: scope:[play_spawn_current] from play_spawn_current::@2 + [302] return + to:@return +play_spawn_current::@3: scope:[play_spawn_current] from play_spawn_current::@2 + [303] phi() + [304] call sid_rnd + [305] (byte) sid_rnd::return#2 ← (byte) sid_rnd::return#0 to:play_spawn_current::@10 play_spawn_current::@10: scope:[play_spawn_current] from play_spawn_current::@3 - [270] (byte~) play_spawn_current::$5 ← (byte) play_collision::return#10 - [271] if((byte~) play_spawn_current::$5!=(const byte) COLLISION_PLAYFIELD#0) goto play_spawn_current::@11 - to:play_spawn_current::@return -play_spawn_current::@return: scope:[play_spawn_current] from play_spawn_current::@10 play_spawn_current::@11 - [272] (byte) game_over#15 ← phi( play_spawn_current::@11/(byte) game_over#70 play_spawn_current::@10/(byte/signed byte/word/signed word/dword/signed dword) 1 ) - [273] return - to:@return -play_spawn_current::@11: scope:[play_spawn_current] from play_spawn_current::@10 - [274] phi() - to:play_spawn_current::@return -play_spawn_current::@2: scope:[play_spawn_current] from play_spawn_current::@1 - [275] phi() - [276] call sid_rnd - [277] (byte) sid_rnd::return#2 ← (byte) sid_rnd::return#0 - to:play_spawn_current::@9 -play_spawn_current::@9: scope:[play_spawn_current] from play_spawn_current::@2 - [278] (byte~) play_spawn_current::$1 ← (byte) sid_rnd::return#2 - [279] (byte) play_spawn_current::piece_idx#1 ← (byte~) play_spawn_current::$1 & (byte/signed byte/word/signed word/dword/signed dword) 7 + [306] (byte~) play_spawn_current::$6 ← (byte) sid_rnd::return#2 + [307] (byte) play_spawn_current::piece_idx#1 ← (byte~) play_spawn_current::$6 & (byte/signed byte/word/signed word/dword/signed dword) 7 + to:play_spawn_current::@2 +play_spawn_current::@11: scope:[play_spawn_current] from play_spawn_current::@9 + [308] phi() to:play_spawn_current::@1 -sid_rnd: scope:[sid_rnd] from play_spawn_current::@2 - [280] (byte) sid_rnd::return#0 ← *((const byte*) SID_VOICE3_OSC#0) +sid_rnd: scope:[sid_rnd] from play_spawn_current::@3 + [309] (byte) sid_rnd::return#0 ← *((const byte*) SID_VOICE3_OSC#0) to:sid_rnd::@return sid_rnd::@return: scope:[sid_rnd] from sid_rnd - [281] return + [310] return to:@return play_update_score: scope:[play_update_score] from play_move_down::@20 - [282] if((byte) play_update_score::removed#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_update_score::@return + [311] 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 - [283] (byte~) play_update_score::$2 ← < (word) lines_bcd#19 - [284] (byte) play_update_score::lines_before#0 ← (byte~) play_update_score::$2 & (byte/word/signed word/dword/signed dword) 240 - [285] (byte~) play_update_score::$4 ← (byte) play_update_score::removed#0 << (byte/signed byte/word/signed word/dword/signed dword) 2 - [286] (dword) play_update_score::add_bcd#0 ← *((const dword[5]) score_add_bcd#0 + (byte~) play_update_score::$4) + [312] (byte~) play_update_score::$2 ← < (word) lines_bcd#19 + [313] (byte) play_update_score::lines_before#0 ← (byte~) play_update_score::$2 & (byte/word/signed word/dword/signed dword) 240 + [314] (byte~) play_update_score::$4 ← (byte) play_update_score::removed#0 << (byte/signed byte/word/signed word/dword/signed dword) 2 + [315] (dword) play_update_score::add_bcd#0 ← *((const dword[5]) score_add_bcd#0 + (byte~) play_update_score::$4) asm { sed } - [288] (word) lines_bcd#30 ← (word) lines_bcd#19 + (byte) play_update_score::removed#0 - [289] (dword) score_bcd#30 ← (dword) score_bcd#18 + (dword) play_update_score::add_bcd#0 + [317] (word) lines_bcd#30 ← (word) lines_bcd#19 + (byte) play_update_score::removed#0 + [318] (dword) score_bcd#30 ← (dword) score_bcd#18 + (dword) play_update_score::add_bcd#0 asm { cld } - [291] (byte~) play_update_score::$5 ← < (word) lines_bcd#30 - [292] (byte) play_update_score::lines_after#0 ← (byte~) play_update_score::$5 & (byte/word/signed word/dword/signed dword) 240 - [293] if((byte) play_update_score::lines_before#0==(byte) play_update_score::lines_after#0) goto play_update_score::@return + [320] (byte~) play_update_score::$5 ← < (word) lines_bcd#30 + [321] (byte) play_update_score::lines_after#0 ← (byte~) play_update_score::$5 & (byte/word/signed word/dword/signed dword) 240 + [322] if((byte) play_update_score::lines_before#0==(byte) play_update_score::lines_after#0) goto play_update_score::@return to:play_update_score::@4 play_update_score::@4: scope:[play_update_score] from play_update_score::@3 - [294] phi() - [295] call play_increase_level + [323] phi() + [324] call play_increase_level to:play_update_score::@return play_update_score::@return: scope:[play_update_score] from play_update_score play_update_score::@3 play_update_score::@4 - [296] (byte) level_bcd#19 ← phi( play_update_score/(byte) level_bcd#11 play_update_score::@3/(byte) level_bcd#11 play_update_score::@4/(byte) level_bcd#64 ) - [296] (byte) current_movedown_slow#23 ← phi( play_update_score/(byte) current_movedown_slow#14 play_update_score::@3/(byte) current_movedown_slow#14 play_update_score::@4/(byte) current_movedown_slow#69 ) - [296] (byte) level#18 ← phi( play_update_score/(byte) level#10 play_update_score::@3/(byte) level#10 play_update_score::@4/(byte) level#20 ) - [296] (dword) score_bcd#16 ← phi( play_update_score/(dword) score_bcd#18 play_update_score::@3/(dword) score_bcd#30 play_update_score::@4/(dword) score_bcd#30 ) - [296] (word) lines_bcd#17 ← phi( play_update_score/(word) lines_bcd#19 play_update_score::@3/(word) lines_bcd#30 play_update_score::@4/(word) lines_bcd#30 ) - [297] return + [325] (byte) level_bcd#19 ← phi( play_update_score/(byte) level_bcd#11 play_update_score::@3/(byte) level_bcd#11 play_update_score::@4/(byte) level_bcd#64 ) + [325] (byte) current_movedown_slow#23 ← phi( play_update_score/(byte) current_movedown_slow#14 play_update_score::@3/(byte) current_movedown_slow#14 play_update_score::@4/(byte) current_movedown_slow#69 ) + [325] (byte) level#18 ← phi( play_update_score/(byte) level#10 play_update_score::@3/(byte) level#10 play_update_score::@4/(byte) level#20 ) + [325] (dword) score_bcd#16 ← phi( play_update_score/(dword) score_bcd#18 play_update_score::@3/(dword) score_bcd#30 play_update_score::@4/(dword) score_bcd#30 ) + [325] (word) lines_bcd#17 ← phi( play_update_score/(word) lines_bcd#19 play_update_score::@3/(word) lines_bcd#30 play_update_score::@4/(word) lines_bcd#30 ) + [326] return to:@return play_increase_level: scope:[play_increase_level] from play_update_score::@4 - [298] (byte) level#20 ← ++ (byte) level#10 - [299] if((byte) level#20>(byte/signed byte/word/signed word/dword/signed dword) 29) goto play_increase_level::@2 + [327] (byte) level#20 ← ++ (byte) level#10 + [328] if((byte) level#20>(byte/signed byte/word/signed word/dword/signed dword) 29) goto play_increase_level::@2 to:play_increase_level::@5 play_increase_level::@5: scope:[play_increase_level] from play_increase_level - [300] (byte) current_movedown_slow#10 ← *((const byte[]) MOVEDOWN_SLOW_SPEEDS#0 + (byte) level#20) + [329] (byte) current_movedown_slow#10 ← *((const byte[]) MOVEDOWN_SLOW_SPEEDS#0 + (byte) level#20) to:play_increase_level::@2 play_increase_level::@2: scope:[play_increase_level] from play_increase_level play_increase_level::@5 - [301] (byte) current_movedown_slow#69 ← phi( play_increase_level/(byte/signed byte/word/signed word/dword/signed dword) 1 play_increase_level::@5/(byte) current_movedown_slow#10 ) - [302] (byte) level_bcd#21 ← ++ (byte) level_bcd#11 - [303] (byte~) play_increase_level::$1 ← (byte) level_bcd#21 & (byte/signed byte/word/signed word/dword/signed dword) 15 - [304] if((byte~) play_increase_level::$1!=(byte/signed byte/word/signed word/dword/signed dword) 10) goto play_increase_level::@3 + [330] (byte) current_movedown_slow#69 ← phi( play_increase_level/(byte/signed byte/word/signed word/dword/signed dword) 1 play_increase_level::@5/(byte) current_movedown_slow#10 ) + [331] (byte) level_bcd#21 ← ++ (byte) level_bcd#11 + [332] (byte~) play_increase_level::$1 ← (byte) level_bcd#21 & (byte/signed byte/word/signed word/dword/signed dword) 15 + [333] if((byte~) play_increase_level::$1!=(byte/signed byte/word/signed word/dword/signed dword) 10) goto play_increase_level::@3 to:play_increase_level::@7 play_increase_level::@7: scope:[play_increase_level] from play_increase_level::@2 - [305] (byte) level_bcd#8 ← (byte) level_bcd#21 + (byte/signed byte/word/signed word/dword/signed dword) 6 + [334] (byte) level_bcd#8 ← (byte) level_bcd#21 + (byte/signed byte/word/signed word/dword/signed dword) 6 to:play_increase_level::@3 play_increase_level::@3: scope:[play_increase_level] from play_increase_level::@2 play_increase_level::@7 - [306] (byte) level_bcd#64 ← phi( play_increase_level::@2/(byte) level_bcd#21 play_increase_level::@7/(byte) level_bcd#8 ) + [335] (byte) level_bcd#64 ← phi( play_increase_level::@2/(byte) level_bcd#21 play_increase_level::@7/(byte) level_bcd#8 ) asm { sed } to:play_increase_level::@4 play_increase_level::@4: scope:[play_increase_level] from play_increase_level::@3 play_increase_level::@4 - [308] (byte) play_increase_level::b#2 ← phi( play_increase_level::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 play_increase_level::@4/(byte) play_increase_level::b#1 ) - [309] (byte) play_increase_level::b4#0 ← (byte) play_increase_level::b#2 << (byte/signed byte/word/signed word/dword/signed dword) 2 - [310] *((const dword[5]) score_add_bcd#0 + (byte) play_increase_level::b4#0) ← *((const dword[5]) score_add_bcd#0 + (byte) play_increase_level::b4#0) + *((const dword[]) SCORE_BASE_BCD#0 + (byte) play_increase_level::b4#0) - [311] (byte) play_increase_level::b#1 ← ++ (byte) play_increase_level::b#2 - [312] if((byte) play_increase_level::b#1!=(byte/signed byte/word/signed word/dword/signed dword) 5) goto play_increase_level::@4 + [337] (byte) play_increase_level::b#2 ← phi( play_increase_level::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 play_increase_level::@4/(byte) play_increase_level::b#1 ) + [338] (byte) play_increase_level::b4#0 ← (byte) play_increase_level::b#2 << (byte/signed byte/word/signed word/dword/signed dword) 2 + [339] *((const dword[5]) score_add_bcd#0 + (byte) play_increase_level::b4#0) ← *((const dword[5]) score_add_bcd#0 + (byte) play_increase_level::b4#0) + *((const dword[]) SCORE_BASE_BCD#0 + (byte) play_increase_level::b4#0) + [340] (byte) play_increase_level::b#1 ← ++ (byte) play_increase_level::b#2 + [341] if((byte) play_increase_level::b#1!=(byte/signed byte/word/signed word/dword/signed dword) 5) goto play_increase_level::@4 to:play_increase_level::@8 play_increase_level::@8: scope:[play_increase_level] from play_increase_level::@4 asm { cld } to:play_increase_level::@return play_increase_level::@return: scope:[play_increase_level] from play_increase_level::@8 - [314] return + [343] return to:@return play_remove_lines: scope:[play_remove_lines] from play_move_down::@19 - [315] phi() + [344] phi() to:play_remove_lines::@1 play_remove_lines::@1: scope:[play_remove_lines] from play_remove_lines play_remove_lines::@4 - [316] (byte) play_remove_lines::removed#11 ← phi( play_remove_lines/(byte/signed byte/word/signed word/dword/signed dword) 0 play_remove_lines::@4/(byte) play_remove_lines::removed#7 ) - [316] (byte) play_remove_lines::y#8 ← phi( play_remove_lines/(byte/signed byte/word/signed word/dword/signed dword) 0 play_remove_lines::@4/(byte) play_remove_lines::y#1 ) - [316] (byte) play_remove_lines::w#12 ← phi( play_remove_lines/(const byte) PLAYFIELD_LINES#0*(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1 play_remove_lines::@4/(byte) play_remove_lines::w#11 ) - [316] (byte) play_remove_lines::r#3 ← phi( play_remove_lines/(const byte) PLAYFIELD_LINES#0*(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1 play_remove_lines::@4/(byte) play_remove_lines::r#1 ) + [345] (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 ) + [345] (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 ) + [345] (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 ) + [345] (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 - [317] (byte) play_remove_lines::full#4 ← phi( play_remove_lines::@1/(byte/signed byte/word/signed word/dword/signed dword) 1 play_remove_lines::@3/(byte) play_remove_lines::full#2 ) - [317] (byte) play_remove_lines::x#2 ← phi( play_remove_lines::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 play_remove_lines::@3/(byte) play_remove_lines::x#1 ) - [317] (byte) play_remove_lines::w#4 ← phi( play_remove_lines::@1/(byte) play_remove_lines::w#12 play_remove_lines::@3/(byte) play_remove_lines::w#1 ) - [317] (byte) play_remove_lines::r#2 ← phi( play_remove_lines::@1/(byte) play_remove_lines::r#3 play_remove_lines::@3/(byte) play_remove_lines::r#1 ) - [318] (byte) play_remove_lines::c#0 ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::r#2) - [319] (byte) play_remove_lines::r#1 ← -- (byte) play_remove_lines::r#2 - [320] if((byte) play_remove_lines::c#0!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_remove_lines::@18 + [346] (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 ) + [346] (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 ) + [346] (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 ) + [346] (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 ) + [347] (byte) play_remove_lines::c#0 ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::r#2) + [348] (byte) play_remove_lines::r#1 ← -- (byte) play_remove_lines::r#2 + [349] 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 - [321] (byte) play_remove_lines::full#2 ← phi( play_remove_lines::@18/(byte) play_remove_lines::full#4 play_remove_lines::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [322] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::w#4) ← (byte) play_remove_lines::c#0 - [323] (byte) play_remove_lines::w#1 ← -- (byte) play_remove_lines::w#4 - [324] (byte) play_remove_lines::x#1 ← ++ (byte) play_remove_lines::x#2 - [325] if((byte) play_remove_lines::x#1!=(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto play_remove_lines::@2 + [350] (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 ) + [351] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::w#4) ← (byte) play_remove_lines::c#0 + [352] (byte) play_remove_lines::w#1 ← -- (byte) play_remove_lines::w#4 + [353] (byte) play_remove_lines::x#1 ← ++ (byte) play_remove_lines::x#2 + [354] 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 - [326] if((byte) play_remove_lines::full#2!=(byte/signed byte/word/signed word/dword/signed dword) 1) goto play_remove_lines::@4 + [355] 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 - [327] (byte) play_remove_lines::w#2 ← (byte) play_remove_lines::w#1 + (const byte) PLAYFIELD_COLS#0 - [328] (byte) play_remove_lines::removed#1 ← ++ (byte) play_remove_lines::removed#11 + [356] (byte) play_remove_lines::w#2 ← (byte) play_remove_lines::w#1 + (const byte) PLAYFIELD_COLS#0 + [357] (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 - [329] (byte) play_remove_lines::removed#7 ← phi( play_remove_lines::@10/(byte) play_remove_lines::removed#1 play_remove_lines::@9/(byte) play_remove_lines::removed#11 ) - [329] (byte) play_remove_lines::w#11 ← phi( play_remove_lines::@10/(byte) play_remove_lines::w#2 play_remove_lines::@9/(byte) play_remove_lines::w#1 ) - [330] (byte) play_remove_lines::y#1 ← ++ (byte) play_remove_lines::y#8 - [331] if((byte) play_remove_lines::y#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto play_remove_lines::@1 + [358] (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 ) + [358] (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 ) + [359] (byte) play_remove_lines::y#1 ← ++ (byte) play_remove_lines::y#8 + [360] 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 - [332] (byte) play_remove_lines::w#6 ← phi( play_remove_lines::@4/(byte) play_remove_lines::w#11 play_remove_lines::@6/(byte) play_remove_lines::w#3 ) - [333] if((byte) play_remove_lines::w#6!=(byte/word/signed word/dword/signed dword) 255) goto play_remove_lines::@6 + [361] (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 ) + [362] 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 - [334] return + [363] return to:@return play_remove_lines::@6: scope:[play_remove_lines] from play_remove_lines::@5 - [335] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::w#6) ← (byte/signed byte/word/signed word/dword/signed dword) 0 - [336] (byte) play_remove_lines::w#3 ← -- (byte) play_remove_lines::w#6 + [364] *((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 + [365] (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 - [337] phi() + [366] phi() to:play_remove_lines::@3 play_lock_current: scope:[play_lock_current] from play_move_down::@13 - [338] (byte) play_lock_current::ypos2#0 ← (byte) current_ypos#25 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [367] (byte) play_lock_current::ypos2#0 ← (byte) current_ypos#10 << (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 - [339] (byte) play_lock_current::l#6 ← phi( play_lock_current/(byte/signed byte/word/signed word/dword/signed dword) 0 play_lock_current::@7/(byte) play_lock_current::l#1 ) - [339] (byte) play_lock_current::i#3 ← phi( play_lock_current/(byte/signed byte/word/signed word/dword/signed dword) 0 play_lock_current::@7/(byte~) play_lock_current::i#7 ) - [339] (byte) play_lock_current::ypos2#2 ← phi( play_lock_current/(byte) play_lock_current::ypos2#0 play_lock_current::@7/(byte) play_lock_current::ypos2#1 ) - [340] (byte*) play_lock_current::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_lock_current::ypos2#2) - [341] (byte) play_lock_current::col#0 ← (byte) current_xpos#113 + [368] (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 ) + [368] (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 ) + [368] (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 ) + [369] (byte*) play_lock_current::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_lock_current::ypos2#2) + [370] (byte) play_lock_current::col#0 ← (byte) current_xpos#121 to:play_lock_current::@2 play_lock_current::@2: scope:[play_lock_current] from play_lock_current::@1 play_lock_current::@8 - [342] (byte) play_lock_current::c#2 ← phi( play_lock_current::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 play_lock_current::@8/(byte) play_lock_current::c#1 ) - [342] (byte) play_lock_current::col#2 ← phi( play_lock_current::@1/(byte) play_lock_current::col#0 play_lock_current::@8/(byte) play_lock_current::col#1 ) - [342] (byte) play_lock_current::i#2 ← phi( play_lock_current::@1/(byte) play_lock_current::i#3 play_lock_current::@8/(byte~) play_lock_current::i#9 ) - [343] (byte) play_lock_current::i#1 ← ++ (byte) play_lock_current::i#2 - [344] if(*((byte*) current_piece_gfx#103 + (byte) play_lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_lock_current::@3 + [371] (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 ) + [371] (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 ) + [371] (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 ) + [372] (byte) play_lock_current::i#1 ← ++ (byte) play_lock_current::i#2 + [373] if(*((byte*) current_piece_gfx#111 + (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 - [345] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::col#2) ← (byte) current_piece_char#19 + [374] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::col#2) ← (byte) current_piece_char#21 to:play_lock_current::@3 play_lock_current::@3: scope:[play_lock_current] from play_lock_current::@2 play_lock_current::@4 - [346] (byte) play_lock_current::col#1 ← ++ (byte) play_lock_current::col#2 - [347] (byte) play_lock_current::c#1 ← ++ (byte) play_lock_current::c#2 - [348] if((byte) play_lock_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_lock_current::@8 + [375] (byte) play_lock_current::col#1 ← ++ (byte) play_lock_current::col#2 + [376] (byte) play_lock_current::c#1 ← ++ (byte) play_lock_current::c#2 + [377] 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 - [349] (byte) play_lock_current::ypos2#1 ← (byte) play_lock_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 - [350] (byte) play_lock_current::l#1 ← ++ (byte) play_lock_current::l#6 - [351] if((byte) play_lock_current::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_lock_current::@7 + [378] (byte) play_lock_current::ypos2#1 ← (byte) play_lock_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 + [379] (byte) play_lock_current::l#1 ← ++ (byte) play_lock_current::l#6 + [380] 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 - [352] return + [381] return to:@return play_lock_current::@7: scope:[play_lock_current] from play_lock_current::@5 - [353] (byte~) play_lock_current::i#7 ← (byte) play_lock_current::i#1 + [382] (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 - [354] (byte~) play_lock_current::i#9 ← (byte) play_lock_current::i#1 + [383] (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 - [355] (byte) keyboard_event_pressed::keycode#5 ← phi( keyboard_event_scan::@10/(const byte) KEY_CTRL#0 keyboard_event_scan::@11/(const byte) KEY_COMMODORE#0 keyboard_event_scan::@20/(const byte) KEY_LSHIFT#0 keyboard_event_scan::@9/(const byte) KEY_RSHIFT#0 play_move_down::@1/(const byte) KEY_SPACE#0 ) - [356] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte/signed byte/word/signed word/dword/signed dword) 3 - [357] (byte) keyboard_event_pressed::row_bits#0 ← *((const byte[8]) keyboard_scan_values#0 + (byte~) keyboard_event_pressed::$0) - [358] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte/signed byte/word/signed word/dword/signed dword) 7 - [359] (byte) keyboard_event_pressed::return#11 ← (byte) keyboard_event_pressed::row_bits#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte~) keyboard_event_pressed::$1) + [384] (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 ) + [385] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte/signed byte/word/signed word/dword/signed dword) 3 + [386] (byte) keyboard_event_pressed::row_bits#0 ← *((const byte[8]) keyboard_scan_values#0 + (byte~) keyboard_event_pressed::$0) + [387] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte/signed byte/word/signed word/dword/signed dword) 7 + [388] (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 - [360] return + [389] return to:@return -keyboard_event_get: scope:[keyboard_event_get] from main::@34 - [361] if((byte) keyboard_events_size#13==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_get::@return +keyboard_event_get: scope:[keyboard_event_get] from main::@36 + [390] 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 - [362] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13 - [363] (byte) keyboard_event_get::return#1 ← *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#4) + [391] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13 + [392] (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 - [364] (byte) keyboard_events_size#16 ← phi( keyboard_event_get/(byte) keyboard_events_size#13 keyboard_event_get::@3/(byte) keyboard_events_size#4 ) - [364] (byte) keyboard_event_get::return#2 ← phi( keyboard_event_get/(byte/word/signed word/dword/signed dword) 255 keyboard_event_get::@3/(byte) keyboard_event_get::return#1 ) - [365] return + [393] (byte) keyboard_events_size#16 ← phi( keyboard_event_get/(byte) keyboard_events_size#13 keyboard_event_get::@3/(byte) keyboard_events_size#4 ) + [393] (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 ) + [394] return to:@return -keyboard_event_scan: scope:[keyboard_event_scan] from main::@33 - [366] phi() +keyboard_event_scan: scope:[keyboard_event_scan] from main::@35 + [395] phi() to:keyboard_event_scan::@1 keyboard_event_scan::@1: scope:[keyboard_event_scan] from keyboard_event_scan keyboard_event_scan::@3 - [367] (byte) keyboard_events_size#29 ← phi( keyboard_event_scan/(byte) keyboard_events_size#19 keyboard_event_scan::@3/(byte) keyboard_events_size#13 ) - [367] (byte) keyboard_event_scan::keycode#11 ← phi( keyboard_event_scan/(byte/signed byte/word/signed word/dword/signed dword) 0 keyboard_event_scan::@3/(byte) keyboard_event_scan::keycode#14 ) - [367] (byte) keyboard_event_scan::row#2 ← phi( keyboard_event_scan/(byte/signed byte/word/signed word/dword/signed dword) 0 keyboard_event_scan::@3/(byte) keyboard_event_scan::row#1 ) - [368] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 - [369] call keyboard_matrix_read - [370] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 + [396] (byte) keyboard_events_size#29 ← phi( keyboard_event_scan/(byte) keyboard_events_size#19 keyboard_event_scan::@3/(byte) keyboard_events_size#13 ) + [396] (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 ) + [396] (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 ) + [397] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 + [398] call keyboard_matrix_read + [399] (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 - [371] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 - [372] if((byte) keyboard_event_scan::row_scan#0!=*((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2)) goto keyboard_event_scan::@4 + [400] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 + [401] 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 - [373] (byte) keyboard_event_scan::keycode#1 ← (byte) keyboard_event_scan::keycode#11 + (byte/signed byte/word/signed word/dword/signed dword) 8 + [402] (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 - [374] (byte) keyboard_events_size#13 ← phi( keyboard_event_scan::@13/(byte) keyboard_events_size#29 keyboard_event_scan::@19/(byte) keyboard_events_size#30 ) - [374] (byte) keyboard_event_scan::keycode#14 ← phi( keyboard_event_scan::@13/(byte) keyboard_event_scan::keycode#1 keyboard_event_scan::@19/(byte) keyboard_event_scan::keycode#15 ) - [375] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 - [376] if((byte) keyboard_event_scan::row#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@1 + [403] (byte) keyboard_events_size#13 ← phi( keyboard_event_scan::@13/(byte) keyboard_events_size#29 keyboard_event_scan::@19/(byte) keyboard_events_size#30 ) + [403] (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 ) + [404] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 + [405] 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 - [377] phi() - [378] call keyboard_event_pressed - [379] (byte) keyboard_event_pressed::return#0 ← (byte) keyboard_event_pressed::return#11 + [406] phi() + [407] call keyboard_event_pressed + [408] (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 - [380] (byte~) keyboard_event_scan::$14 ← (byte) keyboard_event_pressed::return#0 - [381] if((byte~) keyboard_event_scan::$14==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@9 + [409] (byte~) keyboard_event_scan::$14 ← (byte) keyboard_event_pressed::return#0 + [410] 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 - [382] phi() + [411] phi() to:keyboard_event_scan::@9 keyboard_event_scan::@9: scope:[keyboard_event_scan] from keyboard_event_scan::@21 keyboard_event_scan::@26 - [383] (byte) keyboard_modifiers#11 ← phi( keyboard_event_scan::@21/(byte/signed byte/word/signed word/dword/signed dword) 0|(const byte) KEY_MODIFIER_LSHIFT#0 keyboard_event_scan::@26/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [384] call keyboard_event_pressed - [385] (byte) keyboard_event_pressed::return#1 ← (byte) keyboard_event_pressed::return#11 + [412] (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 ) + [413] call keyboard_event_pressed + [414] (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 - [386] (byte~) keyboard_event_scan::$18 ← (byte) keyboard_event_pressed::return#1 - [387] if((byte~) keyboard_event_scan::$18==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@10 + [415] (byte~) keyboard_event_scan::$18 ← (byte) keyboard_event_pressed::return#1 + [416] 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 - [388] (byte) keyboard_modifiers#3 ← (byte) keyboard_modifiers#11 | (const byte) KEY_MODIFIER_RSHIFT#0 + [417] (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 - [389] (byte) keyboard_modifiers#12 ← phi( keyboard_event_scan::@22/(byte) keyboard_modifiers#3 keyboard_event_scan::@27/(byte) keyboard_modifiers#11 ) - [390] call keyboard_event_pressed - [391] (byte) keyboard_event_pressed::return#2 ← (byte) keyboard_event_pressed::return#11 + [418] (byte) keyboard_modifiers#12 ← phi( keyboard_event_scan::@22/(byte) keyboard_modifiers#3 keyboard_event_scan::@27/(byte) keyboard_modifiers#11 ) + [419] call keyboard_event_pressed + [420] (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 - [392] (byte~) keyboard_event_scan::$22 ← (byte) keyboard_event_pressed::return#2 - [393] if((byte~) keyboard_event_scan::$22==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@11 + [421] (byte~) keyboard_event_scan::$22 ← (byte) keyboard_event_pressed::return#2 + [422] 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 - [394] (byte) keyboard_modifiers#4 ← (byte) keyboard_modifiers#12 | (const byte) KEY_MODIFIER_CTRL#0 + [423] (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 - [395] (byte) keyboard_modifiers#13 ← phi( keyboard_event_scan::@23/(byte) keyboard_modifiers#4 keyboard_event_scan::@28/(byte) keyboard_modifiers#12 ) - [396] call keyboard_event_pressed - [397] (byte) keyboard_event_pressed::return#10 ← (byte) keyboard_event_pressed::return#11 + [424] (byte) keyboard_modifiers#13 ← phi( keyboard_event_scan::@23/(byte) keyboard_modifiers#4 keyboard_event_scan::@28/(byte) keyboard_modifiers#12 ) + [425] call keyboard_event_pressed + [426] (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 - [398] (byte~) keyboard_event_scan::$26 ← (byte) keyboard_event_pressed::return#10 - [399] if((byte~) keyboard_event_scan::$26==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@return + [427] (byte~) keyboard_event_scan::$26 ← (byte) keyboard_event_pressed::return#10 + [428] 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 - [400] (byte) keyboard_modifiers#5 ← (byte) keyboard_modifiers#13 | (const byte) KEY_MODIFIER_COMMODORE#0 + [429] (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 - [401] return + [430] return to:@return keyboard_event_scan::@4: scope:[keyboard_event_scan] from keyboard_event_scan::@25 keyboard_event_scan::@5 - [402] (byte) keyboard_events_size#10 ← phi( keyboard_event_scan::@25/(byte) keyboard_events_size#29 keyboard_event_scan::@5/(byte) keyboard_events_size#30 ) - [402] (byte) keyboard_event_scan::keycode#10 ← phi( keyboard_event_scan::@25/(byte) keyboard_event_scan::keycode#11 keyboard_event_scan::@5/(byte) keyboard_event_scan::keycode#15 ) - [402] (byte) keyboard_event_scan::col#2 ← phi( keyboard_event_scan::@25/(byte/signed byte/word/signed word/dword/signed dword) 0 keyboard_event_scan::@5/(byte) keyboard_event_scan::col#1 ) - [403] (byte~) keyboard_event_scan::$3 ← (byte) keyboard_event_scan::row_scan#0 ^ *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) - [404] (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) - [405] if((byte~) keyboard_event_scan::$4==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@5 + [431] (byte) keyboard_events_size#10 ← phi( keyboard_event_scan::@25/(byte) keyboard_events_size#29 keyboard_event_scan::@5/(byte) keyboard_events_size#30 ) + [431] (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 ) + [431] (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 ) + [432] (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) + [433] (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) + [434] 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 - [406] if((byte) keyboard_events_size#10==(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@5 + [435] 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 - [407] (byte) keyboard_event_scan::event_type#0 ← (byte) keyboard_event_scan::row_scan#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) - [408] if((byte) keyboard_event_scan::event_type#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@7 + [436] (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) + [437] 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 - [409] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 - [410] (byte) keyboard_events_size#2 ← ++ (byte) keyboard_events_size#10 + [438] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 + [439] (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 - [411] (byte) keyboard_events_size#30 ← phi( keyboard_event_scan::@17/(byte) keyboard_events_size#2 keyboard_event_scan::@4/(byte) keyboard_events_size#10 keyboard_event_scan::@15/(byte) keyboard_events_size#10 keyboard_event_scan::@7/(byte) keyboard_events_size#1 ) - [412] (byte) keyboard_event_scan::keycode#15 ← ++ (byte) keyboard_event_scan::keycode#10 - [413] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 - [414] if((byte) keyboard_event_scan::col#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@4 + [440] (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 ) + [441] (byte) keyboard_event_scan::keycode#15 ← ++ (byte) keyboard_event_scan::keycode#10 + [442] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 + [443] 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 - [415] *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 + [444] *((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 - [416] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64 - [417] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte/word/dword~) keyboard_event_scan::$11 - [418] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#10 + [445] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64 + [446] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte/word/dword~) keyboard_event_scan::$11 + [447] (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 - [419] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) - [420] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) + [448] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) + [449] (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 - [421] return + [450] return to:@return render_show: scope:[render_show] from main::@6 - [422] if((byte) render_screen_show#16==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_show::toD0181 + [451] 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 - [423] phi() + [452] phi() to:render_show::@2 render_show::@2: scope:[render_show] from render_show::toD0181 render_show::toD0182 - [424] (byte) render_show::d018val#3 ← phi( render_show::toD0181/(const byte) render_show::toD0181_return#0 render_show::toD0182/(const byte) render_show::toD0182_return#0 ) - [425] *((const byte*) D018#0) ← (byte) render_show::d018val#3 - [426] (byte) render_screen_showing#1 ← (byte) render_screen_show#16 + [453] (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 ) + [454] *((const byte*) D018#0) ← (byte) render_show::d018val#3 + [455] (byte) render_screen_showing#1 ← (byte) render_screen_show#16 to:render_show::@return render_show::@return: scope:[render_show] from render_show::@2 - [427] return + [456] return to:@return render_show::toD0181: scope:[render_show] from render_show - [428] phi() + [457] phi() to:render_show::@2 play_init: scope:[play_init] from main::@28 - [429] phi() + [458] phi() to:play_init::@1 play_init::@1: scope:[play_init] from play_init play_init::@1 - [430] (byte) play_init::idx#2 ← phi( play_init/(byte/signed byte/word/signed word/dword/signed dword) 0 play_init::@1/(byte) play_init::idx#1 ) - [430] (byte*) play_init::pli#2 ← phi( play_init/(const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 play_init::@1/(byte*) play_init::pli#1 ) - [430] (byte) play_init::j#2 ← phi( play_init/(byte/signed byte/word/signed word/dword/signed dword) 0 play_init::@1/(byte) play_init::j#1 ) - [431] (byte~) play_init::$1 ← (byte) play_init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [432] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) play_init::$1) ← (byte*) play_init::pli#2 - [433] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) play_init::j#2) ← (byte) play_init::idx#2 - [434] (byte*) play_init::pli#1 ← (byte*) play_init::pli#2 + (const byte) PLAYFIELD_COLS#0 - [435] (byte) play_init::idx#1 ← (byte) play_init::idx#2 + (const byte) PLAYFIELD_COLS#0 - [436] (byte) play_init::j#1 ← ++ (byte) play_init::j#2 - [437] if((byte) play_init::j#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto play_init::@1 + [459] (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 ) + [459] (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 ) + [459] (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 ) + [460] (byte~) play_init::$1 ← (byte) play_init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [461] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) play_init::$1) ← (byte*) play_init::pli#2 + [462] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) play_init::j#2) ← (byte) play_init::idx#2 + [463] (byte*) play_init::pli#1 ← (byte*) play_init::pli#2 + (const byte) PLAYFIELD_COLS#0 + [464] (byte) play_init::idx#1 ← (byte) play_init::idx#2 + (const byte) PLAYFIELD_COLS#0 + [465] (byte) play_init::j#1 ← ++ (byte) play_init::j#2 + [466] if((byte) play_init::j#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto play_init::@1 to:play_init::@3 play_init::@3: scope:[play_init] from play_init::@1 - [438] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0+(const byte) PLAYFIELD_LINES#0) ← (const byte) PLAYFIELD_COLS#0*(const byte) PLAYFIELD_LINES#0 - [439] (byte) current_movedown_slow#1 ← *((const byte[]) MOVEDOWN_SLOW_SPEEDS#0) + [467] *((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 + [468] (byte) current_movedown_slow#1 ← *((const byte[]) MOVEDOWN_SLOW_SPEEDS#0) to:play_init::@2 play_init::@2: scope:[play_init] from play_init::@2 play_init::@3 - [440] (byte) play_init::b#2 ← phi( play_init::@2/(byte) play_init::b#1 play_init::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [441] (byte) play_init::b4#0 ← (byte) play_init::b#2 << (byte/signed byte/word/signed word/dword/signed dword) 2 - [442] *((const dword[5]) score_add_bcd#0 + (byte) play_init::b4#0) ← *((const dword[]) SCORE_BASE_BCD#0 + (byte) play_init::b4#0) - [443] (byte) play_init::b#1 ← ++ (byte) play_init::b#2 - [444] if((byte) play_init::b#1!=(byte/signed byte/word/signed word/dword/signed dword) 5) goto play_init::@2 + [469] (byte) play_init::b#2 ← phi( play_init::@2/(byte) play_init::b#1 play_init::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 ) + [470] (byte) play_init::b4#0 ← (byte) play_init::b#2 << (byte/signed byte/word/signed word/dword/signed dword) 2 + [471] *((const dword[5]) score_add_bcd#0 + (byte) play_init::b4#0) ← *((const dword[]) SCORE_BASE_BCD#0 + (byte) play_init::b4#0) + [472] (byte) play_init::b#1 ← ++ (byte) play_init::b#2 + [473] if((byte) play_init::b#1!=(byte/signed byte/word/signed word/dword/signed dword) 5) goto play_init::@2 to:play_init::@return play_init::@return: scope:[play_init] from play_init::@2 - [445] return + [474] return to:@return sprites_irq_init: scope:[sprites_irq_init] from main::@27 asm { sei } - [447] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 + [476] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 asm { ldaCIA1_INTERRUPT } - [449] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 - [450] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 - [451] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 - [452] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 - [453] *((const byte*) RASTER#0) ← (const byte) IRQ_RASTER_FIRST#0 - [454] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 - [455] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() + [478] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 + [479] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 + [480] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 + [481] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 + [482] *((const byte*) RASTER#0) ← (const byte) IRQ_RASTER_FIRST#0 + [483] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 + [484] *((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 - [457] return + [486] return to:@return sprites_init: scope:[sprites_init] from main::@26 - [458] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 15 - [459] *((const byte*) SPRITES_MC#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 - [460] *((const byte*) SPRITES_EXPAND_Y#0) ← *((const byte*) SPRITES_MC#0) - [461] *((const byte*) SPRITES_EXPAND_X#0) ← *((const byte*) SPRITES_EXPAND_Y#0) + [487] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 15 + [488] *((const byte*) SPRITES_MC#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 + [489] *((const byte*) SPRITES_EXPAND_Y#0) ← *((const byte*) SPRITES_MC#0) + [490] *((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 - [462] (byte) sprites_init::xpos#2 ← phi( sprites_init/(byte/signed byte/word/signed word/dword/signed dword) 24+(byte/signed byte/word/signed word/dword/signed dword) 15*(byte/signed byte/word/signed word/dword/signed dword) 8 sprites_init::@1/(byte) sprites_init::xpos#1 ) - [462] (byte) sprites_init::s#2 ← phi( sprites_init/(byte/signed byte/word/signed word/dword/signed dword) 0 sprites_init::@1/(byte) sprites_init::s#1 ) - [463] (byte) sprites_init::s2#0 ← (byte) sprites_init::s#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [464] *((const byte*) SPRITES_XPOS#0 + (byte) sprites_init::s2#0) ← (byte) sprites_init::xpos#2 - [465] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::s#2) ← (const byte) BLACK#0 - [466] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 - [467] (byte) sprites_init::s#1 ← ++ (byte) sprites_init::s#2 - [468] if((byte) sprites_init::s#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto sprites_init::@1 + [491] (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 ) + [491] (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 ) + [492] (byte) sprites_init::s2#0 ← (byte) sprites_init::s#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [493] *((const byte*) SPRITES_XPOS#0 + (byte) sprites_init::s2#0) ← (byte) sprites_init::xpos#2 + [494] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::s#2) ← (const byte) BLACK#0 + [495] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 + [496] (byte) sprites_init::s#1 ← ++ (byte) sprites_init::s#2 + [497] 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 - [469] return + [498] return to:@return render_init: scope:[render_init] from main::@25 - [470] phi() + [499] phi() to:render_init::vicSelectGfxBank1 render_init::vicSelectGfxBank1: scope:[render_init] from render_init - [471] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 + [500] *((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 - [472] phi() + [501] phi() to:render_init::vicSelectGfxBank1_@1 render_init::vicSelectGfxBank1_@1: scope:[render_init] from render_init::vicSelectGfxBank1_toDd001 - [473] *((const byte*) CIA2_PORT_A#0) ← (const byte) render_init::vicSelectGfxBank1_toDd001_return#0 + [502] *((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 - [474] *((const byte*) D011#0) ← (const byte) VIC_ECM#0|(const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 - [475] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0 - [476] *((const byte*) BGCOL1#0) ← (const byte) BLACK#0 - [477] *((const byte*) BGCOL2#0) ← (const byte) BLUE#0 - [478] *((const byte*) BGCOL3#0) ← (const byte) CYAN#0 - [479] *((const byte*) BGCOL4#0) ← (const byte) GREY#0 - [480] call render_screen_original + [503] *((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 + [504] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0 + [505] *((const byte*) BGCOL1#0) ← (const byte) BLACK#0 + [506] *((const byte*) BGCOL2#0) ← (const byte) BLUE#0 + [507] *((const byte*) BGCOL3#0) ← (const byte) CYAN#0 + [508] *((const byte*) BGCOL4#0) ← (const byte) GREY#0 + [509] call render_screen_original to:render_init::@4 render_init::@4: scope:[render_init] from render_init::@3 - [481] phi() - [482] call render_screen_original + [510] phi() + [511] call render_screen_original to:render_init::@1 render_init::@1: scope:[render_init] from render_init::@1 render_init::@4 - [483] (byte*) render_init::li_2#2 ← phi( render_init::@1/(byte*) render_init::li_2#1 render_init::@4/(const byte*) PLAYFIELD_SCREEN_2#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 16 ) - [483] (byte*) render_init::li_1#2 ← phi( render_init::@1/(byte*) render_init::li_1#1 render_init::@4/(const byte*) PLAYFIELD_SCREEN_1#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 16 ) - [483] (byte) render_init::i#2 ← phi( render_init::@1/(byte) render_init::i#1 render_init::@4/(byte/signed byte/word/signed word/dword/signed dword) 0 ) - [484] (byte~) render_init::$13 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [485] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_init::$13) ← (byte*) render_init::li_1#2 - [486] (byte~) render_init::$14 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 - [487] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_2#0 + (byte~) render_init::$14) ← (byte*) render_init::li_2#2 - [488] (byte*) render_init::li_1#1 ← (byte*) render_init::li_1#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 - [489] (byte*) render_init::li_2#1 ← (byte*) render_init::li_2#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 - [490] (byte) render_init::i#1 ← ++ (byte) render_init::i#2 - [491] if((byte) render_init::i#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@1 + [512] (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 ) + [512] (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 ) + [512] (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 ) + [513] (byte~) render_init::$13 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [514] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_init::$13) ← (byte*) render_init::li_1#2 + [515] (byte~) render_init::$14 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 + [516] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_2#0 + (byte~) render_init::$14) ← (byte*) render_init::li_2#2 + [517] (byte*) render_init::li_1#1 ← (byte*) render_init::li_1#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 + [518] (byte*) render_init::li_2#1 ← (byte*) render_init::li_2#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 + [519] (byte) render_init::i#1 ← ++ (byte) render_init::i#2 + [520] 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 - [492] return + [521] return to:@return render_screen_original: scope:[render_screen_original] from render_init::@3 render_init::@4 - [493] (byte*) render_screen_original::screen#9 ← phi( render_init::@3/(const byte*) PLAYFIELD_SCREEN_1#0 render_init::@4/(const byte*) PLAYFIELD_SCREEN_2#0 ) + [522] (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 - [494] (byte) render_screen_original::y#6 ← phi( render_screen_original/(byte/signed byte/word/signed word/dword/signed dword) 0 render_screen_original::@7/(byte) render_screen_original::y#1 ) - [494] (byte*) render_screen_original::ocols#4 ← phi( render_screen_original/(const byte*) PLAYFIELD_COLORS_ORIGINAL#0+(byte/signed byte/word/signed word/dword/signed dword) 32*(byte/signed byte/word/signed word/dword/signed dword) 2 render_screen_original::@7/(byte*) render_screen_original::ocols#1 ) - [494] (byte*) render_screen_original::oscr#4 ← phi( render_screen_original/(const byte*) PLAYFIELD_SCREEN_ORIGINAL#0+(byte/signed byte/word/signed word/dword/signed dword) 32*(byte/signed byte/word/signed word/dword/signed dword) 2 render_screen_original::@7/(byte*) render_screen_original::oscr#1 ) - [494] (byte*) render_screen_original::cols#7 ← phi( render_screen_original/(const byte*) COLS#0 render_screen_original::@7/(byte*) render_screen_original::cols#3 ) - [494] (byte*) render_screen_original::screen#8 ← phi( render_screen_original/(byte*) render_screen_original::screen#9 render_screen_original::@7/(byte*) render_screen_original::screen#10 ) + [523] (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 ) + [523] (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 ) + [523] (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 ) + [523] (byte*) render_screen_original::cols#7 ← phi( render_screen_original/(const byte*) COLS#0 render_screen_original::@7/(byte*) render_screen_original::cols#3 ) + [523] (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 - [495] (byte) render_screen_original::x#4 ← phi( render_screen_original::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 render_screen_original::@2/(byte) render_screen_original::x#1 ) - [495] (byte*) render_screen_original::cols#4 ← phi( render_screen_original::@1/(byte*) render_screen_original::cols#7 render_screen_original::@2/(byte*) render_screen_original::cols#1 ) - [495] (byte*) render_screen_original::screen#5 ← phi( render_screen_original::@1/(byte*) render_screen_original::screen#8 render_screen_original::@2/(byte*) render_screen_original::screen#2 ) - [496] *((byte*) render_screen_original::screen#5) ← (const byte) render_screen_original::SPACE#0 - [497] (byte*) render_screen_original::screen#2 ← ++ (byte*) render_screen_original::screen#5 - [498] *((byte*) render_screen_original::cols#4) ← (const byte) BLACK#0 - [499] (byte*) render_screen_original::cols#1 ← ++ (byte*) render_screen_original::cols#4 - [500] (byte) render_screen_original::x#1 ← ++ (byte) render_screen_original::x#4 - [501] if((byte) render_screen_original::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_screen_original::@2 + [524] (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 ) + [524] (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 ) + [524] (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 ) + [525] *((byte*) render_screen_original::screen#5) ← (const byte) render_screen_original::SPACE#0 + [526] (byte*) render_screen_original::screen#2 ← ++ (byte*) render_screen_original::screen#5 + [527] *((byte*) render_screen_original::cols#4) ← (const byte) BLACK#0 + [528] (byte*) render_screen_original::cols#1 ← ++ (byte*) render_screen_original::cols#4 + [529] (byte) render_screen_original::x#1 ← ++ (byte) render_screen_original::x#4 + [530] 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 - [502] (byte) render_screen_original::x#5 ← phi( render_screen_original::@2/(byte) render_screen_original::x#1 render_screen_original::@3/(byte) render_screen_original::x#2 ) - [502] (byte*) render_screen_original::cols#5 ← phi( render_screen_original::@2/(byte*) render_screen_original::cols#1 render_screen_original::@3/(byte*) render_screen_original::cols#2 ) - [502] (byte*) render_screen_original::ocols#2 ← phi( render_screen_original::@2/(byte*) render_screen_original::ocols#4 render_screen_original::@3/(byte*) render_screen_original::ocols#1 ) - [502] (byte*) render_screen_original::screen#6 ← phi( render_screen_original::@2/(byte*) render_screen_original::screen#2 render_screen_original::@3/(byte*) render_screen_original::screen#3 ) - [502] (byte*) render_screen_original::oscr#2 ← phi( render_screen_original::@2/(byte*) render_screen_original::oscr#4 render_screen_original::@3/(byte*) render_screen_original::oscr#1 ) - [503] *((byte*) render_screen_original::screen#6) ← *((byte*) render_screen_original::oscr#2) - [504] (byte*) render_screen_original::screen#3 ← ++ (byte*) render_screen_original::screen#6 - [505] (byte*) render_screen_original::oscr#1 ← ++ (byte*) render_screen_original::oscr#2 - [506] *((byte*) render_screen_original::cols#5) ← *((byte*) render_screen_original::ocols#2) - [507] (byte*) render_screen_original::cols#2 ← ++ (byte*) render_screen_original::cols#5 - [508] (byte*) render_screen_original::ocols#1 ← ++ (byte*) render_screen_original::ocols#2 - [509] (byte) render_screen_original::x#2 ← ++ (byte) render_screen_original::x#5 - [510] if((byte) render_screen_original::x#2!=(byte/signed byte/word/signed word/dword/signed dword) 36) goto render_screen_original::@3 + [531] (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 ) + [531] (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 ) + [531] (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 ) + [531] (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 ) + [531] (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 ) + [532] *((byte*) render_screen_original::screen#6) ← *((byte*) render_screen_original::oscr#2) + [533] (byte*) render_screen_original::screen#3 ← ++ (byte*) render_screen_original::screen#6 + [534] (byte*) render_screen_original::oscr#1 ← ++ (byte*) render_screen_original::oscr#2 + [535] *((byte*) render_screen_original::cols#5) ← *((byte*) render_screen_original::ocols#2) + [536] (byte*) render_screen_original::cols#2 ← ++ (byte*) render_screen_original::cols#5 + [537] (byte*) render_screen_original::ocols#1 ← ++ (byte*) render_screen_original::ocols#2 + [538] (byte) render_screen_original::x#2 ← ++ (byte) render_screen_original::x#5 + [539] 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 - [511] (byte) render_screen_original::x#6 ← phi( render_screen_original::@3/(byte) render_screen_original::x#2 render_screen_original::@4/(byte) render_screen_original::x#3 ) - [511] (byte*) render_screen_original::cols#6 ← phi( render_screen_original::@3/(byte*) render_screen_original::cols#2 render_screen_original::@4/(byte*) render_screen_original::cols#3 ) - [511] (byte*) render_screen_original::screen#7 ← phi( render_screen_original::@3/(byte*) render_screen_original::screen#3 render_screen_original::@4/(byte*) render_screen_original::screen#10 ) - [512] *((byte*) render_screen_original::screen#7) ← (const byte) render_screen_original::SPACE#0 - [513] (byte*) render_screen_original::screen#10 ← ++ (byte*) render_screen_original::screen#7 - [514] *((byte*) render_screen_original::cols#6) ← (const byte) BLACK#0 - [515] (byte*) render_screen_original::cols#3 ← ++ (byte*) render_screen_original::cols#6 - [516] (byte) render_screen_original::x#3 ← ++ (byte) render_screen_original::x#6 - [517] if((byte) render_screen_original::x#3!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto render_screen_original::@4 + [540] (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 ) + [540] (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 ) + [540] (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 ) + [541] *((byte*) render_screen_original::screen#7) ← (const byte) render_screen_original::SPACE#0 + [542] (byte*) render_screen_original::screen#10 ← ++ (byte*) render_screen_original::screen#7 + [543] *((byte*) render_screen_original::cols#6) ← (const byte) BLACK#0 + [544] (byte*) render_screen_original::cols#3 ← ++ (byte*) render_screen_original::cols#6 + [545] (byte) render_screen_original::x#3 ← ++ (byte) render_screen_original::x#6 + [546] 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 - [518] (byte) render_screen_original::y#1 ← ++ (byte) render_screen_original::y#6 - [519] if((byte) render_screen_original::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto render_screen_original::@1 + [547] (byte) render_screen_original::y#1 ← ++ (byte) render_screen_original::y#6 + [548] 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 - [520] return + [549] return to:@return sid_rnd_init: scope:[sid_rnd_init] from main - [521] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 - [522] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 + [550] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 + [551] *((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 - [523] return + [552] return to:@return sprites_irq: scope:[sprites_irq] from asm { cld } - [525] (byte) sprites_irq::ypos#0 ← (byte) irq_sprite_ypos#0 - [526] *((const byte*) SPRITES_YPOS#0) ← (byte) sprites_irq::ypos#0 - [527] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ypos#0 - [528] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte) sprites_irq::ypos#0 - [529] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte) sprites_irq::ypos#0 - [530] (byte/signed word/word/dword/signed dword~) sprites_irq::$0 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 1 - [531] (byte) sprites_irq::raster_sprite_gfx_modify#0 ← (byte/signed word/word/dword/signed dword~) sprites_irq::$0 + [554] (byte) sprites_irq::ypos#0 ← (byte) irq_sprite_ypos#0 + [555] *((const byte*) SPRITES_YPOS#0) ← (byte) sprites_irq::ypos#0 + [556] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ypos#0 + [557] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte) sprites_irq::ypos#0 + [558] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte) sprites_irq::ypos#0 + [559] (byte/signed word/word/dword/signed dword~) sprites_irq::$0 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 1 + [560] (byte) sprites_irq::raster_sprite_gfx_modify#0 ← (byte/signed word/word/dword/signed dword~) sprites_irq::$0 to:sprites_irq::@1 sprites_irq::@1: scope:[sprites_irq] from sprites_irq sprites_irq::@1 - [532] if(*((const byte*) RASTER#0)<(byte) sprites_irq::raster_sprite_gfx_modify#0) goto sprites_irq::@1 + [561] if(*((const byte*) RASTER#0)<(byte) sprites_irq::raster_sprite_gfx_modify#0) goto sprites_irq::@1 to:sprites_irq::@8 sprites_irq::@8: scope:[sprites_irq] from sprites_irq::@1 - [533] (byte) sprites_irq::ptr#0 ← (byte) irq_sprite_ptr#0 - [534] if((byte) render_screen_showing#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sprites_irq::@2 + [562] (byte) sprites_irq::ptr#0 ← (byte) irq_sprite_ptr#0 + [563] if((byte) render_screen_showing#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sprites_irq::@2 to:sprites_irq::@9 sprites_irq::@9: scope:[sprites_irq] from sprites_irq::@8 - [535] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0) ← (byte) sprites_irq::ptr#0 - [536] (byte) sprites_irq::ptr#3 ← ++ (byte) sprites_irq::ptr#0 - [537] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) sprites_irq::ptr#3 - [538] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ptr#3 - [539] (byte) sprites_irq::ptr#4 ← ++ (byte) sprites_irq::ptr#3 - [540] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte) sprites_irq::ptr#4 + [564] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0) ← (byte) sprites_irq::ptr#0 + [565] (byte) sprites_irq::ptr#3 ← ++ (byte) sprites_irq::ptr#0 + [566] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) sprites_irq::ptr#3 + [567] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ptr#3 + [568] (byte) sprites_irq::ptr#4 ← ++ (byte) sprites_irq::ptr#3 + [569] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte) sprites_irq::ptr#4 to:sprites_irq::@3 sprites_irq::@3: scope:[sprites_irq] from sprites_irq::@2 sprites_irq::@9 - [541] (byte) irq_cnt#1 ← ++ (byte) irq_cnt#0 - [542] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 9) goto sprites_irq::@4 + [570] (byte) irq_cnt#1 ← ++ (byte) irq_cnt#0 + [571] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 9) goto sprites_irq::@4 to:sprites_irq::@11 sprites_irq::@11: scope:[sprites_irq] from sprites_irq::@3 - [543] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto sprites_irq::@5 + [572] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto sprites_irq::@5 to:sprites_irq::@12 sprites_irq::@12: scope:[sprites_irq] from sprites_irq::@11 - [544] (byte) irq_raster_next#3 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 20 - [545] (byte) irq_sprite_ypos#3 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 - [546] (byte) irq_sprite_ptr#3 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 + [573] (byte) irq_raster_next#3 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 20 + [574] (byte) irq_sprite_ypos#3 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 + [575] (byte) irq_sprite_ptr#3 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 to:sprites_irq::@7 sprites_irq::@7: scope:[sprites_irq] from sprites_irq::@12 sprites_irq::@15 sprites_irq::@5 - [547] (byte) irq_raster_next#4 ← phi( sprites_irq::@12/(byte) irq_raster_next#3 sprites_irq::@15/(byte) irq_raster_next#1 sprites_irq::@5/(byte) irq_raster_next#2 ) - [548] *((const byte*) RASTER#0) ← (byte) irq_raster_next#4 - [549] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 + [576] (byte) irq_raster_next#4 ← phi( sprites_irq::@12/(byte) irq_raster_next#3 sprites_irq::@15/(byte) irq_raster_next#1 sprites_irq::@5/(byte) irq_raster_next#2 ) + [577] *((const byte*) RASTER#0) ← (byte) irq_raster_next#4 + [578] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 to:sprites_irq::@return sprites_irq::@return: scope:[sprites_irq] from sprites_irq::@7 - [550] return + [579] return to:@return sprites_irq::@5: scope:[sprites_irq] from sprites_irq::@11 - [551] (byte) irq_cnt#2 ← (byte/signed byte/word/signed word/dword/signed dword) 0 - [552] (byte) irq_raster_next#2 ← (const byte) IRQ_RASTER_FIRST#0 - [553] (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 - [554] (byte) irq_sprite_ptr#2 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 + [580] (byte) irq_cnt#2 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + [581] (byte) irq_raster_next#2 ← (const byte) IRQ_RASTER_FIRST#0 + [582] (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 + [583] (byte) irq_sprite_ptr#2 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 to:sprites_irq::@7 sprites_irq::@4: scope:[sprites_irq] from sprites_irq::@3 - [555] (byte) irq_raster_next#1 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 - [556] (byte) irq_sprite_ypos#1 ← (const byte) SPRITES_FIRST_YPOS#0 + [584] (byte) irq_raster_next#1 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 + [585] (byte) irq_sprite_ypos#1 ← (const byte) SPRITES_FIRST_YPOS#0 to:sprites_irq::toSpritePtr2 sprites_irq::toSpritePtr2: scope:[sprites_irq] from sprites_irq::@4 - [557] phi() + [586] phi() to:sprites_irq::@15 sprites_irq::@15: scope:[sprites_irq] from sprites_irq::toSpritePtr2 - [558] (byte) irq_sprite_ptr#1 ← (const byte) sprites_irq::toSpritePtr2_return#0 + [587] (byte) irq_sprite_ptr#1 ← (const byte) sprites_irq::toSpritePtr2_return#0 to:sprites_irq::@7 sprites_irq::@2: scope:[sprites_irq] from sprites_irq::@8 - [559] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0) ← (byte) sprites_irq::ptr#0 - [560] (byte) sprites_irq::ptr#1 ← ++ (byte) sprites_irq::ptr#0 - [561] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) sprites_irq::ptr#1 - [562] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ptr#1 - [563] (byte) sprites_irq::ptr#2 ← ++ (byte) sprites_irq::ptr#1 - [564] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte) sprites_irq::ptr#2 + [588] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0) ← (byte) sprites_irq::ptr#0 + [589] (byte) sprites_irq::ptr#1 ← ++ (byte) sprites_irq::ptr#0 + [590] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) sprites_irq::ptr#1 + [591] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ptr#1 + [592] (byte) sprites_irq::ptr#2 ← ++ (byte) sprites_irq::ptr#1 + [593] *((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 @@ -10682,6 +11406,7 @@ VARIABLE REGISTER WEIGHTS (byte) ORANGE (word[]) PIECES (byte[]) PIECES_CHARS +(byte[]) PIECES_NEXT_CHARS (byte[]) PIECES_START_X (byte[]) PIECES_START_Y (byte[4*4*4]) PIECE_I @@ -10755,82 +11480,82 @@ VARIABLE REGISTER WEIGHTS (byte) YELLOW (byte) current_movedown_counter (byte) current_movedown_counter#12 0.5333333333333333 -(byte) current_movedown_counter#14 3.257142857142857 +(byte) current_movedown_counter#14 3.0000000000000004 (byte) current_movedown_counter#16 8.769230769230768 (byte) current_movedown_fast (byte) current_movedown_slow -(byte) current_movedown_slow#1 0.2222222222222222 +(byte) current_movedown_slow#1 0.18181818181818182 (byte) current_movedown_slow#10 4.0 (byte) current_movedown_slow#14 2.214285714285714 -(byte) current_movedown_slow#21 3.314285714285714 +(byte) current_movedown_slow#21 3.052631578947369 (byte) current_movedown_slow#23 1.3333333333333333 (byte) current_movedown_slow#38 6.0 (byte) current_movedown_slow#69 0.26666666666666666 (byte) current_orientation -(byte) current_orientation#12 3.189189189189189 -(byte) current_orientation#16 6.444444444444443 -(byte) current_orientation#19 0.36 -(byte) current_orientation#24 1.3333333333333333 -(byte) current_orientation#36 4.0 +(byte) current_orientation#13 3.189189189189189 +(byte) current_orientation#17 5.523809523809523 +(byte) current_orientation#20 0.36 +(byte) current_orientation#25 1.3333333333333333 +(byte) current_orientation#38 4.0 (byte) current_orientation#7 3.0 (byte*) current_piece -(byte*) current_piece#14 1.6315789473684217 -(byte*) current_piece#16 12.0 -(byte*) current_piece#20 3.243243243243243 -(byte*) current_piece#27 6.0 -(byte*~) current_piece#88 4.0 -(byte*~) current_piece#90 4.0 -(byte*~) current_piece#91 4.0 -(byte*~) current_piece#92 4.0 -(byte*~) current_piece#93 4.0 -(byte*~) current_piece#94 4.0 -(byte*~) current_piece#95 4.0 +(byte*) current_piece#10 3.243243243243243 +(byte*~) current_piece#100 4.0 +(byte*~) current_piece#101 4.0 +(byte*~) current_piece#102 4.0 +(byte*~) current_piece#103 4.0 +(byte*) current_piece#15 1.5696202531645564 +(byte*) current_piece#17 12.0 +(byte*) current_piece#29 6.0 +(byte*~) current_piece#96 4.0 +(byte*~) current_piece#98 4.0 +(byte*~) current_piece#99 4.0 (byte) current_piece_char -(byte~) current_piece_char#102 4.0 -(byte~) current_piece_char#103 22.0 -(byte) current_piece_char#14 3.628571428571428 -(byte) current_piece_char#16 0.32 -(byte) current_piece_char#19 187.38888888888889 -(byte) current_piece_char#27 6.0 -(byte) current_piece_char#64 50.699999999999996 +(byte~) current_piece_char#110 4.0 +(byte~) current_piece_char#111 22.0 +(byte) current_piece_char#15 3.3421052631578956 +(byte) current_piece_char#21 187.38888888888889 +(byte) current_piece_char#29 6.0 +(byte) current_piece_char#4 0.23529411764705882 +(byte) current_piece_char#67 50.699999999999996 (byte*) current_piece_gfx -(byte*) current_piece_gfx#103 187.38888888888889 -(byte*~) current_piece_gfx#114 2.0 -(byte*~) current_piece_gfx#115 11.0 -(byte*) current_piece_gfx#16 7.055555555555554 -(byte*) current_piece_gfx#18 0.3571428571428571 -(byte*) current_piece_gfx#19 1.3333333333333333 -(byte*) current_piece_gfx#21 0.3333333333333333 -(byte*) current_piece_gfx#33 6.0 +(byte*) current_piece_gfx#111 187.38888888888889 +(byte*~) current_piece_gfx#122 2.0 +(byte*~) current_piece_gfx#123 11.0 +(byte*) current_piece_gfx#17 6.047619047619047 +(byte*) current_piece_gfx#19 0.3571428571428571 +(byte*) current_piece_gfx#20 1.3333333333333333 +(byte*) current_piece_gfx#35 6.0 (byte*) current_piece_gfx#6 4.0 -(byte*) current_piece_gfx#62 50.699999999999996 +(byte*) current_piece_gfx#63 50.699999999999996 +(byte*) current_piece_gfx#7 0.24242424242424243 (byte) current_xpos -(byte) current_xpos#113 20.75925925925926 -(byte~) current_xpos#124 1.3333333333333333 -(byte~) current_xpos#125 7.333333333333333 -(byte) current_xpos#17 7.055555555555554 -(byte) current_xpos#20 0.7692307692307692 -(byte) current_xpos#24 0.4666666666666666 -(byte) current_xpos#28 0.43478260869565216 -(byte) current_xpos#41 6.0 +(byte) current_xpos#102 0.3125 +(byte) current_xpos#121 20.75925925925926 +(byte~) current_xpos#132 1.3333333333333333 +(byte~) current_xpos#133 7.333333333333333 +(byte) current_xpos#18 6.047619047619047 +(byte) current_xpos#21 0.7692307692307692 +(byte) current_xpos#25 0.4666666666666666 +(byte) current_xpos#43 6.0 (byte) current_xpos#5 4.0 -(byte) current_xpos#57 5.7 +(byte) current_xpos#58 5.7 (byte) current_xpos#7 4.0 (byte) current_ypos -(byte~) current_ypos#100 1.0 -(byte~) current_ypos#101 4.4 -(byte) current_ypos#11 15.0 -(byte) current_ypos#17 1.7500000000000007 +(byte) current_ypos#10 3.297297297297297 +(byte~) current_ypos#108 1.0 +(byte~) current_ypos#109 4.4 +(byte) current_ypos#12 15.0 +(byte) current_ypos#18 1.683544303797468 (byte) current_ypos#2 4.0 -(byte) current_ypos#22 0.4545454545454546 -(byte) current_ypos#25 3.297297297297297 -(byte) current_ypos#36 6.0 +(byte) current_ypos#38 6.0 +(byte) current_ypos#5 0.3225806451612903 (byte) game_over -(byte) game_over#14 3.371428571428571 -(byte) game_over#15 0.46153846153846156 -(byte) game_over#19 4.804347826086958 -(byte) game_over#26 6.0 -(byte) game_over#70 0.19047619047619047 +(byte) game_over#10 4.804347826086958 +(byte) game_over#15 3.1052631578947376 +(byte) game_over#28 6.0 +(byte) game_over#52 0.3333333333333333 +(byte) game_over#65 0.4 (byte) irq_cnt (byte) irq_cnt#0 0.17391304347826086 (byte) irq_cnt#1 3.0 @@ -10900,7 +11625,7 @@ VARIABLE REGISTER WEIGHTS (byte) keyboard_events_size#1 20002.0 (byte) keyboard_events_size#10 8100.9000000000015 (byte) keyboard_events_size#13 97.06451612903226 -(byte) keyboard_events_size#16 5.043478260869566 +(byte) keyboard_events_size#16 4.461538461538461 (byte) keyboard_events_size#19 18.999999999999996 (byte) keyboard_events_size#2 20002.0 (byte) keyboard_events_size#29 429.2857142857143 @@ -10925,20 +11650,20 @@ VARIABLE REGISTER WEIGHTS (byte[8]) keyboard_scan_values (byte) level (byte) level#10 2.140350877192983 -(byte) level#16 3.314285714285714 +(byte) level#16 3.052631578947369 (byte) level#18 1.3333333333333333 (byte) level#20 0.4444444444444444 (byte) level#31 6.0 (byte) level_bcd (byte) level_bcd#11 2.0 -(byte) level_bcd#17 2.0701754385964914 +(byte) level_bcd#17 1.966666666666667 (byte) level_bcd#19 1.3333333333333333 (byte) level_bcd#21 2.6666666666666665 (byte) level_bcd#32 6.0 (byte) level_bcd#64 0.6000000000000001 (byte) level_bcd#8 4.0 (word) lines_bcd -(word) lines_bcd#15 2.105263157894737 +(word) lines_bcd#15 2.0000000000000004 (word) lines_bcd#17 1.3333333333333333 (word) lines_bcd#19 2.4400000000000004 (word) lines_bcd#27 6.0 @@ -10948,6 +11673,14 @@ VARIABLE REGISTER WEIGHTS (byte) main::key_event#0 101.0 (byte) main::render (byte) main::render#1 202.0 +(byte) next_piece_idx +(byte) next_piece_idx#10 2.608695652173914 +(byte) next_piece_idx#12 3.4 +(byte) next_piece_idx#16 3.3421052631578956 +(byte) next_piece_idx#17 6.0 +(byte) next_piece_idx#31 6.0 +(byte~) next_piece_idx#84 4.0 +(byte~) next_piece_idx#85 22.0 (byte()) play_collision((byte) play_collision::xpos , (byte) play_collision::ypos , (byte) play_collision::orientation) (byte~) play_collision::$7 20002.0 (byte) play_collision::c @@ -11128,12 +11861,14 @@ VARIABLE REGISTER WEIGHTS (byte) play_remove_lines::y#1 1501.5 (byte) play_remove_lines::y#8 133.46666666666667 (void()) play_spawn_current() -(byte~) play_spawn_current::$1 2002.0 -(byte~) play_spawn_current::$3 0.08333333333333333 -(byte~) play_spawn_current::$5 4.0 +(byte~) play_spawn_current::$0 0.06060606060606061 +(byte~) play_spawn_current::$2 4.0 +(byte~) play_spawn_current::$6 2002.0 +(byte) play_spawn_current::current_piece_idx +(byte) play_spawn_current::current_piece_idx#0 2.0 (byte) play_spawn_current::piece_idx (byte) play_spawn_current::piece_idx#1 2002.0 -(byte) play_spawn_current::piece_idx#2 334.99999999999994 +(byte) play_spawn_current::piece_idx#2 111.66666666666667 (void()) play_update_score((byte) play_update_score::removed) (byte~) play_update_score::$2 4.0 (byte~) play_update_score::$4 4.0 @@ -11226,6 +11961,30 @@ VARIABLE REGISTER WEIGHTS (byte) render_moving::ypos2#0 4.0 (byte) render_moving::ypos2#1 67.33333333333333 (byte) render_moving::ypos2#2 27.06666666666667 +(void()) render_next() +(byte~) render_next::$6 1.0 +(byte) render_next::c +(byte) render_next::c#1 1501.5 +(byte) render_next::c#2 286.0 +(byte) render_next::cell +(byte) render_next::cell#0 1001.0 +(byte) render_next::l +(byte) render_next::l#1 151.5 +(byte) render_next::l#7 18.363636363636363 +(word) render_next::next_area_offset +(byte) render_next::next_piece_char +(byte) render_next::next_piece_char#0 66.86666666666667 +(byte*) render_next::next_piece_gfx +(byte*) render_next::next_piece_gfx#1 210.29999999999998 +(byte*) render_next::next_piece_gfx#2 1552.0 +(byte*) render_next::next_piece_gfx#3 204.0 +(byte*~) render_next::next_piece_gfx#9 4.0 +(byte*) render_next::screen_next_area +(byte*) render_next::screen_next_area#10 0.5 +(byte*) render_next::screen_next_area#2 701.0 +(byte*) render_next::screen_next_area#3 67.33333333333333 +(byte*) render_next::screen_next_area#4 684.1666666666667 +(byte*) render_next::screen_next_area#9 204.0 (void()) render_playfield() (byte~) render_playfield::$2 202.0 (byte~) render_playfield::$3 202.0 @@ -11289,14 +12048,16 @@ 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.7551020408163266 -(byte) render_screen_render#21 8.615384615384615 -(byte) render_screen_render#30 5.6 -(byte~) render_screen_render#64 5.5 -(byte~) render_screen_render#65 22.0 +(byte) render_screen_render#15 13.0 +(byte) render_screen_render#18 0.923076923076923 +(byte) render_screen_render#22 8.615384615384615 +(byte) render_screen_render#33 5.6 +(byte~) render_screen_render#68 11.0 +(byte~) render_screen_render#69 5.5 +(byte~) render_screen_render#70 22.0 (byte) render_screen_show (byte) render_screen_show#13 4.333333333333333 -(byte) render_screen_show#16 0.48571428571428577 +(byte) render_screen_show#16 0.4473684210526316 (byte) render_screen_showing (byte) render_screen_showing#0 0.4 (byte) render_screen_showing#1 20.0 @@ -11330,7 +12091,7 @@ VARIABLE REGISTER WEIGHTS (byte*) render_show::toD0182_screen (dword[5]) score_add_bcd (dword) score_bcd -(dword) score_bcd#14 3.314285714285714 +(dword) score_bcd#14 3.052631578947369 (dword) score_bcd#16 1.3333333333333333 (dword) score_bcd#18 2.352941176470588 (dword) score_bcd#27 6.0 @@ -11377,7 +12138,7 @@ interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() Initial phi equivalence classes [ render_screen_show#16 render_screen_show#13 ] -[ render_screen_render#17 render_screen_render#11 ] +[ render_screen_render#18 render_screen_render#11 ] [ current_movedown_counter#16 current_movedown_counter#14 current_movedown_counter#12 ] [ 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 ] @@ -11385,17 +12146,23 @@ Initial phi equivalence classes [ 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#11 current_ypos#100 current_ypos#101 ] -[ render_screen_render#30 render_screen_render#64 ] -[ current_xpos#57 current_xpos#124 current_xpos#125 ] -[ current_piece_gfx#62 current_piece_gfx#114 current_piece_gfx#115 ] -[ current_piece_char#64 current_piece_char#102 current_piece_char#103 ] +[ render_screen_render#15 render_screen_render#68 ] +[ next_piece_idx#12 next_piece_idx#84 next_piece_idx#85 ] +[ render_next::l#7 render_next::l#1 ] +[ render_next::next_piece_gfx#2 render_next::next_piece_gfx#3 render_next::next_piece_gfx#1 render_next::next_piece_gfx#9 ] +[ render_next::screen_next_area#4 render_next::screen_next_area#9 render_next::screen_next_area#3 render_next::screen_next_area#10 render_next::screen_next_area#2 ] +[ render_next::c#2 render_next::c#1 ] +[ current_ypos#12 current_ypos#108 current_ypos#109 ] +[ render_screen_render#33 render_screen_render#69 ] +[ current_xpos#58 current_xpos#132 current_xpos#133 ] +[ current_piece_gfx#63 current_piece_gfx#122 current_piece_gfx#123 ] +[ current_piece_char#67 current_piece_char#110 current_piece_char#111 ] [ render_moving::ypos2#2 render_moving::ypos2#0 render_moving::ypos2#1 ] [ render_moving::l#4 render_moving::l#1 ] [ render_moving::i#4 render_moving::i#3 render_moving::i#8 render_moving::i#2 render_moving::i#1 ] [ render_moving::xpos#2 render_moving::xpos#0 render_moving::xpos#1 ] [ render_moving::c#2 render_moving::c#1 ] -[ render_screen_render#21 render_screen_render#65 ] +[ render_screen_render#22 render_screen_render#70 ] [ render_playfield::l#2 render_playfield::l#1 ] [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] [ render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 ] @@ -11403,7 +12170,7 @@ Initial phi equivalence classes [ play_movement::return#2 play_movement::render#1 play_movement::return#0 ] [ play_move_rotate::return#2 ] [ play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] -[ current_piece#16 current_piece#90 current_piece#91 current_piece#92 current_piece#93 current_piece#94 ] +[ current_piece#17 current_piece#98 current_piece#99 current_piece#100 current_piece#101 current_piece#102 ] [ play_collision::orientation#5 play_collision::orientation#0 play_collision::orientation#1 play_collision::orientation#2 play_collision::orientation#3 ] [ play_collision::ypos#5 play_collision::ypos#0 play_collision::ypos#1 play_collision::ypos#2 play_collision::ypos#3 play_collision::ypos#4 ] [ play_collision::xpos#6 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 play_collision::xpos#4 ] @@ -11415,20 +12182,20 @@ Initial phi equivalence classes [ play_collision::return#15 ] [ play_move_leftright::return#2 ] [ 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#36 current_ypos#25 current_ypos#17 current_ypos#22 current_ypos#2 ] +[ current_ypos#38 current_ypos#10 current_ypos#18 current_ypos#5 current_ypos#2 ] [ lines_bcd#27 lines_bcd#17 lines_bcd#19 lines_bcd#15 lines_bcd#30 ] [ score_bcd#27 score_bcd#16 score_bcd#18 score_bcd#14 score_bcd#30 ] [ level#31 level#18 level#10 level#16 level#20 ] [ current_movedown_slow#38 current_movedown_slow#23 current_movedown_slow#14 current_movedown_slow#21 current_movedown_slow#1 current_movedown_slow#69 current_movedown_slow#10 ] [ level_bcd#32 level_bcd#19 level_bcd#11 level_bcd#17 level_bcd#64 level_bcd#21 level_bcd#8 ] -[ current_piece#27 current_piece#95 current_piece#20 current_piece#14 current_piece#88 ] -[ current_piece_char#27 current_piece_char#19 current_piece_char#14 current_piece_char#16 ] -[ current_orientation#36 current_orientation#12 current_orientation#16 current_orientation#19 current_orientation#24 current_orientation#7 ] -[ current_piece_gfx#33 current_piece_gfx#103 current_piece_gfx#16 current_piece_gfx#21 current_piece_gfx#18 current_piece_gfx#19 current_piece_gfx#6 ] -[ current_xpos#41 current_xpos#113 current_xpos#17 current_xpos#28 current_xpos#20 current_xpos#24 current_xpos#7 current_xpos#5 ] +[ current_piece#29 current_piece#103 current_piece#10 current_piece#15 current_piece#96 ] +[ current_piece_char#29 current_piece_char#21 current_piece_char#15 current_piece_char#4 ] +[ current_orientation#38 current_orientation#13 current_orientation#17 current_orientation#20 current_orientation#25 current_orientation#7 ] +[ current_piece_gfx#35 current_piece_gfx#111 current_piece_gfx#17 current_piece_gfx#7 current_piece_gfx#19 current_piece_gfx#20 current_piece_gfx#6 ] +[ current_xpos#43 current_xpos#121 current_xpos#18 current_xpos#102 current_xpos#21 current_xpos#25 current_xpos#7 current_xpos#5 ] [ play_move_down::return#3 ] -[ game_over#70 game_over#26 game_over#19 game_over#14 game_over#15 ] -[ play_spawn_current::piece_idx#2 play_spawn_current::piece_idx#1 ] +[ next_piece_idx#17 next_piece_idx#31 next_piece_idx#10 next_piece_idx#16 play_spawn_current::piece_idx#2 play_spawn_current::piece_idx#1 ] +[ game_over#65 game_over#28 game_over#10 game_over#15 game_over#52 ] [ play_increase_level::b#2 play_increase_level::b#1 ] [ 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 ] @@ -11480,6 +12247,9 @@ Added variable render_bcd::$4 to zero page equivalence class [ render_bcd::$4 ] Added variable render_bcd::$5 to zero page equivalence class [ render_bcd::$5 ] Added variable render_bcd::$6 to zero page equivalence class [ render_bcd::$6 ] Added variable render_bcd::screen_pos#1 to zero page equivalence class [ render_bcd::screen_pos#1 ] +Added variable render_next::$6 to zero page equivalence class [ render_next::$6 ] +Added variable render_next::next_piece_char#0 to zero page equivalence class [ render_next::next_piece_char#0 ] +Added variable render_next::cell#0 to zero page equivalence class [ render_next::cell#0 ] Added variable render_moving::$2 to zero page equivalence class [ render_moving::$2 ] Added variable render_moving::screen_line#0 to zero page equivalence class [ render_moving::screen_line#0 ] Added variable render_moving::current_cell#0 to zero page equivalence class [ render_moving::current_cell#0 ] @@ -11514,11 +12284,12 @@ Added variable play_move_down::$12 to zero page equivalence class [ play_move_do Added variable play_remove_lines::return#0 to zero page equivalence class [ play_remove_lines::return#0 ] Added variable play_move_down::removed#0 to zero page equivalence class [ play_move_down::removed#0 ] Added variable play_update_score::removed#0 to zero page equivalence class [ play_update_score::removed#0 ] -Added variable play_spawn_current::$3 to zero page equivalence class [ play_spawn_current::$3 ] +Added variable play_spawn_current::current_piece_idx#0 to zero page equivalence class [ play_spawn_current::current_piece_idx#0 ] +Added variable play_spawn_current::$0 to zero page equivalence class [ play_spawn_current::$0 ] Added variable play_collision::return#10 to zero page equivalence class [ play_collision::return#10 ] -Added variable play_spawn_current::$5 to zero page equivalence class [ play_spawn_current::$5 ] +Added variable play_spawn_current::$2 to zero page equivalence class [ play_spawn_current::$2 ] Added variable sid_rnd::return#2 to zero page equivalence class [ sid_rnd::return#2 ] -Added variable play_spawn_current::$1 to zero page equivalence class [ play_spawn_current::$1 ] +Added variable play_spawn_current::$6 to zero page equivalence class [ play_spawn_current::$6 ] 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::lines_before#0 to zero page equivalence class [ play_update_score::lines_before#0 ] @@ -11576,7 +12347,7 @@ Added variable sprites_irq::ptr#1 to zero page equivalence class [ sprites_irq:: Added variable sprites_irq::ptr#2 to zero page equivalence class [ sprites_irq::ptr#2 ] Complete equivalence classes [ render_screen_show#16 render_screen_show#13 ] -[ render_screen_render#17 render_screen_render#11 ] +[ render_screen_render#18 render_screen_render#11 ] [ current_movedown_counter#16 current_movedown_counter#14 current_movedown_counter#12 ] [ 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 ] @@ -11584,17 +12355,23 @@ Complete equivalence classes [ 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#11 current_ypos#100 current_ypos#101 ] -[ render_screen_render#30 render_screen_render#64 ] -[ current_xpos#57 current_xpos#124 current_xpos#125 ] -[ current_piece_gfx#62 current_piece_gfx#114 current_piece_gfx#115 ] -[ current_piece_char#64 current_piece_char#102 current_piece_char#103 ] +[ render_screen_render#15 render_screen_render#68 ] +[ next_piece_idx#12 next_piece_idx#84 next_piece_idx#85 ] +[ render_next::l#7 render_next::l#1 ] +[ render_next::next_piece_gfx#2 render_next::next_piece_gfx#3 render_next::next_piece_gfx#1 render_next::next_piece_gfx#9 ] +[ render_next::screen_next_area#4 render_next::screen_next_area#9 render_next::screen_next_area#3 render_next::screen_next_area#10 render_next::screen_next_area#2 ] +[ render_next::c#2 render_next::c#1 ] +[ current_ypos#12 current_ypos#108 current_ypos#109 ] +[ render_screen_render#33 render_screen_render#69 ] +[ current_xpos#58 current_xpos#132 current_xpos#133 ] +[ current_piece_gfx#63 current_piece_gfx#122 current_piece_gfx#123 ] +[ current_piece_char#67 current_piece_char#110 current_piece_char#111 ] [ render_moving::ypos2#2 render_moving::ypos2#0 render_moving::ypos2#1 ] [ render_moving::l#4 render_moving::l#1 ] [ render_moving::i#4 render_moving::i#3 render_moving::i#8 render_moving::i#2 render_moving::i#1 ] [ render_moving::xpos#2 render_moving::xpos#0 render_moving::xpos#1 ] [ render_moving::c#2 render_moving::c#1 ] -[ render_screen_render#21 render_screen_render#65 ] +[ render_screen_render#22 render_screen_render#70 ] [ render_playfield::l#2 render_playfield::l#1 ] [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] [ render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 ] @@ -11602,7 +12379,7 @@ Complete equivalence classes [ play_movement::return#2 play_movement::render#1 play_movement::return#0 ] [ play_move_rotate::return#2 ] [ play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] -[ current_piece#16 current_piece#90 current_piece#91 current_piece#92 current_piece#93 current_piece#94 ] +[ current_piece#17 current_piece#98 current_piece#99 current_piece#100 current_piece#101 current_piece#102 ] [ play_collision::orientation#5 play_collision::orientation#0 play_collision::orientation#1 play_collision::orientation#2 play_collision::orientation#3 ] [ play_collision::ypos#5 play_collision::ypos#0 play_collision::ypos#1 play_collision::ypos#2 play_collision::ypos#3 play_collision::ypos#4 ] [ play_collision::xpos#6 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 play_collision::xpos#4 ] @@ -11614,20 +12391,20 @@ Complete equivalence classes [ play_collision::return#15 ] [ play_move_leftright::return#2 ] [ 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#36 current_ypos#25 current_ypos#17 current_ypos#22 current_ypos#2 ] +[ current_ypos#38 current_ypos#10 current_ypos#18 current_ypos#5 current_ypos#2 ] [ lines_bcd#27 lines_bcd#17 lines_bcd#19 lines_bcd#15 lines_bcd#30 ] [ score_bcd#27 score_bcd#16 score_bcd#18 score_bcd#14 score_bcd#30 ] [ level#31 level#18 level#10 level#16 level#20 ] [ current_movedown_slow#38 current_movedown_slow#23 current_movedown_slow#14 current_movedown_slow#21 current_movedown_slow#1 current_movedown_slow#69 current_movedown_slow#10 ] [ level_bcd#32 level_bcd#19 level_bcd#11 level_bcd#17 level_bcd#64 level_bcd#21 level_bcd#8 ] -[ current_piece#27 current_piece#95 current_piece#20 current_piece#14 current_piece#88 ] -[ current_piece_char#27 current_piece_char#19 current_piece_char#14 current_piece_char#16 ] -[ current_orientation#36 current_orientation#12 current_orientation#16 current_orientation#19 current_orientation#24 current_orientation#7 ] -[ current_piece_gfx#33 current_piece_gfx#103 current_piece_gfx#16 current_piece_gfx#21 current_piece_gfx#18 current_piece_gfx#19 current_piece_gfx#6 ] -[ current_xpos#41 current_xpos#113 current_xpos#17 current_xpos#28 current_xpos#20 current_xpos#24 current_xpos#7 current_xpos#5 ] +[ current_piece#29 current_piece#103 current_piece#10 current_piece#15 current_piece#96 ] +[ current_piece_char#29 current_piece_char#21 current_piece_char#15 current_piece_char#4 ] +[ current_orientation#38 current_orientation#13 current_orientation#17 current_orientation#20 current_orientation#25 current_orientation#7 ] +[ current_piece_gfx#35 current_piece_gfx#111 current_piece_gfx#17 current_piece_gfx#7 current_piece_gfx#19 current_piece_gfx#20 current_piece_gfx#6 ] +[ current_xpos#43 current_xpos#121 current_xpos#18 current_xpos#102 current_xpos#21 current_xpos#25 current_xpos#7 current_xpos#5 ] [ play_move_down::return#3 ] -[ game_over#70 game_over#26 game_over#19 game_over#14 game_over#15 ] -[ play_spawn_current::piece_idx#2 play_spawn_current::piece_idx#1 ] +[ next_piece_idx#17 next_piece_idx#31 next_piece_idx#10 next_piece_idx#16 play_spawn_current::piece_idx#2 play_spawn_current::piece_idx#1 ] +[ game_over#65 game_over#28 game_over#10 game_over#15 game_over#52 ] [ play_increase_level::b#2 play_increase_level::b#1 ] [ 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 ] @@ -11679,6 +12456,9 @@ Complete equivalence classes [ render_bcd::$5 ] [ render_bcd::$6 ] [ render_bcd::screen_pos#1 ] +[ render_next::$6 ] +[ render_next::next_piece_char#0 ] +[ render_next::cell#0 ] [ render_moving::$2 ] [ render_moving::screen_line#0 ] [ render_moving::current_cell#0 ] @@ -11713,11 +12493,12 @@ Complete equivalence classes [ play_remove_lines::return#0 ] [ play_move_down::removed#0 ] [ play_update_score::removed#0 ] -[ play_spawn_current::$3 ] +[ play_spawn_current::current_piece_idx#0 ] +[ play_spawn_current::$0 ] [ play_collision::return#10 ] -[ play_spawn_current::$5 ] +[ play_spawn_current::$2 ] [ sid_rnd::return#2 ] -[ play_spawn_current::$1 ] +[ play_spawn_current::$6 ] [ sid_rnd::return#0 ] [ play_update_score::$2 ] [ play_update_score::lines_before#0 ] @@ -11774,7 +12555,7 @@ Complete equivalence classes [ sprites_irq::ptr#1 ] [ sprites_irq::ptr#2 ] 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:3 [ render_screen_render#18 render_screen_render#11 ] Allocated zp ZP_BYTE:4 [ current_movedown_counter#16 current_movedown_counter#14 current_movedown_counter#12 ] 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 ] @@ -11782,195 +12563,205 @@ 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#11 current_ypos#100 current_ypos#101 ] -Allocated zp ZP_BYTE:16 [ render_screen_render#30 render_screen_render#64 ] -Allocated zp ZP_BYTE:17 [ current_xpos#57 current_xpos#124 current_xpos#125 ] -Allocated zp ZP_WORD:18 [ current_piece_gfx#62 current_piece_gfx#114 current_piece_gfx#115 ] -Allocated zp ZP_BYTE:20 [ current_piece_char#64 current_piece_char#102 current_piece_char#103 ] -Allocated zp ZP_BYTE:21 [ render_moving::ypos2#2 render_moving::ypos2#0 render_moving::ypos2#1 ] -Allocated zp ZP_BYTE:22 [ render_moving::l#4 render_moving::l#1 ] -Allocated zp ZP_BYTE:23 [ render_moving::i#4 render_moving::i#3 render_moving::i#8 render_moving::i#2 render_moving::i#1 ] -Allocated zp ZP_BYTE:24 [ render_moving::xpos#2 render_moving::xpos#0 render_moving::xpos#1 ] -Allocated zp ZP_BYTE:25 [ render_moving::c#2 render_moving::c#1 ] -Allocated zp ZP_BYTE:26 [ render_screen_render#21 render_screen_render#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_movement::return#2 play_movement::render#1 play_movement::return#0 ] -Allocated zp ZP_BYTE:33 [ play_move_rotate::return#2 ] -Allocated zp ZP_BYTE:34 [ play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] -Allocated zp ZP_WORD:35 [ current_piece#16 current_piece#90 current_piece#91 current_piece#92 current_piece#93 current_piece#94 ] -Allocated zp ZP_BYTE:37 [ play_collision::orientation#5 play_collision::orientation#0 play_collision::orientation#1 play_collision::orientation#2 play_collision::orientation#3 ] -Allocated zp ZP_BYTE:38 [ play_collision::ypos#5 play_collision::ypos#0 play_collision::ypos#1 play_collision::ypos#2 play_collision::ypos#3 play_collision::ypos#4 ] -Allocated zp ZP_BYTE:39 [ play_collision::xpos#6 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 play_collision::xpos#4 ] -Allocated zp ZP_BYTE:40 [ play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 ] -Allocated zp ZP_BYTE:41 [ play_collision::l#6 play_collision::l#1 ] -Allocated zp ZP_BYTE:42 [ play_collision::i#2 play_collision::i#3 play_collision::i#11 play_collision::i#13 ] -Allocated zp ZP_BYTE:43 [ play_collision::col#2 play_collision::col#9 play_collision::col#1 ] -Allocated zp ZP_BYTE:44 [ play_collision::c#2 play_collision::c#1 ] -Allocated zp ZP_BYTE:45 [ play_collision::return#15 ] -Allocated zp ZP_BYTE:46 [ play_move_leftright::return#2 ] -Allocated zp ZP_BYTE:47 [ play_move_down::movedown#6 play_move_down::movedown#3 play_move_down::movedown#7 play_move_down::movedown#2 play_move_down::movedown#10 ] -Allocated zp ZP_BYTE:48 [ current_ypos#36 current_ypos#25 current_ypos#17 current_ypos#22 current_ypos#2 ] -Allocated zp ZP_WORD:49 [ lines_bcd#27 lines_bcd#17 lines_bcd#19 lines_bcd#15 lines_bcd#30 ] -Allocated zp ZP_DWORD:51 [ score_bcd#27 score_bcd#16 score_bcd#18 score_bcd#14 score_bcd#30 ] -Allocated zp ZP_BYTE:55 [ level#31 level#18 level#10 level#16 level#20 ] -Allocated zp ZP_BYTE:56 [ current_movedown_slow#38 current_movedown_slow#23 current_movedown_slow#14 current_movedown_slow#21 current_movedown_slow#1 current_movedown_slow#69 current_movedown_slow#10 ] -Allocated zp ZP_BYTE:57 [ level_bcd#32 level_bcd#19 level_bcd#11 level_bcd#17 level_bcd#64 level_bcd#21 level_bcd#8 ] -Allocated zp ZP_WORD:58 [ current_piece#27 current_piece#95 current_piece#20 current_piece#14 current_piece#88 ] -Allocated zp ZP_BYTE:60 [ current_piece_char#27 current_piece_char#19 current_piece_char#14 current_piece_char#16 ] -Allocated zp ZP_BYTE:61 [ current_orientation#36 current_orientation#12 current_orientation#16 current_orientation#19 current_orientation#24 current_orientation#7 ] -Allocated zp ZP_WORD:62 [ current_piece_gfx#33 current_piece_gfx#103 current_piece_gfx#16 current_piece_gfx#21 current_piece_gfx#18 current_piece_gfx#19 current_piece_gfx#6 ] -Allocated zp ZP_BYTE:64 [ current_xpos#41 current_xpos#113 current_xpos#17 current_xpos#28 current_xpos#20 current_xpos#24 current_xpos#7 current_xpos#5 ] -Allocated zp ZP_BYTE:65 [ play_move_down::return#3 ] -Allocated zp ZP_BYTE:66 [ game_over#70 game_over#26 game_over#19 game_over#14 game_over#15 ] -Allocated zp ZP_BYTE:67 [ play_spawn_current::piece_idx#2 play_spawn_current::piece_idx#1 ] -Allocated zp ZP_BYTE:68 [ play_increase_level::b#2 play_increase_level::b#1 ] -Allocated zp ZP_BYTE:69 [ play_remove_lines::y#8 play_remove_lines::y#1 ] -Allocated zp ZP_BYTE:70 [ play_remove_lines::removed#11 play_remove_lines::removed#7 play_remove_lines::removed#1 ] -Allocated zp ZP_BYTE:71 [ play_remove_lines::r#2 play_remove_lines::r#3 play_remove_lines::r#1 ] -Allocated zp ZP_BYTE:72 [ play_remove_lines::x#2 play_remove_lines::x#1 ] -Allocated zp ZP_BYTE:73 [ play_remove_lines::full#4 play_remove_lines::full#2 ] -Allocated zp ZP_BYTE:74 [ play_remove_lines::w#6 play_remove_lines::w#4 play_remove_lines::w#12 play_remove_lines::w#11 play_remove_lines::w#1 play_remove_lines::w#2 play_remove_lines::w#3 ] -Allocated zp ZP_BYTE:75 [ play_lock_current::ypos2#2 play_lock_current::ypos2#0 play_lock_current::ypos2#1 ] -Allocated zp ZP_BYTE:76 [ play_lock_current::l#6 play_lock_current::l#1 ] -Allocated zp ZP_BYTE:77 [ play_lock_current::i#2 play_lock_current::i#3 play_lock_current::i#7 play_lock_current::i#9 ] -Allocated zp ZP_BYTE:78 [ play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 ] -Allocated zp ZP_BYTE:79 [ play_lock_current::c#2 play_lock_current::c#1 ] -Allocated zp ZP_BYTE:80 [ keyboard_event_pressed::keycode#5 ] -Allocated zp ZP_BYTE:81 [ keyboard_event_get::return#2 keyboard_event_get::return#1 ] -Allocated zp ZP_BYTE:82 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] -Allocated zp ZP_BYTE:83 [ keyboard_modifiers#13 keyboard_modifiers#4 keyboard_modifiers#12 keyboard_modifiers#3 keyboard_modifiers#11 ] -Allocated zp ZP_BYTE:84 [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] -Allocated zp ZP_BYTE:85 [ keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 keyboard_event_scan::keycode#15 ] -Allocated zp ZP_BYTE:86 [ keyboard_events_size#10 keyboard_events_size#29 keyboard_events_size#19 keyboard_events_size#16 keyboard_events_size#13 keyboard_events_size#4 keyboard_events_size#30 keyboard_events_size#2 keyboard_events_size#1 ] -Allocated zp ZP_BYTE:87 [ render_show::d018val#3 ] -Allocated zp ZP_BYTE:88 [ play_init::j#2 play_init::j#1 ] -Allocated zp ZP_WORD:89 [ play_init::pli#2 play_init::pli#1 ] -Allocated zp ZP_BYTE:91 [ play_init::idx#2 play_init::idx#1 ] -Allocated zp ZP_BYTE:92 [ play_init::b#2 play_init::b#1 ] -Allocated zp ZP_BYTE:93 [ sprites_init::s#2 sprites_init::s#1 ] -Allocated zp ZP_BYTE:94 [ sprites_init::xpos#2 sprites_init::xpos#1 ] -Allocated zp ZP_BYTE:95 [ render_init::i#2 render_init::i#1 ] -Allocated zp ZP_WORD:96 [ render_init::li_1#2 render_init::li_1#1 ] -Allocated zp ZP_WORD:98 [ render_init::li_2#2 render_init::li_2#1 ] -Allocated zp ZP_BYTE:100 [ render_screen_original::y#6 render_screen_original::y#1 ] -Allocated zp ZP_WORD:101 [ render_screen_original::oscr#2 render_screen_original::oscr#4 render_screen_original::oscr#1 ] -Allocated zp ZP_WORD:103 [ render_screen_original::ocols#2 render_screen_original::ocols#4 render_screen_original::ocols#1 ] -Allocated zp ZP_WORD:105 [ render_screen_original::screen#7 render_screen_original::screen#6 render_screen_original::screen#5 render_screen_original::screen#8 render_screen_original::screen#9 render_screen_original::screen#10 render_screen_original::screen#2 render_screen_original::screen#3 ] -Allocated zp ZP_WORD:107 [ render_screen_original::cols#6 render_screen_original::cols#5 render_screen_original::cols#4 render_screen_original::cols#7 render_screen_original::cols#3 render_screen_original::cols#1 render_screen_original::cols#2 ] -Allocated zp ZP_BYTE:109 [ render_screen_original::x#6 render_screen_original::x#5 render_screen_original::x#4 render_screen_original::x#1 render_screen_original::x#2 render_screen_original::x#3 ] -Allocated zp ZP_BYTE:110 [ irq_raster_next#4 irq_raster_next#3 irq_raster_next#1 irq_raster_next#2 ] -Allocated zp ZP_BYTE:111 [ render_screen_showing#0 ] -Allocated zp ZP_BYTE:112 [ irq_raster_next#0 ] -Allocated zp ZP_BYTE:113 [ irq_sprite_ypos#0 ] -Allocated zp ZP_BYTE:114 [ irq_sprite_ptr#0 ] -Allocated zp ZP_BYTE:115 [ irq_cnt#0 ] -Allocated zp ZP_BYTE:116 [ keyboard_event_get::return#3 ] -Allocated zp ZP_BYTE:117 [ main::key_event#0 ] -Allocated zp ZP_BYTE:118 [ play_movement::key_event#0 ] -Allocated zp ZP_BYTE:119 [ play_movement::return#3 ] -Allocated zp ZP_BYTE:120 [ main::render#1 ] -Allocated zp ZP_BYTE:121 [ render_bcd::$3 ] -Allocated zp ZP_BYTE:122 [ render_bcd::$4 ] -Allocated zp ZP_BYTE:123 [ render_bcd::$5 ] -Allocated zp ZP_BYTE:124 [ render_bcd::$6 ] -Allocated zp ZP_WORD:125 [ render_bcd::screen_pos#1 ] -Allocated zp ZP_BYTE:127 [ render_moving::$2 ] -Allocated zp ZP_WORD:128 [ render_moving::screen_line#0 ] -Allocated zp ZP_BYTE:130 [ render_moving::current_cell#0 ] -Allocated zp ZP_BYTE:131 [ render_playfield::$2 ] -Allocated zp ZP_BYTE:132 [ render_playfield::$3 ] -Allocated zp ZP_BYTE:133 [ play_move_down::key_event#0 ] -Allocated zp ZP_BYTE:134 [ play_move_down::return#0 ] -Allocated zp ZP_BYTE:135 [ play_movement::$0 ] -Allocated zp ZP_BYTE:136 [ play_move_leftright::key_event#0 ] -Allocated zp ZP_BYTE:137 [ play_move_leftright::return#0 ] -Allocated zp ZP_BYTE:138 [ play_movement::$3 ] -Allocated zp ZP_BYTE:139 [ play_movement::render#2 ] -Allocated zp ZP_BYTE:140 [ play_move_rotate::key_event#0 ] -Allocated zp ZP_BYTE:141 [ play_move_rotate::return#0 ] -Allocated zp ZP_BYTE:142 [ play_movement::$4 ] -Allocated zp ZP_BYTE:143 [ play_move_rotate::$2 ] -Allocated zp ZP_BYTE:144 [ play_collision::return#14 ] -Allocated zp ZP_BYTE:145 [ play_move_rotate::$6 ] -Allocated zp ZP_BYTE:146 [ play_move_rotate::$4 ] -Allocated zp ZP_WORD:147 [ play_collision::piece_gfx#0 ] -Allocated zp ZP_WORD:149 [ play_collision::playfield_line#0 ] -Allocated zp ZP_BYTE:151 [ play_collision::i#1 ] -Allocated zp ZP_BYTE:152 [ play_collision::$7 ] -Allocated zp ZP_BYTE:153 [ play_collision::return#13 ] -Allocated zp ZP_BYTE:154 [ play_move_leftright::$4 ] -Allocated zp ZP_BYTE:155 [ play_collision::return#1 ] -Allocated zp ZP_BYTE:156 [ play_move_leftright::$8 ] -Allocated zp ZP_BYTE:157 [ keyboard_event_pressed::return#12 ] -Allocated zp ZP_BYTE:158 [ play_move_down::$2 ] -Allocated zp ZP_BYTE:159 [ play_collision::return#0 ] -Allocated zp ZP_BYTE:160 [ play_move_down::$12 ] -Allocated zp ZP_BYTE:161 [ play_remove_lines::return#0 ] -Allocated zp ZP_BYTE:162 [ play_move_down::removed#0 ] -Allocated zp ZP_BYTE:163 [ play_update_score::removed#0 ] -Allocated zp ZP_BYTE:164 [ play_spawn_current::$3 ] -Allocated zp ZP_BYTE:165 [ play_collision::return#10 ] -Allocated zp ZP_BYTE:166 [ play_spawn_current::$5 ] -Allocated zp ZP_BYTE:167 [ sid_rnd::return#2 ] -Allocated zp ZP_BYTE:168 [ play_spawn_current::$1 ] -Allocated zp ZP_BYTE:169 [ sid_rnd::return#0 ] -Allocated zp ZP_BYTE:170 [ play_update_score::$2 ] -Allocated zp ZP_BYTE:171 [ play_update_score::lines_before#0 ] -Allocated zp ZP_BYTE:172 [ play_update_score::$4 ] -Allocated zp ZP_DWORD:173 [ play_update_score::add_bcd#0 ] -Allocated zp ZP_BYTE:177 [ play_update_score::$5 ] -Allocated zp ZP_BYTE:178 [ play_update_score::lines_after#0 ] -Allocated zp ZP_BYTE:179 [ play_increase_level::$1 ] -Allocated zp ZP_BYTE:180 [ play_increase_level::b4#0 ] -Allocated zp ZP_BYTE:181 [ play_remove_lines::c#0 ] -Allocated zp ZP_WORD:182 [ play_lock_current::playfield_line#0 ] -Allocated zp ZP_BYTE:184 [ play_lock_current::i#1 ] -Allocated zp ZP_BYTE:185 [ keyboard_event_pressed::$0 ] -Allocated zp ZP_BYTE:186 [ keyboard_event_pressed::row_bits#0 ] -Allocated zp ZP_BYTE:187 [ keyboard_event_pressed::$1 ] -Allocated zp ZP_BYTE:188 [ keyboard_event_pressed::return#11 ] -Allocated zp ZP_BYTE:189 [ keyboard_matrix_read::rowid#0 ] -Allocated zp ZP_BYTE:190 [ keyboard_matrix_read::return#2 ] -Allocated zp ZP_BYTE:191 [ keyboard_event_scan::row_scan#0 ] -Allocated zp ZP_BYTE:192 [ keyboard_event_pressed::return#0 ] -Allocated zp ZP_BYTE:193 [ keyboard_event_scan::$14 ] -Allocated zp ZP_BYTE:194 [ keyboard_event_pressed::return#1 ] -Allocated zp ZP_BYTE:195 [ keyboard_event_scan::$18 ] -Allocated zp ZP_BYTE:196 [ keyboard_event_pressed::return#2 ] -Allocated zp ZP_BYTE:197 [ keyboard_event_scan::$22 ] -Allocated zp ZP_BYTE:198 [ keyboard_event_pressed::return#10 ] -Allocated zp ZP_BYTE:199 [ keyboard_event_scan::$26 ] -Allocated zp ZP_BYTE:200 [ keyboard_modifiers#5 ] -Allocated zp ZP_BYTE:201 [ keyboard_event_scan::$3 ] -Allocated zp ZP_BYTE:202 [ keyboard_event_scan::$4 ] -Allocated zp ZP_BYTE:203 [ keyboard_event_scan::event_type#0 ] -Allocated zp ZP_BYTE:204 [ keyboard_event_scan::$11 ] -Allocated zp ZP_BYTE:205 [ keyboard_matrix_read::return#0 ] -Allocated zp ZP_BYTE:206 [ render_screen_showing#1 ] -Allocated zp ZP_BYTE:207 [ play_init::$1 ] -Allocated zp ZP_BYTE:208 [ play_init::b4#0 ] -Allocated zp ZP_BYTE:209 [ sprites_init::s2#0 ] -Allocated zp ZP_BYTE:210 [ render_init::$13 ] -Allocated zp ZP_BYTE:211 [ render_init::$14 ] -Allocated zp ZP_BYTE:212 [ sprites_irq::ypos#0 ] -Allocated zp ZP_BYTE:213 [ sprites_irq::$0 ] -Allocated zp ZP_BYTE:214 [ sprites_irq::raster_sprite_gfx_modify#0 ] -Allocated zp ZP_BYTE:215 [ sprites_irq::ptr#0 ] -Allocated zp ZP_BYTE:216 [ sprites_irq::ptr#3 ] -Allocated zp ZP_BYTE:217 [ sprites_irq::ptr#4 ] -Allocated zp ZP_BYTE:218 [ irq_cnt#1 ] -Allocated zp ZP_BYTE:219 [ irq_sprite_ypos#3 ] -Allocated zp ZP_BYTE:220 [ irq_sprite_ptr#3 ] -Allocated zp ZP_BYTE:221 [ irq_cnt#2 ] -Allocated zp ZP_BYTE:222 [ irq_sprite_ypos#2 ] -Allocated zp ZP_BYTE:223 [ irq_sprite_ptr#2 ] -Allocated zp ZP_BYTE:224 [ irq_sprite_ypos#1 ] -Allocated zp ZP_BYTE:225 [ irq_sprite_ptr#1 ] -Allocated zp ZP_BYTE:226 [ sprites_irq::ptr#1 ] -Allocated zp ZP_BYTE:227 [ sprites_irq::ptr#2 ] +Allocated zp ZP_BYTE:15 [ render_screen_render#15 render_screen_render#68 ] +Allocated zp ZP_BYTE:16 [ next_piece_idx#12 next_piece_idx#84 next_piece_idx#85 ] +Allocated zp ZP_BYTE:17 [ render_next::l#7 render_next::l#1 ] +Allocated zp ZP_WORD:18 [ render_next::next_piece_gfx#2 render_next::next_piece_gfx#3 render_next::next_piece_gfx#1 render_next::next_piece_gfx#9 ] +Allocated zp ZP_WORD:20 [ render_next::screen_next_area#4 render_next::screen_next_area#9 render_next::screen_next_area#3 render_next::screen_next_area#10 render_next::screen_next_area#2 ] +Allocated zp ZP_BYTE:22 [ render_next::c#2 render_next::c#1 ] +Allocated zp ZP_BYTE:23 [ current_ypos#12 current_ypos#108 current_ypos#109 ] +Allocated zp ZP_BYTE:24 [ render_screen_render#33 render_screen_render#69 ] +Allocated zp ZP_BYTE:25 [ current_xpos#58 current_xpos#132 current_xpos#133 ] +Allocated zp ZP_WORD:26 [ current_piece_gfx#63 current_piece_gfx#122 current_piece_gfx#123 ] +Allocated zp ZP_BYTE:28 [ current_piece_char#67 current_piece_char#110 current_piece_char#111 ] +Allocated zp ZP_BYTE:29 [ render_moving::ypos2#2 render_moving::ypos2#0 render_moving::ypos2#1 ] +Allocated zp ZP_BYTE:30 [ render_moving::l#4 render_moving::l#1 ] +Allocated zp ZP_BYTE:31 [ render_moving::i#4 render_moving::i#3 render_moving::i#8 render_moving::i#2 render_moving::i#1 ] +Allocated zp ZP_BYTE:32 [ render_moving::xpos#2 render_moving::xpos#0 render_moving::xpos#1 ] +Allocated zp ZP_BYTE:33 [ render_moving::c#2 render_moving::c#1 ] +Allocated zp ZP_BYTE:34 [ render_screen_render#22 render_screen_render#70 ] +Allocated zp ZP_BYTE:35 [ render_playfield::l#2 render_playfield::l#1 ] +Allocated zp ZP_BYTE:36 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] +Allocated zp ZP_WORD:37 [ render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 ] +Allocated zp ZP_BYTE:39 [ render_playfield::c#2 render_playfield::c#1 ] +Allocated zp ZP_BYTE:40 [ play_movement::return#2 play_movement::render#1 play_movement::return#0 ] +Allocated zp ZP_BYTE:41 [ play_move_rotate::return#2 ] +Allocated zp ZP_BYTE:42 [ play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] +Allocated zp ZP_WORD:43 [ current_piece#17 current_piece#98 current_piece#99 current_piece#100 current_piece#101 current_piece#102 ] +Allocated zp ZP_BYTE:45 [ play_collision::orientation#5 play_collision::orientation#0 play_collision::orientation#1 play_collision::orientation#2 play_collision::orientation#3 ] +Allocated zp ZP_BYTE:46 [ play_collision::ypos#5 play_collision::ypos#0 play_collision::ypos#1 play_collision::ypos#2 play_collision::ypos#3 play_collision::ypos#4 ] +Allocated zp ZP_BYTE:47 [ play_collision::xpos#6 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 play_collision::xpos#4 ] +Allocated zp ZP_BYTE:48 [ play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 ] +Allocated zp ZP_BYTE:49 [ play_collision::l#6 play_collision::l#1 ] +Allocated zp ZP_BYTE:50 [ play_collision::i#2 play_collision::i#3 play_collision::i#11 play_collision::i#13 ] +Allocated zp ZP_BYTE:51 [ play_collision::col#2 play_collision::col#9 play_collision::col#1 ] +Allocated zp ZP_BYTE:52 [ play_collision::c#2 play_collision::c#1 ] +Allocated zp ZP_BYTE:53 [ play_collision::return#15 ] +Allocated zp ZP_BYTE:54 [ play_move_leftright::return#2 ] +Allocated zp ZP_BYTE:55 [ 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:56 [ current_ypos#38 current_ypos#10 current_ypos#18 current_ypos#5 current_ypos#2 ] +Allocated zp ZP_WORD:57 [ lines_bcd#27 lines_bcd#17 lines_bcd#19 lines_bcd#15 lines_bcd#30 ] +Allocated zp ZP_DWORD:59 [ score_bcd#27 score_bcd#16 score_bcd#18 score_bcd#14 score_bcd#30 ] +Allocated zp ZP_BYTE:63 [ level#31 level#18 level#10 level#16 level#20 ] +Allocated zp ZP_BYTE:64 [ current_movedown_slow#38 current_movedown_slow#23 current_movedown_slow#14 current_movedown_slow#21 current_movedown_slow#1 current_movedown_slow#69 current_movedown_slow#10 ] +Allocated zp ZP_BYTE:65 [ level_bcd#32 level_bcd#19 level_bcd#11 level_bcd#17 level_bcd#64 level_bcd#21 level_bcd#8 ] +Allocated zp ZP_WORD:66 [ current_piece#29 current_piece#103 current_piece#10 current_piece#15 current_piece#96 ] +Allocated zp ZP_BYTE:68 [ current_piece_char#29 current_piece_char#21 current_piece_char#15 current_piece_char#4 ] +Allocated zp ZP_BYTE:69 [ current_orientation#38 current_orientation#13 current_orientation#17 current_orientation#20 current_orientation#25 current_orientation#7 ] +Allocated zp ZP_WORD:70 [ current_piece_gfx#35 current_piece_gfx#111 current_piece_gfx#17 current_piece_gfx#7 current_piece_gfx#19 current_piece_gfx#20 current_piece_gfx#6 ] +Allocated zp ZP_BYTE:72 [ current_xpos#43 current_xpos#121 current_xpos#18 current_xpos#102 current_xpos#21 current_xpos#25 current_xpos#7 current_xpos#5 ] +Allocated zp ZP_BYTE:73 [ play_move_down::return#3 ] +Allocated zp ZP_BYTE:74 [ next_piece_idx#17 next_piece_idx#31 next_piece_idx#10 next_piece_idx#16 play_spawn_current::piece_idx#2 play_spawn_current::piece_idx#1 ] +Allocated zp ZP_BYTE:75 [ game_over#65 game_over#28 game_over#10 game_over#15 game_over#52 ] +Allocated zp ZP_BYTE:76 [ play_increase_level::b#2 play_increase_level::b#1 ] +Allocated zp ZP_BYTE:77 [ play_remove_lines::y#8 play_remove_lines::y#1 ] +Allocated zp ZP_BYTE:78 [ play_remove_lines::removed#11 play_remove_lines::removed#7 play_remove_lines::removed#1 ] +Allocated zp ZP_BYTE:79 [ play_remove_lines::r#2 play_remove_lines::r#3 play_remove_lines::r#1 ] +Allocated zp ZP_BYTE:80 [ play_remove_lines::x#2 play_remove_lines::x#1 ] +Allocated zp ZP_BYTE:81 [ play_remove_lines::full#4 play_remove_lines::full#2 ] +Allocated zp ZP_BYTE:82 [ 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:83 [ play_lock_current::ypos2#2 play_lock_current::ypos2#0 play_lock_current::ypos2#1 ] +Allocated zp ZP_BYTE:84 [ play_lock_current::l#6 play_lock_current::l#1 ] +Allocated zp ZP_BYTE:85 [ play_lock_current::i#2 play_lock_current::i#3 play_lock_current::i#7 play_lock_current::i#9 ] +Allocated zp ZP_BYTE:86 [ play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 ] +Allocated zp ZP_BYTE:87 [ play_lock_current::c#2 play_lock_current::c#1 ] +Allocated zp ZP_BYTE:88 [ keyboard_event_pressed::keycode#5 ] +Allocated zp ZP_BYTE:89 [ keyboard_event_get::return#2 keyboard_event_get::return#1 ] +Allocated zp ZP_BYTE:90 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] +Allocated zp ZP_BYTE:91 [ keyboard_modifiers#13 keyboard_modifiers#4 keyboard_modifiers#12 keyboard_modifiers#3 keyboard_modifiers#11 ] +Allocated zp ZP_BYTE:92 [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] +Allocated zp ZP_BYTE:93 [ 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:94 [ 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:95 [ render_show::d018val#3 ] +Allocated zp ZP_BYTE:96 [ play_init::j#2 play_init::j#1 ] +Allocated zp ZP_WORD:97 [ play_init::pli#2 play_init::pli#1 ] +Allocated zp ZP_BYTE:99 [ play_init::idx#2 play_init::idx#1 ] +Allocated zp ZP_BYTE:100 [ play_init::b#2 play_init::b#1 ] +Allocated zp ZP_BYTE:101 [ sprites_init::s#2 sprites_init::s#1 ] +Allocated zp ZP_BYTE:102 [ sprites_init::xpos#2 sprites_init::xpos#1 ] +Allocated zp ZP_BYTE:103 [ render_init::i#2 render_init::i#1 ] +Allocated zp ZP_WORD:104 [ render_init::li_1#2 render_init::li_1#1 ] +Allocated zp ZP_WORD:106 [ render_init::li_2#2 render_init::li_2#1 ] +Allocated zp ZP_BYTE:108 [ render_screen_original::y#6 render_screen_original::y#1 ] +Allocated zp ZP_WORD:109 [ render_screen_original::oscr#2 render_screen_original::oscr#4 render_screen_original::oscr#1 ] +Allocated zp ZP_WORD:111 [ render_screen_original::ocols#2 render_screen_original::ocols#4 render_screen_original::ocols#1 ] +Allocated zp ZP_WORD:113 [ 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:115 [ 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:117 [ 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:118 [ irq_raster_next#4 irq_raster_next#3 irq_raster_next#1 irq_raster_next#2 ] +Allocated zp ZP_BYTE:119 [ render_screen_showing#0 ] +Allocated zp ZP_BYTE:120 [ irq_raster_next#0 ] +Allocated zp ZP_BYTE:121 [ irq_sprite_ypos#0 ] +Allocated zp ZP_BYTE:122 [ irq_sprite_ptr#0 ] +Allocated zp ZP_BYTE:123 [ irq_cnt#0 ] +Allocated zp ZP_BYTE:124 [ keyboard_event_get::return#3 ] +Allocated zp ZP_BYTE:125 [ main::key_event#0 ] +Allocated zp ZP_BYTE:126 [ play_movement::key_event#0 ] +Allocated zp ZP_BYTE:127 [ play_movement::return#3 ] +Allocated zp ZP_BYTE:128 [ main::render#1 ] +Allocated zp ZP_BYTE:129 [ render_bcd::$3 ] +Allocated zp ZP_BYTE:130 [ render_bcd::$4 ] +Allocated zp ZP_BYTE:131 [ render_bcd::$5 ] +Allocated zp ZP_BYTE:132 [ render_bcd::$6 ] +Allocated zp ZP_WORD:133 [ render_bcd::screen_pos#1 ] +Allocated zp ZP_BYTE:135 [ render_next::$6 ] +Allocated zp ZP_BYTE:136 [ render_next::next_piece_char#0 ] +Allocated zp ZP_BYTE:137 [ render_next::cell#0 ] +Allocated zp ZP_BYTE:138 [ render_moving::$2 ] +Allocated zp ZP_WORD:139 [ render_moving::screen_line#0 ] +Allocated zp ZP_BYTE:141 [ render_moving::current_cell#0 ] +Allocated zp ZP_BYTE:142 [ render_playfield::$2 ] +Allocated zp ZP_BYTE:143 [ render_playfield::$3 ] +Allocated zp ZP_BYTE:144 [ play_move_down::key_event#0 ] +Allocated zp ZP_BYTE:145 [ play_move_down::return#0 ] +Allocated zp ZP_BYTE:146 [ play_movement::$0 ] +Allocated zp ZP_BYTE:147 [ play_move_leftright::key_event#0 ] +Allocated zp ZP_BYTE:148 [ play_move_leftright::return#0 ] +Allocated zp ZP_BYTE:149 [ play_movement::$3 ] +Allocated zp ZP_BYTE:150 [ play_movement::render#2 ] +Allocated zp ZP_BYTE:151 [ play_move_rotate::key_event#0 ] +Allocated zp ZP_BYTE:152 [ play_move_rotate::return#0 ] +Allocated zp ZP_BYTE:153 [ play_movement::$4 ] +Allocated zp ZP_BYTE:154 [ play_move_rotate::$2 ] +Allocated zp ZP_BYTE:155 [ play_collision::return#14 ] +Allocated zp ZP_BYTE:156 [ play_move_rotate::$6 ] +Allocated zp ZP_BYTE:157 [ play_move_rotate::$4 ] +Allocated zp ZP_WORD:158 [ play_collision::piece_gfx#0 ] +Allocated zp ZP_WORD:160 [ play_collision::playfield_line#0 ] +Allocated zp ZP_BYTE:162 [ play_collision::i#1 ] +Allocated zp ZP_BYTE:163 [ play_collision::$7 ] +Allocated zp ZP_BYTE:164 [ play_collision::return#13 ] +Allocated zp ZP_BYTE:165 [ play_move_leftright::$4 ] +Allocated zp ZP_BYTE:166 [ play_collision::return#1 ] +Allocated zp ZP_BYTE:167 [ play_move_leftright::$8 ] +Allocated zp ZP_BYTE:168 [ keyboard_event_pressed::return#12 ] +Allocated zp ZP_BYTE:169 [ play_move_down::$2 ] +Allocated zp ZP_BYTE:170 [ play_collision::return#0 ] +Allocated zp ZP_BYTE:171 [ play_move_down::$12 ] +Allocated zp ZP_BYTE:172 [ play_remove_lines::return#0 ] +Allocated zp ZP_BYTE:173 [ play_move_down::removed#0 ] +Allocated zp ZP_BYTE:174 [ play_update_score::removed#0 ] +Allocated zp ZP_BYTE:175 [ play_spawn_current::current_piece_idx#0 ] +Allocated zp ZP_BYTE:176 [ play_spawn_current::$0 ] +Allocated zp ZP_BYTE:177 [ play_collision::return#10 ] +Allocated zp ZP_BYTE:178 [ play_spawn_current::$2 ] +Allocated zp ZP_BYTE:179 [ sid_rnd::return#2 ] +Allocated zp ZP_BYTE:180 [ play_spawn_current::$6 ] +Allocated zp ZP_BYTE:181 [ sid_rnd::return#0 ] +Allocated zp ZP_BYTE:182 [ play_update_score::$2 ] +Allocated zp ZP_BYTE:183 [ play_update_score::lines_before#0 ] +Allocated zp ZP_BYTE:184 [ play_update_score::$4 ] +Allocated zp ZP_DWORD:185 [ play_update_score::add_bcd#0 ] +Allocated zp ZP_BYTE:189 [ play_update_score::$5 ] +Allocated zp ZP_BYTE:190 [ play_update_score::lines_after#0 ] +Allocated zp ZP_BYTE:191 [ play_increase_level::$1 ] +Allocated zp ZP_BYTE:192 [ play_increase_level::b4#0 ] +Allocated zp ZP_BYTE:193 [ play_remove_lines::c#0 ] +Allocated zp ZP_WORD:194 [ play_lock_current::playfield_line#0 ] +Allocated zp ZP_BYTE:196 [ play_lock_current::i#1 ] +Allocated zp ZP_BYTE:197 [ keyboard_event_pressed::$0 ] +Allocated zp ZP_BYTE:198 [ keyboard_event_pressed::row_bits#0 ] +Allocated zp ZP_BYTE:199 [ keyboard_event_pressed::$1 ] +Allocated zp ZP_BYTE:200 [ keyboard_event_pressed::return#11 ] +Allocated zp ZP_BYTE:201 [ keyboard_matrix_read::rowid#0 ] +Allocated zp ZP_BYTE:202 [ keyboard_matrix_read::return#2 ] +Allocated zp ZP_BYTE:203 [ keyboard_event_scan::row_scan#0 ] +Allocated zp ZP_BYTE:204 [ keyboard_event_pressed::return#0 ] +Allocated zp ZP_BYTE:205 [ keyboard_event_scan::$14 ] +Allocated zp ZP_BYTE:206 [ keyboard_event_pressed::return#1 ] +Allocated zp ZP_BYTE:207 [ keyboard_event_scan::$18 ] +Allocated zp ZP_BYTE:208 [ keyboard_event_pressed::return#2 ] +Allocated zp ZP_BYTE:209 [ keyboard_event_scan::$22 ] +Allocated zp ZP_BYTE:210 [ keyboard_event_pressed::return#10 ] +Allocated zp ZP_BYTE:211 [ keyboard_event_scan::$26 ] +Allocated zp ZP_BYTE:212 [ keyboard_modifiers#5 ] +Allocated zp ZP_BYTE:213 [ keyboard_event_scan::$3 ] +Allocated zp ZP_BYTE:214 [ keyboard_event_scan::$4 ] +Allocated zp ZP_BYTE:215 [ keyboard_event_scan::event_type#0 ] +Allocated zp ZP_BYTE:216 [ keyboard_event_scan::$11 ] +Allocated zp ZP_BYTE:217 [ keyboard_matrix_read::return#0 ] +Allocated zp ZP_BYTE:218 [ render_screen_showing#1 ] +Allocated zp ZP_BYTE:219 [ play_init::$1 ] +Allocated zp ZP_BYTE:220 [ play_init::b4#0 ] +Allocated zp ZP_BYTE:221 [ sprites_init::s2#0 ] +Allocated zp ZP_BYTE:222 [ render_init::$13 ] +Allocated zp ZP_BYTE:223 [ render_init::$14 ] +Allocated zp ZP_BYTE:224 [ sprites_irq::ypos#0 ] +Allocated zp ZP_BYTE:225 [ sprites_irq::$0 ] +Allocated zp ZP_BYTE:226 [ sprites_irq::raster_sprite_gfx_modify#0 ] +Allocated zp ZP_BYTE:227 [ sprites_irq::ptr#0 ] +Allocated zp ZP_BYTE:228 [ sprites_irq::ptr#3 ] +Allocated zp ZP_BYTE:229 [ sprites_irq::ptr#4 ] +Allocated zp ZP_BYTE:230 [ irq_cnt#1 ] +Allocated zp ZP_BYTE:231 [ irq_sprite_ypos#3 ] +Allocated zp ZP_BYTE:232 [ irq_sprite_ptr#3 ] +Allocated zp ZP_BYTE:233 [ irq_cnt#2 ] +Allocated zp ZP_BYTE:234 [ irq_sprite_ypos#2 ] +Allocated zp ZP_BYTE:235 [ irq_sprite_ptr#2 ] +Allocated zp ZP_BYTE:236 [ irq_sprite_ypos#1 ] +Allocated zp ZP_BYTE:237 [ irq_sprite_ptr#1 ] +Allocated zp ZP_BYTE:238 [ sprites_irq::ptr#1 ] +Allocated zp ZP_BYTE:239 [ sprites_irq::ptr#2 ] INITIAL ASM //SEG0 Basic Upstart @@ -12053,64 +12844,70 @@ INITIAL ASM .label PLAYFIELD_SPRITE_PTRS_2 = PLAYFIELD_SCREEN_2+SPRITE_PTRS .const IRQ_RASTER_FIRST = SPRITES_FIRST_YPOS+$13 .const toSpritePtr1_return = PLAYFIELD_SPRITES>>6 - .label keyboard_events_size = $56 - .label keyboard_modifiers = $53 - .label keyboard_modifiers_5 = $c8 - .label render_screen_showing = $6f - .label render_screen_showing_1 = $ce - .label irq_raster_next = $70 - .label irq_sprite_ypos = $71 - .label irq_sprite_ptr = $72 - .label irq_cnt = $73 - .label irq_cnt_1 = $da - .label irq_raster_next_1 = $6e - .label irq_sprite_ypos_1 = $e0 - .label irq_sprite_ptr_1 = $e1 - .label irq_cnt_2 = $dd - .label irq_raster_next_2 = $6e - .label irq_sprite_ypos_2 = $de - .label irq_sprite_ptr_2 = $df - .label irq_raster_next_3 = $6e - .label irq_sprite_ypos_3 = $db - .label irq_sprite_ptr_3 = $dc - .label irq_raster_next_4 = $6e - .label current_movedown_slow = $38 - .label current_ypos = $30 - .label current_xpos = $40 - .label current_orientation = $3d - .label current_piece_gfx = $3e - .label level_bcd = $39 - .label level = $37 + .label keyboard_events_size = $5e + .label keyboard_modifiers = $5b + .label keyboard_modifiers_5 = $d4 + .label render_screen_showing = $77 + .label render_screen_showing_1 = $da + .label irq_raster_next = $78 + .label irq_sprite_ypos = $79 + .label irq_sprite_ptr = $7a + .label irq_cnt = $7b + .label irq_cnt_1 = $e6 + .label irq_raster_next_1 = $76 + .label irq_sprite_ypos_1 = $ec + .label irq_sprite_ptr_1 = $ed + .label irq_cnt_2 = $e9 + .label irq_raster_next_2 = $76 + .label irq_sprite_ypos_2 = $ea + .label irq_sprite_ptr_2 = $eb + .label irq_raster_next_3 = $76 + .label irq_sprite_ypos_3 = $e7 + .label irq_sprite_ptr_3 = $e8 + .label irq_raster_next_4 = $76 + .label current_movedown_slow = $40 + .label current_ypos = $38 + .label current_xpos = $48 + .label current_orientation = $45 + .label current_piece_gfx = $46 + .label current_piece_char = $44 + .label level_bcd = $41 + .label current_piece = $42 + .label game_over = $4b + .label next_piece_idx = $4a + .label level = $3f .label render_screen_render = 3 .label render_screen_show = 2 - .label current_ypos_11 = $f + .label current_ypos_12 = $17 + .label render_screen_render_15 = $f + .label next_piece_idx_12 = $10 .label current_movedown_counter = 4 - .label lines_bcd = $31 - .label score_bcd = $33 - .label current_piece = $3a - .label current_piece_char = $3c - .label game_over = $42 - .label current_piece_16 = $23 - .label render_screen_render_21 = $1a - .label render_screen_render_30 = $10 - .label current_xpos_57 = $11 - .label current_piece_gfx_62 = $12 - .label current_piece_char_64 = $14 - .label current_ypos_100 = $f - .label current_ypos_101 = $f - .label render_screen_render_64 = $10 - .label current_xpos_124 = $11 - .label current_xpos_125 = $11 - .label current_piece_gfx_114 = $12 - .label current_piece_gfx_115 = $12 - .label current_piece_char_102 = $14 - .label current_piece_char_103 = $14 - .label render_screen_render_65 = $1a - .label current_piece_90 = $23 - .label current_piece_91 = $23 - .label current_piece_92 = $23 - .label current_piece_93 = $23 - .label current_piece_94 = $23 + .label lines_bcd = $39 + .label score_bcd = $3b + .label current_piece_17 = $2b + .label render_screen_render_22 = $22 + .label render_screen_render_33 = $18 + .label current_xpos_58 = $19 + .label current_piece_gfx_63 = $1a + .label current_piece_char_67 = $1c + .label render_screen_render_68 = $f + .label next_piece_idx_84 = $10 + .label next_piece_idx_85 = $10 + .label current_ypos_108 = $17 + .label current_ypos_109 = $17 + .label render_screen_render_69 = $18 + .label current_xpos_132 = $19 + .label current_xpos_133 = $19 + .label current_piece_gfx_122 = $1a + .label current_piece_gfx_123 = $1a + .label current_piece_char_110 = $1c + .label current_piece_char_111 = $1c + .label render_screen_render_70 = $22 + .label current_piece_98 = $2b + .label current_piece_99 = $2b + .label current_piece_100 = $2b + .label current_piece_101 = $2b + .label current_piece_102 = $2b //SEG2 @begin bbegin: jmp b14 @@ -12122,51 +12919,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 b22 -//SEG8 @22 -b22: -//SEG9 kickasm(location (const byte*) PLAYFIELD_SPRITES#0) {{ .var sprites = LoadPicture("playfield-sprites.png", List().add($010101, $000000)) // Put the sprites into memory .for(var sy=0;sy<10;sy++) { .var sprite_gfx_y = sy*20 .for(var sx=0;sx<3;sx++) { .for (var y=0;y<21; y++) { .var gfx_y = sprite_gfx_y + mod(2100+y-sprite_gfx_y,21) .for (var c=0; c<3; c++) { .byte sprites.getSinglecolorByte(sx*3+c,gfx_y) } } .byte 0 } } }} jmp b23 -//SEG10 @23 +//SEG8 @23 b23: +//SEG9 kickasm(location (const byte*) PLAYFIELD_SPRITES#0) {{ .var sprites = LoadPicture("playfield-sprites.png", List().add($010101, $000000)) // Put the sprites into memory .for(var sy=0;sy<10;sy++) { .var sprite_gfx_y = sy*20 .for(var sx=0;sx<3;sx++) { .for (var y=0;y<21; y++) { .var gfx_y = sprite_gfx_y + mod(2100+y-sprite_gfx_y,21) .for (var c=0; c<3; c++) { .byte sprites.getSinglecolorByte(sx*3+c,gfx_y) } } .byte 0 } } }} + jmp b24 +//SEG10 @24 +b24: //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 ← (const byte) SPRITES_FIRST_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuz1=vbuc1 lda #SPRITES_FIRST_YPOS+$15 sta irq_sprite_ypos -//SEG13 [8] phi from @23 to toSpritePtr1 [phi:@23->toSpritePtr1] -toSpritePtr1_from_b23: +//SEG13 [8] phi from @24 to toSpritePtr1 [phi:@24->toSpritePtr1] +toSpritePtr1_from_b24: jmp toSpritePtr1 //SEG14 toSpritePtr1 toSpritePtr1: - jmp b38 -//SEG15 @38 -b38: + jmp b39 +//SEG15 @39 +b39: //SEG16 [9] (byte) irq_sprite_ptr#0 ← (const byte) toSpritePtr1_return#0+(byte/signed byte/word/signed word/dword/signed dword) 3 -- vbuz1=vbuc1 lda #toSpritePtr1_return+3 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 @38 to @37 [phi:@38->@37] -b37_from_b38: - jmp b37 -//SEG19 @37 -b37: +//SEG18 [11] phi from @39 to @38 [phi:@39->@38] +b38_from_b39: + jmp b38 +//SEG19 @38 +b38: //SEG20 [12] call main -//SEG21 [14] phi from @37 to main [phi:@37->main] -main_from_b37: +//SEG21 [14] phi from @38 to main [phi:@38->main] +main_from_b38: jsr main -//SEG22 [13] phi from @37 to @end [phi:@37->@end] -bend_from_b37: +//SEG22 [13] phi from @38 to @end [phi:@38->@end] +bend_from_b38: jmp bend //SEG23 @end bend: //SEG24 main main: { - .label key_event = $75 - .label render = $78 + .label key_event = $7d + .label render = $80 //SEG25 [15] call sid_rnd_init jsr sid_rnd_init jmp b25 @@ -12175,7 +12972,7 @@ main: { //SEG27 asm { sei } sei //SEG28 [17] call render_init - //SEG29 [470] phi from main::@25 to render_init [phi:main::@25->render_init] + //SEG29 [499] phi from main::@25 to render_init [phi:main::@25->render_init] render_init_from_b25: jsr render_init //SEG30 [18] phi from main::@25 to main::@26 [phi:main::@25->main::@26] @@ -12198,7 +12995,7 @@ main: { //SEG37 main::@28 b28: //SEG38 [23] call play_init - //SEG39 [429] phi from main::@28 to play_init [phi:main::@28->play_init] + //SEG39 [458] phi from main::@28 to play_init [phi:main::@28->play_init] play_init_from_b28: jsr play_init //SEG40 [24] phi from main::@28 to main::@29 [phi:main::@28->main::@29] @@ -12207,483 +13004,529 @@ main: { //SEG41 main::@29 b29: //SEG42 [25] call play_spawn_current - //SEG43 [257] phi from main::@29 to play_spawn_current [phi:main::@29->play_spawn_current] + //SEG43 [285] phi from main::@29 to play_spawn_current [phi:main::@29->play_spawn_current] play_spawn_current_from_b29: - //SEG44 [257] phi (byte) game_over#70 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@29->play_spawn_current#0] -- vbuz1=vbuc1 + //SEG44 [285] phi (byte) game_over#65 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@29->play_spawn_current#0] -- vbuz1=vbuc1 lda #0 sta game_over + //SEG45 [285] phi (byte) next_piece_idx#17 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@29->play_spawn_current#1] -- vbuz1=vbuc1 + lda #0 + sta next_piece_idx jsr play_spawn_current - //SEG45 [26] phi from main::@29 to main::@30 [phi:main::@29->main::@30] + //SEG46 [26] phi from main::@29 to main::@30 [phi:main::@29->main::@30] b30_from_b29: jmp b30 - //SEG46 main::@30 + //SEG47 main::@30 b30: - //SEG47 [27] call render_playfield - //SEG48 [122] phi from main::@30 to render_playfield [phi:main::@30->render_playfield] - render_playfield_from_b30: - //SEG49 [122] phi (byte) render_screen_render#21 = (byte/signed byte/word/signed word/dword/signed dword) 64 [phi:main::@30->render_playfield#0] -- vbuz1=vbuc1 - lda #$40 - sta render_screen_render_21 - jsr render_playfield + //SEG48 [27] call play_spawn_current + //SEG49 [285] phi from main::@30 to play_spawn_current [phi:main::@30->play_spawn_current] + play_spawn_current_from_b30: + //SEG50 [285] phi (byte) game_over#65 = (byte) game_over#52 [phi:main::@30->play_spawn_current#0] -- register_copy + //SEG51 [285] phi (byte) next_piece_idx#17 = (byte) play_spawn_current::piece_idx#2 [phi:main::@30->play_spawn_current#1] -- register_copy + jsr play_spawn_current + //SEG52 [28] phi from main::@30 to main::@31 [phi:main::@30->main::@31] + b31_from_b30: jmp b31 - //SEG50 main::@31 + //SEG53 main::@31 b31: - //SEG51 [28] (byte~) current_ypos#100 ← (byte) current_ypos#22 -- vbuz1=vbuz2 - lda current_ypos - sta current_ypos_100 - //SEG52 [29] (byte~) current_xpos#124 ← (byte) current_xpos#28 -- vbuz1=vbuz2 - lda current_xpos - sta current_xpos_124 - //SEG53 [30] (byte*~) current_piece_gfx#114 ← (byte*) current_piece_gfx#21 -- pbuz1=pbuz2 - lda current_piece_gfx - sta current_piece_gfx_114 - lda current_piece_gfx+1 - sta current_piece_gfx_114+1 - //SEG54 [31] (byte~) current_piece_char#102 ← (byte) current_piece_char#16 -- vbuz1=vbuz2 - lda current_piece_char - sta current_piece_char_102 - //SEG55 [32] call render_moving - //SEG56 [101] phi from main::@31 to render_moving [phi:main::@31->render_moving] - render_moving_from_b31: - //SEG57 [101] phi (byte) current_piece_char#64 = (byte~) current_piece_char#102 [phi:main::@31->render_moving#0] -- register_copy - //SEG58 [101] phi (byte*) current_piece_gfx#62 = (byte*~) current_piece_gfx#114 [phi:main::@31->render_moving#1] -- register_copy - //SEG59 [101] phi (byte) current_xpos#57 = (byte~) current_xpos#124 [phi:main::@31->render_moving#2] -- register_copy - //SEG60 [101] phi (byte) render_screen_render#30 = (byte/signed byte/word/signed word/dword/signed dword) 64 [phi:main::@31->render_moving#3] -- vbuz1=vbuc1 + //SEG54 [29] call render_playfield + //SEG55 [150] phi from main::@31 to render_playfield [phi:main::@31->render_playfield] + render_playfield_from_b31: + //SEG56 [150] phi (byte) render_screen_render#22 = (byte/signed byte/word/signed word/dword/signed dword) 64 [phi:main::@31->render_playfield#0] -- vbuz1=vbuc1 lda #$40 - sta render_screen_render_30 - //SEG61 [101] phi (byte) current_ypos#11 = (byte~) current_ypos#100 [phi:main::@31->render_moving#4] -- register_copy + sta render_screen_render_22 + jsr render_playfield + jmp b32 + //SEG57 main::@32 + b32: + //SEG58 [30] (byte~) current_ypos#108 ← (byte) current_ypos#5 -- vbuz1=vbuz2 + lda current_ypos + sta current_ypos_108 + //SEG59 [31] (byte~) current_xpos#132 ← (byte) current_xpos#102 -- vbuz1=vbuz2 + lda current_xpos + sta current_xpos_132 + //SEG60 [32] (byte*~) current_piece_gfx#122 ← (byte*) current_piece_gfx#7 -- pbuz1=pbuz2 + lda current_piece_gfx + sta current_piece_gfx_122 + lda current_piece_gfx+1 + sta current_piece_gfx_122+1 + //SEG61 [33] (byte~) current_piece_char#110 ← (byte) current_piece_char#4 -- vbuz1=vbuz2 + lda current_piece_char + sta current_piece_char_110 + //SEG62 [34] call render_moving + //SEG63 [129] phi from main::@32 to render_moving [phi:main::@32->render_moving] + render_moving_from_b32: + //SEG64 [129] phi (byte) current_piece_char#67 = (byte~) current_piece_char#110 [phi:main::@32->render_moving#0] -- register_copy + //SEG65 [129] phi (byte*) current_piece_gfx#63 = (byte*~) current_piece_gfx#122 [phi:main::@32->render_moving#1] -- register_copy + //SEG66 [129] phi (byte) current_xpos#58 = (byte~) current_xpos#132 [phi:main::@32->render_moving#2] -- register_copy + //SEG67 [129] phi (byte) render_screen_render#33 = (byte/signed byte/word/signed word/dword/signed dword) 64 [phi:main::@32->render_moving#3] -- vbuz1=vbuc1 + lda #$40 + sta render_screen_render_33 + //SEG68 [129] phi (byte) current_ypos#12 = (byte~) current_ypos#108 [phi:main::@32->render_moving#4] -- register_copy jsr render_moving - //SEG62 [33] (byte*~) current_piece#88 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) -- pbuz1=pptc1_derefidx_vbuz2 - ldy play_spawn_current._3 + jmp b33 + //SEG69 main::@33 + b33: + //SEG70 [35] (byte~) next_piece_idx#84 ← (byte) play_spawn_current::piece_idx#2 -- vbuz1=vbuz2 + lda play_spawn_current.piece_idx + sta next_piece_idx_84 + //SEG71 [36] call render_next + //SEG72 [108] phi from main::@33 to render_next [phi:main::@33->render_next] + render_next_from_b33: + //SEG73 [108] phi (byte) next_piece_idx#12 = (byte~) next_piece_idx#84 [phi:main::@33->render_next#0] -- register_copy + //SEG74 [108] phi (byte) render_screen_render#15 = (byte/signed byte/word/signed word/dword/signed dword) 64 [phi:main::@33->render_next#1] -- vbuz1=vbuc1 + lda #$40 + sta render_screen_render_15 + jsr render_next + //SEG75 [37] (byte*~) current_piece#96 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$0) -- pbuz1=pptc1_derefidx_vbuz2 + ldy play_spawn_current._0 lda PIECES,y sta current_piece lda PIECES+1,y sta current_piece+1 - //SEG63 [34] phi from main::@31 to main::@1 [phi:main::@31->main::@1] - b1_from_b31: - //SEG64 [34] phi (byte) level_bcd#11 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@31->main::@1#0] -- vbuz1=vbuc1 + //SEG76 [38] phi from main::@33 to main::@1 [phi:main::@33->main::@1] + b1_from_b33: + //SEG77 [38] phi (byte) level_bcd#11 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@33->main::@1#0] -- vbuz1=vbuc1 lda #0 sta level_bcd - //SEG65 [34] phi (byte) level#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@31->main::@1#1] -- vbuz1=vbuc1 + //SEG78 [38] phi (byte) level#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@33->main::@1#1] -- vbuz1=vbuc1 lda #0 sta level - //SEG66 [34] phi (dword) score_bcd#18 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@31->main::@1#2] -- vduz1=vbuc1 + //SEG79 [38] phi (dword) score_bcd#18 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@33->main::@1#2] -- vduz1=vbuc1 lda #0 sta score_bcd lda #0 sta score_bcd+1 sta score_bcd+2 sta score_bcd+3 - //SEG67 [34] phi (word) lines_bcd#19 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@31->main::@1#3] -- vwuz1=vbuc1 + //SEG80 [38] phi (word) lines_bcd#19 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@33->main::@1#3] -- vwuz1=vbuc1 lda #<0 sta lines_bcd lda #>0 sta lines_bcd+1 - //SEG68 [34] phi (byte) current_movedown_counter#16 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@31->main::@1#4] -- vbuz1=vbuc1 + //SEG81 [38] phi (byte) current_movedown_counter#16 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@33->main::@1#4] -- vbuz1=vbuc1 lda #0 sta current_movedown_counter - //SEG69 [34] phi (byte) keyboard_events_size#19 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@31->main::@1#5] -- vbuz1=vbuc1 + //SEG82 [38] phi (byte) keyboard_events_size#19 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@33->main::@1#5] -- vbuz1=vbuc1 lda #0 sta keyboard_events_size - //SEG70 [34] phi (byte) game_over#19 = (byte) game_over#15 [phi:main::@31->main::@1#6] -- register_copy - //SEG71 [34] phi (byte) current_ypos#25 = (byte) current_ypos#22 [phi:main::@31->main::@1#7] -- register_copy - //SEG72 [34] phi (byte) current_xpos#113 = (byte) current_xpos#28 [phi:main::@31->main::@1#8] -- register_copy - //SEG73 [34] phi (byte*) current_piece_gfx#103 = (byte*) current_piece_gfx#21 [phi:main::@31->main::@1#9] -- register_copy - //SEG74 [34] phi (byte) current_orientation#12 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@31->main::@1#10] -- vbuz1=vbuc1 + //SEG83 [38] phi (byte) next_piece_idx#10 = (byte) play_spawn_current::piece_idx#2 [phi:main::@33->main::@1#6] -- register_copy + //SEG84 [38] phi (byte) game_over#10 = (byte) game_over#52 [phi:main::@33->main::@1#7] -- register_copy + //SEG85 [38] phi (byte) current_ypos#10 = (byte) current_ypos#5 [phi:main::@33->main::@1#8] -- register_copy + //SEG86 [38] phi (byte) current_xpos#121 = (byte) current_xpos#102 [phi:main::@33->main::@1#9] -- register_copy + //SEG87 [38] phi (byte*) current_piece_gfx#111 = (byte*) current_piece_gfx#7 [phi:main::@33->main::@1#10] -- register_copy + //SEG88 [38] phi (byte) current_orientation#13 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@33->main::@1#11] -- vbuz1=vbuc1 lda #0 sta current_orientation - //SEG75 [34] phi (byte) current_piece_char#19 = (byte) current_piece_char#16 [phi:main::@31->main::@1#11] -- register_copy - //SEG76 [34] phi (byte*) current_piece#20 = (byte*~) current_piece#88 [phi:main::@31->main::@1#12] -- register_copy - //SEG77 [34] phi (byte) current_movedown_slow#14 = (byte) current_movedown_slow#1 [phi:main::@31->main::@1#13] -- register_copy - //SEG78 [34] phi (byte) render_screen_render#17 = (byte/signed byte/word/signed word/dword/signed dword) 64 [phi:main::@31->main::@1#14] -- vbuz1=vbuc1 + //SEG89 [38] phi (byte) current_piece_char#21 = (byte) current_piece_char#4 [phi:main::@33->main::@1#12] -- register_copy + //SEG90 [38] phi (byte*) current_piece#10 = (byte*~) current_piece#96 [phi:main::@33->main::@1#13] -- register_copy + //SEG91 [38] phi (byte) current_movedown_slow#14 = (byte) current_movedown_slow#1 [phi:main::@33->main::@1#14] -- register_copy + //SEG92 [38] phi (byte) render_screen_render#18 = (byte/signed byte/word/signed word/dword/signed dword) 64 [phi:main::@33->main::@1#15] -- vbuz1=vbuc1 lda #$40 sta render_screen_render - //SEG79 [34] phi (byte) render_screen_show#16 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@31->main::@1#15] -- vbuz1=vbuc1 + //SEG93 [38] phi (byte) render_screen_show#16 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@33->main::@1#16] -- vbuz1=vbuc1 lda #0 sta render_screen_show jmp b1 - //SEG80 [34] phi from main::@11 to main::@1 [phi:main::@11->main::@1] + //SEG94 [38] phi from main::@11 to main::@1 [phi:main::@11->main::@1] b1_from_b11: - //SEG81 [34] phi (byte) level_bcd#11 = (byte) level_bcd#17 [phi:main::@11->main::@1#0] -- register_copy - //SEG82 [34] phi (byte) level#10 = (byte) level#16 [phi:main::@11->main::@1#1] -- register_copy - //SEG83 [34] phi (dword) score_bcd#18 = (dword) score_bcd#14 [phi:main::@11->main::@1#2] -- register_copy - //SEG84 [34] phi (word) lines_bcd#19 = (word) lines_bcd#15 [phi:main::@11->main::@1#3] -- register_copy - //SEG85 [34] phi (byte) current_movedown_counter#16 = (byte) current_movedown_counter#14 [phi:main::@11->main::@1#4] -- register_copy - //SEG86 [34] phi (byte) keyboard_events_size#19 = (byte) keyboard_events_size#16 [phi:main::@11->main::@1#5] -- register_copy - //SEG87 [34] phi (byte) game_over#19 = (byte) game_over#14 [phi:main::@11->main::@1#6] -- register_copy - //SEG88 [34] phi (byte) current_ypos#25 = (byte) current_ypos#17 [phi:main::@11->main::@1#7] -- register_copy - //SEG89 [34] phi (byte) current_xpos#113 = (byte) current_xpos#17 [phi:main::@11->main::@1#8] -- register_copy - //SEG90 [34] phi (byte*) current_piece_gfx#103 = (byte*) current_piece_gfx#16 [phi:main::@11->main::@1#9] -- register_copy - //SEG91 [34] phi (byte) current_orientation#12 = (byte) current_orientation#16 [phi:main::@11->main::@1#10] -- register_copy - //SEG92 [34] phi (byte) current_piece_char#19 = (byte) current_piece_char#14 [phi:main::@11->main::@1#11] -- register_copy - //SEG93 [34] phi (byte*) current_piece#20 = (byte*) current_piece#14 [phi:main::@11->main::@1#12] -- register_copy - //SEG94 [34] phi (byte) current_movedown_slow#14 = (byte) current_movedown_slow#21 [phi:main::@11->main::@1#13] -- register_copy + //SEG95 [38] phi (byte) level_bcd#11 = (byte) level_bcd#17 [phi:main::@11->main::@1#0] -- register_copy + //SEG96 [38] phi (byte) level#10 = (byte) level#16 [phi:main::@11->main::@1#1] -- register_copy + //SEG97 [38] phi (dword) score_bcd#18 = (dword) score_bcd#14 [phi:main::@11->main::@1#2] -- register_copy + //SEG98 [38] phi (word) lines_bcd#19 = (word) lines_bcd#15 [phi:main::@11->main::@1#3] -- register_copy + //SEG99 [38] phi (byte) current_movedown_counter#16 = (byte) current_movedown_counter#14 [phi:main::@11->main::@1#4] -- register_copy + //SEG100 [38] phi (byte) keyboard_events_size#19 = (byte) keyboard_events_size#16 [phi:main::@11->main::@1#5] -- register_copy + //SEG101 [38] phi (byte) next_piece_idx#10 = (byte) next_piece_idx#16 [phi:main::@11->main::@1#6] -- register_copy + //SEG102 [38] phi (byte) game_over#10 = (byte) game_over#15 [phi:main::@11->main::@1#7] -- register_copy + //SEG103 [38] phi (byte) current_ypos#10 = (byte) current_ypos#18 [phi:main::@11->main::@1#8] -- register_copy + //SEG104 [38] phi (byte) current_xpos#121 = (byte) current_xpos#18 [phi:main::@11->main::@1#9] -- register_copy + //SEG105 [38] phi (byte*) current_piece_gfx#111 = (byte*) current_piece_gfx#17 [phi:main::@11->main::@1#10] -- register_copy + //SEG106 [38] phi (byte) current_orientation#13 = (byte) current_orientation#17 [phi:main::@11->main::@1#11] -- register_copy + //SEG107 [38] phi (byte) current_piece_char#21 = (byte) current_piece_char#15 [phi:main::@11->main::@1#12] -- register_copy + //SEG108 [38] phi (byte*) current_piece#10 = (byte*) current_piece#15 [phi:main::@11->main::@1#13] -- register_copy + //SEG109 [38] phi (byte) current_movedown_slow#14 = (byte) current_movedown_slow#21 [phi:main::@11->main::@1#14] -- register_copy jmp b1 - //SEG95 main::@1 + //SEG110 main::@1 b1: jmp b4 - //SEG96 main::@4 + //SEG111 main::@4 b4: - //SEG97 [35] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG112 [39] 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 - //SEG98 [36] phi from main::@4 to main::@6 [phi:main::@4->main::@6] + //SEG113 [40] phi from main::@4 to main::@6 [phi:main::@4->main::@6] b6_from_b4: jmp b6 - //SEG99 main::@6 + //SEG114 main::@6 b6: - //SEG100 [37] call render_show + //SEG115 [41] call render_show jsr render_show - //SEG101 [38] phi from main::@6 to main::@33 [phi:main::@6->main::@33] - b33_from_b6: - jmp b33 - //SEG102 main::@33 - b33: - //SEG103 [39] call keyboard_event_scan - //SEG104 [366] phi from main::@33 to keyboard_event_scan [phi:main::@33->keyboard_event_scan] - keyboard_event_scan_from_b33: + //SEG116 [42] phi from main::@6 to main::@35 [phi:main::@6->main::@35] + b35_from_b6: + jmp b35 + //SEG117 main::@35 + b35: + //SEG118 [43] call keyboard_event_scan + //SEG119 [395] phi from main::@35 to keyboard_event_scan [phi:main::@35->keyboard_event_scan] + keyboard_event_scan_from_b35: jsr keyboard_event_scan - //SEG105 [40] phi from main::@33 to main::@34 [phi:main::@33->main::@34] - b34_from_b33: - jmp b34 - //SEG106 main::@34 - b34: - //SEG107 [41] call keyboard_event_get + //SEG120 [44] phi from main::@35 to main::@36 [phi:main::@35->main::@36] + b36_from_b35: + jmp b36 + //SEG121 main::@36 + b36: + //SEG122 [45] call keyboard_event_get jsr keyboard_event_get - //SEG108 [42] (byte) keyboard_event_get::return#3 ← (byte) keyboard_event_get::return#2 -- vbuz1=vbuz2 + //SEG123 [46] (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 b35 - //SEG109 main::@35 - b35: - //SEG110 [43] (byte) main::key_event#0 ← (byte) keyboard_event_get::return#3 -- vbuz1=vbuz2 + jmp b37 + //SEG124 main::@37 + b37: + //SEG125 [47] (byte) main::key_event#0 ← (byte) keyboard_event_get::return#3 -- vbuz1=vbuz2 lda keyboard_event_get.return_3 sta key_event - //SEG111 [44] if((byte) game_over#19==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@7 -- vbuz1_eq_0_then_la1 + //SEG126 [48] if((byte) game_over#10==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@7 -- vbuz1_eq_0_then_la1 lda game_over cmp #0 beq b7 jmp b9 - //SEG112 main::@9 + //SEG127 main::@9 b9: - //SEG113 [45] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) -- _deref_pbuc1=_inc__deref_pbuc1 + //SEG128 [49] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) -- _deref_pbuc1=_inc__deref_pbuc1 inc BORDERCOL jmp b9 - //SEG114 main::@7 + //SEG129 main::@7 b7: - //SEG115 [46] (byte) play_movement::key_event#0 ← (byte) main::key_event#0 -- vbuz1=vbuz2 + //SEG130 [50] (byte) play_movement::key_event#0 ← (byte) main::key_event#0 -- vbuz1=vbuz2 lda key_event sta play_movement.key_event - //SEG116 [47] call play_movement + //SEG131 [51] call play_movement jsr play_movement - //SEG117 [48] (byte) play_movement::return#3 ← (byte) play_movement::return#2 -- vbuz1=vbuz2 + //SEG132 [52] (byte) play_movement::return#3 ← (byte) play_movement::return#2 -- vbuz1=vbuz2 lda play_movement.return sta play_movement.return_3 - jmp b36 - //SEG118 main::@36 - b36: - //SEG119 [49] (byte) main::render#1 ← (byte) play_movement::return#3 -- vbuz1=vbuz2 + jmp b38 + //SEG133 main::@38 + b38: + //SEG134 [53] (byte) main::render#1 ← (byte) play_movement::return#3 -- vbuz1=vbuz2 lda play_movement.return_3 sta render jmp b11 - //SEG120 main::@11 + //SEG135 main::@11 b11: - //SEG121 [50] if((byte) main::render#1==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@1 -- vbuz1_eq_0_then_la1 + //SEG136 [54] if((byte) main::render#1==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@1 -- vbuz1_eq_0_then_la1 lda render cmp #0 beq b1_from_b11 jmp b23 - //SEG122 main::@23 + //SEG137 main::@23 b23: - //SEG123 [51] (byte~) render_screen_render#65 ← (byte) render_screen_render#17 -- vbuz1=vbuz2 + //SEG138 [55] (byte~) render_screen_render#70 ← (byte) render_screen_render#18 -- vbuz1=vbuz2 lda render_screen_render - sta render_screen_render_65 - //SEG124 [52] call render_playfield - //SEG125 [122] phi from main::@23 to render_playfield [phi:main::@23->render_playfield] + sta render_screen_render_70 + //SEG139 [56] call render_playfield + //SEG140 [150] phi from main::@23 to render_playfield [phi:main::@23->render_playfield] render_playfield_from_b23: - //SEG126 [122] phi (byte) render_screen_render#21 = (byte~) render_screen_render#65 [phi:main::@23->render_playfield#0] -- register_copy + //SEG141 [150] phi (byte) render_screen_render#22 = (byte~) render_screen_render#70 [phi:main::@23->render_playfield#0] -- register_copy jsr render_playfield - jmp b37 - //SEG127 main::@37 - b37: - //SEG128 [53] (byte~) current_ypos#101 ← (byte) current_ypos#17 -- vbuz1=vbuz2 - lda current_ypos - sta current_ypos_101 - //SEG129 [54] (byte~) render_screen_render#64 ← (byte) render_screen_render#17 -- vbuz1=vbuz2 - lda render_screen_render - sta render_screen_render_64 - //SEG130 [55] (byte~) current_xpos#125 ← (byte) current_xpos#17 -- vbuz1=vbuz2 - lda current_xpos - sta current_xpos_125 - //SEG131 [56] (byte*~) current_piece_gfx#115 ← (byte*) current_piece_gfx#16 -- pbuz1=pbuz2 - lda current_piece_gfx - sta current_piece_gfx_115 - lda current_piece_gfx+1 - sta current_piece_gfx_115+1 - //SEG132 [57] (byte~) current_piece_char#103 ← (byte) current_piece_char#14 -- vbuz1=vbuz2 - lda current_piece_char - sta current_piece_char_103 - //SEG133 [58] call render_moving - //SEG134 [101] phi from main::@37 to render_moving [phi:main::@37->render_moving] - render_moving_from_b37: - //SEG135 [101] phi (byte) current_piece_char#64 = (byte~) current_piece_char#103 [phi:main::@37->render_moving#0] -- register_copy - //SEG136 [101] phi (byte*) current_piece_gfx#62 = (byte*~) current_piece_gfx#115 [phi:main::@37->render_moving#1] -- register_copy - //SEG137 [101] phi (byte) current_xpos#57 = (byte~) current_xpos#125 [phi:main::@37->render_moving#2] -- register_copy - //SEG138 [101] phi (byte) render_screen_render#30 = (byte~) render_screen_render#64 [phi:main::@37->render_moving#3] -- register_copy - //SEG139 [101] phi (byte) current_ypos#11 = (byte~) current_ypos#101 [phi:main::@37->render_moving#4] -- register_copy - jsr render_moving - //SEG140 [59] phi from main::@37 to main::@38 [phi:main::@37->main::@38] - b38_from_b37: - jmp b38 - //SEG141 main::@38 - b38: - //SEG142 [60] call render_score - jsr render_score - //SEG143 [61] phi from main::@38 to main::@39 [phi:main::@38->main::@39] - b39_from_b38: jmp b39 - //SEG144 main::@39 + //SEG142 main::@39 b39: - //SEG145 [62] call render_screen_swap + //SEG143 [57] (byte~) current_ypos#109 ← (byte) current_ypos#18 -- vbuz1=vbuz2 + lda current_ypos + sta current_ypos_109 + //SEG144 [58] (byte~) render_screen_render#69 ← (byte) render_screen_render#18 -- vbuz1=vbuz2 + lda render_screen_render + sta render_screen_render_69 + //SEG145 [59] (byte~) current_xpos#133 ← (byte) current_xpos#18 -- vbuz1=vbuz2 + lda current_xpos + sta current_xpos_133 + //SEG146 [60] (byte*~) current_piece_gfx#123 ← (byte*) current_piece_gfx#17 -- pbuz1=pbuz2 + lda current_piece_gfx + sta current_piece_gfx_123 + lda current_piece_gfx+1 + sta current_piece_gfx_123+1 + //SEG147 [61] (byte~) current_piece_char#111 ← (byte) current_piece_char#15 -- vbuz1=vbuz2 + lda current_piece_char + sta current_piece_char_111 + //SEG148 [62] call render_moving + //SEG149 [129] phi from main::@39 to render_moving [phi:main::@39->render_moving] + render_moving_from_b39: + //SEG150 [129] phi (byte) current_piece_char#67 = (byte~) current_piece_char#111 [phi:main::@39->render_moving#0] -- register_copy + //SEG151 [129] phi (byte*) current_piece_gfx#63 = (byte*~) current_piece_gfx#123 [phi:main::@39->render_moving#1] -- register_copy + //SEG152 [129] phi (byte) current_xpos#58 = (byte~) current_xpos#133 [phi:main::@39->render_moving#2] -- register_copy + //SEG153 [129] phi (byte) render_screen_render#33 = (byte~) render_screen_render#69 [phi:main::@39->render_moving#3] -- register_copy + //SEG154 [129] phi (byte) current_ypos#12 = (byte~) current_ypos#109 [phi:main::@39->render_moving#4] -- register_copy + jsr render_moving + jmp b40 + //SEG155 main::@40 + b40: + //SEG156 [63] (byte~) render_screen_render#68 ← (byte) render_screen_render#18 -- vbuz1=vbuz2 + lda render_screen_render + sta render_screen_render_68 + //SEG157 [64] (byte~) next_piece_idx#85 ← (byte) next_piece_idx#16 -- vbuz1=vbuz2 + lda next_piece_idx + sta next_piece_idx_85 + //SEG158 [65] call render_next + //SEG159 [108] phi from main::@40 to render_next [phi:main::@40->render_next] + render_next_from_b40: + //SEG160 [108] phi (byte) next_piece_idx#12 = (byte~) next_piece_idx#85 [phi:main::@40->render_next#0] -- register_copy + //SEG161 [108] phi (byte) render_screen_render#15 = (byte~) render_screen_render#68 [phi:main::@40->render_next#1] -- register_copy + jsr render_next + //SEG162 [66] phi from main::@40 to main::@41 [phi:main::@40->main::@41] + b41_from_b40: + jmp b41 + //SEG163 main::@41 + b41: + //SEG164 [67] call render_score + jsr render_score + //SEG165 [68] phi from main::@41 to main::@42 [phi:main::@41->main::@42] + b42_from_b41: + jmp b42 + //SEG166 main::@42 + b42: + //SEG167 [69] call render_screen_swap jsr render_screen_swap - //SEG146 [34] phi from main::@39 to main::@1 [phi:main::@39->main::@1] - b1_from_b39: - //SEG147 [34] phi (byte) level_bcd#11 = (byte) level_bcd#17 [phi:main::@39->main::@1#0] -- register_copy - //SEG148 [34] phi (byte) level#10 = (byte) level#16 [phi:main::@39->main::@1#1] -- register_copy - //SEG149 [34] phi (dword) score_bcd#18 = (dword) score_bcd#14 [phi:main::@39->main::@1#2] -- register_copy - //SEG150 [34] phi (word) lines_bcd#19 = (word) lines_bcd#15 [phi:main::@39->main::@1#3] -- register_copy - //SEG151 [34] phi (byte) current_movedown_counter#16 = (byte) current_movedown_counter#14 [phi:main::@39->main::@1#4] -- register_copy - //SEG152 [34] phi (byte) keyboard_events_size#19 = (byte) keyboard_events_size#16 [phi:main::@39->main::@1#5] -- register_copy - //SEG153 [34] phi (byte) game_over#19 = (byte) game_over#14 [phi:main::@39->main::@1#6] -- register_copy - //SEG154 [34] phi (byte) current_ypos#25 = (byte) current_ypos#17 [phi:main::@39->main::@1#7] -- register_copy - //SEG155 [34] phi (byte) current_xpos#113 = (byte) current_xpos#17 [phi:main::@39->main::@1#8] -- register_copy - //SEG156 [34] phi (byte*) current_piece_gfx#103 = (byte*) current_piece_gfx#16 [phi:main::@39->main::@1#9] -- register_copy - //SEG157 [34] phi (byte) current_orientation#12 = (byte) current_orientation#16 [phi:main::@39->main::@1#10] -- register_copy - //SEG158 [34] phi (byte) current_piece_char#19 = (byte) current_piece_char#14 [phi:main::@39->main::@1#11] -- register_copy - //SEG159 [34] phi (byte*) current_piece#20 = (byte*) current_piece#14 [phi:main::@39->main::@1#12] -- register_copy - //SEG160 [34] phi (byte) current_movedown_slow#14 = (byte) current_movedown_slow#21 [phi:main::@39->main::@1#13] -- register_copy - //SEG161 [34] phi (byte) render_screen_render#17 = (byte) render_screen_render#11 [phi:main::@39->main::@1#14] -- register_copy - //SEG162 [34] phi (byte) render_screen_show#16 = (byte) render_screen_show#13 [phi:main::@39->main::@1#15] -- register_copy + //SEG168 [38] phi from main::@42 to main::@1 [phi:main::@42->main::@1] + b1_from_b42: + //SEG169 [38] phi (byte) level_bcd#11 = (byte) level_bcd#17 [phi:main::@42->main::@1#0] -- register_copy + //SEG170 [38] phi (byte) level#10 = (byte) level#16 [phi:main::@42->main::@1#1] -- register_copy + //SEG171 [38] phi (dword) score_bcd#18 = (dword) score_bcd#14 [phi:main::@42->main::@1#2] -- register_copy + //SEG172 [38] phi (word) lines_bcd#19 = (word) lines_bcd#15 [phi:main::@42->main::@1#3] -- register_copy + //SEG173 [38] phi (byte) current_movedown_counter#16 = (byte) current_movedown_counter#14 [phi:main::@42->main::@1#4] -- register_copy + //SEG174 [38] phi (byte) keyboard_events_size#19 = (byte) keyboard_events_size#16 [phi:main::@42->main::@1#5] -- register_copy + //SEG175 [38] phi (byte) next_piece_idx#10 = (byte) next_piece_idx#16 [phi:main::@42->main::@1#6] -- register_copy + //SEG176 [38] phi (byte) game_over#10 = (byte) game_over#15 [phi:main::@42->main::@1#7] -- register_copy + //SEG177 [38] phi (byte) current_ypos#10 = (byte) current_ypos#18 [phi:main::@42->main::@1#8] -- register_copy + //SEG178 [38] phi (byte) current_xpos#121 = (byte) current_xpos#18 [phi:main::@42->main::@1#9] -- register_copy + //SEG179 [38] phi (byte*) current_piece_gfx#111 = (byte*) current_piece_gfx#17 [phi:main::@42->main::@1#10] -- register_copy + //SEG180 [38] phi (byte) current_orientation#13 = (byte) current_orientation#17 [phi:main::@42->main::@1#11] -- register_copy + //SEG181 [38] phi (byte) current_piece_char#21 = (byte) current_piece_char#15 [phi:main::@42->main::@1#12] -- register_copy + //SEG182 [38] phi (byte*) current_piece#10 = (byte*) current_piece#15 [phi:main::@42->main::@1#13] -- register_copy + //SEG183 [38] phi (byte) current_movedown_slow#14 = (byte) current_movedown_slow#21 [phi:main::@42->main::@1#14] -- register_copy + //SEG184 [38] phi (byte) render_screen_render#18 = (byte) render_screen_render#11 [phi:main::@42->main::@1#15] -- register_copy + //SEG185 [38] phi (byte) render_screen_show#16 = (byte) render_screen_show#13 [phi:main::@42->main::@1#16] -- register_copy jmp b1 } -//SEG163 render_screen_swap +//SEG186 render_screen_swap render_screen_swap: { - //SEG164 [63] (byte) render_screen_render#11 ← (byte) render_screen_render#17 ^ (byte/signed byte/word/signed word/dword/signed dword) 64 -- vbuz1=vbuz1_bxor_vbuc1 + //SEG187 [70] (byte) render_screen_render#11 ← (byte) render_screen_render#18 ^ (byte/signed byte/word/signed word/dword/signed dword) 64 -- vbuz1=vbuz1_bxor_vbuc1 lda render_screen_render eor #$40 sta render_screen_render - //SEG165 [64] (byte) render_screen_show#13 ← (byte) render_screen_show#16 ^ (byte/signed byte/word/signed word/dword/signed dword) 64 -- vbuz1=vbuz1_bxor_vbuc1 + //SEG188 [71] (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 - //SEG166 render_screen_swap::@return + //SEG189 render_screen_swap::@return breturn: - //SEG167 [65] return + //SEG190 [72] return rts } -//SEG168 render_score +//SEG191 render_score render_score: { .label score_bytes = score_bcd .const score_offset = $28*5+$1c .const lines_offset = $28*1+$16 .const level_offset = $28*$13+$1f .label screen = 5 - //SEG169 [66] 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 + //SEG192 [73] if((byte) render_screen_render#18==(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 - //SEG170 [67] phi from render_score to render_score::@3 [phi:render_score->render_score::@3] + //SEG193 [74] phi from render_score to render_score::@3 [phi:render_score->render_score::@3] b3_from_render_score: jmp b3 - //SEG171 render_score::@3 + //SEG194 render_score::@3 b3: - //SEG172 [68] phi from render_score::@3 to render_score::@2 [phi:render_score::@3->render_score::@2] + //SEG195 [75] phi from render_score::@3 to render_score::@2 [phi:render_score::@3->render_score::@2] b2_from_b3: - //SEG173 [68] phi (byte*) render_score::screen#2 = (const byte*) PLAYFIELD_SCREEN_2#0 [phi:render_score::@3->render_score::@2#0] -- pbuz1=pbuc1 + //SEG196 [75] 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 - //SEG174 [68] phi from render_score to render_score::@2 [phi:render_score->render_score::@2] + //SEG197 [75] phi from render_score to render_score::@2 [phi:render_score->render_score::@2] b2_from_render_score: - //SEG175 [68] phi (byte*) render_score::screen#2 = (const byte*) PLAYFIELD_SCREEN_1#0 [phi:render_score->render_score::@2#0] -- pbuz1=pbuc1 + //SEG198 [75] 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 - //SEG176 render_score::@2 + //SEG199 render_score::@2 b2: - //SEG177 [69] (byte*) render_bcd::screen#0 ← (byte*) render_score::screen#2 -- pbuz1=pbuz2 + //SEG200 [76] (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 - //SEG178 [70] (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 + //SEG201 [77] (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 - //SEG179 [71] call render_bcd - //SEG180 [88] phi from render_score::@2 to render_bcd [phi:render_score::@2->render_bcd] + //SEG202 [78] call render_bcd + //SEG203 [95] phi from render_score::@2 to render_bcd [phi:render_score::@2->render_bcd] render_bcd_from_b2: - //SEG181 [88] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#0 [phi:render_score::@2->render_bcd#0] -- register_copy - //SEG182 [88] 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 + //SEG204 [95] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#0 [phi:render_score::@2->render_bcd#0] -- register_copy + //SEG205 [95] 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 - //SEG183 [88] phi (word) render_bcd::offset#6 = (const word) render_score::score_offset#0 [phi:render_score::@2->render_bcd#2] -- vwuz1=vwuc1 + //SEG206 [95] 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 - //SEG184 [88] phi (byte*) render_bcd::screen#6 = (byte*) render_bcd::screen#0 [phi:render_score::@2->render_bcd#3] -- register_copy + //SEG207 [95] 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 - //SEG185 render_score::@5 + //SEG208 render_score::@5 b5: - //SEG186 [72] (byte*) render_bcd::screen#1 ← (byte*) render_score::screen#2 -- pbuz1=pbuz2 + //SEG209 [79] (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 - //SEG187 [73] (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 + //SEG210 [80] (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 - //SEG188 [74] call render_bcd - //SEG189 [88] phi from render_score::@5 to render_bcd [phi:render_score::@5->render_bcd] + //SEG211 [81] call render_bcd + //SEG212 [95] phi from render_score::@5 to render_bcd [phi:render_score::@5->render_bcd] render_bcd_from_b5: - //SEG190 [88] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#1 [phi:render_score::@5->render_bcd#0] -- register_copy - //SEG191 [88] 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 + //SEG213 [95] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#1 [phi:render_score::@5->render_bcd#0] -- register_copy + //SEG214 [95] 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 - //SEG192 [88] 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 + //SEG215 [95] 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 - //SEG193 [88] phi (byte*) render_bcd::screen#6 = (byte*) render_bcd::screen#1 [phi:render_score::@5->render_bcd#3] -- register_copy + //SEG216 [95] 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 - //SEG194 render_score::@6 + //SEG217 render_score::@6 b6: - //SEG195 [75] (byte*) render_bcd::screen#2 ← (byte*) render_score::screen#2 -- pbuz1=pbuz2 + //SEG218 [82] (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 - //SEG196 [76] (byte) render_bcd::bcd#2 ← *((const byte*) render_score::score_bytes#0) -- vbuz1=_deref_pbuc1 + //SEG219 [83] (byte) render_bcd::bcd#2 ← *((const byte*) render_score::score_bytes#0) -- vbuz1=_deref_pbuc1 lda score_bytes sta render_bcd.bcd - //SEG197 [77] call render_bcd - //SEG198 [88] phi from render_score::@6 to render_bcd [phi:render_score::@6->render_bcd] + //SEG220 [84] call render_bcd + //SEG221 [95] phi from render_score::@6 to render_bcd [phi:render_score::@6->render_bcd] render_bcd_from_b6: - //SEG199 [88] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#2 [phi:render_score::@6->render_bcd#0] -- register_copy - //SEG200 [88] 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 + //SEG222 [95] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#2 [phi:render_score::@6->render_bcd#0] -- register_copy + //SEG223 [95] 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 - //SEG201 [88] 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 + //SEG224 [95] 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 - //SEG202 [88] phi (byte*) render_bcd::screen#6 = (byte*) render_bcd::screen#2 [phi:render_score::@6->render_bcd#3] -- register_copy + //SEG225 [95] 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 - //SEG203 render_score::@7 + //SEG226 render_score::@7 b7: - //SEG204 [78] (byte) render_bcd::bcd#3 ← > (word) lines_bcd#15 -- vbuz1=_hi_vwuz2 + //SEG227 [85] (byte) render_bcd::bcd#3 ← > (word) lines_bcd#15 -- vbuz1=_hi_vwuz2 lda lines_bcd+1 sta render_bcd.bcd - //SEG205 [79] (byte*) render_bcd::screen#3 ← (byte*) render_score::screen#2 -- pbuz1=pbuz2 + //SEG228 [86] (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 - //SEG206 [80] call render_bcd - //SEG207 [88] phi from render_score::@7 to render_bcd [phi:render_score::@7->render_bcd] + //SEG229 [87] call render_bcd + //SEG230 [95] phi from render_score::@7 to render_bcd [phi:render_score::@7->render_bcd] render_bcd_from_b7: - //SEG208 [88] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#3 [phi:render_score::@7->render_bcd#0] -- register_copy - //SEG209 [88] 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 + //SEG231 [95] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#3 [phi:render_score::@7->render_bcd#0] -- register_copy + //SEG232 [95] 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 - //SEG210 [88] phi (word) render_bcd::offset#6 = (const word) render_score::lines_offset#0 [phi:render_score::@7->render_bcd#2] -- vwuz1=vwuc1 + //SEG233 [95] 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 - //SEG211 [88] phi (byte*) render_bcd::screen#6 = (byte*) render_bcd::screen#3 [phi:render_score::@7->render_bcd#3] -- register_copy + //SEG234 [95] 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 - //SEG212 render_score::@8 + //SEG235 render_score::@8 b8: - //SEG213 [81] (byte) render_bcd::bcd#4 ← < (word) lines_bcd#15 -- vbuz1=_lo_vwuz2 + //SEG236 [88] (byte) render_bcd::bcd#4 ← < (word) lines_bcd#15 -- vbuz1=_lo_vwuz2 lda lines_bcd sta render_bcd.bcd - //SEG214 [82] (byte*) render_bcd::screen#4 ← (byte*) render_score::screen#2 -- pbuz1=pbuz2 + //SEG237 [89] (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 - //SEG215 [83] call render_bcd - //SEG216 [88] phi from render_score::@8 to render_bcd [phi:render_score::@8->render_bcd] + //SEG238 [90] call render_bcd + //SEG239 [95] phi from render_score::@8 to render_bcd [phi:render_score::@8->render_bcd] render_bcd_from_b8: - //SEG217 [88] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#4 [phi:render_score::@8->render_bcd#0] -- register_copy - //SEG218 [88] 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 + //SEG240 [95] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#4 [phi:render_score::@8->render_bcd#0] -- register_copy + //SEG241 [95] 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 - //SEG219 [88] 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 + //SEG242 [95] 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 - //SEG220 [88] phi (byte*) render_bcd::screen#6 = (byte*) render_bcd::screen#4 [phi:render_score::@8->render_bcd#3] -- register_copy + //SEG243 [95] 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 - //SEG221 render_score::@9 + //SEG244 render_score::@9 b9: - //SEG222 [84] (byte*) render_bcd::screen#5 ← (byte*) render_score::screen#2 -- pbuz1=pbuz2 + //SEG245 [91] (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 - //SEG223 [85] (byte) render_bcd::bcd#5 ← (byte) level_bcd#17 -- vbuz1=vbuz2 + //SEG246 [92] (byte) render_bcd::bcd#5 ← (byte) level_bcd#17 -- vbuz1=vbuz2 lda level_bcd sta render_bcd.bcd - //SEG224 [86] call render_bcd - //SEG225 [88] phi from render_score::@9 to render_bcd [phi:render_score::@9->render_bcd] + //SEG247 [93] call render_bcd + //SEG248 [95] phi from render_score::@9 to render_bcd [phi:render_score::@9->render_bcd] render_bcd_from_b9: - //SEG226 [88] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#5 [phi:render_score::@9->render_bcd#0] -- register_copy - //SEG227 [88] 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 + //SEG249 [95] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#5 [phi:render_score::@9->render_bcd#0] -- register_copy + //SEG250 [95] 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 - //SEG228 [88] phi (word) render_bcd::offset#6 = (const word) render_score::level_offset#0 [phi:render_score::@9->render_bcd#2] -- vwuz1=vwuc1 + //SEG251 [95] 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 - //SEG229 [88] phi (byte*) render_bcd::screen#6 = (byte*) render_bcd::screen#5 [phi:render_score::@9->render_bcd#3] -- register_copy + //SEG252 [95] 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 - //SEG230 render_score::@return + //SEG253 render_score::@return breturn: - //SEG231 [87] return + //SEG254 [94] return rts } -//SEG232 render_bcd +//SEG255 render_bcd render_bcd: { .const ZERO_CHAR = $35 - .label _3 = $79 - .label _4 = $7a - .label _5 = $7b - .label _6 = $7c + .label _3 = $81 + .label _4 = $82 + .label _5 = $83 + .label _6 = $84 .label screen = 7 .label bcd = $c .label screen_pos = $d - .label screen_pos_1 = $7d + .label screen_pos_1 = $85 .label offset = 9 .label only_low = $b - //SEG233 [89] (byte*) render_bcd::screen_pos#0 ← (byte*) render_bcd::screen#6 + (word) render_bcd::offset#6 -- pbuz1=pbuz2_plus_vwuz3 + //SEG256 [96] (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 @@ -12691,55 +13534,55 @@ render_bcd: { lda screen+1 adc offset+1 sta screen_pos+1 - //SEG234 [90] 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 + //SEG257 [97] 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 - //SEG235 render_bcd::@2 + //SEG258 render_bcd::@2 b2: - //SEG236 [91] (byte~) render_bcd::$3 ← (byte) render_bcd::bcd#6 >> (byte/signed byte/word/signed word/dword/signed dword) 4 -- vbuz1=vbuz2_ror_4 + //SEG259 [98] (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 - //SEG237 [92] (byte~) render_bcd::$4 ← (const byte) render_bcd::ZERO_CHAR#0 + (byte~) render_bcd::$3 -- vbuz1=vbuc1_plus_vbuz2 + //SEG260 [99] (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 - //SEG238 [93] *((byte*) render_bcd::screen_pos#0) ← (byte~) render_bcd::$4 -- _deref_pbuz1=vbuz2 + //SEG261 [100] *((byte*) render_bcd::screen_pos#0) ← (byte~) render_bcd::$4 -- _deref_pbuz1=vbuz2 lda _4 ldy #0 sta (screen_pos),y - //SEG239 [94] (byte*) render_bcd::screen_pos#2 ← ++ (byte*) render_bcd::screen_pos#0 -- pbuz1=_inc_pbuz1 + //SEG262 [101] (byte*) render_bcd::screen_pos#2 ← ++ (byte*) render_bcd::screen_pos#0 -- pbuz1=_inc_pbuz1 inc screen_pos bne !+ inc screen_pos+1 !: - //SEG240 [95] phi from render_bcd render_bcd::@2 to render_bcd::@1 [phi:render_bcd/render_bcd::@2->render_bcd::@1] + //SEG263 [102] 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: - //SEG241 [95] 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 + //SEG264 [102] 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 - //SEG242 render_bcd::@1 + //SEG265 render_bcd::@1 b1: - //SEG243 [96] (byte~) render_bcd::$5 ← (byte) render_bcd::bcd#6 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuz1=vbuz2_band_vbuc1 + //SEG266 [103] (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 - //SEG244 [97] (byte~) render_bcd::$6 ← (const byte) render_bcd::ZERO_CHAR#0 + (byte~) render_bcd::$5 -- vbuz1=vbuc1_plus_vbuz2 + //SEG267 [104] (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 - //SEG245 [98] *((byte*) render_bcd::screen_pos#3) ← (byte~) render_bcd::$6 -- _deref_pbuz1=vbuz2 + //SEG268 [105] *((byte*) render_bcd::screen_pos#3) ← (byte~) render_bcd::$6 -- _deref_pbuz1=vbuz2 lda _6 ldy #0 sta (screen_pos),y - //SEG246 [99] (byte*) render_bcd::screen_pos#1 ← ++ (byte*) render_bcd::screen_pos#3 -- pbuz1=_inc_pbuz2 + //SEG269 [106] (byte*) render_bcd::screen_pos#1 ← ++ (byte*) render_bcd::screen_pos#3 -- pbuz1=_inc_pbuz2 lda screen_pos clc adc #1 @@ -12748,410 +13591,557 @@ render_bcd: { adc #0 sta screen_pos_1+1 jmp breturn - //SEG247 render_bcd::@return + //SEG270 render_bcd::@return breturn: - //SEG248 [100] return + //SEG271 [107] return rts } -//SEG249 render_moving -render_moving: { - .label _2 = $7f - .label ypos2 = $15 - .label screen_line = $80 - .label xpos = $18 - .label i = $17 - .label l = $16 - .label current_cell = $82 - .label c = $19 - //SEG250 [102] (byte) render_moving::ypos2#0 ← (byte) current_ypos#11 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 - lda current_ypos_11 +//SEG272 render_next +render_next: { + .const next_area_offset = $28*$c+$18+4 + .label _6 = $87 + .label next_piece_char = $88 + .label cell = $89 + .label next_piece_gfx = $12 + .label screen_next_area = $14 + .label c = $16 + .label l = $11 + //SEG273 [109] if((byte) render_screen_render#15==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_next::@2 -- vbuz1_eq_0_then_la1 + lda render_screen_render_15 + cmp #0 + beq b2_from_render_next + //SEG274 [110] phi from render_next to render_next::@7 [phi:render_next->render_next::@7] + b7_from_render_next: + jmp b7 + //SEG275 render_next::@7 + b7: + //SEG276 [111] phi from render_next::@7 to render_next::@2 [phi:render_next::@7->render_next::@2] + b2_from_b7: + //SEG277 [111] phi (byte*) render_next::screen_next_area#10 = (const byte*) PLAYFIELD_SCREEN_2#0+(const word) render_next::next_area_offset#0 [phi:render_next::@7->render_next::@2#0] -- pbuz1=pbuc1 + lda #PLAYFIELD_SCREEN_2+next_area_offset + sta screen_next_area+1 + jmp b2 + //SEG278 [111] phi from render_next to render_next::@2 [phi:render_next->render_next::@2] + b2_from_render_next: + //SEG279 [111] phi (byte*) render_next::screen_next_area#10 = (const byte*) PLAYFIELD_SCREEN_1#0+(const word) render_next::next_area_offset#0 [phi:render_next->render_next::@2#0] -- pbuz1=pbuc1 + lda #PLAYFIELD_SCREEN_1+next_area_offset + sta screen_next_area+1 + jmp b2 + //SEG280 render_next::@2 + b2: + //SEG281 [112] (byte~) render_next::$6 ← (byte) next_piece_idx#12 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 + lda next_piece_idx_12 asl - sta ypos2 - //SEG251 [103] phi from render_moving to render_moving::@1 [phi:render_moving->render_moving::@1] - b1_from_render_moving: - //SEG252 [103] phi (byte) render_moving::l#4 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_moving->render_moving::@1#0] -- vbuz1=vbuc1 + sta _6 + //SEG282 [113] (byte) render_next::next_piece_char#0 ← *((const byte[]) PIECES_NEXT_CHARS#0 + (byte) next_piece_idx#12) -- vbuz1=pbuc1_derefidx_vbuz2 + ldy next_piece_idx_12 + lda PIECES_NEXT_CHARS,y + sta next_piece_char + //SEG283 [114] (byte*~) render_next::next_piece_gfx#9 ← (byte*)*((const word[]) PIECES#0 + (byte~) render_next::$6) -- pbuz1=pptc1_derefidx_vbuz2 + ldy _6 + lda PIECES,y + sta next_piece_gfx + lda PIECES+1,y + sta next_piece_gfx+1 + //SEG284 [115] phi from render_next::@2 to render_next::@3 [phi:render_next::@2->render_next::@3] + b3_from_b2: + //SEG285 [115] phi (byte) render_next::l#7 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_next::@2->render_next::@3#0] -- vbuz1=vbuc1 lda #0 sta l - //SEG253 [103] phi (byte) render_moving::i#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_moving->render_moving::@1#1] -- vbuz1=vbuc1 + //SEG286 [115] phi (byte*) render_next::screen_next_area#9 = (byte*) render_next::screen_next_area#10 [phi:render_next::@2->render_next::@3#1] -- register_copy + //SEG287 [115] phi (byte*) render_next::next_piece_gfx#3 = (byte*~) render_next::next_piece_gfx#9 [phi:render_next::@2->render_next::@3#2] -- register_copy + jmp b3 + //SEG288 [115] phi from render_next::@11 to render_next::@3 [phi:render_next::@11->render_next::@3] + b3_from_b11: + //SEG289 [115] phi (byte) render_next::l#7 = (byte) render_next::l#1 [phi:render_next::@11->render_next::@3#0] -- register_copy + //SEG290 [115] phi (byte*) render_next::screen_next_area#9 = (byte*) render_next::screen_next_area#3 [phi:render_next::@11->render_next::@3#1] -- register_copy + //SEG291 [115] phi (byte*) render_next::next_piece_gfx#3 = (byte*) render_next::next_piece_gfx#1 [phi:render_next::@11->render_next::@3#2] -- register_copy + jmp b3 + //SEG292 render_next::@3 + b3: + //SEG293 [116] phi from render_next::@3 to render_next::@4 [phi:render_next::@3->render_next::@4] + b4_from_b3: + //SEG294 [116] phi (byte) render_next::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_next::@3->render_next::@4#0] -- vbuz1=vbuc1 + lda #0 + sta c + //SEG295 [116] phi (byte*) render_next::screen_next_area#4 = (byte*) render_next::screen_next_area#9 [phi:render_next::@3->render_next::@4#1] -- register_copy + //SEG296 [116] phi (byte*) render_next::next_piece_gfx#2 = (byte*) render_next::next_piece_gfx#3 [phi:render_next::@3->render_next::@4#2] -- register_copy + jmp b4 + //SEG297 [116] phi from render_next::@6 to render_next::@4 [phi:render_next::@6->render_next::@4] + b4_from_b6: + //SEG298 [116] phi (byte) render_next::c#2 = (byte) render_next::c#1 [phi:render_next::@6->render_next::@4#0] -- register_copy + //SEG299 [116] phi (byte*) render_next::screen_next_area#4 = (byte*) render_next::screen_next_area#2 [phi:render_next::@6->render_next::@4#1] -- register_copy + //SEG300 [116] phi (byte*) render_next::next_piece_gfx#2 = (byte*) render_next::next_piece_gfx#1 [phi:render_next::@6->render_next::@4#2] -- register_copy + jmp b4 + //SEG301 render_next::@4 + b4: + //SEG302 [117] (byte) render_next::cell#0 ← *((byte*) render_next::next_piece_gfx#2) -- vbuz1=_deref_pbuz2 + ldy #0 + lda (next_piece_gfx),y + sta cell + //SEG303 [118] (byte*) render_next::next_piece_gfx#1 ← ++ (byte*) render_next::next_piece_gfx#2 -- pbuz1=_inc_pbuz1 + inc next_piece_gfx + bne !+ + inc next_piece_gfx+1 + !: + //SEG304 [119] if((byte) render_next::cell#0!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_next::@5 -- vbuz1_neq_0_then_la1 + lda cell + cmp #0 + bne b5 + jmp b9 + //SEG305 render_next::@9 + b9: + //SEG306 [120] *((byte*) render_next::screen_next_area#4) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuz1=vbuc1 + lda #0 + ldy #0 + sta (screen_next_area),y + jmp b6 + //SEG307 render_next::@6 + b6: + //SEG308 [121] (byte*) render_next::screen_next_area#2 ← ++ (byte*) render_next::screen_next_area#4 -- pbuz1=_inc_pbuz1 + inc screen_next_area + bne !+ + inc screen_next_area+1 + !: + //SEG309 [122] (byte) render_next::c#1 ← ++ (byte) render_next::c#2 -- vbuz1=_inc_vbuz1 + inc c + //SEG310 [123] if((byte) render_next::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_next::@4 -- vbuz1_neq_vbuc1_then_la1 + lda c + cmp #4 + bne b4_from_b6 + jmp b11 + //SEG311 render_next::@11 + b11: + //SEG312 [124] (byte*) render_next::screen_next_area#3 ← (byte*) render_next::screen_next_area#2 + (byte/signed byte/word/signed word/dword/signed dword) 36 -- pbuz1=pbuz1_plus_vbuc1 + lda screen_next_area + clc + adc #$24 + sta screen_next_area + bcc !+ + inc screen_next_area+1 + !: + //SEG313 [125] (byte) render_next::l#1 ← ++ (byte) render_next::l#7 -- vbuz1=_inc_vbuz1 + inc l + //SEG314 [126] if((byte) render_next::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_next::@3 -- vbuz1_neq_vbuc1_then_la1 + lda l + cmp #4 + bne b3_from_b11 + jmp breturn + //SEG315 render_next::@return + breturn: + //SEG316 [127] return + rts + //SEG317 render_next::@5 + b5: + //SEG318 [128] *((byte*) render_next::screen_next_area#4) ← (byte) render_next::next_piece_char#0 -- _deref_pbuz1=vbuz2 + lda next_piece_char + ldy #0 + sta (screen_next_area),y + jmp b6 +} +//SEG319 render_moving +render_moving: { + .label _2 = $8a + .label ypos2 = $1d + .label screen_line = $8b + .label xpos = $20 + .label i = $1f + .label l = $1e + .label current_cell = $8d + .label c = $21 + //SEG320 [130] (byte) render_moving::ypos2#0 ← (byte) current_ypos#12 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 + lda current_ypos_12 + asl + sta ypos2 + //SEG321 [131] phi from render_moving to render_moving::@1 [phi:render_moving->render_moving::@1] + b1_from_render_moving: + //SEG322 [131] phi (byte) render_moving::l#4 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_moving->render_moving::@1#0] -- vbuz1=vbuc1 + lda #0 + sta l + //SEG323 [131] phi (byte) render_moving::i#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_moving->render_moving::@1#1] -- vbuz1=vbuc1 lda #0 sta i - //SEG254 [103] phi (byte) render_moving::ypos2#2 = (byte) render_moving::ypos2#0 [phi:render_moving->render_moving::@1#2] -- register_copy + //SEG324 [131] phi (byte) render_moving::ypos2#2 = (byte) render_moving::ypos2#0 [phi:render_moving->render_moving::@1#2] -- register_copy jmp b1 - //SEG255 [103] phi from render_moving::@3 to render_moving::@1 [phi:render_moving::@3->render_moving::@1] + //SEG325 [131] phi from render_moving::@3 to render_moving::@1 [phi:render_moving::@3->render_moving::@1] b1_from_b3: - //SEG256 [103] phi (byte) render_moving::l#4 = (byte) render_moving::l#1 [phi:render_moving::@3->render_moving::@1#0] -- register_copy - //SEG257 [103] phi (byte) render_moving::i#3 = (byte) render_moving::i#8 [phi:render_moving::@3->render_moving::@1#1] -- register_copy - //SEG258 [103] phi (byte) render_moving::ypos2#2 = (byte) render_moving::ypos2#1 [phi:render_moving::@3->render_moving::@1#2] -- register_copy + //SEG326 [131] phi (byte) render_moving::l#4 = (byte) render_moving::l#1 [phi:render_moving::@3->render_moving::@1#0] -- register_copy + //SEG327 [131] phi (byte) render_moving::i#3 = (byte) render_moving::i#8 [phi:render_moving::@3->render_moving::@1#1] -- register_copy + //SEG328 [131] phi (byte) render_moving::ypos2#2 = (byte) render_moving::ypos2#1 [phi:render_moving::@3->render_moving::@1#2] -- register_copy jmp b1 - //SEG259 render_moving::@1 + //SEG329 render_moving::@1 b1: - //SEG260 [104] if((byte) render_moving::ypos2#2>(byte/signed byte/word/signed word/dword/signed dword) 2) goto render_moving::@2 -- vbuz1_gt_vbuc1_then_la1 + //SEG330 [132] if((byte) render_moving::ypos2#2>(byte/signed byte/word/signed word/dword/signed dword) 2) goto render_moving::@2 -- vbuz1_gt_vbuc1_then_la1 lda ypos2 cmp #2 beq !+ bcs b2 !: jmp b6 - //SEG261 render_moving::@6 + //SEG331 render_moving::@6 b6: - //SEG262 [105] (byte) render_moving::i#1 ← (byte) render_moving::i#3 + (byte/signed byte/word/signed word/dword/signed dword) 4 -- vbuz1=vbuz1_plus_vbuc1 + //SEG332 [133] (byte) render_moving::i#1 ← (byte) render_moving::i#3 + (byte/signed byte/word/signed word/dword/signed dword) 4 -- vbuz1=vbuz1_plus_vbuc1 lda #4 clc adc i sta i - //SEG263 [106] phi from render_moving::@5 render_moving::@6 to render_moving::@3 [phi:render_moving::@5/render_moving::@6->render_moving::@3] + //SEG333 [134] phi from render_moving::@5 render_moving::@6 to render_moving::@3 [phi:render_moving::@5/render_moving::@6->render_moving::@3] b3_from_b5: b3_from_b6: - //SEG264 [106] phi (byte) render_moving::i#8 = (byte) render_moving::i#2 [phi:render_moving::@5/render_moving::@6->render_moving::@3#0] -- register_copy + //SEG334 [134] phi (byte) render_moving::i#8 = (byte) render_moving::i#2 [phi:render_moving::@5/render_moving::@6->render_moving::@3#0] -- register_copy jmp b3 - //SEG265 render_moving::@3 + //SEG335 render_moving::@3 b3: - //SEG266 [107] (byte) render_moving::ypos2#1 ← (byte) render_moving::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz1_plus_2 + //SEG336 [135] (byte) render_moving::ypos2#1 ← (byte) render_moving::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz1_plus_2 lda ypos2 clc adc #2 sta ypos2 - //SEG267 [108] (byte) render_moving::l#1 ← ++ (byte) render_moving::l#4 -- vbuz1=_inc_vbuz1 + //SEG337 [136] (byte) render_moving::l#1 ← ++ (byte) render_moving::l#4 -- vbuz1=_inc_vbuz1 inc l - //SEG268 [109] if((byte) render_moving::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_moving::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG338 [137] if((byte) render_moving::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_moving::@1 -- vbuz1_neq_vbuc1_then_la1 lda l cmp #4 bne b1_from_b3 jmp breturn - //SEG269 render_moving::@return + //SEG339 render_moving::@return breturn: - //SEG270 [110] return + //SEG340 [138] return rts - //SEG271 render_moving::@2 + //SEG341 render_moving::@2 b2: - //SEG272 [111] (byte~) render_moving::$2 ← (byte) render_screen_render#30 + (byte) render_moving::ypos2#2 -- vbuz1=vbuz2_plus_vbuz3 - lda render_screen_render_30 + //SEG342 [139] (byte~) render_moving::$2 ← (byte) render_screen_render#33 + (byte) render_moving::ypos2#2 -- vbuz1=vbuz2_plus_vbuz3 + lda render_screen_render_33 clc adc ypos2 sta _2 - //SEG273 [112] (byte*) render_moving::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_moving::$2) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG343 [140] (byte*) render_moving::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_moving::$2) -- pbuz1=pptc1_derefidx_vbuz2 ldy _2 lda screen_lines_1,y sta screen_line lda screen_lines_1+1,y sta screen_line+1 - //SEG274 [113] (byte) render_moving::xpos#0 ← (byte) current_xpos#57 -- vbuz1=vbuz2 - lda current_xpos_57 + //SEG344 [141] (byte) render_moving::xpos#0 ← (byte) current_xpos#58 -- vbuz1=vbuz2 + lda current_xpos_58 sta xpos - //SEG275 [114] phi from render_moving::@2 to render_moving::@4 [phi:render_moving::@2->render_moving::@4] + //SEG345 [142] phi from render_moving::@2 to render_moving::@4 [phi:render_moving::@2->render_moving::@4] b4_from_b2: - //SEG276 [114] phi (byte) render_moving::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_moving::@2->render_moving::@4#0] -- vbuz1=vbuc1 + //SEG346 [142] phi (byte) render_moving::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_moving::@2->render_moving::@4#0] -- vbuz1=vbuc1 lda #0 sta c - //SEG277 [114] phi (byte) render_moving::xpos#2 = (byte) render_moving::xpos#0 [phi:render_moving::@2->render_moving::@4#1] -- register_copy - //SEG278 [114] phi (byte) render_moving::i#4 = (byte) render_moving::i#3 [phi:render_moving::@2->render_moving::@4#2] -- register_copy + //SEG347 [142] phi (byte) render_moving::xpos#2 = (byte) render_moving::xpos#0 [phi:render_moving::@2->render_moving::@4#1] -- register_copy + //SEG348 [142] phi (byte) render_moving::i#4 = (byte) render_moving::i#3 [phi:render_moving::@2->render_moving::@4#2] -- register_copy jmp b4 - //SEG279 [114] phi from render_moving::@5 to render_moving::@4 [phi:render_moving::@5->render_moving::@4] + //SEG349 [142] phi from render_moving::@5 to render_moving::@4 [phi:render_moving::@5->render_moving::@4] b4_from_b5: - //SEG280 [114] phi (byte) render_moving::c#2 = (byte) render_moving::c#1 [phi:render_moving::@5->render_moving::@4#0] -- register_copy - //SEG281 [114] phi (byte) render_moving::xpos#2 = (byte) render_moving::xpos#1 [phi:render_moving::@5->render_moving::@4#1] -- register_copy - //SEG282 [114] phi (byte) render_moving::i#4 = (byte) render_moving::i#2 [phi:render_moving::@5->render_moving::@4#2] -- register_copy + //SEG350 [142] phi (byte) render_moving::c#2 = (byte) render_moving::c#1 [phi:render_moving::@5->render_moving::@4#0] -- register_copy + //SEG351 [142] phi (byte) render_moving::xpos#2 = (byte) render_moving::xpos#1 [phi:render_moving::@5->render_moving::@4#1] -- register_copy + //SEG352 [142] phi (byte) render_moving::i#4 = (byte) render_moving::i#2 [phi:render_moving::@5->render_moving::@4#2] -- register_copy jmp b4 - //SEG283 render_moving::@4 + //SEG353 render_moving::@4 b4: - //SEG284 [115] (byte) render_moving::current_cell#0 ← *((byte*) current_piece_gfx#62 + (byte) render_moving::i#4) -- vbuz1=pbuz2_derefidx_vbuz3 + //SEG354 [143] (byte) render_moving::current_cell#0 ← *((byte*) current_piece_gfx#63 + (byte) render_moving::i#4) -- vbuz1=pbuz2_derefidx_vbuz3 ldy i - lda (current_piece_gfx_62),y + lda (current_piece_gfx_63),y sta current_cell - //SEG285 [116] (byte) render_moving::i#2 ← ++ (byte) render_moving::i#4 -- vbuz1=_inc_vbuz1 + //SEG355 [144] (byte) render_moving::i#2 ← ++ (byte) render_moving::i#4 -- vbuz1=_inc_vbuz1 inc i - //SEG286 [117] if((byte) render_moving::current_cell#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_moving::@5 -- vbuz1_eq_0_then_la1 + //SEG356 [145] if((byte) render_moving::current_cell#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_moving::@5 -- vbuz1_eq_0_then_la1 lda current_cell cmp #0 beq b5 jmp b8 - //SEG287 render_moving::@8 + //SEG357 render_moving::@8 b8: - //SEG288 [118] *((byte*) render_moving::screen_line#0 + (byte) render_moving::xpos#2) ← (byte) current_piece_char#64 -- pbuz1_derefidx_vbuz2=vbuz3 - lda current_piece_char_64 + //SEG358 [146] *((byte*) render_moving::screen_line#0 + (byte) render_moving::xpos#2) ← (byte) current_piece_char#67 -- pbuz1_derefidx_vbuz2=vbuz3 + lda current_piece_char_67 ldy xpos sta (screen_line),y jmp b5 - //SEG289 render_moving::@5 + //SEG359 render_moving::@5 b5: - //SEG290 [119] (byte) render_moving::xpos#1 ← ++ (byte) render_moving::xpos#2 -- vbuz1=_inc_vbuz1 + //SEG360 [147] (byte) render_moving::xpos#1 ← ++ (byte) render_moving::xpos#2 -- vbuz1=_inc_vbuz1 inc xpos - //SEG291 [120] (byte) render_moving::c#1 ← ++ (byte) render_moving::c#2 -- vbuz1=_inc_vbuz1 + //SEG361 [148] (byte) render_moving::c#1 ← ++ (byte) render_moving::c#2 -- vbuz1=_inc_vbuz1 inc c - //SEG292 [121] if((byte) render_moving::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_moving::@4 -- vbuz1_neq_vbuc1_then_la1 + //SEG362 [149] if((byte) render_moving::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_moving::@4 -- vbuz1_neq_vbuc1_then_la1 lda c cmp #4 bne b4_from_b5 jmp b3_from_b5 } -//SEG293 render_playfield +//SEG363 render_playfield render_playfield: { - .label _2 = $83 - .label _3 = $84 - .label screen_line = $1d - .label i = $1c - .label c = $1f - .label l = $1b - //SEG294 [123] phi from render_playfield to render_playfield::@1 [phi:render_playfield->render_playfield::@1] + .label _2 = $8e + .label _3 = $8f + .label screen_line = $25 + .label i = $24 + .label c = $27 + .label l = $23 + //SEG364 [151] phi from render_playfield to render_playfield::@1 [phi:render_playfield->render_playfield::@1] b1_from_render_playfield: - //SEG295 [123] phi (byte) render_playfield::i#3 = (const byte) PLAYFIELD_COLS#0*(byte/signed byte/word/signed word/dword/signed dword) 2 [phi:render_playfield->render_playfield::@1#0] -- vbuz1=vbuc1 + //SEG365 [151] 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 - //SEG296 [123] phi (byte) render_playfield::l#2 = (byte/signed byte/word/signed word/dword/signed dword) 2 [phi:render_playfield->render_playfield::@1#1] -- vbuz1=vbuc1 + //SEG366 [151] 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 - //SEG297 [123] phi from render_playfield::@3 to render_playfield::@1 [phi:render_playfield::@3->render_playfield::@1] + //SEG367 [151] phi from render_playfield::@3 to render_playfield::@1 [phi:render_playfield::@3->render_playfield::@1] b1_from_b3: - //SEG298 [123] phi (byte) render_playfield::i#3 = (byte) render_playfield::i#1 [phi:render_playfield::@3->render_playfield::@1#0] -- register_copy - //SEG299 [123] phi (byte) render_playfield::l#2 = (byte) render_playfield::l#1 [phi:render_playfield::@3->render_playfield::@1#1] -- register_copy + //SEG368 [151] phi (byte) render_playfield::i#3 = (byte) render_playfield::i#1 [phi:render_playfield::@3->render_playfield::@1#0] -- register_copy + //SEG369 [151] phi (byte) render_playfield::l#2 = (byte) render_playfield::l#1 [phi:render_playfield::@3->render_playfield::@1#1] -- register_copy jmp b1 - //SEG300 render_playfield::@1 + //SEG370 render_playfield::@1 b1: - //SEG301 [124] (byte~) render_playfield::$2 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 + //SEG371 [152] (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 - //SEG302 [125] (byte~) render_playfield::$3 ← (byte) render_screen_render#21 + (byte~) render_playfield::$2 -- vbuz1=vbuz2_plus_vbuz3 - lda render_screen_render_21 + //SEG372 [153] (byte~) render_playfield::$3 ← (byte) render_screen_render#22 + (byte~) render_playfield::$2 -- vbuz1=vbuz2_plus_vbuz3 + lda render_screen_render_22 clc adc _2 sta _3 - //SEG303 [126] (byte*) render_playfield::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_playfield::$3) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG373 [154] (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 - //SEG304 [127] phi from render_playfield::@1 to render_playfield::@2 [phi:render_playfield::@1->render_playfield::@2] + //SEG374 [155] phi from render_playfield::@1 to render_playfield::@2 [phi:render_playfield::@1->render_playfield::@2] b2_from_b1: - //SEG305 [127] phi (byte) render_playfield::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_playfield::@1->render_playfield::@2#0] -- vbuz1=vbuc1 + //SEG375 [155] 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 - //SEG306 [127] phi (byte*) render_playfield::screen_line#2 = (byte*) render_playfield::screen_line#0 [phi:render_playfield::@1->render_playfield::@2#1] -- register_copy - //SEG307 [127] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#3 [phi:render_playfield::@1->render_playfield::@2#2] -- register_copy + //SEG376 [155] phi (byte*) render_playfield::screen_line#2 = (byte*) render_playfield::screen_line#0 [phi:render_playfield::@1->render_playfield::@2#1] -- register_copy + //SEG377 [155] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#3 [phi:render_playfield::@1->render_playfield::@2#2] -- register_copy jmp b2 - //SEG308 [127] phi from render_playfield::@2 to render_playfield::@2 [phi:render_playfield::@2->render_playfield::@2] + //SEG378 [155] phi from render_playfield::@2 to render_playfield::@2 [phi:render_playfield::@2->render_playfield::@2] b2_from_b2: - //SEG309 [127] phi (byte) render_playfield::c#2 = (byte) render_playfield::c#1 [phi:render_playfield::@2->render_playfield::@2#0] -- register_copy - //SEG310 [127] phi (byte*) render_playfield::screen_line#2 = (byte*) render_playfield::screen_line#1 [phi:render_playfield::@2->render_playfield::@2#1] -- register_copy - //SEG311 [127] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#1 [phi:render_playfield::@2->render_playfield::@2#2] -- register_copy + //SEG379 [155] phi (byte) render_playfield::c#2 = (byte) render_playfield::c#1 [phi:render_playfield::@2->render_playfield::@2#0] -- register_copy + //SEG380 [155] phi (byte*) render_playfield::screen_line#2 = (byte*) render_playfield::screen_line#1 [phi:render_playfield::@2->render_playfield::@2#1] -- register_copy + //SEG381 [155] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#1 [phi:render_playfield::@2->render_playfield::@2#2] -- register_copy jmp b2 - //SEG312 render_playfield::@2 + //SEG382 render_playfield::@2 b2: - //SEG313 [128] *((byte*) render_playfield::screen_line#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2) -- _deref_pbuz1=pbuc1_derefidx_vbuz2 + //SEG383 [156] *((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 - //SEG314 [129] (byte*) render_playfield::screen_line#1 ← ++ (byte*) render_playfield::screen_line#2 -- pbuz1=_inc_pbuz1 + //SEG384 [157] (byte*) render_playfield::screen_line#1 ← ++ (byte*) render_playfield::screen_line#2 -- pbuz1=_inc_pbuz1 inc screen_line bne !+ inc screen_line+1 !: - //SEG315 [130] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2 -- vbuz1=_inc_vbuz1 + //SEG385 [158] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG316 [131] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2 -- vbuz1=_inc_vbuz1 + //SEG386 [159] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2 -- vbuz1=_inc_vbuz1 inc c - //SEG317 [132] if((byte) render_playfield::c#1!=(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_playfield::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG387 [160] 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 - //SEG318 render_playfield::@3 + //SEG388 render_playfield::@3 b3: - //SEG319 [133] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2 -- vbuz1=_inc_vbuz1 + //SEG389 [161] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2 -- vbuz1=_inc_vbuz1 inc l - //SEG320 [134] if((byte) render_playfield::l#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_playfield::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG390 [162] 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 - //SEG321 render_playfield::@return + //SEG391 render_playfield::@return breturn: - //SEG322 [135] return + //SEG392 [163] return rts } -//SEG323 play_movement +//SEG393 play_movement play_movement: { - .label _0 = $87 - .label _3 = $8a - .label _4 = $8e - .label render = $20 - .label render_2 = $8b - .label return = $20 - .label key_event = $76 - .label return_3 = $77 - //SEG324 [136] (byte) play_move_down::key_event#0 ← (byte) play_movement::key_event#0 -- vbuz1=vbuz2 + .label _0 = $92 + .label _3 = $95 + .label _4 = $99 + .label render = $28 + .label render_2 = $96 + .label return = $28 + .label key_event = $7e + .label return_3 = $7f + //SEG394 [164] (byte) play_move_down::key_event#0 ← (byte) play_movement::key_event#0 -- vbuz1=vbuz2 lda key_event sta play_move_down.key_event - //SEG325 [137] call play_move_down + //SEG395 [165] call play_move_down jsr play_move_down - //SEG326 [138] (byte) play_move_down::return#0 ← (byte) play_move_down::return#3 -- vbuz1=vbuz2 + //SEG396 [166] (byte) play_move_down::return#0 ← (byte) play_move_down::return#3 -- vbuz1=vbuz2 lda play_move_down.return_3 sta play_move_down.return jmp b5 - //SEG327 play_movement::@5 + //SEG397 play_movement::@5 b5: - //SEG328 [139] (byte~) play_movement::$0 ← (byte) play_move_down::return#0 -- vbuz1=vbuz2 + //SEG398 [167] (byte~) play_movement::$0 ← (byte) play_move_down::return#0 -- vbuz1=vbuz2 lda play_move_down.return sta _0 - //SEG329 [140] (byte) play_movement::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) play_movement::$0 -- vbuz1=vbuc1_plus_vbuz2 + //SEG399 [168] (byte) play_movement::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) play_movement::$0 -- vbuz1=vbuc1_plus_vbuz2 lda #0 clc adc _0 sta render - //SEG330 [141] if((byte) game_over#14==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_movement::@1 -- vbuz1_eq_0_then_la1 + //SEG400 [169] if((byte) game_over#15==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_movement::@1 -- vbuz1_eq_0_then_la1 lda game_over cmp #0 beq b1 - //SEG331 [142] phi from play_movement::@5 play_movement::@7 to play_movement::@return [phi:play_movement::@5/play_movement::@7->play_movement::@return] + //SEG401 [170] phi from play_movement::@5 play_movement::@7 to play_movement::@return [phi:play_movement::@5/play_movement::@7->play_movement::@return] breturn_from_b5: breturn_from_b7: - //SEG332 [142] phi (byte) current_xpos#17 = (byte) current_xpos#20 [phi:play_movement::@5/play_movement::@7->play_movement::@return#0] -- register_copy - //SEG333 [142] phi (byte*) current_piece_gfx#16 = (byte*) current_piece_gfx#18 [phi:play_movement::@5/play_movement::@7->play_movement::@return#1] -- register_copy - //SEG334 [142] phi (byte) current_orientation#16 = (byte) current_orientation#19 [phi:play_movement::@5/play_movement::@7->play_movement::@return#2] -- register_copy - //SEG335 [142] phi (byte) play_movement::return#2 = (byte) play_movement::render#1 [phi:play_movement::@5/play_movement::@7->play_movement::@return#3] -- register_copy + //SEG402 [170] phi (byte) current_xpos#18 = (byte) current_xpos#21 [phi:play_movement::@5/play_movement::@7->play_movement::@return#0] -- register_copy + //SEG403 [170] phi (byte*) current_piece_gfx#17 = (byte*) current_piece_gfx#19 [phi:play_movement::@5/play_movement::@7->play_movement::@return#1] -- register_copy + //SEG404 [170] phi (byte) current_orientation#17 = (byte) current_orientation#20 [phi:play_movement::@5/play_movement::@7->play_movement::@return#2] -- register_copy + //SEG405 [170] phi (byte) play_movement::return#2 = (byte) play_movement::render#1 [phi:play_movement::@5/play_movement::@7->play_movement::@return#3] -- register_copy jmp breturn - //SEG336 play_movement::@return + //SEG406 play_movement::@return breturn: - //SEG337 [143] return + //SEG407 [171] return rts - //SEG338 play_movement::@1 + //SEG408 play_movement::@1 b1: - //SEG339 [144] (byte) play_move_leftright::key_event#0 ← (byte) play_movement::key_event#0 -- vbuz1=vbuz2 + //SEG409 [172] (byte) play_move_leftright::key_event#0 ← (byte) play_movement::key_event#0 -- vbuz1=vbuz2 lda key_event sta play_move_leftright.key_event - //SEG340 [145] call play_move_leftright + //SEG410 [173] call play_move_leftright jsr play_move_leftright - //SEG341 [146] (byte) play_move_leftright::return#0 ← (byte) play_move_leftright::return#2 -- vbuz1=vbuz2 + //SEG411 [174] (byte) play_move_leftright::return#0 ← (byte) play_move_leftright::return#2 -- vbuz1=vbuz2 lda play_move_leftright.return_2 sta play_move_leftright.return jmp b6 - //SEG342 play_movement::@6 + //SEG412 play_movement::@6 b6: - //SEG343 [147] (byte~) play_movement::$3 ← (byte) play_move_leftright::return#0 -- vbuz1=vbuz2 + //SEG413 [175] (byte~) play_movement::$3 ← (byte) play_move_leftright::return#0 -- vbuz1=vbuz2 lda play_move_leftright.return sta _3 - //SEG344 [148] (byte) play_movement::render#2 ← (byte) play_movement::render#1 + (byte~) play_movement::$3 -- vbuz1=vbuz2_plus_vbuz3 + //SEG414 [176] (byte) play_movement::render#2 ← (byte) play_movement::render#1 + (byte~) play_movement::$3 -- vbuz1=vbuz2_plus_vbuz3 lda render clc adc _3 sta render_2 - //SEG345 [149] (byte) play_move_rotate::key_event#0 ← (byte) play_movement::key_event#0 -- vbuz1=vbuz2 + //SEG415 [177] (byte) play_move_rotate::key_event#0 ← (byte) play_movement::key_event#0 -- vbuz1=vbuz2 lda key_event sta play_move_rotate.key_event - //SEG346 [150] call play_move_rotate + //SEG416 [178] call play_move_rotate jsr play_move_rotate - //SEG347 [151] (byte) play_move_rotate::return#0 ← (byte) play_move_rotate::return#2 -- vbuz1=vbuz2 + //SEG417 [179] (byte) play_move_rotate::return#0 ← (byte) play_move_rotate::return#2 -- vbuz1=vbuz2 lda play_move_rotate.return_2 sta play_move_rotate.return jmp b7 - //SEG348 play_movement::@7 + //SEG418 play_movement::@7 b7: - //SEG349 [152] (byte~) play_movement::$4 ← (byte) play_move_rotate::return#0 -- vbuz1=vbuz2 + //SEG419 [180] (byte~) play_movement::$4 ← (byte) play_move_rotate::return#0 -- vbuz1=vbuz2 lda play_move_rotate.return sta _4 - //SEG350 [153] (byte) play_movement::return#0 ← (byte) play_movement::render#2 + (byte~) play_movement::$4 -- vbuz1=vbuz2_plus_vbuz3 + //SEG420 [181] (byte) play_movement::return#0 ← (byte) play_movement::render#2 + (byte~) play_movement::$4 -- vbuz1=vbuz2_plus_vbuz3 lda render_2 clc adc _4 sta return jmp breturn_from_b7 } -//SEG351 play_move_rotate +//SEG421 play_move_rotate play_move_rotate: { - .label _2 = $8f - .label _4 = $92 - .label _6 = $91 - .label key_event = $8c - .label return = $8d - .label orientation = $22 - .label return_2 = $21 - //SEG352 [154] if((byte) play_move_rotate::key_event#0==(const byte) KEY_Z#0) goto play_move_rotate::@1 -- vbuz1_eq_vbuc1_then_la1 + .label _2 = $9a + .label _4 = $9d + .label _6 = $9c + .label key_event = $97 + .label return = $98 + .label orientation = $2a + .label return_2 = $29 + //SEG422 [182] 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 - //SEG353 play_move_rotate::@6 + //SEG423 play_move_rotate::@6 b6: - //SEG354 [155] if((byte) play_move_rotate::key_event#0==(const byte) KEY_X#0) goto play_move_rotate::@2 -- vbuz1_eq_vbuc1_then_la1 + //SEG424 [183] 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 - //SEG355 [156] phi from play_move_rotate::@14 play_move_rotate::@6 to play_move_rotate::@return [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return] + //SEG425 [184] 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: - //SEG356 [156] phi (byte*) current_piece_gfx#19 = (byte*) current_piece_gfx#18 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#0] -- register_copy - //SEG357 [156] phi (byte) current_orientation#24 = (byte) current_orientation#19 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#1] -- register_copy - //SEG358 [156] phi (byte) play_move_rotate::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#2] -- vbuz1=vbuc1 + //SEG426 [184] phi (byte*) current_piece_gfx#20 = (byte*) current_piece_gfx#19 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#0] -- register_copy + //SEG427 [184] phi (byte) current_orientation#25 = (byte) current_orientation#20 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#1] -- register_copy + //SEG428 [184] phi (byte) play_move_rotate::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#2] -- vbuz1=vbuc1 lda #0 sta return_2 jmp breturn - //SEG359 play_move_rotate::@return + //SEG429 play_move_rotate::@return breturn: - //SEG360 [157] return + //SEG430 [185] return rts - //SEG361 play_move_rotate::@2 + //SEG431 play_move_rotate::@2 b2: - //SEG362 [158] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#19 + (byte/signed byte/word/signed word/dword/signed dword) 16 -- vbuz1=vbuz2_plus_vbuc1 + //SEG432 [186] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#20 + (byte/signed byte/word/signed word/dword/signed dword) 16 -- vbuz1=vbuz2_plus_vbuc1 lda #$10 clc adc current_orientation sta _2 - //SEG363 [159] (byte) play_move_rotate::orientation#2 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 & (byte/signed byte/word/signed word/dword/signed dword) 63 -- vbuz1=vbuz2_band_vbuc1 + //SEG433 [187] (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 - //SEG364 [160] phi from play_move_rotate::@1 play_move_rotate::@2 to play_move_rotate::@4 [phi:play_move_rotate::@1/play_move_rotate::@2->play_move_rotate::@4] + //SEG434 [188] 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: - //SEG365 [160] phi (byte) play_move_rotate::orientation#3 = (byte) play_move_rotate::orientation#1 [phi:play_move_rotate::@1/play_move_rotate::@2->play_move_rotate::@4#0] -- register_copy + //SEG435 [188] 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 - //SEG366 play_move_rotate::@4 + //SEG436 play_move_rotate::@4 b4: - //SEG367 [161] (byte) play_collision::xpos#3 ← (byte) current_xpos#24 -- vbuz1=vbuz2 + //SEG437 [189] (byte) play_collision::xpos#3 ← (byte) current_xpos#25 -- vbuz1=vbuz2 lda current_xpos sta play_collision.xpos - //SEG368 [162] (byte) play_collision::ypos#3 ← (byte) current_ypos#17 -- vbuz1=vbuz2 + //SEG438 [190] (byte) play_collision::ypos#3 ← (byte) current_ypos#18 -- vbuz1=vbuz2 lda current_ypos sta play_collision.ypos - //SEG369 [163] (byte) play_collision::orientation#3 ← (byte) play_move_rotate::orientation#3 -- vbuz1=vbuz2 + //SEG439 [191] (byte) play_collision::orientation#3 ← (byte) play_move_rotate::orientation#3 -- vbuz1=vbuz2 lda orientation sta play_collision.orientation - //SEG370 [164] (byte*~) current_piece#93 ← (byte*) current_piece#14 -- pbuz1=pbuz2 + //SEG440 [192] (byte*~) current_piece#101 ← (byte*) current_piece#15 -- pbuz1=pbuz2 lda current_piece - sta current_piece_93 + sta current_piece_101 lda current_piece+1 - sta current_piece_93+1 - //SEG371 [165] call play_collision - //SEG372 [173] phi from play_move_rotate::@4 to play_collision [phi:play_move_rotate::@4->play_collision] + sta current_piece_101+1 + //SEG441 [193] call play_collision + //SEG442 [201] phi from play_move_rotate::@4 to play_collision [phi:play_move_rotate::@4->play_collision] play_collision_from_b4: - //SEG373 [173] phi (byte) play_collision::xpos#6 = (byte) play_collision::xpos#3 [phi:play_move_rotate::@4->play_collision#0] -- register_copy - //SEG374 [173] phi (byte) play_collision::ypos#5 = (byte) play_collision::ypos#3 [phi:play_move_rotate::@4->play_collision#1] -- register_copy - //SEG375 [173] phi (byte) play_collision::orientation#5 = (byte) play_collision::orientation#3 [phi:play_move_rotate::@4->play_collision#2] -- register_copy - //SEG376 [173] phi (byte*) current_piece#16 = (byte*~) current_piece#93 [phi:play_move_rotate::@4->play_collision#3] -- register_copy + //SEG443 [201] phi (byte) play_collision::xpos#6 = (byte) play_collision::xpos#3 [phi:play_move_rotate::@4->play_collision#0] -- register_copy + //SEG444 [201] phi (byte) play_collision::ypos#5 = (byte) play_collision::ypos#3 [phi:play_move_rotate::@4->play_collision#1] -- register_copy + //SEG445 [201] phi (byte) play_collision::orientation#5 = (byte) play_collision::orientation#3 [phi:play_move_rotate::@4->play_collision#2] -- register_copy + //SEG446 [201] phi (byte*) current_piece#17 = (byte*~) current_piece#101 [phi:play_move_rotate::@4->play_collision#3] -- register_copy jsr play_collision - //SEG377 [166] (byte) play_collision::return#14 ← (byte) play_collision::return#15 -- vbuz1=vbuz2 + //SEG447 [194] (byte) play_collision::return#14 ← (byte) play_collision::return#15 -- vbuz1=vbuz2 lda play_collision.return_15 sta play_collision.return_14 jmp b14 - //SEG378 play_move_rotate::@14 + //SEG448 play_move_rotate::@14 b14: - //SEG379 [167] (byte~) play_move_rotate::$6 ← (byte) play_collision::return#14 -- vbuz1=vbuz2 + //SEG449 [195] (byte~) play_move_rotate::$6 ← (byte) play_collision::return#14 -- vbuz1=vbuz2 lda play_collision.return_14 sta _6 - //SEG380 [168] if((byte~) play_move_rotate::$6!=(const byte) COLLISION_NONE#0) goto play_move_rotate::@return -- vbuz1_neq_vbuc1_then_la1 + //SEG450 [196] 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 - //SEG381 play_move_rotate::@11 + //SEG451 play_move_rotate::@11 b11: - //SEG382 [169] (byte) current_orientation#7 ← (byte) play_move_rotate::orientation#3 -- vbuz1=vbuz2 + //SEG452 [197] (byte) current_orientation#7 ← (byte) play_move_rotate::orientation#3 -- vbuz1=vbuz2 lda orientation sta current_orientation - //SEG383 [170] (byte*) current_piece_gfx#6 ← (byte*) current_piece#14 + (byte) current_orientation#7 -- pbuz1=pbuz2_plus_vbuz3 + //SEG453 [198] (byte*) current_piece_gfx#6 ← (byte*) current_piece#15 + (byte) current_orientation#7 -- pbuz1=pbuz2_plus_vbuz3 lda current_orientation clc adc current_piece @@ -13159,767 +14149,776 @@ play_move_rotate: { lda #0 adc current_piece+1 sta current_piece_gfx+1 - //SEG384 [156] phi from play_move_rotate::@11 to play_move_rotate::@return [phi:play_move_rotate::@11->play_move_rotate::@return] + //SEG454 [184] phi from play_move_rotate::@11 to play_move_rotate::@return [phi:play_move_rotate::@11->play_move_rotate::@return] breturn_from_b11: - //SEG385 [156] phi (byte*) current_piece_gfx#19 = (byte*) current_piece_gfx#6 [phi:play_move_rotate::@11->play_move_rotate::@return#0] -- register_copy - //SEG386 [156] phi (byte) current_orientation#24 = (byte) current_orientation#7 [phi:play_move_rotate::@11->play_move_rotate::@return#1] -- register_copy - //SEG387 [156] phi (byte) play_move_rotate::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_rotate::@11->play_move_rotate::@return#2] -- vbuz1=vbuc1 + //SEG455 [184] phi (byte*) current_piece_gfx#20 = (byte*) current_piece_gfx#6 [phi:play_move_rotate::@11->play_move_rotate::@return#0] -- register_copy + //SEG456 [184] phi (byte) current_orientation#25 = (byte) current_orientation#7 [phi:play_move_rotate::@11->play_move_rotate::@return#1] -- register_copy + //SEG457 [184] phi (byte) play_move_rotate::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_rotate::@11->play_move_rotate::@return#2] -- vbuz1=vbuc1 lda #1 sta return_2 jmp breturn - //SEG388 play_move_rotate::@1 + //SEG458 play_move_rotate::@1 b1: - //SEG389 [171] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#19 - (byte/signed byte/word/signed word/dword/signed dword) 16 -- vbuz1=vbuz2_minus_vbuc1 + //SEG459 [199] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#20 - (byte/signed byte/word/signed word/dword/signed dword) 16 -- vbuz1=vbuz2_minus_vbuc1 lda current_orientation sec sbc #$10 sta _4 - //SEG390 [172] (byte) play_move_rotate::orientation#1 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 & (byte/signed byte/word/signed word/dword/signed dword) 63 -- vbuz1=vbuz2_band_vbuc1 + //SEG460 [200] (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 } -//SEG391 play_collision +//SEG461 play_collision play_collision: { - .label _7 = $98 - .label xpos = $27 - .label ypos = $26 - .label orientation = $25 - .label return = $9f - .label return_1 = $9b - .label piece_gfx = $93 - .label ypos2 = $28 - .label playfield_line = $95 - .label i = $97 - .label col = $2b - .label c = $2c - .label l = $29 - .label return_10 = $a5 - .label return_13 = $99 - .label return_14 = $90 - .label i_2 = $2a - .label return_15 = $2d - .label i_3 = $2a - .label i_11 = $2a - .label i_13 = $2a - //SEG392 [174] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#16 + (byte) play_collision::orientation#5 -- pbuz1=pbuz2_plus_vbuz3 + .label _7 = $a3 + .label xpos = $2f + .label ypos = $2e + .label orientation = $2d + .label return = $aa + .label return_1 = $a6 + .label piece_gfx = $9e + .label ypos2 = $30 + .label playfield_line = $a0 + .label i = $a2 + .label col = $33 + .label c = $34 + .label l = $31 + .label return_10 = $b1 + .label return_13 = $a4 + .label return_14 = $9b + .label i_2 = $32 + .label return_15 = $35 + .label i_3 = $32 + .label i_11 = $32 + .label i_13 = $32 + //SEG462 [202] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#17 + (byte) play_collision::orientation#5 -- pbuz1=pbuz2_plus_vbuz3 lda orientation clc - adc current_piece_16 + adc current_piece_17 sta piece_gfx lda #0 - adc current_piece_16+1 + adc current_piece_17+1 sta piece_gfx+1 - //SEG393 [175] (byte) play_collision::ypos2#0 ← (byte) play_collision::ypos#5 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 + //SEG463 [203] (byte) play_collision::ypos2#0 ← (byte) play_collision::ypos#5 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 lda ypos asl sta ypos2 - //SEG394 [176] phi from play_collision to play_collision::@1 [phi:play_collision->play_collision::@1] + //SEG464 [204] phi from play_collision to play_collision::@1 [phi:play_collision->play_collision::@1] b1_from_play_collision: - //SEG395 [176] phi (byte) play_collision::l#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_collision->play_collision::@1#0] -- vbuz1=vbuc1 + //SEG465 [204] 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 - //SEG396 [176] phi (byte) play_collision::i#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_collision->play_collision::@1#1] -- vbuz1=vbuc1 + //SEG466 [204] 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 - //SEG397 [176] phi (byte) play_collision::ypos2#2 = (byte) play_collision::ypos2#0 [phi:play_collision->play_collision::@1#2] -- register_copy + //SEG467 [204] phi (byte) play_collision::ypos2#2 = (byte) play_collision::ypos2#0 [phi:play_collision->play_collision::@1#2] -- register_copy jmp b1 - //SEG398 play_collision::@1 + //SEG468 play_collision::@1 b1: - //SEG399 [177] (byte*) play_collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_collision::ypos2#2) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG469 [205] (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 - //SEG400 [178] (byte~) play_collision::col#9 ← (byte) play_collision::xpos#6 -- vbuz1=vbuz2 + //SEG470 [206] (byte~) play_collision::col#9 ← (byte) play_collision::xpos#6 -- vbuz1=vbuz2 lda xpos sta col - //SEG401 [179] phi from play_collision::@1 to play_collision::@2 [phi:play_collision::@1->play_collision::@2] + //SEG471 [207] phi from play_collision::@1 to play_collision::@2 [phi:play_collision::@1->play_collision::@2] b2_from_b1: - //SEG402 [179] phi (byte) play_collision::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_collision::@1->play_collision::@2#0] -- vbuz1=vbuc1 + //SEG472 [207] 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 - //SEG403 [179] phi (byte) play_collision::col#2 = (byte~) play_collision::col#9 [phi:play_collision::@1->play_collision::@2#1] -- register_copy - //SEG404 [179] phi (byte) play_collision::i#2 = (byte) play_collision::i#3 [phi:play_collision::@1->play_collision::@2#2] -- register_copy + //SEG473 [207] phi (byte) play_collision::col#2 = (byte~) play_collision::col#9 [phi:play_collision::@1->play_collision::@2#1] -- register_copy + //SEG474 [207] phi (byte) play_collision::i#2 = (byte) play_collision::i#3 [phi:play_collision::@1->play_collision::@2#2] -- register_copy jmp b2 - //SEG405 play_collision::@2 + //SEG475 play_collision::@2 b2: - //SEG406 [180] (byte) play_collision::i#1 ← ++ (byte) play_collision::i#2 -- vbuz1=_inc_vbuz2 + //SEG476 [208] (byte) play_collision::i#1 ← ++ (byte) play_collision::i#2 -- vbuz1=_inc_vbuz2 ldy i_2 iny sty i - //SEG407 [181] if(*((byte*) play_collision::piece_gfx#0 + (byte) play_collision::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 + //SEG477 [209] 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 - //SEG408 play_collision::@8 + //SEG478 play_collision::@8 b8: - //SEG409 [182] if((byte) play_collision::ypos2#2<(byte/signed byte/word/signed word/dword/signed dword) 2*(const byte) PLAYFIELD_LINES#0) goto play_collision::@4 -- vbuz1_lt_vbuc1_then_la1 + //SEG479 [210] 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 - //SEG410 [183] phi from play_collision::@8 to play_collision::@return [phi:play_collision::@8->play_collision::@return] + //SEG480 [211] phi from play_collision::@8 to play_collision::@return [phi:play_collision::@8->play_collision::@return] breturn_from_b8: - //SEG411 [183] phi (byte) play_collision::return#15 = (const byte) COLLISION_BOTTOM#0 [phi:play_collision::@8->play_collision::@return#0] -- vbuz1=vbuc1 + //SEG481 [211] phi (byte) play_collision::return#15 = (const byte) COLLISION_BOTTOM#0 [phi:play_collision::@8->play_collision::@return#0] -- vbuz1=vbuc1 lda #COLLISION_BOTTOM sta return_15 jmp breturn - //SEG412 play_collision::@return + //SEG482 play_collision::@return breturn: - //SEG413 [184] return + //SEG483 [212] return rts - //SEG414 play_collision::@4 + //SEG484 play_collision::@4 b4: - //SEG415 [185] (byte~) play_collision::$7 ← (byte) play_collision::col#2 & (byte/word/signed word/dword/signed dword) 128 -- vbuz1=vbuz2_band_vbuc1 + //SEG485 [213] (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 - //SEG416 [186] if((byte~) play_collision::$7==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@5 -- vbuz1_eq_0_then_la1 + //SEG486 [214] 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 - //SEG417 [183] phi from play_collision::@4 to play_collision::@return [phi:play_collision::@4->play_collision::@return] + //SEG487 [211] phi from play_collision::@4 to play_collision::@return [phi:play_collision::@4->play_collision::@return] breturn_from_b4: - //SEG418 [183] phi (byte) play_collision::return#15 = (const byte) COLLISION_LEFT#0 [phi:play_collision::@4->play_collision::@return#0] -- vbuz1=vbuc1 + //SEG488 [211] phi (byte) play_collision::return#15 = (const byte) COLLISION_LEFT#0 [phi:play_collision::@4->play_collision::@return#0] -- vbuz1=vbuc1 lda #COLLISION_LEFT sta return_15 jmp breturn - //SEG419 play_collision::@5 + //SEG489 play_collision::@5 b5: - //SEG420 [187] if((byte) play_collision::col#2<(const byte) PLAYFIELD_COLS#0) goto play_collision::@6 -- vbuz1_lt_vbuc1_then_la1 + //SEG490 [215] 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 - //SEG421 [183] phi from play_collision::@5 to play_collision::@return [phi:play_collision::@5->play_collision::@return] + //SEG491 [211] phi from play_collision::@5 to play_collision::@return [phi:play_collision::@5->play_collision::@return] breturn_from_b5: - //SEG422 [183] phi (byte) play_collision::return#15 = (const byte) COLLISION_RIGHT#0 [phi:play_collision::@5->play_collision::@return#0] -- vbuz1=vbuc1 + //SEG492 [211] phi (byte) play_collision::return#15 = (const byte) COLLISION_RIGHT#0 [phi:play_collision::@5->play_collision::@return#0] -- vbuz1=vbuc1 lda #COLLISION_RIGHT sta return_15 jmp breturn - //SEG423 play_collision::@6 + //SEG493 play_collision::@6 b6: - //SEG424 [188] if(*((byte*) play_collision::playfield_line#0 + (byte) play_collision::col#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 + //SEG494 [216] 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 - //SEG425 [183] phi from play_collision::@6 to play_collision::@return [phi:play_collision::@6->play_collision::@return] + //SEG495 [211] phi from play_collision::@6 to play_collision::@return [phi:play_collision::@6->play_collision::@return] breturn_from_b6: - //SEG426 [183] phi (byte) play_collision::return#15 = (const byte) COLLISION_PLAYFIELD#0 [phi:play_collision::@6->play_collision::@return#0] -- vbuz1=vbuc1 + //SEG496 [211] phi (byte) play_collision::return#15 = (const byte) COLLISION_PLAYFIELD#0 [phi:play_collision::@6->play_collision::@return#0] -- vbuz1=vbuc1 lda #COLLISION_PLAYFIELD sta return_15 jmp breturn - //SEG427 play_collision::@3 + //SEG497 play_collision::@3 b3: - //SEG428 [189] (byte) play_collision::col#1 ← ++ (byte) play_collision::col#2 -- vbuz1=_inc_vbuz1 + //SEG498 [217] (byte) play_collision::col#1 ← ++ (byte) play_collision::col#2 -- vbuz1=_inc_vbuz1 inc col - //SEG429 [190] (byte) play_collision::c#1 ← ++ (byte) play_collision::c#2 -- vbuz1=_inc_vbuz1 + //SEG499 [218] (byte) play_collision::c#1 ← ++ (byte) play_collision::c#2 -- vbuz1=_inc_vbuz1 inc c - //SEG430 [191] if((byte) play_collision::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_collision::@21 -- vbuz1_neq_vbuc1_then_la1 + //SEG500 [219] 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 - //SEG431 play_collision::@17 + //SEG501 play_collision::@17 b17: - //SEG432 [192] (byte) play_collision::ypos2#1 ← (byte) play_collision::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz1_plus_2 + //SEG502 [220] (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 - //SEG433 [193] (byte) play_collision::l#1 ← ++ (byte) play_collision::l#6 -- vbuz1=_inc_vbuz1 + //SEG503 [221] (byte) play_collision::l#1 ← ++ (byte) play_collision::l#6 -- vbuz1=_inc_vbuz1 inc l - //SEG434 [194] if((byte) play_collision::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_collision::@20 -- vbuz1_neq_vbuc1_then_la1 + //SEG504 [222] 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 - //SEG435 [183] phi from play_collision::@17 to play_collision::@return [phi:play_collision::@17->play_collision::@return] + //SEG505 [211] phi from play_collision::@17 to play_collision::@return [phi:play_collision::@17->play_collision::@return] breturn_from_b17: - //SEG436 [183] phi (byte) play_collision::return#15 = (const byte) COLLISION_NONE#0 [phi:play_collision::@17->play_collision::@return#0] -- vbuz1=vbuc1 + //SEG506 [211] phi (byte) play_collision::return#15 = (const byte) COLLISION_NONE#0 [phi:play_collision::@17->play_collision::@return#0] -- vbuz1=vbuc1 lda #COLLISION_NONE sta return_15 jmp breturn - //SEG437 play_collision::@20 + //SEG507 play_collision::@20 b20: - //SEG438 [195] (byte~) play_collision::i#11 ← (byte) play_collision::i#1 -- vbuz1=vbuz2 + //SEG508 [223] (byte~) play_collision::i#11 ← (byte) play_collision::i#1 -- vbuz1=vbuz2 lda i sta i_11 - //SEG439 [176] phi from play_collision::@20 to play_collision::@1 [phi:play_collision::@20->play_collision::@1] + //SEG509 [204] phi from play_collision::@20 to play_collision::@1 [phi:play_collision::@20->play_collision::@1] b1_from_b20: - //SEG440 [176] phi (byte) play_collision::l#6 = (byte) play_collision::l#1 [phi:play_collision::@20->play_collision::@1#0] -- register_copy - //SEG441 [176] phi (byte) play_collision::i#3 = (byte~) play_collision::i#11 [phi:play_collision::@20->play_collision::@1#1] -- register_copy - //SEG442 [176] phi (byte) play_collision::ypos2#2 = (byte) play_collision::ypos2#1 [phi:play_collision::@20->play_collision::@1#2] -- register_copy + //SEG510 [204] phi (byte) play_collision::l#6 = (byte) play_collision::l#1 [phi:play_collision::@20->play_collision::@1#0] -- register_copy + //SEG511 [204] phi (byte) play_collision::i#3 = (byte~) play_collision::i#11 [phi:play_collision::@20->play_collision::@1#1] -- register_copy + //SEG512 [204] phi (byte) play_collision::ypos2#2 = (byte) play_collision::ypos2#1 [phi:play_collision::@20->play_collision::@1#2] -- register_copy jmp b1 - //SEG443 play_collision::@21 + //SEG513 play_collision::@21 b21: - //SEG444 [196] (byte~) play_collision::i#13 ← (byte) play_collision::i#1 -- vbuz1=vbuz2 + //SEG514 [224] (byte~) play_collision::i#13 ← (byte) play_collision::i#1 -- vbuz1=vbuz2 lda i sta i_13 - //SEG445 [179] phi from play_collision::@21 to play_collision::@2 [phi:play_collision::@21->play_collision::@2] + //SEG515 [207] phi from play_collision::@21 to play_collision::@2 [phi:play_collision::@21->play_collision::@2] b2_from_b21: - //SEG446 [179] phi (byte) play_collision::c#2 = (byte) play_collision::c#1 [phi:play_collision::@21->play_collision::@2#0] -- register_copy - //SEG447 [179] phi (byte) play_collision::col#2 = (byte) play_collision::col#1 [phi:play_collision::@21->play_collision::@2#1] -- register_copy - //SEG448 [179] phi (byte) play_collision::i#2 = (byte~) play_collision::i#13 [phi:play_collision::@21->play_collision::@2#2] -- register_copy + //SEG516 [207] phi (byte) play_collision::c#2 = (byte) play_collision::c#1 [phi:play_collision::@21->play_collision::@2#0] -- register_copy + //SEG517 [207] phi (byte) play_collision::col#2 = (byte) play_collision::col#1 [phi:play_collision::@21->play_collision::@2#1] -- register_copy + //SEG518 [207] phi (byte) play_collision::i#2 = (byte~) play_collision::i#13 [phi:play_collision::@21->play_collision::@2#2] -- register_copy jmp b2 } -//SEG449 play_move_leftright +//SEG519 play_move_leftright play_move_leftright: { - .label _4 = $9a - .label _8 = $9c - .label key_event = $88 - .label return = $89 - .label return_2 = $2e - //SEG450 [197] if((byte) play_move_leftright::key_event#0==(const byte) KEY_COMMA#0) goto play_move_leftright::@1 -- vbuz1_eq_vbuc1_then_la1 + .label _4 = $a5 + .label _8 = $a7 + .label key_event = $93 + .label return = $94 + .label return_2 = $36 + //SEG520 [225] 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 - //SEG451 play_move_leftright::@6 + //SEG521 play_move_leftright::@6 b6: - //SEG452 [198] if((byte) play_move_leftright::key_event#0!=(const byte) KEY_DOT#0) goto play_move_leftright::@return -- vbuz1_neq_vbuc1_then_la1 + //SEG522 [226] 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 - //SEG453 play_move_leftright::@7 + //SEG523 play_move_leftright::@7 b7: - //SEG454 [199] (byte) play_collision::xpos#2 ← (byte) current_xpos#20 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_plus_1 + //SEG524 [227] (byte) play_collision::xpos#2 ← (byte) current_xpos#21 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_plus_1 ldy current_xpos iny sty play_collision.xpos - //SEG455 [200] (byte) play_collision::ypos#2 ← (byte) current_ypos#17 -- vbuz1=vbuz2 + //SEG525 [228] (byte) play_collision::ypos#2 ← (byte) current_ypos#18 -- vbuz1=vbuz2 lda current_ypos sta play_collision.ypos - //SEG456 [201] (byte) play_collision::orientation#2 ← (byte) current_orientation#19 -- vbuz1=vbuz2 + //SEG526 [229] (byte) play_collision::orientation#2 ← (byte) current_orientation#20 -- vbuz1=vbuz2 lda current_orientation sta play_collision.orientation - //SEG457 [202] (byte*~) current_piece#92 ← (byte*) current_piece#14 -- pbuz1=pbuz2 + //SEG527 [230] (byte*~) current_piece#100 ← (byte*) current_piece#15 -- pbuz1=pbuz2 lda current_piece - sta current_piece_92 + sta current_piece_100 lda current_piece+1 - sta current_piece_92+1 - //SEG458 [203] call play_collision - //SEG459 [173] phi from play_move_leftright::@7 to play_collision [phi:play_move_leftright::@7->play_collision] + sta current_piece_100+1 + //SEG528 [231] call play_collision + //SEG529 [201] phi from play_move_leftright::@7 to play_collision [phi:play_move_leftright::@7->play_collision] play_collision_from_b7: - //SEG460 [173] phi (byte) play_collision::xpos#6 = (byte) play_collision::xpos#2 [phi:play_move_leftright::@7->play_collision#0] -- register_copy - //SEG461 [173] phi (byte) play_collision::ypos#5 = (byte) play_collision::ypos#2 [phi:play_move_leftright::@7->play_collision#1] -- register_copy - //SEG462 [173] phi (byte) play_collision::orientation#5 = (byte) play_collision::orientation#2 [phi:play_move_leftright::@7->play_collision#2] -- register_copy - //SEG463 [173] phi (byte*) current_piece#16 = (byte*~) current_piece#92 [phi:play_move_leftright::@7->play_collision#3] -- register_copy + //SEG530 [201] phi (byte) play_collision::xpos#6 = (byte) play_collision::xpos#2 [phi:play_move_leftright::@7->play_collision#0] -- register_copy + //SEG531 [201] phi (byte) play_collision::ypos#5 = (byte) play_collision::ypos#2 [phi:play_move_leftright::@7->play_collision#1] -- register_copy + //SEG532 [201] phi (byte) play_collision::orientation#5 = (byte) play_collision::orientation#2 [phi:play_move_leftright::@7->play_collision#2] -- register_copy + //SEG533 [201] phi (byte*) current_piece#17 = (byte*~) current_piece#100 [phi:play_move_leftright::@7->play_collision#3] -- register_copy jsr play_collision - //SEG464 [204] (byte) play_collision::return#13 ← (byte) play_collision::return#15 -- vbuz1=vbuz2 + //SEG534 [232] (byte) play_collision::return#13 ← (byte) play_collision::return#15 -- vbuz1=vbuz2 lda play_collision.return_15 sta play_collision.return_13 jmp b15 - //SEG465 play_move_leftright::@15 + //SEG535 play_move_leftright::@15 b15: - //SEG466 [205] (byte~) play_move_leftright::$4 ← (byte) play_collision::return#13 -- vbuz1=vbuz2 + //SEG536 [233] (byte~) play_move_leftright::$4 ← (byte) play_collision::return#13 -- vbuz1=vbuz2 lda play_collision.return_13 sta _4 - //SEG467 [206] if((byte~) play_move_leftright::$4!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return -- vbuz1_neq_vbuc1_then_la1 + //SEG537 [234] 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 - //SEG468 play_move_leftright::@8 + //SEG538 play_move_leftright::@8 b8: - //SEG469 [207] (byte) current_xpos#5 ← ++ (byte) current_xpos#20 -- vbuz1=_inc_vbuz1 + //SEG539 [235] (byte) current_xpos#5 ← ++ (byte) current_xpos#21 -- vbuz1=_inc_vbuz1 inc current_xpos - //SEG470 [208] phi from play_move_leftright::@11 play_move_leftright::@8 to play_move_leftright::@return [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return] + //SEG540 [236] 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: - //SEG471 [208] phi (byte) current_xpos#24 = (byte) current_xpos#7 [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return#0] -- register_copy - //SEG472 [208] phi (byte) play_move_leftright::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return#1] -- vbuz1=vbuc1 + //SEG541 [236] phi (byte) current_xpos#25 = (byte) current_xpos#7 [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return#0] -- register_copy + //SEG542 [236] phi (byte) play_move_leftright::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return#1] -- vbuz1=vbuc1 lda #1 sta return_2 jmp breturn - //SEG473 [208] phi from play_move_leftright::@14 play_move_leftright::@15 play_move_leftright::@6 to play_move_leftright::@return [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return] + //SEG543 [236] 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: - //SEG474 [208] phi (byte) current_xpos#24 = (byte) current_xpos#20 [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return#0] -- register_copy - //SEG475 [208] phi (byte) play_move_leftright::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return#1] -- vbuz1=vbuc1 + //SEG544 [236] phi (byte) current_xpos#25 = (byte) current_xpos#21 [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return#0] -- register_copy + //SEG545 [236] phi (byte) play_move_leftright::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return#1] -- vbuz1=vbuc1 lda #0 sta return_2 jmp breturn - //SEG476 play_move_leftright::@return + //SEG546 play_move_leftright::@return breturn: - //SEG477 [209] return + //SEG547 [237] return rts - //SEG478 play_move_leftright::@1 + //SEG548 play_move_leftright::@1 b1: - //SEG479 [210] (byte) play_collision::xpos#1 ← (byte) current_xpos#20 - (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_minus_1 + //SEG549 [238] (byte) play_collision::xpos#1 ← (byte) current_xpos#21 - (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_minus_1 ldx current_xpos dex stx play_collision.xpos - //SEG480 [211] (byte) play_collision::ypos#1 ← (byte) current_ypos#17 -- vbuz1=vbuz2 + //SEG550 [239] (byte) play_collision::ypos#1 ← (byte) current_ypos#18 -- vbuz1=vbuz2 lda current_ypos sta play_collision.ypos - //SEG481 [212] (byte) play_collision::orientation#1 ← (byte) current_orientation#19 -- vbuz1=vbuz2 + //SEG551 [240] (byte) play_collision::orientation#1 ← (byte) current_orientation#20 -- vbuz1=vbuz2 lda current_orientation sta play_collision.orientation - //SEG482 [213] (byte*~) current_piece#91 ← (byte*) current_piece#14 -- pbuz1=pbuz2 + //SEG552 [241] (byte*~) current_piece#99 ← (byte*) current_piece#15 -- pbuz1=pbuz2 lda current_piece - sta current_piece_91 + sta current_piece_99 lda current_piece+1 - sta current_piece_91+1 - //SEG483 [214] call play_collision - //SEG484 [173] phi from play_move_leftright::@1 to play_collision [phi:play_move_leftright::@1->play_collision] + sta current_piece_99+1 + //SEG553 [242] call play_collision + //SEG554 [201] phi from play_move_leftright::@1 to play_collision [phi:play_move_leftright::@1->play_collision] play_collision_from_b1: - //SEG485 [173] phi (byte) play_collision::xpos#6 = (byte) play_collision::xpos#1 [phi:play_move_leftright::@1->play_collision#0] -- register_copy - //SEG486 [173] phi (byte) play_collision::ypos#5 = (byte) play_collision::ypos#1 [phi:play_move_leftright::@1->play_collision#1] -- register_copy - //SEG487 [173] phi (byte) play_collision::orientation#5 = (byte) play_collision::orientation#1 [phi:play_move_leftright::@1->play_collision#2] -- register_copy - //SEG488 [173] phi (byte*) current_piece#16 = (byte*~) current_piece#91 [phi:play_move_leftright::@1->play_collision#3] -- register_copy + //SEG555 [201] phi (byte) play_collision::xpos#6 = (byte) play_collision::xpos#1 [phi:play_move_leftright::@1->play_collision#0] -- register_copy + //SEG556 [201] phi (byte) play_collision::ypos#5 = (byte) play_collision::ypos#1 [phi:play_move_leftright::@1->play_collision#1] -- register_copy + //SEG557 [201] phi (byte) play_collision::orientation#5 = (byte) play_collision::orientation#1 [phi:play_move_leftright::@1->play_collision#2] -- register_copy + //SEG558 [201] phi (byte*) current_piece#17 = (byte*~) current_piece#99 [phi:play_move_leftright::@1->play_collision#3] -- register_copy jsr play_collision - //SEG489 [215] (byte) play_collision::return#1 ← (byte) play_collision::return#15 -- vbuz1=vbuz2 + //SEG559 [243] (byte) play_collision::return#1 ← (byte) play_collision::return#15 -- vbuz1=vbuz2 lda play_collision.return_15 sta play_collision.return_1 jmp b14 - //SEG490 play_move_leftright::@14 + //SEG560 play_move_leftright::@14 b14: - //SEG491 [216] (byte~) play_move_leftright::$8 ← (byte) play_collision::return#1 -- vbuz1=vbuz2 + //SEG561 [244] (byte~) play_move_leftright::$8 ← (byte) play_collision::return#1 -- vbuz1=vbuz2 lda play_collision.return_1 sta _8 - //SEG492 [217] if((byte~) play_move_leftright::$8!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return -- vbuz1_neq_vbuc1_then_la1 + //SEG562 [245] 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 - //SEG493 play_move_leftright::@11 + //SEG563 play_move_leftright::@11 b11: - //SEG494 [218] (byte) current_xpos#7 ← -- (byte) current_xpos#20 -- vbuz1=_dec_vbuz1 + //SEG564 [246] (byte) current_xpos#7 ← -- (byte) current_xpos#21 -- vbuz1=_dec_vbuz1 dec current_xpos jmp breturn_from_b11 } -//SEG495 play_move_down +//SEG565 play_move_down play_move_down: { - .label _2 = $9e - .label _12 = $a0 - .label key_event = $85 - .label return = $86 - .label movedown = $2f - .label removed = $a2 - .label return_3 = $41 - //SEG496 [219] (byte) current_movedown_counter#12 ← ++ (byte) current_movedown_counter#16 -- vbuz1=_inc_vbuz1 + .label _2 = $a9 + .label _12 = $ab + .label key_event = $90 + .label return = $91 + .label movedown = $37 + .label removed = $ad + .label return_3 = $49 + //SEG566 [247] (byte) current_movedown_counter#12 ← ++ (byte) current_movedown_counter#16 -- vbuz1=_inc_vbuz1 inc current_movedown_counter - //SEG497 [220] if((byte) play_move_down::key_event#0!=(const byte) KEY_SPACE#0) goto play_move_down::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG567 [248] 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 - //SEG498 [221] phi from play_move_down to play_move_down::@8 [phi:play_move_down->play_move_down::@8] + //SEG568 [249] 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 - //SEG499 play_move_down::@8 + //SEG569 play_move_down::@8 b8: - //SEG500 [222] phi from play_move_down::@8 to play_move_down::@1 [phi:play_move_down::@8->play_move_down::@1] + //SEG570 [250] phi from play_move_down::@8 to play_move_down::@1 [phi:play_move_down::@8->play_move_down::@1] b1_from_b8: - //SEG501 [222] phi (byte) play_move_down::movedown#10 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_down::@8->play_move_down::@1#0] -- vbuz1=vbuc1 + //SEG571 [250] 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 - //SEG502 [222] phi from play_move_down to play_move_down::@1 [phi:play_move_down->play_move_down::@1] + //SEG572 [250] phi from play_move_down to play_move_down::@1 [phi:play_move_down->play_move_down::@1] b1_from_play_move_down: - //SEG503 [222] phi (byte) play_move_down::movedown#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down->play_move_down::@1#0] -- vbuz1=vbuc1 + //SEG573 [250] 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 - //SEG504 play_move_down::@1 + //SEG574 play_move_down::@1 b1: - //SEG505 [223] call keyboard_event_pressed - //SEG506 [355] phi from play_move_down::@1 to keyboard_event_pressed [phi:play_move_down::@1->keyboard_event_pressed] + //SEG575 [251] call keyboard_event_pressed + //SEG576 [384] phi from play_move_down::@1 to keyboard_event_pressed [phi:play_move_down::@1->keyboard_event_pressed] keyboard_event_pressed_from_b1: - //SEG507 [355] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_SPACE#0 [phi:play_move_down::@1->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG577 [384] 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 - //SEG508 [224] (byte) keyboard_event_pressed::return#12 ← (byte) keyboard_event_pressed::return#11 -- vbuz1=vbuz2 + //SEG578 [252] (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 - //SEG509 play_move_down::@17 + //SEG579 play_move_down::@17 b17: - //SEG510 [225] (byte~) play_move_down::$2 ← (byte) keyboard_event_pressed::return#12 -- vbuz1=vbuz2 + //SEG580 [253] (byte~) play_move_down::$2 ← (byte) keyboard_event_pressed::return#12 -- vbuz1=vbuz2 lda keyboard_event_pressed.return_12 sta _2 - //SEG511 [226] if((byte~) play_move_down::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@2 -- vbuz1_eq_0_then_la1 + //SEG581 [254] 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 - //SEG512 play_move_down::@9 + //SEG582 play_move_down::@9 b9: - //SEG513 [227] if((byte) current_movedown_counter#12<(const byte) current_movedown_fast#0) goto play_move_down::@2 -- vbuz1_lt_vbuc1_then_la1 + //SEG583 [255] if((byte) current_movedown_counter#12<(const byte) current_movedown_fast#0) goto play_move_down::@2 -- vbuz1_lt_vbuc1_then_la1 lda current_movedown_counter cmp #current_movedown_fast bcc b2_from_b9 jmp b10 - //SEG514 play_move_down::@10 + //SEG584 play_move_down::@10 b10: - //SEG515 [228] (byte) play_move_down::movedown#2 ← ++ (byte) play_move_down::movedown#10 -- vbuz1=_inc_vbuz1 + //SEG585 [256] (byte) play_move_down::movedown#2 ← ++ (byte) play_move_down::movedown#10 -- vbuz1=_inc_vbuz1 inc movedown - //SEG516 [229] phi from play_move_down::@10 play_move_down::@17 play_move_down::@9 to play_move_down::@2 [phi:play_move_down::@10/play_move_down::@17/play_move_down::@9->play_move_down::@2] + //SEG586 [257] 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: - //SEG517 [229] phi (byte) play_move_down::movedown#7 = (byte) play_move_down::movedown#2 [phi:play_move_down::@10/play_move_down::@17/play_move_down::@9->play_move_down::@2#0] -- register_copy + //SEG587 [257] 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 - //SEG518 play_move_down::@2 + //SEG588 play_move_down::@2 b2: - //SEG519 [230] if((byte) current_movedown_counter#12<(byte) current_movedown_slow#14) goto play_move_down::@4 -- vbuz1_lt_vbuz2_then_la1 + //SEG589 [258] if((byte) current_movedown_counter#12<(byte) current_movedown_slow#14) goto play_move_down::@4 -- vbuz1_lt_vbuz2_then_la1 lda current_movedown_counter cmp current_movedown_slow bcc b4_from_b2 jmp b11 - //SEG520 play_move_down::@11 + //SEG590 play_move_down::@11 b11: - //SEG521 [231] (byte) play_move_down::movedown#3 ← ++ (byte) play_move_down::movedown#7 -- vbuz1=_inc_vbuz1 + //SEG591 [259] (byte) play_move_down::movedown#3 ← ++ (byte) play_move_down::movedown#7 -- vbuz1=_inc_vbuz1 inc movedown - //SEG522 [232] phi from play_move_down::@11 play_move_down::@2 to play_move_down::@4 [phi:play_move_down::@11/play_move_down::@2->play_move_down::@4] + //SEG592 [260] 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: - //SEG523 [232] phi (byte) play_move_down::movedown#6 = (byte) play_move_down::movedown#3 [phi:play_move_down::@11/play_move_down::@2->play_move_down::@4#0] -- register_copy + //SEG593 [260] 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 - //SEG524 play_move_down::@4 + //SEG594 play_move_down::@4 b4: - //SEG525 [233] if((byte) play_move_down::movedown#6==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@return -- vbuz1_eq_0_then_la1 + //SEG595 [261] 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 - //SEG526 play_move_down::@12 + //SEG596 play_move_down::@12 b12: - //SEG527 [234] (byte) play_collision::ypos#0 ← (byte) current_ypos#25 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_plus_1 + //SEG597 [262] (byte) play_collision::ypos#0 ← (byte) current_ypos#10 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_plus_1 ldy current_ypos iny sty play_collision.ypos - //SEG528 [235] (byte) play_collision::xpos#0 ← (byte) current_xpos#113 -- vbuz1=vbuz2 + //SEG598 [263] (byte) play_collision::xpos#0 ← (byte) current_xpos#121 -- vbuz1=vbuz2 lda current_xpos sta play_collision.xpos - //SEG529 [236] (byte) play_collision::orientation#0 ← (byte) current_orientation#12 -- vbuz1=vbuz2 + //SEG599 [264] (byte) play_collision::orientation#0 ← (byte) current_orientation#13 -- vbuz1=vbuz2 lda current_orientation sta play_collision.orientation - //SEG530 [237] (byte*~) current_piece#90 ← (byte*) current_piece#20 -- pbuz1=pbuz2 + //SEG600 [265] (byte*~) current_piece#98 ← (byte*) current_piece#10 -- pbuz1=pbuz2 lda current_piece - sta current_piece_90 + sta current_piece_98 lda current_piece+1 - sta current_piece_90+1 - //SEG531 [238] call play_collision - //SEG532 [173] phi from play_move_down::@12 to play_collision [phi:play_move_down::@12->play_collision] + sta current_piece_98+1 + //SEG601 [266] call play_collision + //SEG602 [201] phi from play_move_down::@12 to play_collision [phi:play_move_down::@12->play_collision] play_collision_from_b12: - //SEG533 [173] phi (byte) play_collision::xpos#6 = (byte) play_collision::xpos#0 [phi:play_move_down::@12->play_collision#0] -- register_copy - //SEG534 [173] phi (byte) play_collision::ypos#5 = (byte) play_collision::ypos#0 [phi:play_move_down::@12->play_collision#1] -- register_copy - //SEG535 [173] phi (byte) play_collision::orientation#5 = (byte) play_collision::orientation#0 [phi:play_move_down::@12->play_collision#2] -- register_copy - //SEG536 [173] phi (byte*) current_piece#16 = (byte*~) current_piece#90 [phi:play_move_down::@12->play_collision#3] -- register_copy + //SEG603 [201] phi (byte) play_collision::xpos#6 = (byte) play_collision::xpos#0 [phi:play_move_down::@12->play_collision#0] -- register_copy + //SEG604 [201] phi (byte) play_collision::ypos#5 = (byte) play_collision::ypos#0 [phi:play_move_down::@12->play_collision#1] -- register_copy + //SEG605 [201] phi (byte) play_collision::orientation#5 = (byte) play_collision::orientation#0 [phi:play_move_down::@12->play_collision#2] -- register_copy + //SEG606 [201] phi (byte*) current_piece#17 = (byte*~) current_piece#98 [phi:play_move_down::@12->play_collision#3] -- register_copy jsr play_collision - //SEG537 [239] (byte) play_collision::return#0 ← (byte) play_collision::return#15 -- vbuz1=vbuz2 + //SEG607 [267] (byte) play_collision::return#0 ← (byte) play_collision::return#15 -- vbuz1=vbuz2 lda play_collision.return_15 sta play_collision.return jmp b18 - //SEG538 play_move_down::@18 + //SEG608 play_move_down::@18 b18: - //SEG539 [240] (byte~) play_move_down::$12 ← (byte) play_collision::return#0 -- vbuz1=vbuz2 + //SEG609 [268] (byte~) play_move_down::$12 ← (byte) play_collision::return#0 -- vbuz1=vbuz2 lda play_collision.return sta _12 - //SEG540 [241] if((byte~) play_move_down::$12==(const byte) COLLISION_NONE#0) goto play_move_down::@6 -- vbuz1_eq_vbuc1_then_la1 + //SEG610 [269] 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 - //SEG541 [242] phi from play_move_down::@18 to play_move_down::@13 [phi:play_move_down::@18->play_move_down::@13] + //SEG611 [270] 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 - //SEG542 play_move_down::@13 + //SEG612 play_move_down::@13 b13: - //SEG543 [243] call play_lock_current + //SEG613 [271] call play_lock_current jsr play_lock_current - //SEG544 [244] phi from play_move_down::@13 to play_move_down::@19 [phi:play_move_down::@13->play_move_down::@19] + //SEG614 [272] 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 - //SEG545 play_move_down::@19 + //SEG615 play_move_down::@19 b19: - //SEG546 [245] call play_remove_lines - //SEG547 [315] phi from play_move_down::@19 to play_remove_lines [phi:play_move_down::@19->play_remove_lines] + //SEG616 [273] call play_remove_lines + //SEG617 [344] 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 - //SEG548 [246] (byte) play_remove_lines::return#0 ← (byte) play_remove_lines::removed#7 -- vbuz1=vbuz2 + //SEG618 [274] (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 - //SEG549 play_move_down::@20 + //SEG619 play_move_down::@20 b20: - //SEG550 [247] (byte) play_move_down::removed#0 ← (byte) play_remove_lines::return#0 -- vbuz1=vbuz2 + //SEG620 [275] (byte) play_move_down::removed#0 ← (byte) play_remove_lines::return#0 -- vbuz1=vbuz2 lda play_remove_lines.return sta removed - //SEG551 [248] (byte) play_update_score::removed#0 ← (byte) play_move_down::removed#0 -- vbuz1=vbuz2 + //SEG621 [276] (byte) play_update_score::removed#0 ← (byte) play_move_down::removed#0 -- vbuz1=vbuz2 lda removed sta play_update_score.removed - //SEG552 [249] call play_update_score + //SEG622 [277] call play_update_score jsr play_update_score - //SEG553 [250] phi from play_move_down::@20 to play_move_down::@21 [phi:play_move_down::@20->play_move_down::@21] + //SEG623 [278] 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 - //SEG554 play_move_down::@21 + //SEG624 play_move_down::@21 b21: - //SEG555 [251] call play_spawn_current - //SEG556 [257] phi from play_move_down::@21 to play_spawn_current [phi:play_move_down::@21->play_spawn_current] + //SEG625 [279] call play_spawn_current + //SEG626 [285] phi from play_move_down::@21 to play_spawn_current [phi:play_move_down::@21->play_spawn_current] play_spawn_current_from_b21: - //SEG557 [257] phi (byte) game_over#70 = (byte) game_over#19 [phi:play_move_down::@21->play_spawn_current#0] -- register_copy + //SEG627 [285] phi (byte) game_over#65 = (byte) game_over#10 [phi:play_move_down::@21->play_spawn_current#0] -- register_copy + //SEG628 [285] phi (byte) next_piece_idx#17 = (byte) next_piece_idx#10 [phi:play_move_down::@21->play_spawn_current#1] -- register_copy jsr play_spawn_current - //SEG558 [252] (byte*~) current_piece#95 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) -- pbuz1=pptc1_derefidx_vbuz2 - ldy play_spawn_current._3 + //SEG629 [280] (byte*~) current_piece#103 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$0) -- pbuz1=pptc1_derefidx_vbuz2 + ldy play_spawn_current._0 lda PIECES,y sta current_piece lda PIECES+1,y sta current_piece+1 - //SEG559 [253] phi from play_move_down::@21 to play_move_down::@7 [phi:play_move_down::@21->play_move_down::@7] + //SEG630 [281] phi from play_move_down::@21 to play_move_down::@7 [phi:play_move_down::@21->play_move_down::@7] b7_from_b21: - //SEG560 [253] phi (byte) game_over#26 = (byte) game_over#15 [phi:play_move_down::@21->play_move_down::@7#0] -- register_copy - //SEG561 [253] phi (byte) current_xpos#41 = (byte) current_xpos#28 [phi:play_move_down::@21->play_move_down::@7#1] -- register_copy - //SEG562 [253] phi (byte*) current_piece_gfx#33 = (byte*) current_piece_gfx#21 [phi:play_move_down::@21->play_move_down::@7#2] -- register_copy - //SEG563 [253] phi (byte) current_orientation#36 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@21->play_move_down::@7#3] -- vbuz1=vbuc1 + //SEG631 [281] phi (byte) next_piece_idx#31 = (byte) play_spawn_current::piece_idx#2 [phi:play_move_down::@21->play_move_down::@7#0] -- register_copy + //SEG632 [281] phi (byte) game_over#28 = (byte) game_over#52 [phi:play_move_down::@21->play_move_down::@7#1] -- register_copy + //SEG633 [281] phi (byte) current_xpos#43 = (byte) current_xpos#102 [phi:play_move_down::@21->play_move_down::@7#2] -- register_copy + //SEG634 [281] phi (byte*) current_piece_gfx#35 = (byte*) current_piece_gfx#7 [phi:play_move_down::@21->play_move_down::@7#3] -- register_copy + //SEG635 [281] phi (byte) current_orientation#38 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@21->play_move_down::@7#4] -- vbuz1=vbuc1 lda #0 sta current_orientation - //SEG564 [253] phi (byte) current_piece_char#27 = (byte) current_piece_char#16 [phi:play_move_down::@21->play_move_down::@7#4] -- register_copy - //SEG565 [253] phi (byte*) current_piece#27 = (byte*~) current_piece#95 [phi:play_move_down::@21->play_move_down::@7#5] -- register_copy - //SEG566 [253] phi (byte) level_bcd#32 = (byte) level_bcd#19 [phi:play_move_down::@21->play_move_down::@7#6] -- register_copy - //SEG567 [253] phi (byte) current_movedown_slow#38 = (byte) current_movedown_slow#23 [phi:play_move_down::@21->play_move_down::@7#7] -- register_copy - //SEG568 [253] phi (byte) level#31 = (byte) level#18 [phi:play_move_down::@21->play_move_down::@7#8] -- register_copy - //SEG569 [253] phi (dword) score_bcd#27 = (dword) score_bcd#16 [phi:play_move_down::@21->play_move_down::@7#9] -- register_copy - //SEG570 [253] phi (word) lines_bcd#27 = (word) lines_bcd#17 [phi:play_move_down::@21->play_move_down::@7#10] -- register_copy - //SEG571 [253] phi (byte) current_ypos#36 = (byte) current_ypos#22 [phi:play_move_down::@21->play_move_down::@7#11] -- register_copy + //SEG636 [281] phi (byte) current_piece_char#29 = (byte) current_piece_char#4 [phi:play_move_down::@21->play_move_down::@7#5] -- register_copy + //SEG637 [281] phi (byte*) current_piece#29 = (byte*~) current_piece#103 [phi:play_move_down::@21->play_move_down::@7#6] -- register_copy + //SEG638 [281] phi (byte) level_bcd#32 = (byte) level_bcd#19 [phi:play_move_down::@21->play_move_down::@7#7] -- register_copy + //SEG639 [281] phi (byte) current_movedown_slow#38 = (byte) current_movedown_slow#23 [phi:play_move_down::@21->play_move_down::@7#8] -- register_copy + //SEG640 [281] phi (byte) level#31 = (byte) level#18 [phi:play_move_down::@21->play_move_down::@7#9] -- register_copy + //SEG641 [281] phi (dword) score_bcd#27 = (dword) score_bcd#16 [phi:play_move_down::@21->play_move_down::@7#10] -- register_copy + //SEG642 [281] phi (word) lines_bcd#27 = (word) lines_bcd#17 [phi:play_move_down::@21->play_move_down::@7#11] -- register_copy + //SEG643 [281] phi (byte) current_ypos#38 = (byte) current_ypos#5 [phi:play_move_down::@21->play_move_down::@7#12] -- register_copy jmp b7 - //SEG572 play_move_down::@7 + //SEG644 play_move_down::@7 b7: - //SEG573 [254] phi from play_move_down::@7 to play_move_down::@return [phi:play_move_down::@7->play_move_down::@return] + //SEG645 [282] phi from play_move_down::@7 to play_move_down::@return [phi:play_move_down::@7->play_move_down::@return] breturn_from_b7: - //SEG574 [254] phi (byte) game_over#14 = (byte) game_over#26 [phi:play_move_down::@7->play_move_down::@return#0] -- register_copy - //SEG575 [254] phi (byte) current_xpos#20 = (byte) current_xpos#41 [phi:play_move_down::@7->play_move_down::@return#1] -- register_copy - //SEG576 [254] phi (byte*) current_piece_gfx#18 = (byte*) current_piece_gfx#33 [phi:play_move_down::@7->play_move_down::@return#2] -- register_copy - //SEG577 [254] phi (byte) current_orientation#19 = (byte) current_orientation#36 [phi:play_move_down::@7->play_move_down::@return#3] -- register_copy - //SEG578 [254] phi (byte) current_piece_char#14 = (byte) current_piece_char#27 [phi:play_move_down::@7->play_move_down::@return#4] -- register_copy - //SEG579 [254] phi (byte*) current_piece#14 = (byte*) current_piece#27 [phi:play_move_down::@7->play_move_down::@return#5] -- register_copy - //SEG580 [254] phi (byte) level_bcd#17 = (byte) level_bcd#32 [phi:play_move_down::@7->play_move_down::@return#6] -- register_copy - //SEG581 [254] phi (byte) current_movedown_slow#21 = (byte) current_movedown_slow#38 [phi:play_move_down::@7->play_move_down::@return#7] -- register_copy - //SEG582 [254] phi (byte) level#16 = (byte) level#31 [phi:play_move_down::@7->play_move_down::@return#8] -- register_copy - //SEG583 [254] phi (dword) score_bcd#14 = (dword) score_bcd#27 [phi:play_move_down::@7->play_move_down::@return#9] -- register_copy - //SEG584 [254] phi (word) lines_bcd#15 = (word) lines_bcd#27 [phi:play_move_down::@7->play_move_down::@return#10] -- register_copy - //SEG585 [254] phi (byte) current_ypos#17 = (byte) current_ypos#36 [phi:play_move_down::@7->play_move_down::@return#11] -- register_copy - //SEG586 [254] phi (byte) current_movedown_counter#14 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@7->play_move_down::@return#12] -- vbuz1=vbuc1 + //SEG646 [282] phi (byte) next_piece_idx#16 = (byte) next_piece_idx#31 [phi:play_move_down::@7->play_move_down::@return#0] -- register_copy + //SEG647 [282] phi (byte) game_over#15 = (byte) game_over#28 [phi:play_move_down::@7->play_move_down::@return#1] -- register_copy + //SEG648 [282] phi (byte) current_xpos#21 = (byte) current_xpos#43 [phi:play_move_down::@7->play_move_down::@return#2] -- register_copy + //SEG649 [282] phi (byte*) current_piece_gfx#19 = (byte*) current_piece_gfx#35 [phi:play_move_down::@7->play_move_down::@return#3] -- register_copy + //SEG650 [282] phi (byte) current_orientation#20 = (byte) current_orientation#38 [phi:play_move_down::@7->play_move_down::@return#4] -- register_copy + //SEG651 [282] phi (byte) current_piece_char#15 = (byte) current_piece_char#29 [phi:play_move_down::@7->play_move_down::@return#5] -- register_copy + //SEG652 [282] phi (byte*) current_piece#15 = (byte*) current_piece#29 [phi:play_move_down::@7->play_move_down::@return#6] -- register_copy + //SEG653 [282] phi (byte) level_bcd#17 = (byte) level_bcd#32 [phi:play_move_down::@7->play_move_down::@return#7] -- register_copy + //SEG654 [282] phi (byte) current_movedown_slow#21 = (byte) current_movedown_slow#38 [phi:play_move_down::@7->play_move_down::@return#8] -- register_copy + //SEG655 [282] phi (byte) level#16 = (byte) level#31 [phi:play_move_down::@7->play_move_down::@return#9] -- register_copy + //SEG656 [282] phi (dword) score_bcd#14 = (dword) score_bcd#27 [phi:play_move_down::@7->play_move_down::@return#10] -- register_copy + //SEG657 [282] phi (word) lines_bcd#15 = (word) lines_bcd#27 [phi:play_move_down::@7->play_move_down::@return#11] -- register_copy + //SEG658 [282] phi (byte) current_ypos#18 = (byte) current_ypos#38 [phi:play_move_down::@7->play_move_down::@return#12] -- register_copy + //SEG659 [282] phi (byte) current_movedown_counter#14 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@7->play_move_down::@return#13] -- vbuz1=vbuc1 lda #0 sta current_movedown_counter - //SEG587 [254] phi (byte) play_move_down::return#3 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_down::@7->play_move_down::@return#13] -- vbuz1=vbuc1 + //SEG660 [282] phi (byte) play_move_down::return#3 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_down::@7->play_move_down::@return#14] -- vbuz1=vbuc1 lda #1 sta return_3 jmp breturn - //SEG588 [254] phi from play_move_down::@4 to play_move_down::@return [phi:play_move_down::@4->play_move_down::@return] + //SEG661 [282] phi from play_move_down::@4 to play_move_down::@return [phi:play_move_down::@4->play_move_down::@return] breturn_from_b4: - //SEG589 [254] phi (byte) game_over#14 = (byte) game_over#19 [phi:play_move_down::@4->play_move_down::@return#0] -- register_copy - //SEG590 [254] phi (byte) current_xpos#20 = (byte) current_xpos#113 [phi:play_move_down::@4->play_move_down::@return#1] -- register_copy - //SEG591 [254] phi (byte*) current_piece_gfx#18 = (byte*) current_piece_gfx#103 [phi:play_move_down::@4->play_move_down::@return#2] -- register_copy - //SEG592 [254] phi (byte) current_orientation#19 = (byte) current_orientation#12 [phi:play_move_down::@4->play_move_down::@return#3] -- register_copy - //SEG593 [254] phi (byte) current_piece_char#14 = (byte) current_piece_char#19 [phi:play_move_down::@4->play_move_down::@return#4] -- register_copy - //SEG594 [254] phi (byte*) current_piece#14 = (byte*) current_piece#20 [phi:play_move_down::@4->play_move_down::@return#5] -- register_copy - //SEG595 [254] phi (byte) level_bcd#17 = (byte) level_bcd#11 [phi:play_move_down::@4->play_move_down::@return#6] -- register_copy - //SEG596 [254] phi (byte) current_movedown_slow#21 = (byte) current_movedown_slow#14 [phi:play_move_down::@4->play_move_down::@return#7] -- register_copy - //SEG597 [254] phi (byte) level#16 = (byte) level#10 [phi:play_move_down::@4->play_move_down::@return#8] -- register_copy - //SEG598 [254] phi (dword) score_bcd#14 = (dword) score_bcd#18 [phi:play_move_down::@4->play_move_down::@return#9] -- register_copy - //SEG599 [254] phi (word) lines_bcd#15 = (word) lines_bcd#19 [phi:play_move_down::@4->play_move_down::@return#10] -- register_copy - //SEG600 [254] phi (byte) current_ypos#17 = (byte) current_ypos#25 [phi:play_move_down::@4->play_move_down::@return#11] -- register_copy - //SEG601 [254] phi (byte) current_movedown_counter#14 = (byte) current_movedown_counter#12 [phi:play_move_down::@4->play_move_down::@return#12] -- register_copy - //SEG602 [254] phi (byte) play_move_down::return#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@4->play_move_down::@return#13] -- vbuz1=vbuc1 + //SEG662 [282] phi (byte) next_piece_idx#16 = (byte) next_piece_idx#10 [phi:play_move_down::@4->play_move_down::@return#0] -- register_copy + //SEG663 [282] phi (byte) game_over#15 = (byte) game_over#10 [phi:play_move_down::@4->play_move_down::@return#1] -- register_copy + //SEG664 [282] phi (byte) current_xpos#21 = (byte) current_xpos#121 [phi:play_move_down::@4->play_move_down::@return#2] -- register_copy + //SEG665 [282] phi (byte*) current_piece_gfx#19 = (byte*) current_piece_gfx#111 [phi:play_move_down::@4->play_move_down::@return#3] -- register_copy + //SEG666 [282] phi (byte) current_orientation#20 = (byte) current_orientation#13 [phi:play_move_down::@4->play_move_down::@return#4] -- register_copy + //SEG667 [282] phi (byte) current_piece_char#15 = (byte) current_piece_char#21 [phi:play_move_down::@4->play_move_down::@return#5] -- register_copy + //SEG668 [282] phi (byte*) current_piece#15 = (byte*) current_piece#10 [phi:play_move_down::@4->play_move_down::@return#6] -- register_copy + //SEG669 [282] phi (byte) level_bcd#17 = (byte) level_bcd#11 [phi:play_move_down::@4->play_move_down::@return#7] -- register_copy + //SEG670 [282] phi (byte) current_movedown_slow#21 = (byte) current_movedown_slow#14 [phi:play_move_down::@4->play_move_down::@return#8] -- register_copy + //SEG671 [282] phi (byte) level#16 = (byte) level#10 [phi:play_move_down::@4->play_move_down::@return#9] -- register_copy + //SEG672 [282] phi (dword) score_bcd#14 = (dword) score_bcd#18 [phi:play_move_down::@4->play_move_down::@return#10] -- register_copy + //SEG673 [282] phi (word) lines_bcd#15 = (word) lines_bcd#19 [phi:play_move_down::@4->play_move_down::@return#11] -- register_copy + //SEG674 [282] phi (byte) current_ypos#18 = (byte) current_ypos#10 [phi:play_move_down::@4->play_move_down::@return#12] -- register_copy + //SEG675 [282] phi (byte) current_movedown_counter#14 = (byte) current_movedown_counter#12 [phi:play_move_down::@4->play_move_down::@return#13] -- register_copy + //SEG676 [282] phi (byte) play_move_down::return#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@4->play_move_down::@return#14] -- vbuz1=vbuc1 lda #0 sta return_3 jmp breturn - //SEG603 play_move_down::@return + //SEG677 play_move_down::@return breturn: - //SEG604 [255] return + //SEG678 [283] return rts - //SEG605 play_move_down::@6 + //SEG679 play_move_down::@6 b6: - //SEG606 [256] (byte) current_ypos#2 ← ++ (byte) current_ypos#25 -- vbuz1=_inc_vbuz1 + //SEG680 [284] (byte) current_ypos#2 ← ++ (byte) current_ypos#10 -- vbuz1=_inc_vbuz1 inc current_ypos - //SEG607 [253] phi from play_move_down::@6 to play_move_down::@7 [phi:play_move_down::@6->play_move_down::@7] + //SEG681 [281] phi from play_move_down::@6 to play_move_down::@7 [phi:play_move_down::@6->play_move_down::@7] b7_from_b6: - //SEG608 [253] phi (byte) game_over#26 = (byte) game_over#19 [phi:play_move_down::@6->play_move_down::@7#0] -- register_copy - //SEG609 [253] phi (byte) current_xpos#41 = (byte) current_xpos#113 [phi:play_move_down::@6->play_move_down::@7#1] -- register_copy - //SEG610 [253] phi (byte*) current_piece_gfx#33 = (byte*) current_piece_gfx#103 [phi:play_move_down::@6->play_move_down::@7#2] -- register_copy - //SEG611 [253] phi (byte) current_orientation#36 = (byte) current_orientation#12 [phi:play_move_down::@6->play_move_down::@7#3] -- register_copy - //SEG612 [253] phi (byte) current_piece_char#27 = (byte) current_piece_char#19 [phi:play_move_down::@6->play_move_down::@7#4] -- register_copy - //SEG613 [253] phi (byte*) current_piece#27 = (byte*) current_piece#20 [phi:play_move_down::@6->play_move_down::@7#5] -- register_copy - //SEG614 [253] phi (byte) level_bcd#32 = (byte) level_bcd#11 [phi:play_move_down::@6->play_move_down::@7#6] -- register_copy - //SEG615 [253] phi (byte) current_movedown_slow#38 = (byte) current_movedown_slow#14 [phi:play_move_down::@6->play_move_down::@7#7] -- register_copy - //SEG616 [253] phi (byte) level#31 = (byte) level#10 [phi:play_move_down::@6->play_move_down::@7#8] -- register_copy - //SEG617 [253] phi (dword) score_bcd#27 = (dword) score_bcd#18 [phi:play_move_down::@6->play_move_down::@7#9] -- register_copy - //SEG618 [253] phi (word) lines_bcd#27 = (word) lines_bcd#19 [phi:play_move_down::@6->play_move_down::@7#10] -- register_copy - //SEG619 [253] phi (byte) current_ypos#36 = (byte) current_ypos#2 [phi:play_move_down::@6->play_move_down::@7#11] -- register_copy + //SEG682 [281] phi (byte) next_piece_idx#31 = (byte) next_piece_idx#10 [phi:play_move_down::@6->play_move_down::@7#0] -- register_copy + //SEG683 [281] phi (byte) game_over#28 = (byte) game_over#10 [phi:play_move_down::@6->play_move_down::@7#1] -- register_copy + //SEG684 [281] phi (byte) current_xpos#43 = (byte) current_xpos#121 [phi:play_move_down::@6->play_move_down::@7#2] -- register_copy + //SEG685 [281] phi (byte*) current_piece_gfx#35 = (byte*) current_piece_gfx#111 [phi:play_move_down::@6->play_move_down::@7#3] -- register_copy + //SEG686 [281] phi (byte) current_orientation#38 = (byte) current_orientation#13 [phi:play_move_down::@6->play_move_down::@7#4] -- register_copy + //SEG687 [281] phi (byte) current_piece_char#29 = (byte) current_piece_char#21 [phi:play_move_down::@6->play_move_down::@7#5] -- register_copy + //SEG688 [281] phi (byte*) current_piece#29 = (byte*) current_piece#10 [phi:play_move_down::@6->play_move_down::@7#6] -- register_copy + //SEG689 [281] phi (byte) level_bcd#32 = (byte) level_bcd#11 [phi:play_move_down::@6->play_move_down::@7#7] -- register_copy + //SEG690 [281] phi (byte) current_movedown_slow#38 = (byte) current_movedown_slow#14 [phi:play_move_down::@6->play_move_down::@7#8] -- register_copy + //SEG691 [281] phi (byte) level#31 = (byte) level#10 [phi:play_move_down::@6->play_move_down::@7#9] -- register_copy + //SEG692 [281] phi (dword) score_bcd#27 = (dword) score_bcd#18 [phi:play_move_down::@6->play_move_down::@7#10] -- register_copy + //SEG693 [281] phi (word) lines_bcd#27 = (word) lines_bcd#19 [phi:play_move_down::@6->play_move_down::@7#11] -- register_copy + //SEG694 [281] phi (byte) current_ypos#38 = (byte) current_ypos#2 [phi:play_move_down::@6->play_move_down::@7#12] -- register_copy jmp b7 } -//SEG620 play_spawn_current +//SEG695 play_spawn_current play_spawn_current: { - .label _1 = $a8 - .label _3 = $a4 - .label _5 = $a6 - .label piece_idx = $43 - //SEG621 [258] phi from play_spawn_current to play_spawn_current::@1 [phi:play_spawn_current->play_spawn_current::@1] - b1_from_play_spawn_current: - //SEG622 [258] phi (byte) play_spawn_current::piece_idx#2 = (byte/signed byte/word/signed word/dword/signed dword) 7 [phi:play_spawn_current->play_spawn_current::@1#0] -- vbuz1=vbuc1 - lda #7 - sta piece_idx - jmp b1 - //SEG623 play_spawn_current::@1 - b1: - //SEG624 [259] if((byte) play_spawn_current::piece_idx#2==(byte/signed byte/word/signed word/dword/signed dword) 7) goto play_spawn_current::@2 -- vbuz1_eq_vbuc1_then_la1 - lda piece_idx - cmp #7 - beq b2_from_b1 - jmp b3 - //SEG625 play_spawn_current::@3 - b3: - //SEG626 [260] (byte~) play_spawn_current::$3 ← (byte) play_spawn_current::piece_idx#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 - lda piece_idx + .label _0 = $b0 + .label _2 = $b2 + .label _6 = $b4 + .label current_piece_idx = $af + .label piece_idx = $4a + //SEG696 [286] (byte) play_spawn_current::current_piece_idx#0 ← (byte) next_piece_idx#17 -- vbuz1=vbuz2 + lda next_piece_idx + sta current_piece_idx + //SEG697 [287] (byte~) play_spawn_current::$0 ← (byte) play_spawn_current::current_piece_idx#0 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 + lda current_piece_idx asl - sta _3 - //SEG627 [261] (byte) current_piece_char#16 ← *((const byte[]) PIECES_CHARS#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuz2 - ldy piece_idx + sta _0 + //SEG698 [288] (byte) current_piece_char#4 ← *((const byte[]) PIECES_CHARS#0 + (byte) play_spawn_current::current_piece_idx#0) -- vbuz1=pbuc1_derefidx_vbuz2 + ldy current_piece_idx lda PIECES_CHARS,y sta current_piece_char - //SEG628 [262] (byte*) current_piece_gfx#21 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) + (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuz1=pptc1_derefidx_vbuz2_plus_0 - ldy _3 + //SEG699 [289] (byte*) current_piece_gfx#7 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$0) + (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuz1=pptc1_derefidx_vbuz2_plus_0 + ldy _0 lda PIECES,y sta current_piece_gfx lda PIECES+1,y sta current_piece_gfx+1 - //SEG629 [263] (byte) current_xpos#28 ← *((const byte[]) PIECES_START_X#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuz2 - ldy piece_idx + //SEG700 [290] (byte) current_xpos#102 ← *((const byte[]) PIECES_START_X#0 + (byte) play_spawn_current::current_piece_idx#0) -- vbuz1=pbuc1_derefidx_vbuz2 + ldy current_piece_idx lda PIECES_START_X,y sta current_xpos - //SEG630 [264] (byte) current_ypos#22 ← *((const byte[]) PIECES_START_Y#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuz2 - ldy piece_idx + //SEG701 [291] (byte) current_ypos#5 ← *((const byte[]) PIECES_START_Y#0 + (byte) play_spawn_current::current_piece_idx#0) -- vbuz1=pbuc1_derefidx_vbuz2 + ldy current_piece_idx lda PIECES_START_Y,y sta current_ypos - //SEG631 [265] (byte) play_collision::xpos#4 ← (byte) current_xpos#28 -- vbuz1=vbuz2 + //SEG702 [292] (byte) play_collision::xpos#4 ← (byte) current_xpos#102 -- vbuz1=vbuz2 lda current_xpos sta play_collision.xpos - //SEG632 [266] (byte) play_collision::ypos#4 ← (byte) current_ypos#22 -- vbuz1=vbuz2 + //SEG703 [293] (byte) play_collision::ypos#4 ← (byte) current_ypos#5 -- vbuz1=vbuz2 lda current_ypos sta play_collision.ypos - //SEG633 [267] (byte*~) current_piece#94 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) -- pbuz1=pptc1_derefidx_vbuz2 - ldy _3 + //SEG704 [294] (byte*~) current_piece#102 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$0) -- pbuz1=pptc1_derefidx_vbuz2 + ldy _0 lda PIECES,y - sta current_piece_94 + sta current_piece_102 lda PIECES+1,y - sta current_piece_94+1 - //SEG634 [268] call play_collision - //SEG635 [173] phi from play_spawn_current::@3 to play_collision [phi:play_spawn_current::@3->play_collision] - play_collision_from_b3: - //SEG636 [173] phi (byte) play_collision::xpos#6 = (byte) play_collision::xpos#4 [phi:play_spawn_current::@3->play_collision#0] -- register_copy - //SEG637 [173] phi (byte) play_collision::ypos#5 = (byte) play_collision::ypos#4 [phi:play_spawn_current::@3->play_collision#1] -- register_copy - //SEG638 [173] phi (byte) play_collision::orientation#5 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_spawn_current::@3->play_collision#2] -- vbuz1=vbuc1 + sta current_piece_102+1 + //SEG705 [295] call play_collision + //SEG706 [201] phi from play_spawn_current to play_collision [phi:play_spawn_current->play_collision] + play_collision_from_play_spawn_current: + //SEG707 [201] phi (byte) play_collision::xpos#6 = (byte) play_collision::xpos#4 [phi:play_spawn_current->play_collision#0] -- register_copy + //SEG708 [201] phi (byte) play_collision::ypos#5 = (byte) play_collision::ypos#4 [phi:play_spawn_current->play_collision#1] -- register_copy + //SEG709 [201] phi (byte) play_collision::orientation#5 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_spawn_current->play_collision#2] -- vbuz1=vbuc1 lda #0 sta play_collision.orientation - //SEG639 [173] phi (byte*) current_piece#16 = (byte*~) current_piece#94 [phi:play_spawn_current::@3->play_collision#3] -- register_copy + //SEG710 [201] phi (byte*) current_piece#17 = (byte*~) current_piece#102 [phi:play_spawn_current->play_collision#3] -- register_copy jsr play_collision - //SEG640 [269] (byte) play_collision::return#10 ← (byte) play_collision::return#15 -- vbuz1=vbuz2 + //SEG711 [296] (byte) play_collision::return#10 ← (byte) play_collision::return#15 -- vbuz1=vbuz2 lda play_collision.return_15 sta play_collision.return_10 - jmp b10 - //SEG641 play_spawn_current::@10 - b10: - //SEG642 [270] (byte~) play_spawn_current::$5 ← (byte) play_collision::return#10 -- vbuz1=vbuz2 + jmp b9 + //SEG712 play_spawn_current::@9 + b9: + //SEG713 [297] (byte~) play_spawn_current::$2 ← (byte) play_collision::return#10 -- vbuz1=vbuz2 lda play_collision.return_10 - sta _5 - //SEG643 [271] if((byte~) play_spawn_current::$5!=(const byte) COLLISION_PLAYFIELD#0) goto play_spawn_current::@11 -- vbuz1_neq_vbuc1_then_la1 - lda _5 + sta _2 + //SEG714 [298] if((byte~) play_spawn_current::$2!=(const byte) COLLISION_PLAYFIELD#0) goto play_spawn_current::@11 -- vbuz1_neq_vbuc1_then_la1 + lda _2 cmp #COLLISION_PLAYFIELD - bne b11_from_b10 - //SEG644 [272] phi from play_spawn_current::@10 to play_spawn_current::@return [phi:play_spawn_current::@10->play_spawn_current::@return] - breturn_from_b10: - //SEG645 [272] phi (byte) game_over#15 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_spawn_current::@10->play_spawn_current::@return#0] -- vbuz1=vbuc1 + bne b11_from_b9 + //SEG715 [299] phi from play_spawn_current::@9 to play_spawn_current::@1 [phi:play_spawn_current::@9->play_spawn_current::@1] + b1_from_b9: + //SEG716 [299] phi (byte) game_over#52 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_spawn_current::@9->play_spawn_current::@1#0] -- vbuz1=vbuc1 lda #1 sta game_over - jmp breturn - //SEG646 play_spawn_current::@return - breturn: - //SEG647 [273] return - rts - //SEG648 [274] phi from play_spawn_current::@10 to play_spawn_current::@11 [phi:play_spawn_current::@10->play_spawn_current::@11] - b11_from_b10: - jmp b11 - //SEG649 play_spawn_current::@11 - b11: - //SEG650 [272] phi from play_spawn_current::@11 to play_spawn_current::@return [phi:play_spawn_current::@11->play_spawn_current::@return] - breturn_from_b11: - //SEG651 [272] phi (byte) game_over#15 = (byte) game_over#70 [phi:play_spawn_current::@11->play_spawn_current::@return#0] -- register_copy - jmp breturn - //SEG652 [275] phi from play_spawn_current::@1 to play_spawn_current::@2 [phi:play_spawn_current::@1->play_spawn_current::@2] + jmp b1 + //SEG717 play_spawn_current::@1 + b1: + //SEG718 [300] phi from play_spawn_current::@1 to play_spawn_current::@2 [phi:play_spawn_current::@1->play_spawn_current::@2] b2_from_b1: + //SEG719 [300] phi (byte) play_spawn_current::piece_idx#2 = (byte/signed byte/word/signed word/dword/signed dword) 7 [phi:play_spawn_current::@1->play_spawn_current::@2#0] -- vbuz1=vbuc1 + lda #7 + sta piece_idx jmp b2 - //SEG653 play_spawn_current::@2 + //SEG720 play_spawn_current::@2 b2: - //SEG654 [276] call sid_rnd + //SEG721 [301] if((byte) play_spawn_current::piece_idx#2==(byte/signed byte/word/signed word/dword/signed dword) 7) goto play_spawn_current::@3 -- vbuz1_eq_vbuc1_then_la1 + lda piece_idx + cmp #7 + beq b3_from_b2 + jmp breturn + //SEG722 play_spawn_current::@return + breturn: + //SEG723 [302] return + rts + //SEG724 [303] phi from play_spawn_current::@2 to play_spawn_current::@3 [phi:play_spawn_current::@2->play_spawn_current::@3] + b3_from_b2: + jmp b3 + //SEG725 play_spawn_current::@3 + b3: + //SEG726 [304] call sid_rnd jsr sid_rnd - //SEG655 [277] (byte) sid_rnd::return#2 ← (byte) sid_rnd::return#0 -- vbuz1=vbuz2 + //SEG727 [305] (byte) sid_rnd::return#2 ← (byte) sid_rnd::return#0 -- vbuz1=vbuz2 lda sid_rnd.return sta sid_rnd.return_2 - jmp b9 - //SEG656 play_spawn_current::@9 - b9: - //SEG657 [278] (byte~) play_spawn_current::$1 ← (byte) sid_rnd::return#2 -- vbuz1=vbuz2 + jmp b10 + //SEG728 play_spawn_current::@10 + b10: + //SEG729 [306] (byte~) play_spawn_current::$6 ← (byte) sid_rnd::return#2 -- vbuz1=vbuz2 lda sid_rnd.return_2 - sta _1 - //SEG658 [279] (byte) play_spawn_current::piece_idx#1 ← (byte~) play_spawn_current::$1 & (byte/signed byte/word/signed word/dword/signed dword) 7 -- vbuz1=vbuz2_band_vbuc1 + sta _6 + //SEG730 [307] (byte) play_spawn_current::piece_idx#1 ← (byte~) play_spawn_current::$6 & (byte/signed byte/word/signed word/dword/signed dword) 7 -- vbuz1=vbuz2_band_vbuc1 lda #7 - and _1 + and _6 sta piece_idx - //SEG659 [258] phi from play_spawn_current::@9 to play_spawn_current::@1 [phi:play_spawn_current::@9->play_spawn_current::@1] - b1_from_b9: - //SEG660 [258] phi (byte) play_spawn_current::piece_idx#2 = (byte) play_spawn_current::piece_idx#1 [phi:play_spawn_current::@9->play_spawn_current::@1#0] -- register_copy + //SEG731 [300] phi from play_spawn_current::@10 to play_spawn_current::@2 [phi:play_spawn_current::@10->play_spawn_current::@2] + b2_from_b10: + //SEG732 [300] phi (byte) play_spawn_current::piece_idx#2 = (byte) play_spawn_current::piece_idx#1 [phi:play_spawn_current::@10->play_spawn_current::@2#0] -- register_copy + jmp b2 + //SEG733 [308] phi from play_spawn_current::@9 to play_spawn_current::@11 [phi:play_spawn_current::@9->play_spawn_current::@11] + b11_from_b9: + jmp b11 + //SEG734 play_spawn_current::@11 + b11: + //SEG735 [299] phi from play_spawn_current::@11 to play_spawn_current::@1 [phi:play_spawn_current::@11->play_spawn_current::@1] + b1_from_b11: + //SEG736 [299] phi (byte) game_over#52 = (byte) game_over#65 [phi:play_spawn_current::@11->play_spawn_current::@1#0] -- register_copy jmp b1 } -//SEG661 sid_rnd +//SEG737 sid_rnd sid_rnd: { - .label return = $a9 - .label return_2 = $a7 - //SEG662 [280] (byte) sid_rnd::return#0 ← *((const byte*) SID_VOICE3_OSC#0) -- vbuz1=_deref_pbuc1 + .label return = $b5 + .label return_2 = $b3 + //SEG738 [309] (byte) sid_rnd::return#0 ← *((const byte*) SID_VOICE3_OSC#0) -- vbuz1=_deref_pbuc1 lda SID_VOICE3_OSC sta return jmp breturn - //SEG663 sid_rnd::@return + //SEG739 sid_rnd::@return breturn: - //SEG664 [281] return + //SEG740 [310] return rts } -//SEG665 play_update_score +//SEG741 play_update_score play_update_score: { - .label _2 = $aa - .label _4 = $ac - .label _5 = $b1 - .label removed = $a3 - .label lines_before = $ab - .label add_bcd = $ad - .label lines_after = $b2 - //SEG666 [282] if((byte) play_update_score::removed#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_update_score::@return -- vbuz1_eq_0_then_la1 + .label _2 = $b6 + .label _4 = $b8 + .label _5 = $bd + .label removed = $ae + .label lines_before = $b7 + .label add_bcd = $b9 + .label lines_after = $be + //SEG742 [311] if((byte) play_update_score::removed#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_update_score::@return -- vbuz1_eq_0_then_la1 lda removed cmp #0 beq breturn_from_play_update_score jmp b3 - //SEG667 play_update_score::@3 + //SEG743 play_update_score::@3 b3: - //SEG668 [283] (byte~) play_update_score::$2 ← < (word) lines_bcd#19 -- vbuz1=_lo_vwuz2 + //SEG744 [312] (byte~) play_update_score::$2 ← < (word) lines_bcd#19 -- vbuz1=_lo_vwuz2 lda lines_bcd sta _2 - //SEG669 [284] (byte) play_update_score::lines_before#0 ← (byte~) play_update_score::$2 & (byte/word/signed word/dword/signed dword) 240 -- vbuz1=vbuz2_band_vbuc1 + //SEG745 [313] (byte) play_update_score::lines_before#0 ← (byte~) play_update_score::$2 & (byte/word/signed word/dword/signed dword) 240 -- vbuz1=vbuz2_band_vbuc1 lda #$f0 and _2 sta lines_before - //SEG670 [285] (byte~) play_update_score::$4 ← (byte) play_update_score::removed#0 << (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz2_rol_2 + //SEG746 [314] (byte~) play_update_score::$4 ← (byte) play_update_score::removed#0 << (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz2_rol_2 lda removed asl asl sta _4 - //SEG671 [286] (dword) play_update_score::add_bcd#0 ← *((const dword[5]) score_add_bcd#0 + (byte~) play_update_score::$4) -- vduz1=pduc1_derefidx_vbuz2 + //SEG747 [315] (dword) play_update_score::add_bcd#0 ← *((const dword[5]) score_add_bcd#0 + (byte~) play_update_score::$4) -- vduz1=pduc1_derefidx_vbuz2 ldy _4 lda score_add_bcd,y sta add_bcd @@ -13929,9 +14928,9 @@ play_update_score: { sta add_bcd+2 lda score_add_bcd+3,y sta add_bcd+3 - //SEG672 asm { sed } + //SEG748 asm { sed } sed - //SEG673 [288] (word) lines_bcd#30 ← (word) lines_bcd#19 + (byte) play_update_score::removed#0 -- vwuz1=vwuz1_plus_vbuz2 + //SEG749 [317] (word) lines_bcd#30 ← (word) lines_bcd#19 + (byte) play_update_score::removed#0 -- vwuz1=vwuz1_plus_vbuz2 lda removed clc adc lines_bcd @@ -13939,7 +14938,7 @@ play_update_score: { lda #0 adc lines_bcd+1 sta lines_bcd+1 - //SEG674 [289] (dword) score_bcd#30 ← (dword) score_bcd#18 + (dword) play_update_score::add_bcd#0 -- vduz1=vduz1_plus_vduz2 + //SEG750 [318] (dword) score_bcd#30 ← (dword) score_bcd#18 + (dword) play_update_score::add_bcd#0 -- vduz1=vduz1_plus_vduz2 lda score_bcd clc adc add_bcd @@ -13953,118 +14952,118 @@ play_update_score: { lda score_bcd+3 adc add_bcd+3 sta score_bcd+3 - //SEG675 asm { cld } + //SEG751 asm { cld } cld - //SEG676 [291] (byte~) play_update_score::$5 ← < (word) lines_bcd#30 -- vbuz1=_lo_vwuz2 + //SEG752 [320] (byte~) play_update_score::$5 ← < (word) lines_bcd#30 -- vbuz1=_lo_vwuz2 lda lines_bcd sta _5 - //SEG677 [292] (byte) play_update_score::lines_after#0 ← (byte~) play_update_score::$5 & (byte/word/signed word/dword/signed dword) 240 -- vbuz1=vbuz2_band_vbuc1 + //SEG753 [321] (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 - //SEG678 [293] if((byte) play_update_score::lines_before#0==(byte) play_update_score::lines_after#0) goto play_update_score::@return -- vbuz1_eq_vbuz2_then_la1 + //SEG754 [322] if((byte) play_update_score::lines_before#0==(byte) play_update_score::lines_after#0) goto play_update_score::@return -- vbuz1_eq_vbuz2_then_la1 lda lines_before cmp lines_after beq breturn_from_b3 - //SEG679 [294] phi from play_update_score::@3 to play_update_score::@4 [phi:play_update_score::@3->play_update_score::@4] + //SEG755 [323] phi from play_update_score::@3 to play_update_score::@4 [phi:play_update_score::@3->play_update_score::@4] b4_from_b3: jmp b4 - //SEG680 play_update_score::@4 + //SEG756 play_update_score::@4 b4: - //SEG681 [295] call play_increase_level + //SEG757 [324] call play_increase_level jsr play_increase_level - //SEG682 [296] phi from play_update_score play_update_score::@3 play_update_score::@4 to play_update_score::@return [phi:play_update_score/play_update_score::@3/play_update_score::@4->play_update_score::@return] + //SEG758 [325] phi from play_update_score play_update_score::@3 play_update_score::@4 to play_update_score::@return [phi:play_update_score/play_update_score::@3/play_update_score::@4->play_update_score::@return] breturn_from_play_update_score: breturn_from_b3: breturn_from_b4: - //SEG683 [296] phi (byte) level_bcd#19 = (byte) level_bcd#11 [phi:play_update_score/play_update_score::@3/play_update_score::@4->play_update_score::@return#0] -- register_copy - //SEG684 [296] phi (byte) current_movedown_slow#23 = (byte) current_movedown_slow#14 [phi:play_update_score/play_update_score::@3/play_update_score::@4->play_update_score::@return#1] -- register_copy - //SEG685 [296] phi (byte) level#18 = (byte) level#10 [phi:play_update_score/play_update_score::@3/play_update_score::@4->play_update_score::@return#2] -- register_copy - //SEG686 [296] phi (dword) score_bcd#16 = (dword) score_bcd#18 [phi:play_update_score/play_update_score::@3/play_update_score::@4->play_update_score::@return#3] -- register_copy - //SEG687 [296] phi (word) lines_bcd#17 = (word) lines_bcd#19 [phi:play_update_score/play_update_score::@3/play_update_score::@4->play_update_score::@return#4] -- register_copy + //SEG759 [325] phi (byte) level_bcd#19 = (byte) level_bcd#11 [phi:play_update_score/play_update_score::@3/play_update_score::@4->play_update_score::@return#0] -- register_copy + //SEG760 [325] phi (byte) current_movedown_slow#23 = (byte) current_movedown_slow#14 [phi:play_update_score/play_update_score::@3/play_update_score::@4->play_update_score::@return#1] -- register_copy + //SEG761 [325] phi (byte) level#18 = (byte) level#10 [phi:play_update_score/play_update_score::@3/play_update_score::@4->play_update_score::@return#2] -- register_copy + //SEG762 [325] phi (dword) score_bcd#16 = (dword) score_bcd#18 [phi:play_update_score/play_update_score::@3/play_update_score::@4->play_update_score::@return#3] -- register_copy + //SEG763 [325] phi (word) lines_bcd#17 = (word) lines_bcd#19 [phi:play_update_score/play_update_score::@3/play_update_score::@4->play_update_score::@return#4] -- register_copy jmp breturn - //SEG688 play_update_score::@return + //SEG764 play_update_score::@return breturn: - //SEG689 [297] return + //SEG765 [326] return rts } -//SEG690 play_increase_level +//SEG766 play_increase_level play_increase_level: { - .label _1 = $b3 - .label b4 = $b4 - .label b = $44 - //SEG691 [298] (byte) level#20 ← ++ (byte) level#10 -- vbuz1=_inc_vbuz1 + .label _1 = $bf + .label b4 = $c0 + .label b = $4c + //SEG767 [327] (byte) level#20 ← ++ (byte) level#10 -- vbuz1=_inc_vbuz1 inc level - //SEG692 [299] if((byte) level#20>(byte/signed byte/word/signed word/dword/signed dword) 29) goto play_increase_level::@2 -- vbuz1_gt_vbuc1_then_la1 + //SEG768 [328] if((byte) level#20>(byte/signed byte/word/signed word/dword/signed dword) 29) goto play_increase_level::@2 -- vbuz1_gt_vbuc1_then_la1 lda level cmp #$1d beq !+ bcs b2_from_play_increase_level !: jmp b5 - //SEG693 play_increase_level::@5 + //SEG769 play_increase_level::@5 b5: - //SEG694 [300] (byte) current_movedown_slow#10 ← *((const byte[]) MOVEDOWN_SLOW_SPEEDS#0 + (byte) level#20) -- vbuz1=pbuc1_derefidx_vbuz2 + //SEG770 [329] (byte) current_movedown_slow#10 ← *((const byte[]) MOVEDOWN_SLOW_SPEEDS#0 + (byte) level#20) -- vbuz1=pbuc1_derefidx_vbuz2 ldy level lda MOVEDOWN_SLOW_SPEEDS,y sta current_movedown_slow - //SEG695 [301] phi from play_increase_level::@5 to play_increase_level::@2 [phi:play_increase_level::@5->play_increase_level::@2] + //SEG771 [330] phi from play_increase_level::@5 to play_increase_level::@2 [phi:play_increase_level::@5->play_increase_level::@2] b2_from_b5: - //SEG696 [301] phi (byte) current_movedown_slow#69 = (byte) current_movedown_slow#10 [phi:play_increase_level::@5->play_increase_level::@2#0] -- register_copy + //SEG772 [330] phi (byte) current_movedown_slow#69 = (byte) current_movedown_slow#10 [phi:play_increase_level::@5->play_increase_level::@2#0] -- register_copy jmp b2 - //SEG697 [301] phi from play_increase_level to play_increase_level::@2 [phi:play_increase_level->play_increase_level::@2] + //SEG773 [330] phi from play_increase_level to play_increase_level::@2 [phi:play_increase_level->play_increase_level::@2] b2_from_play_increase_level: - //SEG698 [301] phi (byte) current_movedown_slow#69 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_increase_level->play_increase_level::@2#0] -- vbuz1=vbuc1 + //SEG774 [330] phi (byte) current_movedown_slow#69 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_increase_level->play_increase_level::@2#0] -- vbuz1=vbuc1 lda #1 sta current_movedown_slow jmp b2 - //SEG699 play_increase_level::@2 + //SEG775 play_increase_level::@2 b2: - //SEG700 [302] (byte) level_bcd#21 ← ++ (byte) level_bcd#11 -- vbuz1=_inc_vbuz1 + //SEG776 [331] (byte) level_bcd#21 ← ++ (byte) level_bcd#11 -- vbuz1=_inc_vbuz1 inc level_bcd - //SEG701 [303] (byte~) play_increase_level::$1 ← (byte) level_bcd#21 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuz1=vbuz2_band_vbuc1 + //SEG777 [332] (byte~) play_increase_level::$1 ← (byte) level_bcd#21 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuz1=vbuz2_band_vbuc1 lda #$f and level_bcd sta _1 - //SEG702 [304] if((byte~) play_increase_level::$1!=(byte/signed byte/word/signed word/dword/signed dword) 10) goto play_increase_level::@3 -- vbuz1_neq_vbuc1_then_la1 + //SEG778 [333] if((byte~) play_increase_level::$1!=(byte/signed byte/word/signed word/dword/signed dword) 10) goto play_increase_level::@3 -- vbuz1_neq_vbuc1_then_la1 lda _1 cmp #$a bne b3_from_b2 jmp b7 - //SEG703 play_increase_level::@7 + //SEG779 play_increase_level::@7 b7: - //SEG704 [305] (byte) level_bcd#8 ← (byte) level_bcd#21 + (byte/signed byte/word/signed word/dword/signed dword) 6 -- vbuz1=vbuz1_plus_vbuc1 + //SEG780 [334] (byte) level_bcd#8 ← (byte) level_bcd#21 + (byte/signed byte/word/signed word/dword/signed dword) 6 -- vbuz1=vbuz1_plus_vbuc1 lda #6 clc adc level_bcd sta level_bcd - //SEG705 [306] phi from play_increase_level::@2 play_increase_level::@7 to play_increase_level::@3 [phi:play_increase_level::@2/play_increase_level::@7->play_increase_level::@3] + //SEG781 [335] phi from play_increase_level::@2 play_increase_level::@7 to play_increase_level::@3 [phi:play_increase_level::@2/play_increase_level::@7->play_increase_level::@3] b3_from_b2: b3_from_b7: - //SEG706 [306] phi (byte) level_bcd#64 = (byte) level_bcd#21 [phi:play_increase_level::@2/play_increase_level::@7->play_increase_level::@3#0] -- register_copy + //SEG782 [335] phi (byte) level_bcd#64 = (byte) level_bcd#21 [phi:play_increase_level::@2/play_increase_level::@7->play_increase_level::@3#0] -- register_copy jmp b3 - //SEG707 play_increase_level::@3 + //SEG783 play_increase_level::@3 b3: - //SEG708 asm { sed } + //SEG784 asm { sed } sed - //SEG709 [308] phi from play_increase_level::@3 to play_increase_level::@4 [phi:play_increase_level::@3->play_increase_level::@4] + //SEG785 [337] phi from play_increase_level::@3 to play_increase_level::@4 [phi:play_increase_level::@3->play_increase_level::@4] b4_from_b3: - //SEG710 [308] phi (byte) play_increase_level::b#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_increase_level::@3->play_increase_level::@4#0] -- vbuz1=vbuc1 + //SEG786 [337] phi (byte) play_increase_level::b#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_increase_level::@3->play_increase_level::@4#0] -- vbuz1=vbuc1 lda #0 sta b jmp b4 - //SEG711 [308] phi from play_increase_level::@4 to play_increase_level::@4 [phi:play_increase_level::@4->play_increase_level::@4] + //SEG787 [337] phi from play_increase_level::@4 to play_increase_level::@4 [phi:play_increase_level::@4->play_increase_level::@4] b4_from_b4: - //SEG712 [308] phi (byte) play_increase_level::b#2 = (byte) play_increase_level::b#1 [phi:play_increase_level::@4->play_increase_level::@4#0] -- register_copy + //SEG788 [337] phi (byte) play_increase_level::b#2 = (byte) play_increase_level::b#1 [phi:play_increase_level::@4->play_increase_level::@4#0] -- register_copy jmp b4 - //SEG713 play_increase_level::@4 + //SEG789 play_increase_level::@4 b4: - //SEG714 [309] (byte) play_increase_level::b4#0 ← (byte) play_increase_level::b#2 << (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz2_rol_2 + //SEG790 [338] (byte) play_increase_level::b4#0 ← (byte) play_increase_level::b#2 << (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz2_rol_2 lda b asl asl sta b4 - //SEG715 [310] *((const dword[5]) score_add_bcd#0 + (byte) play_increase_level::b4#0) ← *((const dword[5]) score_add_bcd#0 + (byte) play_increase_level::b4#0) + *((const dword[]) SCORE_BASE_BCD#0 + (byte) play_increase_level::b4#0) -- pduc1_derefidx_vbuz1=pduc1_derefidx_vbuz1_plus_pduc2_derefidx_vbuz1 + //SEG791 [339] *((const dword[5]) score_add_bcd#0 + (byte) play_increase_level::b4#0) ← *((const dword[5]) score_add_bcd#0 + (byte) play_increase_level::b4#0) + *((const dword[]) SCORE_BASE_BCD#0 + (byte) play_increase_level::b4#0) -- pduc1_derefidx_vbuz1=pduc1_derefidx_vbuz1_plus_pduc2_derefidx_vbuz1 ldy b4 clc lda score_add_bcd,y @@ -14079,783 +15078,783 @@ play_increase_level: { lda score_add_bcd+3,y adc SCORE_BASE_BCD+3,y sta score_add_bcd+3,y - //SEG716 [311] (byte) play_increase_level::b#1 ← ++ (byte) play_increase_level::b#2 -- vbuz1=_inc_vbuz1 + //SEG792 [340] (byte) play_increase_level::b#1 ← ++ (byte) play_increase_level::b#2 -- vbuz1=_inc_vbuz1 inc b - //SEG717 [312] if((byte) play_increase_level::b#1!=(byte/signed byte/word/signed word/dword/signed dword) 5) goto play_increase_level::@4 -- vbuz1_neq_vbuc1_then_la1 + //SEG793 [341] if((byte) play_increase_level::b#1!=(byte/signed byte/word/signed word/dword/signed dword) 5) goto play_increase_level::@4 -- vbuz1_neq_vbuc1_then_la1 lda b cmp #5 bne b4_from_b4 jmp b8 - //SEG718 play_increase_level::@8 + //SEG794 play_increase_level::@8 b8: - //SEG719 asm { cld } + //SEG795 asm { cld } cld jmp breturn - //SEG720 play_increase_level::@return + //SEG796 play_increase_level::@return breturn: - //SEG721 [314] return + //SEG797 [343] return rts } -//SEG722 play_remove_lines +//SEG798 play_remove_lines play_remove_lines: { - .label return = $a1 - .label c = $b5 - .label r = $47 - .label w = $4a - .label x = $48 - .label y = $45 - .label removed = $46 - .label full = $49 - //SEG723 [316] phi from play_remove_lines to play_remove_lines::@1 [phi:play_remove_lines->play_remove_lines::@1] + .label return = $ac + .label c = $c1 + .label r = $4f + .label w = $52 + .label x = $50 + .label y = $4d + .label removed = $4e + .label full = $51 + //SEG799 [345] phi from play_remove_lines to play_remove_lines::@1 [phi:play_remove_lines->play_remove_lines::@1] b1_from_play_remove_lines: - //SEG724 [316] phi (byte) play_remove_lines::removed#11 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_remove_lines->play_remove_lines::@1#0] -- vbuz1=vbuc1 + //SEG800 [345] 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 - //SEG725 [316] phi (byte) play_remove_lines::y#8 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_remove_lines->play_remove_lines::@1#1] -- vbuz1=vbuc1 + //SEG801 [345] 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 - //SEG726 [316] phi (byte) play_remove_lines::w#12 = (const byte) PLAYFIELD_LINES#0*(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_remove_lines->play_remove_lines::@1#2] -- vbuz1=vbuc1 + //SEG802 [345] 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 - //SEG727 [316] phi (byte) play_remove_lines::r#3 = (const byte) PLAYFIELD_LINES#0*(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_remove_lines->play_remove_lines::@1#3] -- vbuz1=vbuc1 + //SEG803 [345] 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 - //SEG728 [316] phi from play_remove_lines::@4 to play_remove_lines::@1 [phi:play_remove_lines::@4->play_remove_lines::@1] + //SEG804 [345] phi from play_remove_lines::@4 to play_remove_lines::@1 [phi:play_remove_lines::@4->play_remove_lines::@1] b1_from_b4: - //SEG729 [316] phi (byte) play_remove_lines::removed#11 = (byte) play_remove_lines::removed#7 [phi:play_remove_lines::@4->play_remove_lines::@1#0] -- register_copy - //SEG730 [316] phi (byte) play_remove_lines::y#8 = (byte) play_remove_lines::y#1 [phi:play_remove_lines::@4->play_remove_lines::@1#1] -- register_copy - //SEG731 [316] phi (byte) play_remove_lines::w#12 = (byte) play_remove_lines::w#11 [phi:play_remove_lines::@4->play_remove_lines::@1#2] -- register_copy - //SEG732 [316] phi (byte) play_remove_lines::r#3 = (byte) play_remove_lines::r#1 [phi:play_remove_lines::@4->play_remove_lines::@1#3] -- register_copy + //SEG805 [345] 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 + //SEG806 [345] 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 + //SEG807 [345] 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 + //SEG808 [345] 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 - //SEG733 play_remove_lines::@1 + //SEG809 play_remove_lines::@1 b1: - //SEG734 [317] phi from play_remove_lines::@1 to play_remove_lines::@2 [phi:play_remove_lines::@1->play_remove_lines::@2] + //SEG810 [346] phi from play_remove_lines::@1 to play_remove_lines::@2 [phi:play_remove_lines::@1->play_remove_lines::@2] b2_from_b1: - //SEG735 [317] phi (byte) play_remove_lines::full#4 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_remove_lines::@1->play_remove_lines::@2#0] -- vbuz1=vbuc1 + //SEG811 [346] 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 - //SEG736 [317] phi (byte) play_remove_lines::x#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_remove_lines::@1->play_remove_lines::@2#1] -- vbuz1=vbuc1 + //SEG812 [346] 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 - //SEG737 [317] phi (byte) play_remove_lines::w#4 = (byte) play_remove_lines::w#12 [phi:play_remove_lines::@1->play_remove_lines::@2#2] -- register_copy - //SEG738 [317] phi (byte) play_remove_lines::r#2 = (byte) play_remove_lines::r#3 [phi:play_remove_lines::@1->play_remove_lines::@2#3] -- register_copy + //SEG813 [346] 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 + //SEG814 [346] 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 - //SEG739 [317] phi from play_remove_lines::@3 to play_remove_lines::@2 [phi:play_remove_lines::@3->play_remove_lines::@2] + //SEG815 [346] phi from play_remove_lines::@3 to play_remove_lines::@2 [phi:play_remove_lines::@3->play_remove_lines::@2] b2_from_b3: - //SEG740 [317] phi (byte) play_remove_lines::full#4 = (byte) play_remove_lines::full#2 [phi:play_remove_lines::@3->play_remove_lines::@2#0] -- register_copy - //SEG741 [317] phi (byte) play_remove_lines::x#2 = (byte) play_remove_lines::x#1 [phi:play_remove_lines::@3->play_remove_lines::@2#1] -- register_copy - //SEG742 [317] phi (byte) play_remove_lines::w#4 = (byte) play_remove_lines::w#1 [phi:play_remove_lines::@3->play_remove_lines::@2#2] -- register_copy - //SEG743 [317] phi (byte) play_remove_lines::r#2 = (byte) play_remove_lines::r#1 [phi:play_remove_lines::@3->play_remove_lines::@2#3] -- register_copy + //SEG816 [346] 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 + //SEG817 [346] 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 + //SEG818 [346] 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 + //SEG819 [346] 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 - //SEG744 play_remove_lines::@2 + //SEG820 play_remove_lines::@2 b2: - //SEG745 [318] (byte) play_remove_lines::c#0 ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::r#2) -- vbuz1=pbuc1_derefidx_vbuz2 + //SEG821 [347] (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 - //SEG746 [319] (byte) play_remove_lines::r#1 ← -- (byte) play_remove_lines::r#2 -- vbuz1=_dec_vbuz1 + //SEG822 [348] (byte) play_remove_lines::r#1 ← -- (byte) play_remove_lines::r#2 -- vbuz1=_dec_vbuz1 dec r - //SEG747 [320] if((byte) play_remove_lines::c#0!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_remove_lines::@18 -- vbuz1_neq_0_then_la1 + //SEG823 [349] 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 - //SEG748 [321] phi from play_remove_lines::@2 to play_remove_lines::@3 [phi:play_remove_lines::@2->play_remove_lines::@3] + //SEG824 [350] phi from play_remove_lines::@2 to play_remove_lines::@3 [phi:play_remove_lines::@2->play_remove_lines::@3] b3_from_b2: - //SEG749 [321] phi (byte) play_remove_lines::full#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_remove_lines::@2->play_remove_lines::@3#0] -- vbuz1=vbuc1 + //SEG825 [350] 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 - //SEG750 play_remove_lines::@3 + //SEG826 play_remove_lines::@3 b3: - //SEG751 [322] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::w#4) ← (byte) play_remove_lines::c#0 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG827 [351] *((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 - //SEG752 [323] (byte) play_remove_lines::w#1 ← -- (byte) play_remove_lines::w#4 -- vbuz1=_dec_vbuz1 + //SEG828 [352] (byte) play_remove_lines::w#1 ← -- (byte) play_remove_lines::w#4 -- vbuz1=_dec_vbuz1 dec w - //SEG753 [324] (byte) play_remove_lines::x#1 ← ++ (byte) play_remove_lines::x#2 -- vbuz1=_inc_vbuz1 + //SEG829 [353] (byte) play_remove_lines::x#1 ← ++ (byte) play_remove_lines::x#2 -- vbuz1=_inc_vbuz1 inc x - //SEG754 [325] if((byte) play_remove_lines::x#1!=(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto play_remove_lines::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG830 [354] 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 - //SEG755 play_remove_lines::@9 + //SEG831 play_remove_lines::@9 b9: - //SEG756 [326] if((byte) play_remove_lines::full#2!=(byte/signed byte/word/signed word/dword/signed dword) 1) goto play_remove_lines::@4 -- vbuz1_neq_vbuc1_then_la1 + //SEG832 [355] 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 - //SEG757 play_remove_lines::@10 + //SEG833 play_remove_lines::@10 b10: - //SEG758 [327] (byte) play_remove_lines::w#2 ← (byte) play_remove_lines::w#1 + (const byte) PLAYFIELD_COLS#0 -- vbuz1=vbuz1_plus_vbuc1 + //SEG834 [356] (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 - //SEG759 [328] (byte) play_remove_lines::removed#1 ← ++ (byte) play_remove_lines::removed#11 -- vbuz1=_inc_vbuz1 + //SEG835 [357] (byte) play_remove_lines::removed#1 ← ++ (byte) play_remove_lines::removed#11 -- vbuz1=_inc_vbuz1 inc removed - //SEG760 [329] phi from play_remove_lines::@10 play_remove_lines::@9 to play_remove_lines::@4 [phi:play_remove_lines::@10/play_remove_lines::@9->play_remove_lines::@4] + //SEG836 [358] 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: - //SEG761 [329] phi (byte) play_remove_lines::removed#7 = (byte) play_remove_lines::removed#1 [phi:play_remove_lines::@10/play_remove_lines::@9->play_remove_lines::@4#0] -- register_copy - //SEG762 [329] phi (byte) play_remove_lines::w#11 = (byte) play_remove_lines::w#2 [phi:play_remove_lines::@10/play_remove_lines::@9->play_remove_lines::@4#1] -- register_copy + //SEG837 [358] 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 + //SEG838 [358] 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 - //SEG763 play_remove_lines::@4 + //SEG839 play_remove_lines::@4 b4: - //SEG764 [330] (byte) play_remove_lines::y#1 ← ++ (byte) play_remove_lines::y#8 -- vbuz1=_inc_vbuz1 + //SEG840 [359] (byte) play_remove_lines::y#1 ← ++ (byte) play_remove_lines::y#8 -- vbuz1=_inc_vbuz1 inc y - //SEG765 [331] if((byte) play_remove_lines::y#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto play_remove_lines::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG841 [360] 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 - //SEG766 [332] phi from play_remove_lines::@4 play_remove_lines::@6 to play_remove_lines::@5 [phi:play_remove_lines::@4/play_remove_lines::@6->play_remove_lines::@5] + //SEG842 [361] 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: - //SEG767 [332] phi (byte) play_remove_lines::w#6 = (byte) play_remove_lines::w#11 [phi:play_remove_lines::@4/play_remove_lines::@6->play_remove_lines::@5#0] -- register_copy + //SEG843 [361] 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 - //SEG768 play_remove_lines::@5 + //SEG844 play_remove_lines::@5 b5: - //SEG769 [333] if((byte) play_remove_lines::w#6!=(byte/word/signed word/dword/signed dword) 255) goto play_remove_lines::@6 -- vbuz1_neq_vbuc1_then_la1 + //SEG845 [362] 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 - //SEG770 play_remove_lines::@return + //SEG846 play_remove_lines::@return breturn: - //SEG771 [334] return + //SEG847 [363] return rts - //SEG772 play_remove_lines::@6 + //SEG848 play_remove_lines::@6 b6: - //SEG773 [335] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::w#6) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuc1_derefidx_vbuz1=vbuc2 + //SEG849 [364] *((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 - //SEG774 [336] (byte) play_remove_lines::w#3 ← -- (byte) play_remove_lines::w#6 -- vbuz1=_dec_vbuz1 + //SEG850 [365] (byte) play_remove_lines::w#3 ← -- (byte) play_remove_lines::w#6 -- vbuz1=_dec_vbuz1 dec w jmp b5_from_b6 - //SEG775 [337] phi from play_remove_lines::@2 to play_remove_lines::@18 [phi:play_remove_lines::@2->play_remove_lines::@18] + //SEG851 [366] 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 - //SEG776 play_remove_lines::@18 + //SEG852 play_remove_lines::@18 b18: - //SEG777 [321] phi from play_remove_lines::@18 to play_remove_lines::@3 [phi:play_remove_lines::@18->play_remove_lines::@3] + //SEG853 [350] phi from play_remove_lines::@18 to play_remove_lines::@3 [phi:play_remove_lines::@18->play_remove_lines::@3] b3_from_b18: - //SEG778 [321] phi (byte) play_remove_lines::full#2 = (byte) play_remove_lines::full#4 [phi:play_remove_lines::@18->play_remove_lines::@3#0] -- register_copy + //SEG854 [350] 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 } -//SEG779 play_lock_current +//SEG855 play_lock_current play_lock_current: { - .label ypos2 = $4b - .label playfield_line = $b6 - .label col = $4e - .label i = $b8 - .label c = $4f - .label l = $4c - .label i_2 = $4d - .label i_3 = $4d - .label i_7 = $4d - .label i_9 = $4d - //SEG780 [338] (byte) play_lock_current::ypos2#0 ← (byte) current_ypos#25 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 + .label ypos2 = $53 + .label playfield_line = $c2 + .label col = $56 + .label i = $c4 + .label c = $57 + .label l = $54 + .label i_2 = $55 + .label i_3 = $55 + .label i_7 = $55 + .label i_9 = $55 + //SEG856 [367] (byte) play_lock_current::ypos2#0 ← (byte) current_ypos#10 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 lda current_ypos asl sta ypos2 - //SEG781 [339] phi from play_lock_current to play_lock_current::@1 [phi:play_lock_current->play_lock_current::@1] + //SEG857 [368] phi from play_lock_current to play_lock_current::@1 [phi:play_lock_current->play_lock_current::@1] b1_from_play_lock_current: - //SEG782 [339] phi (byte) play_lock_current::l#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_lock_current->play_lock_current::@1#0] -- vbuz1=vbuc1 + //SEG858 [368] 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 - //SEG783 [339] phi (byte) play_lock_current::i#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_lock_current->play_lock_current::@1#1] -- vbuz1=vbuc1 + //SEG859 [368] 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 - //SEG784 [339] phi (byte) play_lock_current::ypos2#2 = (byte) play_lock_current::ypos2#0 [phi:play_lock_current->play_lock_current::@1#2] -- register_copy + //SEG860 [368] 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 - //SEG785 play_lock_current::@1 + //SEG861 play_lock_current::@1 b1: - //SEG786 [340] (byte*) play_lock_current::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_lock_current::ypos2#2) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG862 [369] (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 - //SEG787 [341] (byte) play_lock_current::col#0 ← (byte) current_xpos#113 -- vbuz1=vbuz2 + //SEG863 [370] (byte) play_lock_current::col#0 ← (byte) current_xpos#121 -- vbuz1=vbuz2 lda current_xpos sta col - //SEG788 [342] phi from play_lock_current::@1 to play_lock_current::@2 [phi:play_lock_current::@1->play_lock_current::@2] + //SEG864 [371] phi from play_lock_current::@1 to play_lock_current::@2 [phi:play_lock_current::@1->play_lock_current::@2] b2_from_b1: - //SEG789 [342] phi (byte) play_lock_current::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_lock_current::@1->play_lock_current::@2#0] -- vbuz1=vbuc1 + //SEG865 [371] 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 - //SEG790 [342] phi (byte) play_lock_current::col#2 = (byte) play_lock_current::col#0 [phi:play_lock_current::@1->play_lock_current::@2#1] -- register_copy - //SEG791 [342] phi (byte) play_lock_current::i#2 = (byte) play_lock_current::i#3 [phi:play_lock_current::@1->play_lock_current::@2#2] -- register_copy + //SEG866 [371] 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 + //SEG867 [371] 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 - //SEG792 play_lock_current::@2 + //SEG868 play_lock_current::@2 b2: - //SEG793 [343] (byte) play_lock_current::i#1 ← ++ (byte) play_lock_current::i#2 -- vbuz1=_inc_vbuz2 + //SEG869 [372] (byte) play_lock_current::i#1 ← ++ (byte) play_lock_current::i#2 -- vbuz1=_inc_vbuz2 ldy i_2 iny sty i - //SEG794 [344] if(*((byte*) current_piece_gfx#103 + (byte) play_lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_lock_current::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 + //SEG870 [373] if(*((byte*) current_piece_gfx#111 + (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 - //SEG795 play_lock_current::@4 + //SEG871 play_lock_current::@4 b4: - //SEG796 [345] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::col#2) ← (byte) current_piece_char#19 -- pbuz1_derefidx_vbuz2=vbuz3 + //SEG872 [374] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::col#2) ← (byte) current_piece_char#21 -- pbuz1_derefidx_vbuz2=vbuz3 lda current_piece_char ldy col sta (playfield_line),y jmp b3 - //SEG797 play_lock_current::@3 + //SEG873 play_lock_current::@3 b3: - //SEG798 [346] (byte) play_lock_current::col#1 ← ++ (byte) play_lock_current::col#2 -- vbuz1=_inc_vbuz1 + //SEG874 [375] (byte) play_lock_current::col#1 ← ++ (byte) play_lock_current::col#2 -- vbuz1=_inc_vbuz1 inc col - //SEG799 [347] (byte) play_lock_current::c#1 ← ++ (byte) play_lock_current::c#2 -- vbuz1=_inc_vbuz1 + //SEG875 [376] (byte) play_lock_current::c#1 ← ++ (byte) play_lock_current::c#2 -- vbuz1=_inc_vbuz1 inc c - //SEG800 [348] if((byte) play_lock_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_lock_current::@8 -- vbuz1_neq_vbuc1_then_la1 + //SEG876 [377] 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 - //SEG801 play_lock_current::@5 + //SEG877 play_lock_current::@5 b5: - //SEG802 [349] (byte) play_lock_current::ypos2#1 ← (byte) play_lock_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz1_plus_2 + //SEG878 [378] (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 - //SEG803 [350] (byte) play_lock_current::l#1 ← ++ (byte) play_lock_current::l#6 -- vbuz1=_inc_vbuz1 + //SEG879 [379] (byte) play_lock_current::l#1 ← ++ (byte) play_lock_current::l#6 -- vbuz1=_inc_vbuz1 inc l - //SEG804 [351] if((byte) play_lock_current::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_lock_current::@7 -- vbuz1_neq_vbuc1_then_la1 + //SEG880 [380] 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 - //SEG805 play_lock_current::@return + //SEG881 play_lock_current::@return breturn: - //SEG806 [352] return + //SEG882 [381] return rts - //SEG807 play_lock_current::@7 + //SEG883 play_lock_current::@7 b7: - //SEG808 [353] (byte~) play_lock_current::i#7 ← (byte) play_lock_current::i#1 -- vbuz1=vbuz2 + //SEG884 [382] (byte~) play_lock_current::i#7 ← (byte) play_lock_current::i#1 -- vbuz1=vbuz2 lda i sta i_7 - //SEG809 [339] phi from play_lock_current::@7 to play_lock_current::@1 [phi:play_lock_current::@7->play_lock_current::@1] + //SEG885 [368] phi from play_lock_current::@7 to play_lock_current::@1 [phi:play_lock_current::@7->play_lock_current::@1] b1_from_b7: - //SEG810 [339] phi (byte) play_lock_current::l#6 = (byte) play_lock_current::l#1 [phi:play_lock_current::@7->play_lock_current::@1#0] -- register_copy - //SEG811 [339] phi (byte) play_lock_current::i#3 = (byte~) play_lock_current::i#7 [phi:play_lock_current::@7->play_lock_current::@1#1] -- register_copy - //SEG812 [339] phi (byte) play_lock_current::ypos2#2 = (byte) play_lock_current::ypos2#1 [phi:play_lock_current::@7->play_lock_current::@1#2] -- register_copy + //SEG886 [368] 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 + //SEG887 [368] 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 + //SEG888 [368] 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 - //SEG813 play_lock_current::@8 + //SEG889 play_lock_current::@8 b8: - //SEG814 [354] (byte~) play_lock_current::i#9 ← (byte) play_lock_current::i#1 -- vbuz1=vbuz2 + //SEG890 [383] (byte~) play_lock_current::i#9 ← (byte) play_lock_current::i#1 -- vbuz1=vbuz2 lda i sta i_9 - //SEG815 [342] phi from play_lock_current::@8 to play_lock_current::@2 [phi:play_lock_current::@8->play_lock_current::@2] + //SEG891 [371] phi from play_lock_current::@8 to play_lock_current::@2 [phi:play_lock_current::@8->play_lock_current::@2] b2_from_b8: - //SEG816 [342] phi (byte) play_lock_current::c#2 = (byte) play_lock_current::c#1 [phi:play_lock_current::@8->play_lock_current::@2#0] -- register_copy - //SEG817 [342] phi (byte) play_lock_current::col#2 = (byte) play_lock_current::col#1 [phi:play_lock_current::@8->play_lock_current::@2#1] -- register_copy - //SEG818 [342] phi (byte) play_lock_current::i#2 = (byte~) play_lock_current::i#9 [phi:play_lock_current::@8->play_lock_current::@2#2] -- register_copy + //SEG892 [371] 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 + //SEG893 [371] 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 + //SEG894 [371] 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 } -//SEG819 keyboard_event_pressed +//SEG895 keyboard_event_pressed keyboard_event_pressed: { - .label _0 = $b9 - .label _1 = $bb - .label return = $c0 - .label return_1 = $c2 - .label return_2 = $c4 - .label row_bits = $ba - .label return_10 = $c6 - .label keycode = $50 - .label return_11 = $bc - .label return_12 = $9d - //SEG820 [356] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte/signed byte/word/signed word/dword/signed dword) 3 -- vbuz1=vbuz2_ror_3 + .label _0 = $c5 + .label _1 = $c7 + .label return = $cc + .label return_1 = $ce + .label return_2 = $d0 + .label row_bits = $c6 + .label return_10 = $d2 + .label keycode = $58 + .label return_11 = $c8 + .label return_12 = $a8 + //SEG896 [385] (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 - //SEG821 [357] (byte) keyboard_event_pressed::row_bits#0 ← *((const byte[8]) keyboard_scan_values#0 + (byte~) keyboard_event_pressed::$0) -- vbuz1=pbuc1_derefidx_vbuz2 + //SEG897 [386] (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 - //SEG822 [358] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte/signed byte/word/signed word/dword/signed dword) 7 -- vbuz1=vbuz2_band_vbuc1 + //SEG898 [387] (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 - //SEG823 [359] (byte) keyboard_event_pressed::return#11 ← (byte) keyboard_event_pressed::row_bits#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte~) keyboard_event_pressed::$1) -- vbuz1=vbuz2_band_pbuc1_derefidx_vbuz3 + //SEG899 [388] (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 - //SEG824 keyboard_event_pressed::@return + //SEG900 keyboard_event_pressed::@return breturn: - //SEG825 [360] return + //SEG901 [389] return rts } -//SEG826 keyboard_event_get +//SEG902 keyboard_event_get keyboard_event_get: { - .label return = $51 - .label return_3 = $74 - //SEG827 [361] if((byte) keyboard_events_size#13==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_get::@return -- vbuz1_eq_0_then_la1 + .label return = $59 + .label return_3 = $7c + //SEG903 [390] 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 - //SEG828 keyboard_event_get::@3 + //SEG904 keyboard_event_get::@3 b3: - //SEG829 [362] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13 -- vbuz1=_dec_vbuz1 + //SEG905 [391] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13 -- vbuz1=_dec_vbuz1 dec keyboard_events_size - //SEG830 [363] (byte) keyboard_event_get::return#1 ← *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#4) -- vbuz1=pbuc1_derefidx_vbuz2 + //SEG906 [392] (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 - //SEG831 [364] phi from keyboard_event_get::@3 to keyboard_event_get::@return [phi:keyboard_event_get::@3->keyboard_event_get::@return] + //SEG907 [393] phi from keyboard_event_get::@3 to keyboard_event_get::@return [phi:keyboard_event_get::@3->keyboard_event_get::@return] breturn_from_b3: - //SEG832 [364] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#4 [phi:keyboard_event_get::@3->keyboard_event_get::@return#0] -- register_copy - //SEG833 [364] phi (byte) keyboard_event_get::return#2 = (byte) keyboard_event_get::return#1 [phi:keyboard_event_get::@3->keyboard_event_get::@return#1] -- register_copy + //SEG908 [393] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#4 [phi:keyboard_event_get::@3->keyboard_event_get::@return#0] -- register_copy + //SEG909 [393] 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 - //SEG834 [364] phi from keyboard_event_get to keyboard_event_get::@return [phi:keyboard_event_get->keyboard_event_get::@return] + //SEG910 [393] phi from keyboard_event_get to keyboard_event_get::@return [phi:keyboard_event_get->keyboard_event_get::@return] breturn_from_keyboard_event_get: - //SEG835 [364] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#13 [phi:keyboard_event_get->keyboard_event_get::@return#0] -- register_copy - //SEG836 [364] phi (byte) keyboard_event_get::return#2 = (byte/word/signed word/dword/signed dword) 255 [phi:keyboard_event_get->keyboard_event_get::@return#1] -- vbuz1=vbuc1 + //SEG911 [393] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#13 [phi:keyboard_event_get->keyboard_event_get::@return#0] -- register_copy + //SEG912 [393] 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 - //SEG837 keyboard_event_get::@return + //SEG913 keyboard_event_get::@return breturn: - //SEG838 [365] return + //SEG914 [394] return rts } -//SEG839 keyboard_event_scan +//SEG915 keyboard_event_scan keyboard_event_scan: { - .label _3 = $c9 - .label _4 = $ca - .label _11 = $cc - .label _14 = $c1 - .label _18 = $c3 - .label _22 = $c5 - .label _26 = $c7 - .label row_scan = $bf - .label keycode = $55 - .label row = $52 - .label col = $54 - .label event_type = $cb - //SEG840 [367] phi from keyboard_event_scan to keyboard_event_scan::@1 [phi:keyboard_event_scan->keyboard_event_scan::@1] + .label _3 = $d5 + .label _4 = $d6 + .label _11 = $d8 + .label _14 = $cd + .label _18 = $cf + .label _22 = $d1 + .label _26 = $d3 + .label row_scan = $cb + .label keycode = $5d + .label row = $5a + .label col = $5c + .label event_type = $d7 + //SEG916 [396] phi from keyboard_event_scan to keyboard_event_scan::@1 [phi:keyboard_event_scan->keyboard_event_scan::@1] b1_from_keyboard_event_scan: - //SEG841 [367] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#19 [phi:keyboard_event_scan->keyboard_event_scan::@1#0] -- register_copy - //SEG842 [367] phi (byte) keyboard_event_scan::keycode#11 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:keyboard_event_scan->keyboard_event_scan::@1#1] -- vbuz1=vbuc1 + //SEG917 [396] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#19 [phi:keyboard_event_scan->keyboard_event_scan::@1#0] -- register_copy + //SEG918 [396] 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 - //SEG843 [367] phi (byte) keyboard_event_scan::row#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:keyboard_event_scan->keyboard_event_scan::@1#2] -- vbuz1=vbuc1 + //SEG919 [396] 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 - //SEG844 [367] phi from keyboard_event_scan::@3 to keyboard_event_scan::@1 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1] + //SEG920 [396] phi from keyboard_event_scan::@3 to keyboard_event_scan::@1 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1] b1_from_b3: - //SEG845 [367] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#13 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#0] -- register_copy - //SEG846 [367] phi (byte) keyboard_event_scan::keycode#11 = (byte) keyboard_event_scan::keycode#14 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#1] -- register_copy - //SEG847 [367] phi (byte) keyboard_event_scan::row#2 = (byte) keyboard_event_scan::row#1 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#2] -- register_copy + //SEG921 [396] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#13 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#0] -- register_copy + //SEG922 [396] 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 + //SEG923 [396] 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 - //SEG848 keyboard_event_scan::@1 + //SEG924 keyboard_event_scan::@1 b1: - //SEG849 [368] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 -- vbuz1=vbuz2 + //SEG925 [397] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 -- vbuz1=vbuz2 lda row sta keyboard_matrix_read.rowid - //SEG850 [369] call keyboard_matrix_read + //SEG926 [398] call keyboard_matrix_read jsr keyboard_matrix_read - //SEG851 [370] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 -- vbuz1=vbuz2 + //SEG927 [399] (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 - //SEG852 keyboard_event_scan::@25 + //SEG928 keyboard_event_scan::@25 b25: - //SEG853 [371] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 -- vbuz1=vbuz2 + //SEG929 [400] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 -- vbuz1=vbuz2 lda keyboard_matrix_read.return_2 sta row_scan - //SEG854 [372] if((byte) keyboard_event_scan::row_scan#0!=*((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2)) goto keyboard_event_scan::@4 -- vbuz1_neq_pbuc1_derefidx_vbuz2_then_la1 + //SEG930 [401] 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 - //SEG855 keyboard_event_scan::@13 + //SEG931 keyboard_event_scan::@13 b13: - //SEG856 [373] (byte) keyboard_event_scan::keycode#1 ← (byte) keyboard_event_scan::keycode#11 + (byte/signed byte/word/signed word/dword/signed dword) 8 -- vbuz1=vbuz1_plus_vbuc1 + //SEG932 [402] (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 - //SEG857 [374] phi from keyboard_event_scan::@13 keyboard_event_scan::@19 to keyboard_event_scan::@3 [phi:keyboard_event_scan::@13/keyboard_event_scan::@19->keyboard_event_scan::@3] + //SEG933 [403] 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: - //SEG858 [374] phi (byte) keyboard_events_size#13 = (byte) keyboard_events_size#29 [phi:keyboard_event_scan::@13/keyboard_event_scan::@19->keyboard_event_scan::@3#0] -- register_copy - //SEG859 [374] phi (byte) keyboard_event_scan::keycode#14 = (byte) keyboard_event_scan::keycode#1 [phi:keyboard_event_scan::@13/keyboard_event_scan::@19->keyboard_event_scan::@3#1] -- register_copy + //SEG934 [403] 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 + //SEG935 [403] 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 - //SEG860 keyboard_event_scan::@3 + //SEG936 keyboard_event_scan::@3 b3: - //SEG861 [375] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 -- vbuz1=_inc_vbuz1 + //SEG937 [404] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 -- vbuz1=_inc_vbuz1 inc row - //SEG862 [376] if((byte) keyboard_event_scan::row#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG938 [405] 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 - //SEG863 [377] phi from keyboard_event_scan::@3 to keyboard_event_scan::@20 [phi:keyboard_event_scan::@3->keyboard_event_scan::@20] + //SEG939 [406] 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 - //SEG864 keyboard_event_scan::@20 + //SEG940 keyboard_event_scan::@20 b20: - //SEG865 [378] call keyboard_event_pressed - //SEG866 [355] phi from keyboard_event_scan::@20 to keyboard_event_pressed [phi:keyboard_event_scan::@20->keyboard_event_pressed] + //SEG941 [407] call keyboard_event_pressed + //SEG942 [384] phi from keyboard_event_scan::@20 to keyboard_event_pressed [phi:keyboard_event_scan::@20->keyboard_event_pressed] keyboard_event_pressed_from_b20: - //SEG867 [355] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_LSHIFT#0 [phi:keyboard_event_scan::@20->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG943 [384] 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 - //SEG868 [379] (byte) keyboard_event_pressed::return#0 ← (byte) keyboard_event_pressed::return#11 -- vbuz1=vbuz2 + //SEG944 [408] (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 - //SEG869 keyboard_event_scan::@26 + //SEG945 keyboard_event_scan::@26 b26: - //SEG870 [380] (byte~) keyboard_event_scan::$14 ← (byte) keyboard_event_pressed::return#0 -- vbuz1=vbuz2 + //SEG946 [409] (byte~) keyboard_event_scan::$14 ← (byte) keyboard_event_pressed::return#0 -- vbuz1=vbuz2 lda keyboard_event_pressed.return sta _14 - //SEG871 [381] if((byte~) keyboard_event_scan::$14==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@9 -- vbuz1_eq_0_then_la1 + //SEG947 [410] 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 - //SEG872 [382] phi from keyboard_event_scan::@26 to keyboard_event_scan::@21 [phi:keyboard_event_scan::@26->keyboard_event_scan::@21] + //SEG948 [411] 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 - //SEG873 keyboard_event_scan::@21 + //SEG949 keyboard_event_scan::@21 b21: - //SEG874 [383] phi from keyboard_event_scan::@21 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@21->keyboard_event_scan::@9] + //SEG950 [412] phi from keyboard_event_scan::@21 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@21->keyboard_event_scan::@9] b9_from_b21: - //SEG875 [383] phi (byte) keyboard_modifiers#11 = (byte/signed byte/word/signed word/dword/signed dword) 0|(const byte) KEY_MODIFIER_LSHIFT#0 [phi:keyboard_event_scan::@21->keyboard_event_scan::@9#0] -- vbuz1=vbuc1 + //SEG951 [412] 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 - //SEG876 [383] phi from keyboard_event_scan::@26 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@26->keyboard_event_scan::@9] + //SEG952 [412] phi from keyboard_event_scan::@26 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@26->keyboard_event_scan::@9] b9_from_b26: - //SEG877 [383] phi (byte) keyboard_modifiers#11 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:keyboard_event_scan::@26->keyboard_event_scan::@9#0] -- vbuz1=vbuc1 + //SEG953 [412] 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 - //SEG878 keyboard_event_scan::@9 + //SEG954 keyboard_event_scan::@9 b9: - //SEG879 [384] call keyboard_event_pressed - //SEG880 [355] phi from keyboard_event_scan::@9 to keyboard_event_pressed [phi:keyboard_event_scan::@9->keyboard_event_pressed] + //SEG955 [413] call keyboard_event_pressed + //SEG956 [384] phi from keyboard_event_scan::@9 to keyboard_event_pressed [phi:keyboard_event_scan::@9->keyboard_event_pressed] keyboard_event_pressed_from_b9: - //SEG881 [355] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_RSHIFT#0 [phi:keyboard_event_scan::@9->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG957 [384] 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 - //SEG882 [385] (byte) keyboard_event_pressed::return#1 ← (byte) keyboard_event_pressed::return#11 -- vbuz1=vbuz2 + //SEG958 [414] (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 - //SEG883 keyboard_event_scan::@27 + //SEG959 keyboard_event_scan::@27 b27: - //SEG884 [386] (byte~) keyboard_event_scan::$18 ← (byte) keyboard_event_pressed::return#1 -- vbuz1=vbuz2 + //SEG960 [415] (byte~) keyboard_event_scan::$18 ← (byte) keyboard_event_pressed::return#1 -- vbuz1=vbuz2 lda keyboard_event_pressed.return_1 sta _18 - //SEG885 [387] if((byte~) keyboard_event_scan::$18==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@10 -- vbuz1_eq_0_then_la1 + //SEG961 [416] 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 - //SEG886 keyboard_event_scan::@22 + //SEG962 keyboard_event_scan::@22 b22: - //SEG887 [388] (byte) keyboard_modifiers#3 ← (byte) keyboard_modifiers#11 | (const byte) KEY_MODIFIER_RSHIFT#0 -- vbuz1=vbuz1_bor_vbuc1 + //SEG963 [417] (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 - //SEG888 [389] phi from keyboard_event_scan::@22 keyboard_event_scan::@27 to keyboard_event_scan::@10 [phi:keyboard_event_scan::@22/keyboard_event_scan::@27->keyboard_event_scan::@10] + //SEG964 [418] 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: - //SEG889 [389] phi (byte) keyboard_modifiers#12 = (byte) keyboard_modifiers#3 [phi:keyboard_event_scan::@22/keyboard_event_scan::@27->keyboard_event_scan::@10#0] -- register_copy + //SEG965 [418] 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 - //SEG890 keyboard_event_scan::@10 + //SEG966 keyboard_event_scan::@10 b10: - //SEG891 [390] call keyboard_event_pressed - //SEG892 [355] phi from keyboard_event_scan::@10 to keyboard_event_pressed [phi:keyboard_event_scan::@10->keyboard_event_pressed] + //SEG967 [419] call keyboard_event_pressed + //SEG968 [384] phi from keyboard_event_scan::@10 to keyboard_event_pressed [phi:keyboard_event_scan::@10->keyboard_event_pressed] keyboard_event_pressed_from_b10: - //SEG893 [355] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_CTRL#0 [phi:keyboard_event_scan::@10->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG969 [384] 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 - //SEG894 [391] (byte) keyboard_event_pressed::return#2 ← (byte) keyboard_event_pressed::return#11 -- vbuz1=vbuz2 + //SEG970 [420] (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 - //SEG895 keyboard_event_scan::@28 + //SEG971 keyboard_event_scan::@28 b28: - //SEG896 [392] (byte~) keyboard_event_scan::$22 ← (byte) keyboard_event_pressed::return#2 -- vbuz1=vbuz2 + //SEG972 [421] (byte~) keyboard_event_scan::$22 ← (byte) keyboard_event_pressed::return#2 -- vbuz1=vbuz2 lda keyboard_event_pressed.return_2 sta _22 - //SEG897 [393] if((byte~) keyboard_event_scan::$22==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@11 -- vbuz1_eq_0_then_la1 + //SEG973 [422] 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 - //SEG898 keyboard_event_scan::@23 + //SEG974 keyboard_event_scan::@23 b23: - //SEG899 [394] (byte) keyboard_modifiers#4 ← (byte) keyboard_modifiers#12 | (const byte) KEY_MODIFIER_CTRL#0 -- vbuz1=vbuz1_bor_vbuc1 + //SEG975 [423] (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 - //SEG900 [395] phi from keyboard_event_scan::@23 keyboard_event_scan::@28 to keyboard_event_scan::@11 [phi:keyboard_event_scan::@23/keyboard_event_scan::@28->keyboard_event_scan::@11] + //SEG976 [424] 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: - //SEG901 [395] phi (byte) keyboard_modifiers#13 = (byte) keyboard_modifiers#4 [phi:keyboard_event_scan::@23/keyboard_event_scan::@28->keyboard_event_scan::@11#0] -- register_copy + //SEG977 [424] 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 - //SEG902 keyboard_event_scan::@11 + //SEG978 keyboard_event_scan::@11 b11: - //SEG903 [396] call keyboard_event_pressed - //SEG904 [355] phi from keyboard_event_scan::@11 to keyboard_event_pressed [phi:keyboard_event_scan::@11->keyboard_event_pressed] + //SEG979 [425] call keyboard_event_pressed + //SEG980 [384] phi from keyboard_event_scan::@11 to keyboard_event_pressed [phi:keyboard_event_scan::@11->keyboard_event_pressed] keyboard_event_pressed_from_b11: - //SEG905 [355] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_COMMODORE#0 [phi:keyboard_event_scan::@11->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG981 [384] 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 - //SEG906 [397] (byte) keyboard_event_pressed::return#10 ← (byte) keyboard_event_pressed::return#11 -- vbuz1=vbuz2 + //SEG982 [426] (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 - //SEG907 keyboard_event_scan::@29 + //SEG983 keyboard_event_scan::@29 b29: - //SEG908 [398] (byte~) keyboard_event_scan::$26 ← (byte) keyboard_event_pressed::return#10 -- vbuz1=vbuz2 + //SEG984 [427] (byte~) keyboard_event_scan::$26 ← (byte) keyboard_event_pressed::return#10 -- vbuz1=vbuz2 lda keyboard_event_pressed.return_10 sta _26 - //SEG909 [399] if((byte~) keyboard_event_scan::$26==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@return -- vbuz1_eq_0_then_la1 + //SEG985 [428] 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 - //SEG910 keyboard_event_scan::@24 + //SEG986 keyboard_event_scan::@24 b24: - //SEG911 [400] (byte) keyboard_modifiers#5 ← (byte) keyboard_modifiers#13 | (const byte) KEY_MODIFIER_COMMODORE#0 -- vbuz1=vbuz2_bor_vbuc1 + //SEG987 [429] (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 - //SEG912 keyboard_event_scan::@return + //SEG988 keyboard_event_scan::@return breturn: - //SEG913 [401] return + //SEG989 [430] return rts - //SEG914 [402] phi from keyboard_event_scan::@25 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4] + //SEG990 [431] phi from keyboard_event_scan::@25 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4] b4_from_b25: - //SEG915 [402] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#29 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#0] -- register_copy - //SEG916 [402] phi (byte) keyboard_event_scan::keycode#10 = (byte) keyboard_event_scan::keycode#11 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#1] -- register_copy - //SEG917 [402] phi (byte) keyboard_event_scan::col#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#2] -- vbuz1=vbuc1 + //SEG991 [431] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#29 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#0] -- register_copy + //SEG992 [431] 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 + //SEG993 [431] 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 - //SEG918 [402] phi from keyboard_event_scan::@5 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4] + //SEG994 [431] phi from keyboard_event_scan::@5 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4] b4_from_b5: - //SEG919 [402] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#30 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#0] -- register_copy - //SEG920 [402] phi (byte) keyboard_event_scan::keycode#10 = (byte) keyboard_event_scan::keycode#15 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#1] -- register_copy - //SEG921 [402] phi (byte) keyboard_event_scan::col#2 = (byte) keyboard_event_scan::col#1 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#2] -- register_copy + //SEG995 [431] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#30 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#0] -- register_copy + //SEG996 [431] 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 + //SEG997 [431] 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 - //SEG922 keyboard_event_scan::@4 + //SEG998 keyboard_event_scan::@4 b4: - //SEG923 [403] (byte~) keyboard_event_scan::$3 ← (byte) keyboard_event_scan::row_scan#0 ^ *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) -- vbuz1=vbuz2_bxor_pbuc1_derefidx_vbuz3 + //SEG999 [432] (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 - //SEG924 [404] (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) -- vbuz1=vbuz2_band_pbuc1_derefidx_vbuz3 + //SEG1000 [433] (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 - //SEG925 [405] if((byte~) keyboard_event_scan::$4==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@5 -- vbuz1_eq_0_then_la1 + //SEG1001 [434] 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 - //SEG926 keyboard_event_scan::@15 + //SEG1002 keyboard_event_scan::@15 b15: - //SEG927 [406] if((byte) keyboard_events_size#10==(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@5 -- vbuz1_eq_vbuc1_then_la1 + //SEG1003 [435] 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 - //SEG928 keyboard_event_scan::@16 + //SEG1004 keyboard_event_scan::@16 b16: - //SEG929 [407] (byte) keyboard_event_scan::event_type#0 ← (byte) keyboard_event_scan::row_scan#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) -- vbuz1=vbuz2_band_pbuc1_derefidx_vbuz3 + //SEG1005 [436] (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 - //SEG930 [408] if((byte) keyboard_event_scan::event_type#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@7 -- vbuz1_eq_0_then_la1 + //SEG1006 [437] 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 - //SEG931 keyboard_event_scan::@17 + //SEG1007 keyboard_event_scan::@17 b17: - //SEG932 [409] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG1008 [438] *((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 - //SEG933 [410] (byte) keyboard_events_size#2 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 + //SEG1009 [439] (byte) keyboard_events_size#2 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 inc keyboard_events_size - //SEG934 [411] phi from keyboard_event_scan::@15 keyboard_event_scan::@17 keyboard_event_scan::@4 keyboard_event_scan::@7 to keyboard_event_scan::@5 [phi:keyboard_event_scan::@15/keyboard_event_scan::@17/keyboard_event_scan::@4/keyboard_event_scan::@7->keyboard_event_scan::@5] + //SEG1010 [440] 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: - //SEG935 [411] phi (byte) keyboard_events_size#30 = (byte) keyboard_events_size#10 [phi:keyboard_event_scan::@15/keyboard_event_scan::@17/keyboard_event_scan::@4/keyboard_event_scan::@7->keyboard_event_scan::@5#0] -- register_copy + //SEG1011 [440] 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 - //SEG936 keyboard_event_scan::@5 + //SEG1012 keyboard_event_scan::@5 b5: - //SEG937 [412] (byte) keyboard_event_scan::keycode#15 ← ++ (byte) keyboard_event_scan::keycode#10 -- vbuz1=_inc_vbuz1 + //SEG1013 [441] (byte) keyboard_event_scan::keycode#15 ← ++ (byte) keyboard_event_scan::keycode#10 -- vbuz1=_inc_vbuz1 inc keycode - //SEG938 [413] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 -- vbuz1=_inc_vbuz1 + //SEG1014 [442] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 -- vbuz1=_inc_vbuz1 inc col - //SEG939 [414] if((byte) keyboard_event_scan::col#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@4 -- vbuz1_neq_vbuc1_then_la1 + //SEG1015 [443] 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 - //SEG940 keyboard_event_scan::@19 + //SEG1016 keyboard_event_scan::@19 b19: - //SEG941 [415] *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG1017 [444] *((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 - //SEG942 keyboard_event_scan::@7 + //SEG1018 keyboard_event_scan::@7 b7: - //SEG943 [416] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64 -- vbuz1=vbuz2_bor_vbuc1 + //SEG1019 [445] (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 - //SEG944 [417] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte/word/dword~) keyboard_event_scan::$11 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG1020 [446] *((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 - //SEG945 [418] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 + //SEG1021 [447] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 inc keyboard_events_size jmp b5_from_b7 } -//SEG946 keyboard_matrix_read +//SEG1022 keyboard_matrix_read keyboard_matrix_read: { - .label return = $cd - .label rowid = $bd - .label return_2 = $be - //SEG947 [419] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) -- _deref_pbuc1=pbuc2_derefidx_vbuz1 + .label return = $d9 + .label rowid = $c9 + .label return_2 = $ca + //SEG1023 [448] *((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 - //SEG948 [420] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) -- vbuz1=_bnot__deref_pbuc1 + //SEG1024 [449] (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 - //SEG949 keyboard_matrix_read::@return + //SEG1025 keyboard_matrix_read::@return breturn: - //SEG950 [421] return + //SEG1026 [450] return rts } -//SEG951 render_show +//SEG1027 render_show render_show: { .const toD0181_return = (>(PLAYFIELD_SCREEN_1&$3fff)<<2)|(>PLAYFIELD_CHARSET)>>2&$f .const toD0182_return = (>(PLAYFIELD_SCREEN_2&$3fff)<<2)|(>PLAYFIELD_CHARSET)>>2&$f - .label d018val = $57 - //SEG952 [422] if((byte) render_screen_show#16==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_show::toD0181 -- vbuz1_eq_0_then_la1 + .label d018val = $5f + //SEG1028 [451] 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 - //SEG953 [423] phi from render_show to render_show::toD0182 [phi:render_show->render_show::toD0182] + //SEG1029 [452] phi from render_show to render_show::toD0182 [phi:render_show->render_show::toD0182] toD0182_from_render_show: jmp toD0182 - //SEG954 render_show::toD0182 + //SEG1030 render_show::toD0182 toD0182: - //SEG955 [424] phi from render_show::toD0182 to render_show::@2 [phi:render_show::toD0182->render_show::@2] + //SEG1031 [453] phi from render_show::toD0182 to render_show::@2 [phi:render_show::toD0182->render_show::@2] b2_from_toD0182: - //SEG956 [424] phi (byte) render_show::d018val#3 = (const byte) render_show::toD0182_return#0 [phi:render_show::toD0182->render_show::@2#0] -- vbuz1=vbuc1 + //SEG1032 [453] 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 - //SEG957 render_show::@2 + //SEG1033 render_show::@2 b2: - //SEG958 [425] *((const byte*) D018#0) ← (byte) render_show::d018val#3 -- _deref_pbuc1=vbuz1 + //SEG1034 [454] *((const byte*) D018#0) ← (byte) render_show::d018val#3 -- _deref_pbuc1=vbuz1 lda d018val sta D018 - //SEG959 [426] (byte) render_screen_showing#1 ← (byte) render_screen_show#16 -- vbuz1=vbuz2 + //SEG1035 [455] (byte) render_screen_showing#1 ← (byte) render_screen_show#16 -- vbuz1=vbuz2 lda render_screen_show sta render_screen_showing_1 jmp breturn - //SEG960 render_show::@return + //SEG1036 render_show::@return breturn: - //SEG961 [427] return + //SEG1037 [456] return rts - //SEG962 [428] phi from render_show to render_show::toD0181 [phi:render_show->render_show::toD0181] + //SEG1038 [457] phi from render_show to render_show::toD0181 [phi:render_show->render_show::toD0181] toD0181_from_render_show: jmp toD0181 - //SEG963 render_show::toD0181 + //SEG1039 render_show::toD0181 toD0181: - //SEG964 [424] phi from render_show::toD0181 to render_show::@2 [phi:render_show::toD0181->render_show::@2] + //SEG1040 [453] phi from render_show::toD0181 to render_show::@2 [phi:render_show::toD0181->render_show::@2] b2_from_toD0181: - //SEG965 [424] phi (byte) render_show::d018val#3 = (const byte) render_show::toD0181_return#0 [phi:render_show::toD0181->render_show::@2#0] -- vbuz1=vbuc1 + //SEG1041 [453] 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 } -//SEG966 play_init +//SEG1042 play_init play_init: { - .label _1 = $cf - .label pli = $59 - .label idx = $5b - .label j = $58 - .label b4 = $d0 - .label b = $5c - //SEG967 [430] phi from play_init to play_init::@1 [phi:play_init->play_init::@1] + .label _1 = $db + .label pli = $61 + .label idx = $63 + .label j = $60 + .label b4 = $dc + .label b = $64 + //SEG1043 [459] phi from play_init to play_init::@1 [phi:play_init->play_init::@1] b1_from_play_init: - //SEG968 [430] phi (byte) play_init::idx#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_init->play_init::@1#0] -- vbuz1=vbuc1 + //SEG1044 [459] 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 - //SEG969 [430] phi (byte*) play_init::pli#2 = (const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 [phi:play_init->play_init::@1#1] -- pbuz1=pbuc1 + //SEG1045 [459] 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 - //SEG970 [430] phi (byte) play_init::j#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_init->play_init::@1#2] -- vbuz1=vbuc1 + //SEG1046 [459] 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 - //SEG971 [430] phi from play_init::@1 to play_init::@1 [phi:play_init::@1->play_init::@1] + //SEG1047 [459] phi from play_init::@1 to play_init::@1 [phi:play_init::@1->play_init::@1] b1_from_b1: - //SEG972 [430] phi (byte) play_init::idx#2 = (byte) play_init::idx#1 [phi:play_init::@1->play_init::@1#0] -- register_copy - //SEG973 [430] phi (byte*) play_init::pli#2 = (byte*) play_init::pli#1 [phi:play_init::@1->play_init::@1#1] -- register_copy - //SEG974 [430] phi (byte) play_init::j#2 = (byte) play_init::j#1 [phi:play_init::@1->play_init::@1#2] -- register_copy + //SEG1048 [459] phi (byte) play_init::idx#2 = (byte) play_init::idx#1 [phi:play_init::@1->play_init::@1#0] -- register_copy + //SEG1049 [459] phi (byte*) play_init::pli#2 = (byte*) play_init::pli#1 [phi:play_init::@1->play_init::@1#1] -- register_copy + //SEG1050 [459] phi (byte) play_init::j#2 = (byte) play_init::j#1 [phi:play_init::@1->play_init::@1#2] -- register_copy jmp b1 - //SEG975 play_init::@1 + //SEG1051 play_init::@1 b1: - //SEG976 [431] (byte~) play_init::$1 ← (byte) play_init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 + //SEG1052 [460] (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 - //SEG977 [432] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) play_init::$1) ← (byte*) play_init::pli#2 -- pptc1_derefidx_vbuz1=pbuz2 + //SEG1053 [461] *((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 - //SEG978 [433] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) play_init::j#2) ← (byte) play_init::idx#2 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG1054 [462] *((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 - //SEG979 [434] (byte*) play_init::pli#1 ← (byte*) play_init::pli#2 + (const byte) PLAYFIELD_COLS#0 -- pbuz1=pbuz1_plus_vbuc1 + //SEG1055 [463] (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 @@ -14863,44 +15862,44 @@ play_init: { bcc !+ inc pli+1 !: - //SEG980 [435] (byte) play_init::idx#1 ← (byte) play_init::idx#2 + (const byte) PLAYFIELD_COLS#0 -- vbuz1=vbuz1_plus_vbuc1 + //SEG1056 [464] (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 - //SEG981 [436] (byte) play_init::j#1 ← ++ (byte) play_init::j#2 -- vbuz1=_inc_vbuz1 + //SEG1057 [465] (byte) play_init::j#1 ← ++ (byte) play_init::j#2 -- vbuz1=_inc_vbuz1 inc j - //SEG982 [437] if((byte) play_init::j#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto play_init::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG1058 [466] if((byte) play_init::j#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto play_init::@1 -- vbuz1_neq_vbuc1_then_la1 lda j cmp #PLAYFIELD_LINES-1+1 bne b1_from_b1 jmp b3 - //SEG983 play_init::@3 + //SEG1059 play_init::@3 b3: - //SEG984 [438] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0+(const byte) PLAYFIELD_LINES#0) ← (const byte) PLAYFIELD_COLS#0*(const byte) PLAYFIELD_LINES#0 -- _deref_pbuc1=vbuc2 + //SEG1060 [467] *((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 - //SEG985 [439] (byte) current_movedown_slow#1 ← *((const byte[]) MOVEDOWN_SLOW_SPEEDS#0) -- vbuz1=_deref_pbuc1 + //SEG1061 [468] (byte) current_movedown_slow#1 ← *((const byte[]) MOVEDOWN_SLOW_SPEEDS#0) -- vbuz1=_deref_pbuc1 lda MOVEDOWN_SLOW_SPEEDS sta current_movedown_slow - //SEG986 [440] phi from play_init::@3 to play_init::@2 [phi:play_init::@3->play_init::@2] + //SEG1062 [469] phi from play_init::@3 to play_init::@2 [phi:play_init::@3->play_init::@2] b2_from_b3: - //SEG987 [440] phi (byte) play_init::b#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_init::@3->play_init::@2#0] -- vbuz1=vbuc1 + //SEG1063 [469] phi (byte) play_init::b#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_init::@3->play_init::@2#0] -- vbuz1=vbuc1 lda #0 sta b jmp b2 - //SEG988 [440] phi from play_init::@2 to play_init::@2 [phi:play_init::@2->play_init::@2] + //SEG1064 [469] phi from play_init::@2 to play_init::@2 [phi:play_init::@2->play_init::@2] b2_from_b2: - //SEG989 [440] phi (byte) play_init::b#2 = (byte) play_init::b#1 [phi:play_init::@2->play_init::@2#0] -- register_copy + //SEG1065 [469] phi (byte) play_init::b#2 = (byte) play_init::b#1 [phi:play_init::@2->play_init::@2#0] -- register_copy jmp b2 - //SEG990 play_init::@2 + //SEG1066 play_init::@2 b2: - //SEG991 [441] (byte) play_init::b4#0 ← (byte) play_init::b#2 << (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz2_rol_2 + //SEG1067 [470] (byte) play_init::b4#0 ← (byte) play_init::b#2 << (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz2_rol_2 lda b asl asl sta b4 - //SEG992 [442] *((const dword[5]) score_add_bcd#0 + (byte) play_init::b4#0) ← *((const dword[]) SCORE_BASE_BCD#0 + (byte) play_init::b4#0) -- pduc1_derefidx_vbuz1=pduc2_derefidx_vbuz1 + //SEG1068 [471] *((const dword[5]) score_add_bcd#0 + (byte) play_init::b4#0) ← *((const dword[]) SCORE_BASE_BCD#0 + (byte) play_init::b4#0) -- pduc1_derefidx_vbuz1=pduc2_derefidx_vbuz1 ldy b4 lda SCORE_BASE_BCD,y sta score_add_bcd,y @@ -14910,235 +15909,235 @@ play_init: { sta score_add_bcd+2,y lda SCORE_BASE_BCD+3,y sta score_add_bcd+3,y - //SEG993 [443] (byte) play_init::b#1 ← ++ (byte) play_init::b#2 -- vbuz1=_inc_vbuz1 + //SEG1069 [472] (byte) play_init::b#1 ← ++ (byte) play_init::b#2 -- vbuz1=_inc_vbuz1 inc b - //SEG994 [444] if((byte) play_init::b#1!=(byte/signed byte/word/signed word/dword/signed dword) 5) goto play_init::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG1070 [473] if((byte) play_init::b#1!=(byte/signed byte/word/signed word/dword/signed dword) 5) goto play_init::@2 -- vbuz1_neq_vbuc1_then_la1 lda b cmp #5 bne b2_from_b2 jmp breturn - //SEG995 play_init::@return + //SEG1071 play_init::@return breturn: - //SEG996 [445] return + //SEG1072 [474] return rts } -//SEG997 sprites_irq_init +//SEG1073 sprites_irq_init sprites_irq_init: { - //SEG998 asm { sei } + //SEG1074 asm { sei } sei - //SEG999 [447] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 + //SEG1075 [476] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 lda #IRQ_RASTER sta IRQ_STATUS - //SEG1000 asm { ldaCIA1_INTERRUPT } + //SEG1076 asm { ldaCIA1_INTERRUPT } lda CIA1_INTERRUPT - //SEG1001 [449] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 -- _deref_pbuc1=vbuc2 + //SEG1077 [478] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 -- _deref_pbuc1=vbuc2 lda #PROCPORT_DDR_MEMORY_MASK sta PROCPORT_DDR - //SEG1002 [450] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 -- _deref_pbuc1=vbuc2 + //SEG1078 [479] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 -- _deref_pbuc1=vbuc2 lda #PROCPORT_RAM_IO sta PROCPORT - //SEG1003 [451] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 -- _deref_pbuc1=vbuc2 + //SEG1079 [480] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 -- _deref_pbuc1=vbuc2 lda #CIA_INTERRUPT_CLEAR sta CIA1_INTERRUPT - //SEG1004 [452] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 + //SEG1080 [481] *((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 - //SEG1005 [453] *((const byte*) RASTER#0) ← (const byte) IRQ_RASTER_FIRST#0 -- _deref_pbuc1=vbuc2 + //SEG1081 [482] *((const byte*) RASTER#0) ← (const byte) IRQ_RASTER_FIRST#0 -- _deref_pbuc1=vbuc2 lda #IRQ_RASTER_FIRST sta RASTER - //SEG1006 [454] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 + //SEG1082 [483] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 lda #IRQ_RASTER sta IRQ_ENABLE - //SEG1007 [455] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() -- _deref_pptc1=pprc2 + //SEG1083 [484] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() -- _deref_pptc1=pprc2 lda #sprites_irq sta HARDWARE_IRQ+1 - //SEG1008 asm { cli } + //SEG1084 asm { cli } cli jmp breturn - //SEG1009 sprites_irq_init::@return + //SEG1085 sprites_irq_init::@return breturn: - //SEG1010 [457] return + //SEG1086 [486] return rts } -//SEG1011 sprites_init +//SEG1087 sprites_init sprites_init: { - .label s2 = $d1 - .label xpos = $5e - .label s = $5d - //SEG1012 [458] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 15 -- _deref_pbuc1=vbuc2 + .label s2 = $dd + .label xpos = $66 + .label s = $65 + //SEG1088 [487] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 15 -- _deref_pbuc1=vbuc2 lda #$f sta SPRITES_ENABLE - //SEG1013 [459] *((const byte*) SPRITES_MC#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 + //SEG1089 [488] *((const byte*) SPRITES_MC#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 lda #0 sta SPRITES_MC - //SEG1014 [460] *((const byte*) SPRITES_EXPAND_Y#0) ← *((const byte*) SPRITES_MC#0) -- _deref_pbuc1=_deref_pbuc2 + //SEG1090 [489] *((const byte*) SPRITES_EXPAND_Y#0) ← *((const byte*) SPRITES_MC#0) -- _deref_pbuc1=_deref_pbuc2 lda SPRITES_MC sta SPRITES_EXPAND_Y - //SEG1015 [461] *((const byte*) SPRITES_EXPAND_X#0) ← *((const byte*) SPRITES_EXPAND_Y#0) -- _deref_pbuc1=_deref_pbuc2 + //SEG1091 [490] *((const byte*) SPRITES_EXPAND_X#0) ← *((const byte*) SPRITES_EXPAND_Y#0) -- _deref_pbuc1=_deref_pbuc2 lda SPRITES_EXPAND_Y sta SPRITES_EXPAND_X - //SEG1016 [462] phi from sprites_init to sprites_init::@1 [phi:sprites_init->sprites_init::@1] + //SEG1092 [491] phi from sprites_init to sprites_init::@1 [phi:sprites_init->sprites_init::@1] b1_from_sprites_init: - //SEG1017 [462] phi (byte) sprites_init::xpos#2 = (byte/signed byte/word/signed word/dword/signed dword) 24+(byte/signed byte/word/signed word/dword/signed dword) 15*(byte/signed byte/word/signed word/dword/signed dword) 8 [phi:sprites_init->sprites_init::@1#0] -- vbuz1=vbuc1 + //SEG1093 [491] 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 - //SEG1018 [462] phi (byte) sprites_init::s#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sprites_init->sprites_init::@1#1] -- vbuz1=vbuc1 + //SEG1094 [491] 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 - //SEG1019 [462] phi from sprites_init::@1 to sprites_init::@1 [phi:sprites_init::@1->sprites_init::@1] + //SEG1095 [491] phi from sprites_init::@1 to sprites_init::@1 [phi:sprites_init::@1->sprites_init::@1] b1_from_b1: - //SEG1020 [462] phi (byte) sprites_init::xpos#2 = (byte) sprites_init::xpos#1 [phi:sprites_init::@1->sprites_init::@1#0] -- register_copy - //SEG1021 [462] phi (byte) sprites_init::s#2 = (byte) sprites_init::s#1 [phi:sprites_init::@1->sprites_init::@1#1] -- register_copy + //SEG1096 [491] phi (byte) sprites_init::xpos#2 = (byte) sprites_init::xpos#1 [phi:sprites_init::@1->sprites_init::@1#0] -- register_copy + //SEG1097 [491] phi (byte) sprites_init::s#2 = (byte) sprites_init::s#1 [phi:sprites_init::@1->sprites_init::@1#1] -- register_copy jmp b1 - //SEG1022 sprites_init::@1 + //SEG1098 sprites_init::@1 b1: - //SEG1023 [463] (byte) sprites_init::s2#0 ← (byte) sprites_init::s#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 + //SEG1099 [492] (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 - //SEG1024 [464] *((const byte*) SPRITES_XPOS#0 + (byte) sprites_init::s2#0) ← (byte) sprites_init::xpos#2 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG1100 [493] *((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 - //SEG1025 [465] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::s#2) ← (const byte) BLACK#0 -- pbuc1_derefidx_vbuz1=vbuc2 + //SEG1101 [494] *((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 - //SEG1026 [466] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 -- vbuz1=vbuz1_plus_vbuc1 + //SEG1102 [495] (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 - //SEG1027 [467] (byte) sprites_init::s#1 ← ++ (byte) sprites_init::s#2 -- vbuz1=_inc_vbuz1 + //SEG1103 [496] (byte) sprites_init::s#1 ← ++ (byte) sprites_init::s#2 -- vbuz1=_inc_vbuz1 inc s - //SEG1028 [468] if((byte) sprites_init::s#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto sprites_init::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG1104 [497] 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 - //SEG1029 sprites_init::@return + //SEG1105 sprites_init::@return breturn: - //SEG1030 [469] return + //SEG1106 [498] return rts } -//SEG1031 render_init +//SEG1107 render_init render_init: { .const vicSelectGfxBank1_toDd001_return = 3^(>PLAYFIELD_CHARSET)>>6 - .label _13 = $d2 - .label _14 = $d3 - .label li_1 = $60 - .label li_2 = $62 - .label i = $5f + .label _13 = $de + .label _14 = $df + .label li_1 = $68 + .label li_2 = $6a + .label i = $67 jmp vicSelectGfxBank1 - //SEG1032 render_init::vicSelectGfxBank1 + //SEG1108 render_init::vicSelectGfxBank1 vicSelectGfxBank1: - //SEG1033 [471] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 + //SEG1109 [500] *((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 - //SEG1034 [472] phi from render_init::vicSelectGfxBank1 to render_init::vicSelectGfxBank1_toDd001 [phi:render_init::vicSelectGfxBank1->render_init::vicSelectGfxBank1_toDd001] + //SEG1110 [501] 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 - //SEG1035 render_init::vicSelectGfxBank1_toDd001 + //SEG1111 render_init::vicSelectGfxBank1_toDd001 vicSelectGfxBank1_toDd001: jmp vicSelectGfxBank1_b1 - //SEG1036 render_init::vicSelectGfxBank1_@1 + //SEG1112 render_init::vicSelectGfxBank1_@1 vicSelectGfxBank1_b1: - //SEG1037 [473] *((const byte*) CIA2_PORT_A#0) ← (const byte) render_init::vicSelectGfxBank1_toDd001_return#0 -- _deref_pbuc1=vbuc2 + //SEG1113 [502] *((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 - //SEG1038 render_init::@3 + //SEG1114 render_init::@3 b3: - //SEG1039 [474] *((const byte*) D011#0) ← (const byte) VIC_ECM#0|(const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 + //SEG1115 [503] *((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 - //SEG1040 [475] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0 -- _deref_pbuc1=vbuc2 + //SEG1116 [504] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0 -- _deref_pbuc1=vbuc2 lda #BLACK sta BORDERCOL - //SEG1041 [476] *((const byte*) BGCOL1#0) ← (const byte) BLACK#0 -- _deref_pbuc1=vbuc2 + //SEG1117 [505] *((const byte*) BGCOL1#0) ← (const byte) BLACK#0 -- _deref_pbuc1=vbuc2 lda #BLACK sta BGCOL1 - //SEG1042 [477] *((const byte*) BGCOL2#0) ← (const byte) BLUE#0 -- _deref_pbuc1=vbuc2 + //SEG1118 [506] *((const byte*) BGCOL2#0) ← (const byte) BLUE#0 -- _deref_pbuc1=vbuc2 lda #BLUE sta BGCOL2 - //SEG1043 [478] *((const byte*) BGCOL3#0) ← (const byte) CYAN#0 -- _deref_pbuc1=vbuc2 + //SEG1119 [507] *((const byte*) BGCOL3#0) ← (const byte) CYAN#0 -- _deref_pbuc1=vbuc2 lda #CYAN sta BGCOL3 - //SEG1044 [479] *((const byte*) BGCOL4#0) ← (const byte) GREY#0 -- _deref_pbuc1=vbuc2 + //SEG1120 [508] *((const byte*) BGCOL4#0) ← (const byte) GREY#0 -- _deref_pbuc1=vbuc2 lda #GREY sta BGCOL4 - //SEG1045 [480] call render_screen_original - //SEG1046 [493] phi from render_init::@3 to render_screen_original [phi:render_init::@3->render_screen_original] + //SEG1121 [509] call render_screen_original + //SEG1122 [522] phi from render_init::@3 to render_screen_original [phi:render_init::@3->render_screen_original] render_screen_original_from_b3: - //SEG1047 [493] phi (byte*) render_screen_original::screen#9 = (const byte*) PLAYFIELD_SCREEN_1#0 [phi:render_init::@3->render_screen_original#0] -- pbuz1=pbuc1 + //SEG1123 [522] 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 - //SEG1048 [481] phi from render_init::@3 to render_init::@4 [phi:render_init::@3->render_init::@4] + //SEG1124 [510] phi from render_init::@3 to render_init::@4 [phi:render_init::@3->render_init::@4] b4_from_b3: jmp b4 - //SEG1049 render_init::@4 + //SEG1125 render_init::@4 b4: - //SEG1050 [482] call render_screen_original - //SEG1051 [493] phi from render_init::@4 to render_screen_original [phi:render_init::@4->render_screen_original] + //SEG1126 [511] call render_screen_original + //SEG1127 [522] phi from render_init::@4 to render_screen_original [phi:render_init::@4->render_screen_original] render_screen_original_from_b4: - //SEG1052 [493] phi (byte*) render_screen_original::screen#9 = (const byte*) PLAYFIELD_SCREEN_2#0 [phi:render_init::@4->render_screen_original#0] -- pbuz1=pbuc1 + //SEG1128 [522] 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 - //SEG1053 [483] phi from render_init::@4 to render_init::@1 [phi:render_init::@4->render_init::@1] + //SEG1129 [512] phi from render_init::@4 to render_init::@1 [phi:render_init::@4->render_init::@1] b1_from_b4: - //SEG1054 [483] phi (byte*) render_init::li_2#2 = (const byte*) PLAYFIELD_SCREEN_2#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 16 [phi:render_init::@4->render_init::@1#0] -- pbuz1=pbuc1 + //SEG1130 [512] 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 - //SEG1055 [483] phi (byte*) render_init::li_1#2 = (const byte*) PLAYFIELD_SCREEN_1#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 16 [phi:render_init::@4->render_init::@1#1] -- pbuz1=pbuc1 + //SEG1131 [512] 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 - //SEG1056 [483] phi (byte) render_init::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_init::@4->render_init::@1#2] -- vbuz1=vbuc1 + //SEG1132 [512] 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 - //SEG1057 [483] phi from render_init::@1 to render_init::@1 [phi:render_init::@1->render_init::@1] + //SEG1133 [512] phi from render_init::@1 to render_init::@1 [phi:render_init::@1->render_init::@1] b1_from_b1: - //SEG1058 [483] phi (byte*) render_init::li_2#2 = (byte*) render_init::li_2#1 [phi:render_init::@1->render_init::@1#0] -- register_copy - //SEG1059 [483] phi (byte*) render_init::li_1#2 = (byte*) render_init::li_1#1 [phi:render_init::@1->render_init::@1#1] -- register_copy - //SEG1060 [483] phi (byte) render_init::i#2 = (byte) render_init::i#1 [phi:render_init::@1->render_init::@1#2] -- register_copy + //SEG1134 [512] phi (byte*) render_init::li_2#2 = (byte*) render_init::li_2#1 [phi:render_init::@1->render_init::@1#0] -- register_copy + //SEG1135 [512] phi (byte*) render_init::li_1#2 = (byte*) render_init::li_1#1 [phi:render_init::@1->render_init::@1#1] -- register_copy + //SEG1136 [512] phi (byte) render_init::i#2 = (byte) render_init::i#1 [phi:render_init::@1->render_init::@1#2] -- register_copy jmp b1 - //SEG1061 render_init::@1 + //SEG1137 render_init::@1 b1: - //SEG1062 [484] (byte~) render_init::$13 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 + //SEG1138 [513] (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 - //SEG1063 [485] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_init::$13) ← (byte*) render_init::li_1#2 -- pptc1_derefidx_vbuz1=pbuz2 + //SEG1139 [514] *((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 - //SEG1064 [486] (byte~) render_init::$14 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_rol_1 + //SEG1140 [515] (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 - //SEG1065 [487] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_2#0 + (byte~) render_init::$14) ← (byte*) render_init::li_2#2 -- pptc1_derefidx_vbuz1=pbuz2 + //SEG1141 [516] *((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 - //SEG1066 [488] (byte*) render_init::li_1#1 ← (byte*) render_init::li_1#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG1142 [517] (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 @@ -15146,7 +16145,7 @@ render_init: { bcc !+ inc li_1+1 !: - //SEG1067 [489] (byte*) render_init::li_2#1 ← (byte*) render_init::li_2#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG1143 [518] (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 @@ -15154,343 +16153,343 @@ render_init: { bcc !+ inc li_2+1 !: - //SEG1068 [490] (byte) render_init::i#1 ← ++ (byte) render_init::i#2 -- vbuz1=_inc_vbuz1 + //SEG1144 [519] (byte) render_init::i#1 ← ++ (byte) render_init::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG1069 [491] if((byte) render_init::i#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG1145 [520] 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 - //SEG1070 render_init::@return + //SEG1146 render_init::@return breturn: - //SEG1071 [492] return + //SEG1147 [521] return rts } -//SEG1072 render_screen_original +//SEG1148 render_screen_original render_screen_original: { .const SPACE = 0 - .label screen = $69 - .label cols = $6b - .label x = $6d - .label oscr = $65 - .label ocols = $67 - .label y = $64 - //SEG1073 [494] phi from render_screen_original to render_screen_original::@1 [phi:render_screen_original->render_screen_original::@1] + .label screen = $71 + .label cols = $73 + .label x = $75 + .label oscr = $6d + .label ocols = $6f + .label y = $6c + //SEG1149 [523] phi from render_screen_original to render_screen_original::@1 [phi:render_screen_original->render_screen_original::@1] b1_from_render_screen_original: - //SEG1074 [494] phi (byte) render_screen_original::y#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_screen_original->render_screen_original::@1#0] -- vbuz1=vbuc1 + //SEG1150 [523] 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 - //SEG1075 [494] phi (byte*) render_screen_original::ocols#4 = (const byte*) PLAYFIELD_COLORS_ORIGINAL#0+(byte/signed byte/word/signed word/dword/signed dword) 32*(byte/signed byte/word/signed word/dword/signed dword) 2 [phi:render_screen_original->render_screen_original::@1#1] -- pbuz1=pbuc1 + //SEG1151 [523] 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 - //SEG1076 [494] phi (byte*) render_screen_original::oscr#4 = (const byte*) PLAYFIELD_SCREEN_ORIGINAL#0+(byte/signed byte/word/signed word/dword/signed dword) 32*(byte/signed byte/word/signed word/dword/signed dword) 2 [phi:render_screen_original->render_screen_original::@1#2] -- pbuz1=pbuc1 + //SEG1152 [523] 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 - //SEG1077 [494] phi (byte*) render_screen_original::cols#7 = (const byte*) COLS#0 [phi:render_screen_original->render_screen_original::@1#3] -- pbuz1=pbuc1 + //SEG1153 [523] 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 - //SEG1078 [494] phi (byte*) render_screen_original::screen#8 = (byte*) render_screen_original::screen#9 [phi:render_screen_original->render_screen_original::@1#4] -- register_copy + //SEG1154 [523] 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 - //SEG1079 [494] phi from render_screen_original::@7 to render_screen_original::@1 [phi:render_screen_original::@7->render_screen_original::@1] + //SEG1155 [523] phi from render_screen_original::@7 to render_screen_original::@1 [phi:render_screen_original::@7->render_screen_original::@1] b1_from_b7: - //SEG1080 [494] phi (byte) render_screen_original::y#6 = (byte) render_screen_original::y#1 [phi:render_screen_original::@7->render_screen_original::@1#0] -- register_copy - //SEG1081 [494] phi (byte*) render_screen_original::ocols#4 = (byte*) render_screen_original::ocols#1 [phi:render_screen_original::@7->render_screen_original::@1#1] -- register_copy - //SEG1082 [494] phi (byte*) render_screen_original::oscr#4 = (byte*) render_screen_original::oscr#1 [phi:render_screen_original::@7->render_screen_original::@1#2] -- register_copy - //SEG1083 [494] phi (byte*) render_screen_original::cols#7 = (byte*) render_screen_original::cols#3 [phi:render_screen_original::@7->render_screen_original::@1#3] -- register_copy - //SEG1084 [494] phi (byte*) render_screen_original::screen#8 = (byte*) render_screen_original::screen#10 [phi:render_screen_original::@7->render_screen_original::@1#4] -- register_copy + //SEG1156 [523] 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 + //SEG1157 [523] 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 + //SEG1158 [523] 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 + //SEG1159 [523] 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 + //SEG1160 [523] 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 - //SEG1085 render_screen_original::@1 + //SEG1161 render_screen_original::@1 b1: - //SEG1086 [495] phi from render_screen_original::@1 to render_screen_original::@2 [phi:render_screen_original::@1->render_screen_original::@2] + //SEG1162 [524] phi from render_screen_original::@1 to render_screen_original::@2 [phi:render_screen_original::@1->render_screen_original::@2] b2_from_b1: - //SEG1087 [495] phi (byte) render_screen_original::x#4 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_screen_original::@1->render_screen_original::@2#0] -- vbuz1=vbuc1 + //SEG1163 [524] 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 - //SEG1088 [495] phi (byte*) render_screen_original::cols#4 = (byte*) render_screen_original::cols#7 [phi:render_screen_original::@1->render_screen_original::@2#1] -- register_copy - //SEG1089 [495] phi (byte*) render_screen_original::screen#5 = (byte*) render_screen_original::screen#8 [phi:render_screen_original::@1->render_screen_original::@2#2] -- register_copy + //SEG1164 [524] 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 + //SEG1165 [524] 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 - //SEG1090 [495] phi from render_screen_original::@2 to render_screen_original::@2 [phi:render_screen_original::@2->render_screen_original::@2] + //SEG1166 [524] phi from render_screen_original::@2 to render_screen_original::@2 [phi:render_screen_original::@2->render_screen_original::@2] b2_from_b2: - //SEG1091 [495] phi (byte) render_screen_original::x#4 = (byte) render_screen_original::x#1 [phi:render_screen_original::@2->render_screen_original::@2#0] -- register_copy - //SEG1092 [495] phi (byte*) render_screen_original::cols#4 = (byte*) render_screen_original::cols#1 [phi:render_screen_original::@2->render_screen_original::@2#1] -- register_copy - //SEG1093 [495] phi (byte*) render_screen_original::screen#5 = (byte*) render_screen_original::screen#2 [phi:render_screen_original::@2->render_screen_original::@2#2] -- register_copy + //SEG1167 [524] 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 + //SEG1168 [524] 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 + //SEG1169 [524] 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 - //SEG1094 render_screen_original::@2 + //SEG1170 render_screen_original::@2 b2: - //SEG1095 [496] *((byte*) render_screen_original::screen#5) ← (const byte) render_screen_original::SPACE#0 -- _deref_pbuz1=vbuc1 + //SEG1171 [525] *((byte*) render_screen_original::screen#5) ← (const byte) render_screen_original::SPACE#0 -- _deref_pbuz1=vbuc1 lda #SPACE ldy #0 sta (screen),y - //SEG1096 [497] (byte*) render_screen_original::screen#2 ← ++ (byte*) render_screen_original::screen#5 -- pbuz1=_inc_pbuz1 + //SEG1172 [526] (byte*) render_screen_original::screen#2 ← ++ (byte*) render_screen_original::screen#5 -- pbuz1=_inc_pbuz1 inc screen bne !+ inc screen+1 !: - //SEG1097 [498] *((byte*) render_screen_original::cols#4) ← (const byte) BLACK#0 -- _deref_pbuz1=vbuc1 + //SEG1173 [527] *((byte*) render_screen_original::cols#4) ← (const byte) BLACK#0 -- _deref_pbuz1=vbuc1 lda #BLACK ldy #0 sta (cols),y - //SEG1098 [499] (byte*) render_screen_original::cols#1 ← ++ (byte*) render_screen_original::cols#4 -- pbuz1=_inc_pbuz1 + //SEG1174 [528] (byte*) render_screen_original::cols#1 ← ++ (byte*) render_screen_original::cols#4 -- pbuz1=_inc_pbuz1 inc cols bne !+ inc cols+1 !: - //SEG1099 [500] (byte) render_screen_original::x#1 ← ++ (byte) render_screen_original::x#4 -- vbuz1=_inc_vbuz1 + //SEG1175 [529] (byte) render_screen_original::x#1 ← ++ (byte) render_screen_original::x#4 -- vbuz1=_inc_vbuz1 inc x - //SEG1100 [501] if((byte) render_screen_original::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_screen_original::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG1176 [530] 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 - //SEG1101 [502] phi from render_screen_original::@2 render_screen_original::@3 to render_screen_original::@3 [phi:render_screen_original::@2/render_screen_original::@3->render_screen_original::@3] + //SEG1177 [531] 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: - //SEG1102 [502] phi (byte) render_screen_original::x#5 = (byte) render_screen_original::x#1 [phi:render_screen_original::@2/render_screen_original::@3->render_screen_original::@3#0] -- register_copy - //SEG1103 [502] phi (byte*) render_screen_original::cols#5 = (byte*) render_screen_original::cols#1 [phi:render_screen_original::@2/render_screen_original::@3->render_screen_original::@3#1] -- register_copy - //SEG1104 [502] phi (byte*) render_screen_original::ocols#2 = (byte*) render_screen_original::ocols#4 [phi:render_screen_original::@2/render_screen_original::@3->render_screen_original::@3#2] -- register_copy - //SEG1105 [502] phi (byte*) render_screen_original::screen#6 = (byte*) render_screen_original::screen#2 [phi:render_screen_original::@2/render_screen_original::@3->render_screen_original::@3#3] -- register_copy - //SEG1106 [502] phi (byte*) render_screen_original::oscr#2 = (byte*) render_screen_original::oscr#4 [phi:render_screen_original::@2/render_screen_original::@3->render_screen_original::@3#4] -- register_copy + //SEG1178 [531] 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 + //SEG1179 [531] 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 + //SEG1180 [531] 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 + //SEG1181 [531] 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 + //SEG1182 [531] 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 - //SEG1107 render_screen_original::@3 + //SEG1183 render_screen_original::@3 b3: - //SEG1108 [503] *((byte*) render_screen_original::screen#6) ← *((byte*) render_screen_original::oscr#2) -- _deref_pbuz1=_deref_pbuz2 + //SEG1184 [532] *((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 - //SEG1109 [504] (byte*) render_screen_original::screen#3 ← ++ (byte*) render_screen_original::screen#6 -- pbuz1=_inc_pbuz1 + //SEG1185 [533] (byte*) render_screen_original::screen#3 ← ++ (byte*) render_screen_original::screen#6 -- pbuz1=_inc_pbuz1 inc screen bne !+ inc screen+1 !: - //SEG1110 [505] (byte*) render_screen_original::oscr#1 ← ++ (byte*) render_screen_original::oscr#2 -- pbuz1=_inc_pbuz1 + //SEG1186 [534] (byte*) render_screen_original::oscr#1 ← ++ (byte*) render_screen_original::oscr#2 -- pbuz1=_inc_pbuz1 inc oscr bne !+ inc oscr+1 !: - //SEG1111 [506] *((byte*) render_screen_original::cols#5) ← *((byte*) render_screen_original::ocols#2) -- _deref_pbuz1=_deref_pbuz2 + //SEG1187 [535] *((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 - //SEG1112 [507] (byte*) render_screen_original::cols#2 ← ++ (byte*) render_screen_original::cols#5 -- pbuz1=_inc_pbuz1 + //SEG1188 [536] (byte*) render_screen_original::cols#2 ← ++ (byte*) render_screen_original::cols#5 -- pbuz1=_inc_pbuz1 inc cols bne !+ inc cols+1 !: - //SEG1113 [508] (byte*) render_screen_original::ocols#1 ← ++ (byte*) render_screen_original::ocols#2 -- pbuz1=_inc_pbuz1 + //SEG1189 [537] (byte*) render_screen_original::ocols#1 ← ++ (byte*) render_screen_original::ocols#2 -- pbuz1=_inc_pbuz1 inc ocols bne !+ inc ocols+1 !: - //SEG1114 [509] (byte) render_screen_original::x#2 ← ++ (byte) render_screen_original::x#5 -- vbuz1=_inc_vbuz1 + //SEG1190 [538] (byte) render_screen_original::x#2 ← ++ (byte) render_screen_original::x#5 -- vbuz1=_inc_vbuz1 inc x - //SEG1115 [510] if((byte) render_screen_original::x#2!=(byte/signed byte/word/signed word/dword/signed dword) 36) goto render_screen_original::@3 -- vbuz1_neq_vbuc1_then_la1 + //SEG1191 [539] 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 - //SEG1116 [511] phi from render_screen_original::@3 render_screen_original::@4 to render_screen_original::@4 [phi:render_screen_original::@3/render_screen_original::@4->render_screen_original::@4] + //SEG1192 [540] 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: - //SEG1117 [511] phi (byte) render_screen_original::x#6 = (byte) render_screen_original::x#2 [phi:render_screen_original::@3/render_screen_original::@4->render_screen_original::@4#0] -- register_copy - //SEG1118 [511] phi (byte*) render_screen_original::cols#6 = (byte*) render_screen_original::cols#2 [phi:render_screen_original::@3/render_screen_original::@4->render_screen_original::@4#1] -- register_copy - //SEG1119 [511] phi (byte*) render_screen_original::screen#7 = (byte*) render_screen_original::screen#3 [phi:render_screen_original::@3/render_screen_original::@4->render_screen_original::@4#2] -- register_copy + //SEG1193 [540] 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 + //SEG1194 [540] 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 + //SEG1195 [540] 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 - //SEG1120 render_screen_original::@4 + //SEG1196 render_screen_original::@4 b4: - //SEG1121 [512] *((byte*) render_screen_original::screen#7) ← (const byte) render_screen_original::SPACE#0 -- _deref_pbuz1=vbuc1 + //SEG1197 [541] *((byte*) render_screen_original::screen#7) ← (const byte) render_screen_original::SPACE#0 -- _deref_pbuz1=vbuc1 lda #SPACE ldy #0 sta (screen),y - //SEG1122 [513] (byte*) render_screen_original::screen#10 ← ++ (byte*) render_screen_original::screen#7 -- pbuz1=_inc_pbuz1 + //SEG1198 [542] (byte*) render_screen_original::screen#10 ← ++ (byte*) render_screen_original::screen#7 -- pbuz1=_inc_pbuz1 inc screen bne !+ inc screen+1 !: - //SEG1123 [514] *((byte*) render_screen_original::cols#6) ← (const byte) BLACK#0 -- _deref_pbuz1=vbuc1 + //SEG1199 [543] *((byte*) render_screen_original::cols#6) ← (const byte) BLACK#0 -- _deref_pbuz1=vbuc1 lda #BLACK ldy #0 sta (cols),y - //SEG1124 [515] (byte*) render_screen_original::cols#3 ← ++ (byte*) render_screen_original::cols#6 -- pbuz1=_inc_pbuz1 + //SEG1200 [544] (byte*) render_screen_original::cols#3 ← ++ (byte*) render_screen_original::cols#6 -- pbuz1=_inc_pbuz1 inc cols bne !+ inc cols+1 !: - //SEG1125 [516] (byte) render_screen_original::x#3 ← ++ (byte) render_screen_original::x#6 -- vbuz1=_inc_vbuz1 + //SEG1201 [545] (byte) render_screen_original::x#3 ← ++ (byte) render_screen_original::x#6 -- vbuz1=_inc_vbuz1 inc x - //SEG1126 [517] if((byte) render_screen_original::x#3!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto render_screen_original::@4 -- vbuz1_neq_vbuc1_then_la1 + //SEG1202 [546] 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 - //SEG1127 render_screen_original::@7 + //SEG1203 render_screen_original::@7 b7: - //SEG1128 [518] (byte) render_screen_original::y#1 ← ++ (byte) render_screen_original::y#6 -- vbuz1=_inc_vbuz1 + //SEG1204 [547] (byte) render_screen_original::y#1 ← ++ (byte) render_screen_original::y#6 -- vbuz1=_inc_vbuz1 inc y - //SEG1129 [519] if((byte) render_screen_original::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto render_screen_original::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG1205 [548] 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 - //SEG1130 render_screen_original::@return + //SEG1206 render_screen_original::@return breturn: - //SEG1131 [520] return + //SEG1207 [549] return rts } -//SEG1132 sid_rnd_init +//SEG1208 sid_rnd_init sid_rnd_init: { - //SEG1133 [521] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 -- _deref_pwuc1=vwuc2 + //SEG1209 [550] *((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 - //SEG1134 [522] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 -- _deref_pbuc1=vbuc2 + //SEG1210 [551] *((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 - //SEG1135 sid_rnd_init::@return + //SEG1211 sid_rnd_init::@return breturn: - //SEG1136 [523] return + //SEG1212 [552] return rts } -//SEG1137 sprites_irq +//SEG1213 sprites_irq sprites_irq: { .const toSpritePtr2_return = PLAYFIELD_SPRITES>>6 - .label _0 = $d5 - .label ypos = $d4 - .label raster_sprite_gfx_modify = $d6 - .label ptr = $d7 - .label ptr_1 = $e2 - .label ptr_2 = $e3 - .label ptr_3 = $d8 - .label ptr_4 = $d9 - //SEG1138 entry interrupt(HARDWARE_CLOBBER) + .label _0 = $e1 + .label ypos = $e0 + .label raster_sprite_gfx_modify = $e2 + .label ptr = $e3 + .label ptr_1 = $ee + .label ptr_2 = $ef + .label ptr_3 = $e4 + .label ptr_4 = $e5 + //SEG1214 entry interrupt(HARDWARE_CLOBBER) sta rega+1 stx regx+1 sty regy+1 - //SEG1139 asm { cld } + //SEG1215 asm { cld } cld - //SEG1140 [525] (byte) sprites_irq::ypos#0 ← (byte) irq_sprite_ypos#0 -- vbuz1=vbuz2 + //SEG1216 [554] (byte) sprites_irq::ypos#0 ← (byte) irq_sprite_ypos#0 -- vbuz1=vbuz2 lda irq_sprite_ypos sta ypos - //SEG1141 [526] *((const byte*) SPRITES_YPOS#0) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuz1 + //SEG1217 [555] *((const byte*) SPRITES_YPOS#0) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuz1 lda ypos sta SPRITES_YPOS - //SEG1142 [527] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuz1 + //SEG1218 [556] *((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 - //SEG1143 [528] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuz1 + //SEG1219 [557] *((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 - //SEG1144 [529] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuz1 + //SEG1220 [558] *((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 - //SEG1145 [530] (byte/signed word/word/dword/signed dword~) sprites_irq::$0 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_plus_1 + //SEG1221 [559] (byte/signed word/word/dword/signed dword~) sprites_irq::$0 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_plus_1 ldy irq_raster_next iny sty _0 - //SEG1146 [531] (byte) sprites_irq::raster_sprite_gfx_modify#0 ← (byte/signed word/word/dword/signed dword~) sprites_irq::$0 -- vbuz1=vbuz2 + //SEG1222 [560] (byte) sprites_irq::raster_sprite_gfx_modify#0 ← (byte/signed word/word/dword/signed dword~) sprites_irq::$0 -- vbuz1=vbuz2 lda _0 sta raster_sprite_gfx_modify jmp b1 - //SEG1147 sprites_irq::@1 + //SEG1223 sprites_irq::@1 b1: - //SEG1148 [532] if(*((const byte*) RASTER#0)<(byte) sprites_irq::raster_sprite_gfx_modify#0) goto sprites_irq::@1 -- _deref_pbuc1_lt_vbuz1_then_la1 + //SEG1224 [561] if(*((const byte*) RASTER#0)<(byte) sprites_irq::raster_sprite_gfx_modify#0) goto sprites_irq::@1 -- _deref_pbuc1_lt_vbuz1_then_la1 lda RASTER cmp raster_sprite_gfx_modify bcc b1 jmp b8 - //SEG1149 sprites_irq::@8 + //SEG1225 sprites_irq::@8 b8: - //SEG1150 [533] (byte) sprites_irq::ptr#0 ← (byte) irq_sprite_ptr#0 -- vbuz1=vbuz2 + //SEG1226 [562] (byte) sprites_irq::ptr#0 ← (byte) irq_sprite_ptr#0 -- vbuz1=vbuz2 lda irq_sprite_ptr sta ptr - //SEG1151 [534] if((byte) render_screen_showing#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sprites_irq::@2 -- vbuz1_eq_0_then_la1 + //SEG1227 [563] if((byte) render_screen_showing#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sprites_irq::@2 -- vbuz1_eq_0_then_la1 lda render_screen_showing cmp #0 beq b2 jmp b9 - //SEG1152 sprites_irq::@9 + //SEG1228 sprites_irq::@9 b9: - //SEG1153 [535] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0) ← (byte) sprites_irq::ptr#0 -- _deref_pbuc1=vbuz1 + //SEG1229 [564] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0) ← (byte) sprites_irq::ptr#0 -- _deref_pbuc1=vbuz1 lda ptr sta PLAYFIELD_SPRITE_PTRS_2 - //SEG1154 [536] (byte) sprites_irq::ptr#3 ← ++ (byte) sprites_irq::ptr#0 -- vbuz1=_inc_vbuz2 + //SEG1230 [565] (byte) sprites_irq::ptr#3 ← ++ (byte) sprites_irq::ptr#0 -- vbuz1=_inc_vbuz2 ldy ptr iny sty ptr_3 - //SEG1155 [537] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) sprites_irq::ptr#3 -- _deref_pbuc1=vbuz1 + //SEG1231 [566] *((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 - //SEG1156 [538] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ptr#3 -- _deref_pbuc1=vbuz1 + //SEG1232 [567] *((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 - //SEG1157 [539] (byte) sprites_irq::ptr#4 ← ++ (byte) sprites_irq::ptr#3 -- vbuz1=_inc_vbuz2 + //SEG1233 [568] (byte) sprites_irq::ptr#4 ← ++ (byte) sprites_irq::ptr#3 -- vbuz1=_inc_vbuz2 ldy ptr_3 iny sty ptr_4 - //SEG1158 [540] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte) sprites_irq::ptr#4 -- _deref_pbuc1=vbuz1 + //SEG1234 [569] *((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 - //SEG1159 sprites_irq::@3 + //SEG1235 sprites_irq::@3 b3: - //SEG1160 [541] (byte) irq_cnt#1 ← ++ (byte) irq_cnt#0 -- vbuz1=_inc_vbuz2 + //SEG1236 [570] (byte) irq_cnt#1 ← ++ (byte) irq_cnt#0 -- vbuz1=_inc_vbuz2 ldy irq_cnt iny sty irq_cnt_1 - //SEG1161 [542] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 9) goto sprites_irq::@4 -- vbuz1_eq_vbuc1_then_la1 + //SEG1237 [571] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 9) goto sprites_irq::@4 -- vbuz1_eq_vbuc1_then_la1 lda irq_cnt_1 cmp #9 beq b4 jmp b11 - //SEG1162 sprites_irq::@11 + //SEG1238 sprites_irq::@11 b11: - //SEG1163 [543] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto sprites_irq::@5 -- vbuz1_eq_vbuc1_then_la1 + //SEG1239 [572] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto sprites_irq::@5 -- vbuz1_eq_vbuc1_then_la1 lda irq_cnt_1 cmp #$a beq b5 jmp b12 - //SEG1164 sprites_irq::@12 + //SEG1240 sprites_irq::@12 b12: - //SEG1165 [544] (byte) irq_raster_next#3 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 20 -- vbuz1=vbuz2_plus_vbuc1 + //SEG1241 [573] (byte) irq_raster_next#3 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 20 -- vbuz1=vbuz2_plus_vbuc1 lda #$14 clc adc irq_raster_next sta irq_raster_next_3 - //SEG1166 [545] (byte) irq_sprite_ypos#3 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuz1=vbuz2_plus_vbuc1 + //SEG1242 [574] (byte) irq_sprite_ypos#3 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuz1=vbuz2_plus_vbuc1 lda #$15 clc adc irq_sprite_ypos sta irq_sprite_ypos_3 - //SEG1167 [546] (byte) irq_sprite_ptr#3 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 -- vbuz1=vbuz2_plus_vbuc1 + //SEG1243 [575] (byte) irq_sprite_ptr#3 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 -- vbuz1=vbuz2_plus_vbuc1 lda #3 clc adc irq_sprite_ptr sta irq_sprite_ptr_3 - //SEG1168 [547] phi from sprites_irq::@12 sprites_irq::@15 sprites_irq::@5 to sprites_irq::@7 [phi:sprites_irq::@12/sprites_irq::@15/sprites_irq::@5->sprites_irq::@7] + //SEG1244 [576] phi from sprites_irq::@12 sprites_irq::@15 sprites_irq::@5 to sprites_irq::@7 [phi:sprites_irq::@12/sprites_irq::@15/sprites_irq::@5->sprites_irq::@7] b7_from_b12: b7_from_b15: b7_from_b5: - //SEG1169 [547] phi (byte) irq_raster_next#4 = (byte) irq_raster_next#3 [phi:sprites_irq::@12/sprites_irq::@15/sprites_irq::@5->sprites_irq::@7#0] -- register_copy + //SEG1245 [576] phi (byte) irq_raster_next#4 = (byte) irq_raster_next#3 [phi:sprites_irq::@12/sprites_irq::@15/sprites_irq::@5->sprites_irq::@7#0] -- register_copy jmp b7 - //SEG1170 sprites_irq::@7 + //SEG1246 sprites_irq::@7 b7: - //SEG1171 [548] *((const byte*) RASTER#0) ← (byte) irq_raster_next#4 -- _deref_pbuc1=vbuz1 + //SEG1247 [577] *((const byte*) RASTER#0) ← (byte) irq_raster_next#4 -- _deref_pbuc1=vbuz1 lda irq_raster_next_4 sta RASTER - //SEG1172 [549] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 + //SEG1248 [578] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 lda #IRQ_RASTER sta IRQ_STATUS jmp breturn - //SEG1173 sprites_irq::@return + //SEG1249 sprites_irq::@return breturn: - //SEG1174 [550] return - exit interrupt(HARDWARE_CLOBBER) + //SEG1250 [579] return - exit interrupt(HARDWARE_CLOBBER) rega: lda #00 regx: @@ -15498,67 +16497,67 @@ sprites_irq: { regy: ldy #00 rti - //SEG1175 sprites_irq::@5 + //SEG1251 sprites_irq::@5 b5: - //SEG1176 [551] (byte) irq_cnt#2 ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- vbuz1=vbuc1 + //SEG1252 [580] (byte) irq_cnt#2 ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- vbuz1=vbuc1 lda #0 sta irq_cnt_2 - //SEG1177 [552] (byte) irq_raster_next#2 ← (const byte) IRQ_RASTER_FIRST#0 -- vbuz1=vbuc1 + //SEG1253 [581] (byte) irq_raster_next#2 ← (const byte) IRQ_RASTER_FIRST#0 -- vbuz1=vbuc1 lda #IRQ_RASTER_FIRST sta irq_raster_next_2 - //SEG1178 [553] (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuz1=vbuz2_plus_vbuc1 + //SEG1254 [582] (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 - //SEG1179 [554] (byte) irq_sprite_ptr#2 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 -- vbuz1=vbuz2_plus_vbuc1 + //SEG1255 [583] (byte) irq_sprite_ptr#2 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 -- vbuz1=vbuz2_plus_vbuc1 lda #3 clc adc irq_sprite_ptr sta irq_sprite_ptr_2 jmp b7_from_b5 - //SEG1180 sprites_irq::@4 + //SEG1256 sprites_irq::@4 b4: - //SEG1181 [555] (byte) irq_raster_next#1 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuz1=vbuz2_plus_vbuc1 + //SEG1257 [584] (byte) irq_raster_next#1 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuz1=vbuz2_plus_vbuc1 lda #$15 clc adc irq_raster_next sta irq_raster_next_1 - //SEG1182 [556] (byte) irq_sprite_ypos#1 ← (const byte) SPRITES_FIRST_YPOS#0 -- vbuz1=vbuc1 + //SEG1258 [585] (byte) irq_sprite_ypos#1 ← (const byte) SPRITES_FIRST_YPOS#0 -- vbuz1=vbuc1 lda #SPRITES_FIRST_YPOS sta irq_sprite_ypos_1 - //SEG1183 [557] phi from sprites_irq::@4 to sprites_irq::toSpritePtr2 [phi:sprites_irq::@4->sprites_irq::toSpritePtr2] + //SEG1259 [586] phi from sprites_irq::@4 to sprites_irq::toSpritePtr2 [phi:sprites_irq::@4->sprites_irq::toSpritePtr2] toSpritePtr2_from_b4: jmp toSpritePtr2 - //SEG1184 sprites_irq::toSpritePtr2 + //SEG1260 sprites_irq::toSpritePtr2 toSpritePtr2: jmp b15 - //SEG1185 sprites_irq::@15 + //SEG1261 sprites_irq::@15 b15: - //SEG1186 [558] (byte) irq_sprite_ptr#1 ← (const byte) sprites_irq::toSpritePtr2_return#0 -- vbuz1=vbuc1 + //SEG1262 [587] (byte) irq_sprite_ptr#1 ← (const byte) sprites_irq::toSpritePtr2_return#0 -- vbuz1=vbuc1 lda #toSpritePtr2_return sta irq_sprite_ptr_1 jmp b7_from_b15 - //SEG1187 sprites_irq::@2 + //SEG1263 sprites_irq::@2 b2: - //SEG1188 [559] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0) ← (byte) sprites_irq::ptr#0 -- _deref_pbuc1=vbuz1 + //SEG1264 [588] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0) ← (byte) sprites_irq::ptr#0 -- _deref_pbuc1=vbuz1 lda ptr sta PLAYFIELD_SPRITE_PTRS_1 - //SEG1189 [560] (byte) sprites_irq::ptr#1 ← ++ (byte) sprites_irq::ptr#0 -- vbuz1=_inc_vbuz2 + //SEG1265 [589] (byte) sprites_irq::ptr#1 ← ++ (byte) sprites_irq::ptr#0 -- vbuz1=_inc_vbuz2 ldy ptr iny sty ptr_1 - //SEG1190 [561] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) sprites_irq::ptr#1 -- _deref_pbuc1=vbuz1 + //SEG1266 [590] *((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 - //SEG1191 [562] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ptr#1 -- _deref_pbuc1=vbuz1 + //SEG1267 [591] *((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 - //SEG1192 [563] (byte) sprites_irq::ptr#2 ← ++ (byte) sprites_irq::ptr#1 -- vbuz1=_inc_vbuz2 + //SEG1268 [592] (byte) sprites_irq::ptr#2 ← ++ (byte) sprites_irq::ptr#1 -- vbuz1=_inc_vbuz2 ldy ptr_1 iny sty ptr_2 - //SEG1193 [564] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte) sprites_irq::ptr#2 -- _deref_pbuc1=vbuz1 + //SEG1269 [593] *((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 @@ -15581,7 +16580,8 @@ sprites_irq: { PIECE_O: .byte 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0 .align $40 PIECE_I: .byte 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0 - PIECES_CHARS: .byte $64, $65, $a5, $65, $64, $64, $a5 + PIECES_CHARS: .byte $65, $66, $a6, $66, $65, $65, $a6 + PIECES_NEXT_CHARS: .byte $63, $64, $a4, $64, $63, $63, $a4 PIECES_START_X: .byte 4, 4, 4, 4, 4, 4, 4 PIECES_START_Y: .byte 1, 1, 1, 1, 1, 0, 1 MOVEDOWN_SLOW_SPEEDS: .byte $30, $2b, $26, $21, $1c, $17, $12, $d, 8, 6, 5, 5, 5, 4, 4, 4, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 @@ -15635,423 +16635,618 @@ Statement [6] (byte) irq_raster_next#0 ← (const byte) IRQ_RASTER_FIRST#0 [ ] ( Statement [7] (byte) irq_sprite_ypos#0 ← (const byte) SPRITES_FIRST_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 21 [ ] ( ) always clobbers reg byte a Statement [9] (byte) irq_sprite_ptr#0 ← (const byte) toSpritePtr1_return#0+(byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( ) always clobbers reg byte a Statement [10] (byte) irq_cnt#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( ) always clobbers reg byte a -Statement [30] (byte*~) current_piece_gfx#114 ← (byte*) current_piece_gfx#21 [ current_ypos#100 current_ypos#22 current_xpos#124 current_xpos#28 current_piece_gfx#114 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 current_movedown_slow#1 game_over#15 ] ( main:12 [ current_ypos#100 current_ypos#22 current_xpos#124 current_xpos#28 current_piece_gfx#114 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 current_movedown_slow#1 game_over#15 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:15 [ current_ypos#11 current_ypos#100 current_ypos#101 ] -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:48 [ current_ypos#36 current_ypos#25 current_ypos#17 current_ypos#22 current_ypos#2 ] -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:17 [ current_xpos#57 current_xpos#124 current_xpos#125 ] -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:64 [ current_xpos#41 current_xpos#113 current_xpos#17 current_xpos#28 current_xpos#20 current_xpos#24 current_xpos#7 current_xpos#5 ] -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:60 [ current_piece_char#27 current_piece_char#19 current_piece_char#14 current_piece_char#16 ] -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:164 [ play_spawn_current::$3 ] -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:56 [ current_movedown_slow#38 current_movedown_slow#23 current_movedown_slow#14 current_movedown_slow#21 current_movedown_slow#1 current_movedown_slow#69 current_movedown_slow#10 ] -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:66 [ game_over#70 game_over#26 game_over#19 game_over#14 game_over#15 ] -Statement [33] (byte*~) current_piece#88 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) [ current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 current_piece#88 current_movedown_slow#1 game_over#15 ] ( main:12 [ current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 current_piece#88 current_movedown_slow#1 game_over#15 ] ) always clobbers reg byte a -Statement [35] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 keyboard_events_size#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 ] ( main:12 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 keyboard_events_size#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 ] ) always clobbers reg byte a +Statement [32] (byte*~) current_piece_gfx#122 ← (byte*) current_piece_gfx#7 [ current_ypos#108 current_ypos#5 current_xpos#132 current_xpos#102 current_piece_gfx#122 current_piece_gfx#7 current_piece_char#4 play_spawn_current::piece_idx#2 play_spawn_current::$0 current_movedown_slow#1 game_over#52 ] ( main:12 [ current_ypos#108 current_ypos#5 current_xpos#132 current_xpos#102 current_piece_gfx#122 current_piece_gfx#7 current_piece_char#4 play_spawn_current::piece_idx#2 play_spawn_current::$0 current_movedown_slow#1 game_over#52 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:23 [ current_ypos#12 current_ypos#108 current_ypos#109 ] +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:56 [ current_ypos#38 current_ypos#10 current_ypos#18 current_ypos#5 current_ypos#2 ] +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:25 [ current_xpos#58 current_xpos#132 current_xpos#133 ] +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:72 [ current_xpos#43 current_xpos#121 current_xpos#18 current_xpos#102 current_xpos#21 current_xpos#25 current_xpos#7 current_xpos#5 ] +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:68 [ current_piece_char#29 current_piece_char#21 current_piece_char#15 current_piece_char#4 ] +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:74 [ next_piece_idx#17 next_piece_idx#31 next_piece_idx#10 next_piece_idx#16 play_spawn_current::piece_idx#2 play_spawn_current::piece_idx#1 ] +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:176 [ play_spawn_current::$0 ] +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:64 [ current_movedown_slow#38 current_movedown_slow#23 current_movedown_slow#14 current_movedown_slow#21 current_movedown_slow#1 current_movedown_slow#69 current_movedown_slow#10 ] +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:75 [ game_over#65 game_over#28 game_over#10 game_over#15 game_over#52 ] +Statement [37] (byte*~) current_piece#96 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$0) [ current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::piece_idx#2 current_piece#96 current_movedown_slow#1 game_over#52 ] ( main:12 [ current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::piece_idx#2 current_piece#96 current_movedown_slow#1 game_over#52 ] ) always clobbers reg byte a +Statement [39] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 keyboard_events_size#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 ] ( main:12 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 keyboard_events_size#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 ] ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp ZP_BYTE:2 [ render_screen_show#16 render_screen_show#13 ] -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:3 [ render_screen_render#17 render_screen_render#11 ] -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:61 [ current_orientation#36 current_orientation#12 current_orientation#16 current_orientation#19 current_orientation#24 current_orientation#7 ] -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:86 [ keyboard_events_size#10 keyboard_events_size#29 keyboard_events_size#19 keyboard_events_size#16 keyboard_events_size#13 keyboard_events_size#4 keyboard_events_size#30 keyboard_events_size#2 keyboard_events_size#1 ] +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:3 [ render_screen_render#18 render_screen_render#11 ] +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:69 [ current_orientation#38 current_orientation#13 current_orientation#17 current_orientation#20 current_orientation#25 current_orientation#7 ] +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:94 [ 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#16 current_movedown_counter#14 current_movedown_counter#12 ] -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:55 [ level#31 level#18 level#10 level#16 level#20 ] -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:57 [ level_bcd#32 level_bcd#19 level_bcd#11 level_bcd#17 level_bcd#64 level_bcd#21 level_bcd#8 ] -Statement [56] (byte*~) current_piece_gfx#115 ← (byte*) current_piece_gfx#16 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 current_ypos#101 render_screen_render#64 current_xpos#125 current_piece_gfx#115 ] ( main:12 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 current_ypos#101 render_screen_render#64 current_xpos#125 current_piece_gfx#115 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:16 [ render_screen_render#30 render_screen_render#64 ] -Statement [63] (byte) render_screen_render#11 ← (byte) render_screen_render#17 ^ (byte/signed byte/word/signed word/dword/signed dword) 64 [ render_screen_show#16 render_screen_render#11 ] ( main:12::render_screen_swap:62 [ current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_show#16 render_screen_render#11 ] ) always clobbers reg byte a -Statement [64] (byte) render_screen_show#13 ← (byte) render_screen_show#16 ^ (byte/signed byte/word/signed word/dword/signed dword) 64 [ render_screen_show#13 render_screen_render#11 ] ( main:12::render_screen_swap:62 [ current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_show#13 render_screen_render#11 ] ) always clobbers reg byte a -Statement [69] (byte*) render_bcd::screen#0 ← (byte*) render_score::screen#2 [ render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen#0 ] ( main:12::render_score:60 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen#0 ] ) always clobbers reg byte a -Statement [72] (byte*) render_bcd::screen#1 ← (byte*) render_score::screen#2 [ render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen#1 ] ( main:12::render_score:60 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen#1 ] ) always clobbers reg byte a -Statement [75] (byte*) render_bcd::screen#2 ← (byte*) render_score::screen#2 [ render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen#2 ] ( main:12::render_score:60 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen#2 ] ) always clobbers reg byte a -Statement [78] (byte) render_bcd::bcd#3 ← > (word) lines_bcd#15 [ render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#3 ] ( main:12::render_score:60 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#3 ] ) always clobbers reg byte a -Statement [79] (byte*) render_bcd::screen#3 ← (byte*) render_score::screen#2 [ render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#3 render_bcd::screen#3 ] ( main:12::render_score:60 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#3 render_bcd::screen#3 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:63 [ level#31 level#18 level#10 level#16 level#20 ] +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:65 [ level_bcd#32 level_bcd#19 level_bcd#11 level_bcd#17 level_bcd#64 level_bcd#21 level_bcd#8 ] +Statement [60] (byte*~) current_piece_gfx#123 ← (byte*) current_piece_gfx#17 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 current_ypos#109 render_screen_render#69 current_xpos#133 current_piece_gfx#123 ] ( main:12 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 current_ypos#109 render_screen_render#69 current_xpos#133 current_piece_gfx#123 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:24 [ render_screen_render#33 render_screen_render#69 ] +Statement [70] (byte) render_screen_render#11 ← (byte) render_screen_render#18 ^ (byte/signed byte/word/signed word/dword/signed dword) 64 [ render_screen_show#16 render_screen_render#11 ] ( main:12::render_screen_swap:69 [ current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_show#16 render_screen_render#11 ] ) always clobbers reg byte a +Statement [71] (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:69 [ current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_show#13 render_screen_render#11 ] ) always clobbers reg byte a +Statement [76] (byte*) render_bcd::screen#0 ← (byte*) render_score::screen#2 [ render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen#0 ] ( main:12::render_score:67 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen#0 ] ) always clobbers reg byte a +Statement [79] (byte*) render_bcd::screen#1 ← (byte*) render_score::screen#2 [ render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen#1 ] ( main:12::render_score:67 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen#1 ] ) always clobbers reg byte a +Statement [82] (byte*) render_bcd::screen#2 ← (byte*) render_score::screen#2 [ render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen#2 ] ( main:12::render_score:67 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen#2 ] ) always clobbers reg byte a +Statement [85] (byte) render_bcd::bcd#3 ← > (word) lines_bcd#15 [ render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#3 ] ( main:12::render_score:67 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#3 ] ) always clobbers reg byte a +Statement [86] (byte*) render_bcd::screen#3 ← (byte*) render_score::screen#2 [ render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#3 render_bcd::screen#3 ] ( main:12::render_score:67 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 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 [81] (byte) render_bcd::bcd#4 ← < (word) lines_bcd#15 [ render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#4 ] ( main:12::render_score:60 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#4 ] ) always clobbers reg byte a -Statement [82] (byte*) render_bcd::screen#4 ← (byte*) render_score::screen#2 [ render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#4 render_bcd::screen#4 ] ( main:12::render_score:60 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#4 render_bcd::screen#4 ] ) always clobbers reg byte a -Statement [84] (byte*) render_bcd::screen#5 ← (byte*) render_score::screen#2 [ render_screen_render#17 lines_bcd#15 level_bcd#17 render_bcd::screen#5 ] ( main:12::render_score:60 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_bcd::screen#5 ] ) always clobbers reg byte a -Statement [89] (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:60::render_bcd:71 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:60::render_bcd:74 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:60::render_bcd:77 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:60::render_bcd:80 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:60::render_bcd:83 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:60::render_bcd:86 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] ) always clobbers reg byte a +Statement [88] (byte) render_bcd::bcd#4 ← < (word) lines_bcd#15 [ render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#4 ] ( main:12::render_score:67 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#4 ] ) always clobbers reg byte a +Statement [89] (byte*) render_bcd::screen#4 ← (byte*) render_score::screen#2 [ render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#4 render_bcd::screen#4 ] ( main:12::render_score:67 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#4 render_bcd::screen#4 ] ) always clobbers reg byte a +Statement [91] (byte*) render_bcd::screen#5 ← (byte*) render_score::screen#2 [ render_screen_render#18 lines_bcd#15 level_bcd#17 render_bcd::screen#5 ] ( main:12::render_score:67 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_bcd::screen#5 ] ) always clobbers reg byte a +Statement [96] (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:67::render_bcd:78 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:67::render_bcd:81 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:67::render_bcd:84 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:67::render_bcd:87 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:67::render_bcd:90 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:67::render_bcd:93 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 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 [91] (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:60::render_bcd:71 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$3 ] main:12::render_score:60::render_bcd:74 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$3 ] main:12::render_score:60::render_bcd:77 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$3 ] main:12::render_score:60::render_bcd:80 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$3 ] main:12::render_score:60::render_bcd:83 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$3 ] main:12::render_score:60::render_bcd:86 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$3 ] ) always clobbers reg byte a -Statement [92] (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:60::render_bcd:71 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$4 ] main:12::render_score:60::render_bcd:74 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$4 ] main:12::render_score:60::render_bcd:77 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$4 ] main:12::render_score:60::render_bcd:80 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$4 ] main:12::render_score:60::render_bcd:83 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$4 ] main:12::render_score:60::render_bcd:86 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$4 ] ) always clobbers reg byte a -Statement [93] *((byte*) render_bcd::screen_pos#0) ← (byte~) render_bcd::$4 [ render_bcd::bcd#6 render_bcd::screen_pos#0 ] ( main:12::render_score:60::render_bcd:71 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:60::render_bcd:74 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:60::render_bcd:77 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:60::render_bcd:80 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:60::render_bcd:83 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:60::render_bcd:86 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_bcd::bcd#6 render_bcd::screen_pos#0 ] ) always clobbers reg byte y +Statement [98] (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:67::render_bcd:78 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$3 ] main:12::render_score:67::render_bcd:81 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$3 ] main:12::render_score:67::render_bcd:84 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$3 ] main:12::render_score:67::render_bcd:87 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$3 ] main:12::render_score:67::render_bcd:90 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$3 ] main:12::render_score:67::render_bcd:93 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$3 ] ) always clobbers reg byte a +Statement [99] (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:67::render_bcd:78 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$4 ] main:12::render_score:67::render_bcd:81 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$4 ] main:12::render_score:67::render_bcd:84 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$4 ] main:12::render_score:67::render_bcd:87 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$4 ] main:12::render_score:67::render_bcd:90 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$4 ] main:12::render_score:67::render_bcd:93 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$4 ] ) always clobbers reg byte a +Statement [100] *((byte*) render_bcd::screen_pos#0) ← (byte~) render_bcd::$4 [ render_bcd::bcd#6 render_bcd::screen_pos#0 ] ( main:12::render_score:67::render_bcd:78 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:67::render_bcd:81 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:67::render_bcd:84 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:67::render_bcd:87 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:67::render_bcd:90 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:67::render_bcd:93 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 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:56 [ current_movedown_slow#38 current_movedown_slow#23 current_movedown_slow#14 current_movedown_slow#21 current_movedown_slow#1 current_movedown_slow#69 current_movedown_slow#10 ] -Removing always clobbered register reg byte y as potential for zp ZP_BYTE:60 [ current_piece_char#27 current_piece_char#19 current_piece_char#14 current_piece_char#16 ] -Removing always clobbered register reg byte y as potential for zp ZP_BYTE:61 [ current_orientation#36 current_orientation#12 current_orientation#16 current_orientation#19 current_orientation#24 current_orientation#7 ] -Removing always clobbered register reg byte y as potential for zp ZP_BYTE:64 [ current_xpos#41 current_xpos#113 current_xpos#17 current_xpos#28 current_xpos#20 current_xpos#24 current_xpos#7 current_xpos#5 ] -Removing always clobbered register reg byte y as potential for zp ZP_BYTE:48 [ current_ypos#36 current_ypos#25 current_ypos#17 current_ypos#22 current_ypos#2 ] -Removing always clobbered register reg byte y as potential for zp ZP_BYTE:66 [ game_over#70 game_over#26 game_over#19 game_over#14 game_over#15 ] -Removing always clobbered register reg byte y as potential for zp ZP_BYTE:86 [ keyboard_events_size#10 keyboard_events_size#29 keyboard_events_size#19 keyboard_events_size#16 keyboard_events_size#13 keyboard_events_size#4 keyboard_events_size#30 keyboard_events_size#2 keyboard_events_size#1 ] +Removing always clobbered register reg byte y as potential for zp ZP_BYTE:64 [ current_movedown_slow#38 current_movedown_slow#23 current_movedown_slow#14 current_movedown_slow#21 current_movedown_slow#1 current_movedown_slow#69 current_movedown_slow#10 ] +Removing always clobbered register reg byte y as potential for zp ZP_BYTE:68 [ current_piece_char#29 current_piece_char#21 current_piece_char#15 current_piece_char#4 ] +Removing always clobbered register reg byte y as potential for zp ZP_BYTE:69 [ current_orientation#38 current_orientation#13 current_orientation#17 current_orientation#20 current_orientation#25 current_orientation#7 ] +Removing always clobbered register reg byte y as potential for zp ZP_BYTE:72 [ current_xpos#43 current_xpos#121 current_xpos#18 current_xpos#102 current_xpos#21 current_xpos#25 current_xpos#7 current_xpos#5 ] +Removing always clobbered register reg byte y as potential for zp ZP_BYTE:56 [ current_ypos#38 current_ypos#10 current_ypos#18 current_ypos#5 current_ypos#2 ] +Removing always clobbered register reg byte y as potential for zp ZP_BYTE:75 [ game_over#65 game_over#28 game_over#10 game_over#15 game_over#52 ] +Removing always clobbered register reg byte y as potential for zp ZP_BYTE:74 [ next_piece_idx#17 next_piece_idx#31 next_piece_idx#10 next_piece_idx#16 play_spawn_current::piece_idx#2 play_spawn_current::piece_idx#1 ] +Removing always clobbered register reg byte y as potential for zp ZP_BYTE:94 [ 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#16 current_movedown_counter#14 current_movedown_counter#12 ] -Removing always clobbered register reg byte y as potential for zp ZP_BYTE:55 [ level#31 level#18 level#10 level#16 level#20 ] -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:57 [ level_bcd#32 level_bcd#19 level_bcd#11 level_bcd#17 level_bcd#64 level_bcd#21 level_bcd#8 ] +Removing always clobbered register reg byte y as potential for zp ZP_BYTE:63 [ level#31 level#18 level#10 level#16 level#20 ] +Removing always clobbered register reg byte y as potential for zp ZP_BYTE:3 [ render_screen_render#18 render_screen_render#11 ] +Removing always clobbered register reg byte y as potential for zp ZP_BYTE:65 [ level_bcd#32 level_bcd#19 level_bcd#11 level_bcd#17 level_bcd#64 level_bcd#21 level_bcd#8 ] 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 [96] (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:60::render_bcd:71 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$5 ] main:12::render_score:60::render_bcd:74 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$5 ] main:12::render_score:60::render_bcd:77 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$5 ] main:12::render_score:60::render_bcd:80 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$5 ] main:12::render_score:60::render_bcd:83 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$5 ] main:12::render_score:60::render_bcd:86 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_bcd::screen_pos#3 render_bcd::$5 ] ) always clobbers reg byte a -Statement [97] (byte~) render_bcd::$6 ← (const byte) render_bcd::ZERO_CHAR#0 + (byte~) render_bcd::$5 [ render_bcd::screen_pos#3 render_bcd::$6 ] ( main:12::render_score:60::render_bcd:71 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$6 ] main:12::render_score:60::render_bcd:74 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$6 ] main:12::render_score:60::render_bcd:77 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$6 ] main:12::render_score:60::render_bcd:80 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$6 ] main:12::render_score:60::render_bcd:83 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$6 ] main:12::render_score:60::render_bcd:86 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_bcd::screen_pos#3 render_bcd::$6 ] ) always clobbers reg byte a -Statement [98] *((byte*) render_bcd::screen_pos#3) ← (byte~) render_bcd::$6 [ render_bcd::screen_pos#3 ] ( main:12::render_score:60::render_bcd:71 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen_pos#3 ] main:12::render_score:60::render_bcd:74 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen_pos#3 ] main:12::render_score:60::render_bcd:77 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen_pos#3 ] main:12::render_score:60::render_bcd:80 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen_pos#3 ] main:12::render_score:60::render_bcd:83 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen_pos#3 ] main:12::render_score:60::render_bcd:86 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_bcd::screen_pos#3 ] ) always clobbers reg byte y -Statement [99] (byte*) render_bcd::screen_pos#1 ← ++ (byte*) render_bcd::screen_pos#3 [ ] ( main:12::render_score:60::render_bcd:71 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 ] main:12::render_score:60::render_bcd:74 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 ] main:12::render_score:60::render_bcd:77 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 ] main:12::render_score:60::render_bcd:80 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 ] main:12::render_score:60::render_bcd:83 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 ] main:12::render_score:60::render_bcd:86 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 ] ) always clobbers reg byte a -Statement [102] (byte) render_moving::ypos2#0 ← (byte) current_ypos#11 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ render_screen_render#30 current_xpos#57 current_piece_gfx#62 current_piece_char#64 render_moving::ypos2#0 ] ( main:12::render_moving:32 [ current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 current_movedown_slow#1 game_over#15 render_screen_render#30 current_xpos#57 current_piece_gfx#62 current_piece_char#64 render_moving::ypos2#0 ] main:12::render_moving:58 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_render#30 current_xpos#57 current_piece_gfx#62 current_piece_char#64 render_moving::ypos2#0 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:20 [ current_piece_char#64 current_piece_char#102 current_piece_char#103 ] -Statement [105] (byte) render_moving::i#1 ← (byte) render_moving::i#3 + (byte/signed byte/word/signed word/dword/signed dword) 4 [ render_screen_render#30 current_xpos#57 current_piece_gfx#62 current_piece_char#64 render_moving::ypos2#2 render_moving::l#4 render_moving::i#1 ] ( main:12::render_moving:32 [ current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 current_movedown_slow#1 game_over#15 render_screen_render#30 current_xpos#57 current_piece_gfx#62 current_piece_char#64 render_moving::ypos2#2 render_moving::l#4 render_moving::i#1 ] main:12::render_moving:58 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_render#30 current_xpos#57 current_piece_gfx#62 current_piece_char#64 render_moving::ypos2#2 render_moving::l#4 render_moving::i#1 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:21 [ render_moving::ypos2#2 render_moving::ypos2#0 render_moving::ypos2#1 ] -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:22 [ render_moving::l#4 render_moving::l#1 ] -Statement [111] (byte~) render_moving::$2 ← (byte) render_screen_render#30 + (byte) render_moving::ypos2#2 [ render_screen_render#30 current_xpos#57 current_piece_gfx#62 current_piece_char#64 render_moving::ypos2#2 render_moving::i#3 render_moving::l#4 render_moving::$2 ] ( main:12::render_moving:32 [ current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 current_movedown_slow#1 game_over#15 render_screen_render#30 current_xpos#57 current_piece_gfx#62 current_piece_char#64 render_moving::ypos2#2 render_moving::i#3 render_moving::l#4 render_moving::$2 ] main:12::render_moving:58 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_render#30 current_xpos#57 current_piece_gfx#62 current_piece_char#64 render_moving::ypos2#2 render_moving::i#3 render_moving::l#4 render_moving::$2 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:23 [ render_moving::i#4 render_moving::i#3 render_moving::i#8 render_moving::i#2 render_moving::i#1 ] -Statement [112] (byte*) render_moving::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_moving::$2) [ render_screen_render#30 current_xpos#57 current_piece_gfx#62 current_piece_char#64 render_moving::ypos2#2 render_moving::i#3 render_moving::l#4 render_moving::screen_line#0 ] ( main:12::render_moving:32 [ current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 current_movedown_slow#1 game_over#15 render_screen_render#30 current_xpos#57 current_piece_gfx#62 current_piece_char#64 render_moving::ypos2#2 render_moving::i#3 render_moving::l#4 render_moving::screen_line#0 ] main:12::render_moving:58 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_render#30 current_xpos#57 current_piece_gfx#62 current_piece_char#64 render_moving::ypos2#2 render_moving::i#3 render_moving::l#4 render_moving::screen_line#0 ] ) always clobbers reg byte a -Statement [115] (byte) render_moving::current_cell#0 ← *((byte*) current_piece_gfx#62 + (byte) render_moving::i#4) [ render_screen_render#30 current_xpos#57 current_piece_gfx#62 current_piece_char#64 render_moving::ypos2#2 render_moving::l#4 render_moving::screen_line#0 render_moving::i#4 render_moving::xpos#2 render_moving::c#2 render_moving::current_cell#0 ] ( main:12::render_moving:32 [ current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 current_movedown_slow#1 game_over#15 render_screen_render#30 current_xpos#57 current_piece_gfx#62 current_piece_char#64 render_moving::ypos2#2 render_moving::l#4 render_moving::screen_line#0 render_moving::i#4 render_moving::xpos#2 render_moving::c#2 render_moving::current_cell#0 ] main:12::render_moving:58 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_render#30 current_xpos#57 current_piece_gfx#62 current_piece_char#64 render_moving::ypos2#2 render_moving::l#4 render_moving::screen_line#0 render_moving::i#4 render_moving::xpos#2 render_moving::c#2 render_moving::current_cell#0 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:24 [ render_moving::xpos#2 render_moving::xpos#0 render_moving::xpos#1 ] -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:25 [ render_moving::c#2 render_moving::c#1 ] -Statement [118] *((byte*) render_moving::screen_line#0 + (byte) render_moving::xpos#2) ← (byte) current_piece_char#64 [ render_screen_render#30 current_xpos#57 current_piece_gfx#62 current_piece_char#64 render_moving::ypos2#2 render_moving::l#4 render_moving::i#2 render_moving::screen_line#0 render_moving::xpos#2 render_moving::c#2 ] ( main:12::render_moving:32 [ current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 current_movedown_slow#1 game_over#15 render_screen_render#30 current_xpos#57 current_piece_gfx#62 current_piece_char#64 render_moving::ypos2#2 render_moving::l#4 render_moving::i#2 render_moving::screen_line#0 render_moving::xpos#2 render_moving::c#2 ] main:12::render_moving:58 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_render#30 current_xpos#57 current_piece_gfx#62 current_piece_char#64 render_moving::ypos2#2 render_moving::l#4 render_moving::i#2 render_moving::screen_line#0 render_moving::xpos#2 render_moving::c#2 ] ) always clobbers reg byte a -Statement [124] (byte~) render_playfield::$2 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ render_screen_render#21 render_playfield::l#2 render_playfield::i#3 render_playfield::$2 ] ( main:12::render_playfield:27 [ current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 current_movedown_slow#1 game_over#15 render_screen_render#21 render_playfield::l#2 render_playfield::i#3 render_playfield::$2 ] main:12::render_playfield:52 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_render#21 render_playfield::l#2 render_playfield::i#3 render_playfield::$2 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:26 [ render_screen_render#21 render_screen_render#65 ] -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:27 [ render_playfield::l#2 render_playfield::l#1 ] -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:28 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] -Statement [125] (byte~) render_playfield::$3 ← (byte) render_screen_render#21 + (byte~) render_playfield::$2 [ render_screen_render#21 render_playfield::l#2 render_playfield::i#3 render_playfield::$3 ] ( main:12::render_playfield:27 [ current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 current_movedown_slow#1 game_over#15 render_screen_render#21 render_playfield::l#2 render_playfield::i#3 render_playfield::$3 ] main:12::render_playfield:52 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_render#21 render_playfield::l#2 render_playfield::i#3 render_playfield::$3 ] ) always clobbers reg byte a -Statement [126] (byte*) render_playfield::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_playfield::$3) [ render_screen_render#21 render_playfield::l#2 render_playfield::i#3 render_playfield::screen_line#0 ] ( main:12::render_playfield:27 [ current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 current_movedown_slow#1 game_over#15 render_screen_render#21 render_playfield::l#2 render_playfield::i#3 render_playfield::screen_line#0 ] main:12::render_playfield:52 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_render#21 render_playfield::l#2 render_playfield::i#3 render_playfield::screen_line#0 ] ) always clobbers reg byte a -Statement [128] *((byte*) render_playfield::screen_line#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2) [ render_screen_render#21 render_playfield::l#2 render_playfield::i#2 render_playfield::screen_line#2 render_playfield::c#2 ] ( main:12::render_playfield:27 [ current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 current_movedown_slow#1 game_over#15 render_screen_render#21 render_playfield::l#2 render_playfield::i#2 render_playfield::screen_line#2 render_playfield::c#2 ] main:12::render_playfield:52 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_render#21 render_playfield::l#2 render_playfield::i#2 render_playfield::screen_line#2 render_playfield::c#2 ] ) always clobbers reg byte a reg byte y -Removing always clobbered register reg byte y as potential for zp ZP_BYTE:164 [ play_spawn_current::$3 ] -Removing always clobbered register reg byte y as potential for zp ZP_BYTE:26 [ render_screen_render#21 render_screen_render#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 [140] (byte) play_movement::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) play_movement::$0 [ current_movedown_slow#21 current_piece#14 current_piece_char#14 current_ypos#17 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_orientation#19 current_piece_gfx#18 current_xpos#20 ] ( main:12::play_movement:47 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_ypos#17 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_orientation#19 current_piece_gfx#18 current_xpos#20 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:118 [ play_movement::key_event#0 ] -Statement [148] (byte) play_movement::render#2 ← (byte) play_movement::render#1 + (byte~) play_movement::$3 [ current_movedown_slow#21 current_piece#14 current_piece_char#14 current_ypos#17 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_movement::render#2 ] ( main:12::play_movement:47 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_ypos#17 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_movement::render#2 ] ) always clobbers reg byte a -Statement [153] (byte) play_movement::return#0 ← (byte) play_movement::render#2 + (byte~) play_movement::$4 [ current_movedown_slow#21 current_piece#14 current_piece_char#14 current_ypos#17 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::return#0 current_orientation#24 current_piece_gfx#19 current_xpos#24 ] ( main:12::play_movement:47 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_ypos#17 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::return#0 current_orientation#24 current_piece_gfx#19 current_xpos#24 ] ) always clobbers reg byte a -Statement [158] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#19 + (byte/signed byte/word/signed word/dword/signed dword) 16 [ current_piece#14 current_ypos#17 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_move_rotate::$2 ] ( main:12::play_movement:47::play_move_rotate:150 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#14 current_ypos#17 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_move_rotate::$2 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:139 [ play_movement::render#2 ] -Statement [159] (byte) play_move_rotate::orientation#2 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 & (byte/signed byte/word/signed word/dword/signed dword) 63 [ current_piece#14 current_ypos#17 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_move_rotate::orientation#2 ] ( main:12::play_movement:47::play_move_rotate:150 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#14 current_ypos#17 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_move_rotate::orientation#2 ] ) always clobbers reg byte a -Statement [164] (byte*~) current_piece#93 ← (byte*) current_piece#14 [ current_piece#14 current_ypos#17 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_move_rotate::orientation#3 play_collision::xpos#3 play_collision::ypos#3 play_collision::orientation#3 current_piece#93 ] ( main:12::play_movement:47::play_move_rotate:150 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#14 current_ypos#17 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_move_rotate::orientation#3 play_collision::xpos#3 play_collision::ypos#3 play_collision::orientation#3 current_piece#93 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:34 [ play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:39 [ play_collision::xpos#6 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 play_collision::xpos#4 ] -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:38 [ play_collision::ypos#5 play_collision::ypos#0 play_collision::ypos#1 play_collision::ypos#2 play_collision::ypos#3 play_collision::ypos#4 ] -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:37 [ play_collision::orientation#5 play_collision::orientation#0 play_collision::orientation#1 play_collision::orientation#2 play_collision::orientation#3 ] -Statement [170] (byte*) current_piece_gfx#6 ← (byte*) current_piece#14 + (byte) current_orientation#7 [ current_piece#14 current_ypos#17 current_xpos#24 current_orientation#7 current_piece_gfx#6 ] ( main:12::play_movement:47::play_move_rotate:150 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#14 current_ypos#17 current_xpos#24 current_orientation#7 current_piece_gfx#6 ] ) always clobbers reg byte a -Statement [171] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#19 - (byte/signed byte/word/signed word/dword/signed dword) 16 [ current_piece#14 current_ypos#17 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_move_rotate::$4 ] ( main:12::play_movement:47::play_move_rotate:150 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#14 current_ypos#17 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_move_rotate::$4 ] ) always clobbers reg byte a -Statement [172] (byte) play_move_rotate::orientation#1 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 & (byte/signed byte/word/signed word/dword/signed dword) 63 [ current_piece#14 current_ypos#17 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_move_rotate::orientation#1 ] ( main:12::play_movement:47::play_move_rotate:150 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#14 current_ypos#17 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_move_rotate::orientation#1 ] ) always clobbers reg byte a -Statement [174] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#16 + (byte) play_collision::orientation#5 [ play_collision::ypos#5 play_collision::xpos#6 play_collision::piece_gfx#0 ] ( main:12::play_movement:47::play_move_rotate:150::play_collision:165 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#14 current_ypos#17 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_move_rotate::orientation#3 play_collision::ypos#5 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:12::play_movement:47::play_move_leftright:145::play_collision:203 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#18 current_piece#14 current_ypos#17 current_orientation#19 current_xpos#20 play_collision::ypos#5 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:12::play_movement:47::play_move_leftright:145::play_collision:214 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#18 current_piece#14 current_ypos#17 current_orientation#19 current_xpos#20 play_collision::ypos#5 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:12::play_movement:47::play_move_down:137::play_collision:238 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_collision::ypos#5 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:12::play_spawn_current:25::play_collision:268 [ current_movedown_slow#1 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_collision::ypos#5 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:12::play_movement:47::play_move_down:137::play_spawn_current:251::play_collision:268 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_collision::ypos#5 play_collision::xpos#6 play_collision::piece_gfx#0 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:32 [ play_movement::return#2 play_movement::render#1 play_movement::return#0 ] -Statement [175] (byte) play_collision::ypos2#0 ← (byte) play_collision::ypos#5 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#0 ] ( main:12::play_movement:47::play_move_rotate:150::play_collision:165 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#14 current_ypos#17 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_move_rotate::orientation#3 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:12::play_movement:47::play_move_leftright:145::play_collision:203 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#18 current_piece#14 current_ypos#17 current_orientation#19 current_xpos#20 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:12::play_movement:47::play_move_leftright:145::play_collision:214 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#18 current_piece#14 current_ypos#17 current_orientation#19 current_xpos#20 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:12::play_movement:47::play_move_down:137::play_collision:238 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:12::play_spawn_current:25::play_collision:268 [ current_movedown_slow#1 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:12::play_movement:47::play_move_down:137::play_spawn_current:251::play_collision:268 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#0 ] ) always clobbers reg byte a -Statement [177] (byte*) play_collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_collision::ypos2#2) [ play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] ( main:12::play_movement:47::play_move_rotate:150::play_collision:165 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#14 current_ypos#17 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_move_rotate::orientation#3 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:12::play_movement:47::play_move_leftright:145::play_collision:203 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#18 current_piece#14 current_ypos#17 current_orientation#19 current_xpos#20 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:12::play_movement:47::play_move_leftright:145::play_collision:214 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#18 current_piece#14 current_ypos#17 current_orientation#19 current_xpos#20 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:12::play_movement:47::play_move_down:137::play_collision:238 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:12::play_spawn_current:25::play_collision:268 [ current_movedown_slow#1 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:12::play_movement:47::play_move_down:137::play_spawn_current:251::play_collision:268 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:40 [ play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 ] -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:42 [ play_collision::i#2 play_collision::i#3 play_collision::i#11 play_collision::i#13 ] -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:41 [ play_collision::l#6 play_collision::l#1 ] -Statement [181] if(*((byte*) play_collision::piece_gfx#0 + (byte) play_collision::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@3 [ play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ( main:12::play_movement:47::play_move_rotate:150::play_collision:165 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#14 current_ypos#17 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_move_rotate::orientation#3 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_movement:47::play_move_leftright:145::play_collision:203 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#18 current_piece#14 current_ypos#17 current_orientation#19 current_xpos#20 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_movement:47::play_move_leftright:145::play_collision:214 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#18 current_piece#14 current_ypos#17 current_orientation#19 current_xpos#20 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_movement:47::play_move_down:137::play_collision:238 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_spawn_current:25::play_collision:268 [ current_movedown_slow#1 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_movement:47::play_move_down:137::play_spawn_current:251::play_collision:268 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:43 [ play_collision::col#2 play_collision::col#9 play_collision::col#1 ] -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:44 [ play_collision::c#2 play_collision::c#1 ] -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:151 [ play_collision::i#1 ] -Statement [185] (byte~) play_collision::$7 ← (byte) play_collision::col#2 & (byte/word/signed word/dword/signed dword) 128 [ play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] ( main:12::play_movement:47::play_move_rotate:150::play_collision:165 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#14 current_ypos#17 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_move_rotate::orientation#3 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_movement:47::play_move_leftright:145::play_collision:203 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#18 current_piece#14 current_ypos#17 current_orientation#19 current_xpos#20 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_movement:47::play_move_leftright:145::play_collision:214 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#18 current_piece#14 current_ypos#17 current_orientation#19 current_xpos#20 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_movement:47::play_move_down:137::play_collision:238 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_spawn_current:25::play_collision:268 [ current_movedown_slow#1 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_movement:47::play_move_down:137::play_spawn_current:251::play_collision:268 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] ) always clobbers reg byte a -Statement [188] if(*((byte*) play_collision::playfield_line#0 + (byte) play_collision::col#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@3 [ play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ( main:12::play_movement:47::play_move_rotate:150::play_collision:165 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#14 current_ypos#17 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_move_rotate::orientation#3 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_movement:47::play_move_leftright:145::play_collision:203 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#18 current_piece#14 current_ypos#17 current_orientation#19 current_xpos#20 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_movement:47::play_move_leftright:145::play_collision:214 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#18 current_piece#14 current_ypos#17 current_orientation#19 current_xpos#20 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_movement:47::play_move_down:137::play_collision:238 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_spawn_current:25::play_collision:268 [ current_movedown_slow#1 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_movement:47::play_move_down:137::play_spawn_current:251::play_collision:268 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ) always clobbers reg byte a -Statement [202] (byte*~) current_piece#92 ← (byte*) current_piece#14 [ current_piece#14 current_ypos#17 current_orientation#19 current_xpos#20 current_piece#92 play_collision::orientation#2 play_collision::ypos#2 play_collision::xpos#2 ] ( main:12::play_movement:47::play_move_leftright:145 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#18 current_piece#14 current_ypos#17 current_orientation#19 current_xpos#20 current_piece#92 play_collision::orientation#2 play_collision::ypos#2 play_collision::xpos#2 ] ) always clobbers reg byte a -Statement [213] (byte*~) current_piece#91 ← (byte*) current_piece#14 [ current_piece#14 current_ypos#17 current_orientation#19 current_xpos#20 current_piece#91 play_collision::orientation#1 play_collision::ypos#1 play_collision::xpos#1 ] ( main:12::play_movement:47::play_move_leftright:145 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#18 current_piece#14 current_ypos#17 current_orientation#19 current_xpos#20 current_piece#91 play_collision::orientation#1 play_collision::ypos#1 play_collision::xpos#1 ] ) always clobbers reg byte a -Statement [237] (byte*~) current_piece#90 ← (byte*) current_piece#20 [ current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 current_piece#90 play_collision::orientation#0 play_collision::ypos#0 play_collision::xpos#0 ] ( main:12::play_movement:47::play_move_down:137 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 current_piece#90 play_collision::orientation#0 play_collision::ypos#0 play_collision::xpos#0 ] ) always clobbers reg byte a -Statement [252] (byte*~) current_piece#95 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) [ current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 game_over#15 current_piece#95 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 ] ( main:12::play_movement:47::play_move_down:137 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 game_over#15 current_piece#95 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 ] ) always clobbers reg byte a -Statement [260] (byte~) play_spawn_current::$3 ← (byte) play_spawn_current::piece_idx#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ play_spawn_current::$3 game_over#70 play_spawn_current::piece_idx#2 ] ( main:12::play_spawn_current:25 [ current_movedown_slow#1 play_spawn_current::$3 game_over#70 play_spawn_current::piece_idx#2 ] main:12::play_movement:47::play_move_down:137::play_spawn_current:251 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 play_spawn_current::$3 game_over#70 play_spawn_current::piece_idx#2 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:67 [ play_spawn_current::piece_idx#2 play_spawn_current::piece_idx#1 ] -Statement [261] (byte) current_piece_char#16 ← *((const byte[]) PIECES_CHARS#0 + (byte) play_spawn_current::piece_idx#2) [ current_piece_char#16 play_spawn_current::$3 game_over#70 play_spawn_current::piece_idx#2 ] ( main:12::play_spawn_current:25 [ current_movedown_slow#1 current_piece_char#16 play_spawn_current::$3 game_over#70 play_spawn_current::piece_idx#2 ] main:12::play_movement:47::play_move_down:137::play_spawn_current:251 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_piece_char#16 play_spawn_current::$3 game_over#70 play_spawn_current::piece_idx#2 ] ) always clobbers reg byte a -Statement [262] (byte*) current_piece_gfx#21 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) + (byte/signed byte/word/signed word/dword/signed dword) 0 [ current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_spawn_current::piece_idx#2 ] ( main:12::play_spawn_current:25 [ current_movedown_slow#1 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_spawn_current::piece_idx#2 ] main:12::play_movement:47::play_move_down:137::play_spawn_current:251 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_spawn_current::piece_idx#2 ] ) always clobbers reg byte a -Statement [263] (byte) current_xpos#28 ← *((const byte[]) PIECES_START_X#0 + (byte) play_spawn_current::piece_idx#2) [ current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_spawn_current::piece_idx#2 ] ( main:12::play_spawn_current:25 [ current_movedown_slow#1 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_spawn_current::piece_idx#2 ] main:12::play_movement:47::play_move_down:137::play_spawn_current:251 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_spawn_current::piece_idx#2 ] ) always clobbers reg byte a -Statement [264] (byte) current_ypos#22 ← *((const byte[]) PIECES_START_Y#0 + (byte) play_spawn_current::piece_idx#2) [ current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 ] ( main:12::play_spawn_current:25 [ current_movedown_slow#1 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 ] main:12::play_movement:47::play_move_down:137::play_spawn_current:251 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 ] ) always clobbers reg byte a -Statement [267] (byte*~) current_piece#94 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) [ current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 current_piece#94 play_collision::ypos#4 play_collision::xpos#4 game_over#70 ] ( main:12::play_spawn_current:25 [ current_movedown_slow#1 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 current_piece#94 play_collision::ypos#4 play_collision::xpos#4 game_over#70 ] main:12::play_movement:47::play_move_down:137::play_spawn_current:251 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 current_piece#94 play_collision::ypos#4 play_collision::xpos#4 game_over#70 ] ) always clobbers reg byte a -Statement [279] (byte) play_spawn_current::piece_idx#1 ← (byte~) play_spawn_current::$1 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ game_over#70 play_spawn_current::piece_idx#1 ] ( main:12::play_spawn_current:25 [ current_movedown_slow#1 game_over#70 play_spawn_current::piece_idx#1 ] main:12::play_movement:47::play_move_down:137::play_spawn_current:251 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 game_over#70 play_spawn_current::piece_idx#1 ] ) always clobbers reg byte a -Statement [283] (byte~) play_update_score::$2 ← < (word) lines_bcd#19 [ current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::$2 ] ( main:12::play_movement:47::play_move_down:137::play_update_score:249 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 game_over#19 current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::$2 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:163 [ play_update_score::removed#0 ] -Statement [284] (byte) play_update_score::lines_before#0 ← (byte~) play_update_score::$2 & (byte/word/signed word/dword/signed dword) 240 [ current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 ] ( main:12::play_movement:47::play_move_down:137::play_update_score:249 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 game_over#19 current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 ] ) always clobbers reg byte a -Statement [285] (byte~) play_update_score::$4 ← (byte) play_update_score::removed#0 << (byte/signed byte/word/signed word/dword/signed dword) 2 [ current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 play_update_score::$4 ] ( main:12::play_movement:47::play_move_down:137::play_update_score:249 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 game_over#19 current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 play_update_score::$4 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:171 [ play_update_score::lines_before#0 ] -Statement [286] (dword) play_update_score::add_bcd#0 ← *((const dword[5]) score_add_bcd#0 + (byte~) play_update_score::$4) [ current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 play_update_score::add_bcd#0 ] ( main:12::play_movement:47::play_move_down:137::play_update_score:249 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 game_over#19 current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 play_update_score::add_bcd#0 ] ) always clobbers reg byte a -Statement [288] (word) lines_bcd#30 ← (word) lines_bcd#19 + (byte) play_update_score::removed#0 [ current_movedown_slow#14 score_bcd#18 level#10 level_bcd#11 play_update_score::lines_before#0 play_update_score::add_bcd#0 lines_bcd#30 ] ( main:12::play_movement:47::play_move_down:137::play_update_score:249 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 game_over#19 current_movedown_slow#14 score_bcd#18 level#10 level_bcd#11 play_update_score::lines_before#0 play_update_score::add_bcd#0 lines_bcd#30 ] ) always clobbers reg byte a -Statement [289] (dword) score_bcd#30 ← (dword) score_bcd#18 + (dword) play_update_score::add_bcd#0 [ current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#30 score_bcd#30 ] ( main:12::play_movement:47::play_move_down:137::play_update_score:249 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 game_over#19 current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#30 score_bcd#30 ] ) always clobbers reg byte a -Statement [291] (byte~) play_update_score::$5 ← < (word) lines_bcd#30 [ current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#30 score_bcd#30 play_update_score::$5 ] ( main:12::play_movement:47::play_move_down:137::play_update_score:249 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 game_over#19 current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#30 score_bcd#30 play_update_score::$5 ] ) always clobbers reg byte a -Statement [292] (byte) play_update_score::lines_after#0 ← (byte~) play_update_score::$5 & (byte/word/signed word/dword/signed dword) 240 [ current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#30 score_bcd#30 play_update_score::lines_after#0 ] ( main:12::play_movement:47::play_move_down:137::play_update_score:249 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 game_over#19 current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#30 score_bcd#30 play_update_score::lines_after#0 ] ) always clobbers reg byte a -Statement [299] if((byte) level#20>(byte/signed byte/word/signed word/dword/signed dword) 29) goto play_increase_level::@2 [ level_bcd#11 level#20 ] ( main:12::play_movement:47::play_move_down:137::play_update_score:249::play_increase_level:295 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 game_over#19 lines_bcd#30 score_bcd#30 level_bcd#11 level#20 ] ) always clobbers reg byte a -Statement [300] (byte) current_movedown_slow#10 ← *((const byte[]) MOVEDOWN_SLOW_SPEEDS#0 + (byte) level#20) [ level_bcd#11 level#20 current_movedown_slow#10 ] ( main:12::play_movement:47::play_move_down:137::play_update_score:249::play_increase_level:295 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 game_over#19 lines_bcd#30 score_bcd#30 level_bcd#11 level#20 current_movedown_slow#10 ] ) always clobbers reg byte a -Statement [303] (byte~) play_increase_level::$1 ← (byte) level_bcd#21 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ level#20 current_movedown_slow#69 level_bcd#21 play_increase_level::$1 ] ( main:12::play_movement:47::play_move_down:137::play_update_score:249::play_increase_level:295 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 game_over#19 lines_bcd#30 score_bcd#30 level#20 current_movedown_slow#69 level_bcd#21 play_increase_level::$1 ] ) always clobbers reg byte a -Statement [305] (byte) level_bcd#8 ← (byte) level_bcd#21 + (byte/signed byte/word/signed word/dword/signed dword) 6 [ level#20 current_movedown_slow#69 level_bcd#8 ] ( main:12::play_movement:47::play_move_down:137::play_update_score:249::play_increase_level:295 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 game_over#19 lines_bcd#30 score_bcd#30 level#20 current_movedown_slow#69 level_bcd#8 ] ) always clobbers reg byte a -Statement [309] (byte) play_increase_level::b4#0 ← (byte) play_increase_level::b#2 << (byte/signed byte/word/signed word/dword/signed dword) 2 [ level#20 current_movedown_slow#69 level_bcd#64 play_increase_level::b#2 play_increase_level::b4#0 ] ( main:12::play_movement:47::play_move_down:137::play_update_score:249::play_increase_level:295 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 game_over#19 lines_bcd#30 score_bcd#30 level#20 current_movedown_slow#69 level_bcd#64 play_increase_level::b#2 play_increase_level::b4#0 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:68 [ play_increase_level::b#2 play_increase_level::b#1 ] -Statement [310] *((const dword[5]) score_add_bcd#0 + (byte) play_increase_level::b4#0) ← *((const dword[5]) score_add_bcd#0 + (byte) play_increase_level::b4#0) + *((const dword[]) SCORE_BASE_BCD#0 + (byte) play_increase_level::b4#0) [ level#20 current_movedown_slow#69 level_bcd#64 play_increase_level::b#2 ] ( main:12::play_movement:47::play_move_down:137::play_update_score:249::play_increase_level:295 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 game_over#19 lines_bcd#30 score_bcd#30 level#20 current_movedown_slow#69 level_bcd#64 play_increase_level::b#2 ] ) always clobbers reg byte a -Statement [327] (byte) play_remove_lines::w#2 ← (byte) play_remove_lines::w#1 + (const byte) PLAYFIELD_COLS#0 [ play_remove_lines::y#8 play_remove_lines::removed#11 play_remove_lines::r#1 play_remove_lines::w#2 ] ( main:12::play_movement:47::play_move_down:137::play_remove_lines:245 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_remove_lines::y#8 play_remove_lines::removed#11 play_remove_lines::r#1 play_remove_lines::w#2 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:69 [ play_remove_lines::y#8 play_remove_lines::y#1 ] -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:70 [ play_remove_lines::removed#11 play_remove_lines::removed#7 play_remove_lines::removed#1 ] -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:71 [ play_remove_lines::r#2 play_remove_lines::r#3 play_remove_lines::r#1 ] -Statement [335] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::w#6) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ play_remove_lines::removed#7 play_remove_lines::w#6 ] ( main:12::play_movement:47::play_move_down:137::play_remove_lines:245 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_remove_lines::removed#7 play_remove_lines::w#6 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:74 [ play_remove_lines::w#6 play_remove_lines::w#4 play_remove_lines::w#12 play_remove_lines::w#11 play_remove_lines::w#1 play_remove_lines::w#2 play_remove_lines::w#3 ] -Statement [338] (byte) play_lock_current::ypos2#0 ← (byte) current_ypos#25 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ current_piece_char#19 current_piece_gfx#103 current_xpos#113 play_lock_current::ypos2#0 ] ( main:12::play_movement:47::play_move_down:137::play_lock_current:243 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 current_piece_char#19 current_piece_gfx#103 current_xpos#113 play_lock_current::ypos2#0 ] ) always clobbers reg byte a -Statement [340] (byte*) play_lock_current::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_lock_current::ypos2#2) [ current_piece_char#19 current_piece_gfx#103 current_xpos#113 play_lock_current::ypos2#2 play_lock_current::i#3 play_lock_current::l#6 play_lock_current::playfield_line#0 ] ( main:12::play_movement:47::play_move_down:137::play_lock_current:243 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 current_piece_char#19 current_piece_gfx#103 current_xpos#113 play_lock_current::ypos2#2 play_lock_current::i#3 play_lock_current::l#6 play_lock_current::playfield_line#0 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:75 [ play_lock_current::ypos2#2 play_lock_current::ypos2#0 play_lock_current::ypos2#1 ] -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:77 [ play_lock_current::i#2 play_lock_current::i#3 play_lock_current::i#7 play_lock_current::i#9 ] -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:76 [ play_lock_current::l#6 play_lock_current::l#1 ] -Statement [344] if(*((byte*) current_piece_gfx#103 + (byte) play_lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_lock_current::@3 [ current_piece_char#19 current_piece_gfx#103 current_xpos#113 play_lock_current::ypos2#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::col#2 play_lock_current::c#2 play_lock_current::i#1 ] ( main:12::play_movement:47::play_move_down:137::play_lock_current:243 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 current_piece_char#19 current_piece_gfx#103 current_xpos#113 play_lock_current::ypos2#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::col#2 play_lock_current::c#2 play_lock_current::i#1 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:78 [ play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 ] -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:79 [ play_lock_current::c#2 play_lock_current::c#1 ] -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:184 [ play_lock_current::i#1 ] -Statement [345] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::col#2) ← (byte) current_piece_char#19 [ current_piece_char#19 current_piece_gfx#103 current_xpos#113 play_lock_current::ypos2#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::col#2 play_lock_current::c#2 play_lock_current::i#1 ] ( main:12::play_movement:47::play_move_down:137::play_lock_current:243 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 current_piece_char#19 current_piece_gfx#103 current_xpos#113 play_lock_current::ypos2#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::col#2 play_lock_current::c#2 play_lock_current::i#1 ] ) always clobbers reg byte a -Statement [356] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte/signed byte/word/signed word/dword/signed dword) 3 [ keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] ( main:12::play_movement:47::play_move_down:137::keyboard_event_pressed:223 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 current_movedown_counter#12 play_move_down::movedown#10 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:378 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:384 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_modifiers#11 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:390 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_modifiers#12 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:396 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_modifiers#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:47 [ play_move_down::movedown#6 play_move_down::movedown#3 play_move_down::movedown#7 play_move_down::movedown#2 play_move_down::movedown#10 ] -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:80 [ keyboard_event_pressed::keycode#5 ] -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:83 [ keyboard_modifiers#13 keyboard_modifiers#4 keyboard_modifiers#12 keyboard_modifiers#3 keyboard_modifiers#11 ] -Statement [358] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] ( main:12::play_movement:47::play_move_down:137::keyboard_event_pressed:223 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 current_movedown_counter#12 play_move_down::movedown#10 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:378 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:384 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_modifiers#11 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:390 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_modifiers#12 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:396 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_modifiers#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:186 [ keyboard_event_pressed::row_bits#0 ] -Statement [359] (byte) keyboard_event_pressed::return#11 ← (byte) keyboard_event_pressed::row_bits#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte~) keyboard_event_pressed::$1) [ keyboard_event_pressed::return#11 ] ( main:12::play_movement:47::play_move_down:137::keyboard_event_pressed:223 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 current_movedown_counter#12 play_move_down::movedown#10 keyboard_event_pressed::return#11 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:378 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_pressed::return#11 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:384 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_modifiers#11 keyboard_event_pressed::return#11 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:390 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_modifiers#12 keyboard_event_pressed::return#11 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:396 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_modifiers#13 keyboard_event_pressed::return#11 ] ) always clobbers reg byte a -Statement [373] (byte) keyboard_event_scan::keycode#1 ← (byte) keyboard_event_scan::keycode#11 + (byte/signed byte/word/signed word/dword/signed dword) 8 [ keyboard_event_scan::row#2 keyboard_events_size#29 keyboard_event_scan::keycode#1 ] ( main:12::keyboard_event_scan:39 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_events_size#29 keyboard_event_scan::keycode#1 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:82 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] -Statement [388] (byte) keyboard_modifiers#3 ← (byte) keyboard_modifiers#11 | (const byte) KEY_MODIFIER_RSHIFT#0 [ keyboard_events_size#13 keyboard_modifiers#3 ] ( main:12::keyboard_event_scan:39 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_modifiers#3 ] ) always clobbers reg byte a -Statement [394] (byte) keyboard_modifiers#4 ← (byte) keyboard_modifiers#12 | (const byte) KEY_MODIFIER_CTRL#0 [ keyboard_events_size#13 keyboard_modifiers#4 ] ( main:12::keyboard_event_scan:39 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_modifiers#4 ] ) always clobbers reg byte a -Statement [400] (byte) keyboard_modifiers#5 ← (byte) keyboard_modifiers#13 | (const byte) KEY_MODIFIER_COMMODORE#0 [ keyboard_events_size#13 ] ( main:12::keyboard_event_scan:39 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 ] ) always clobbers reg byte a -Statement [403] (byte~) keyboard_event_scan::$3 ← (byte) keyboard_event_scan::row_scan#0 ^ *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$3 ] ( main:12::keyboard_event_scan:39 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$3 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:191 [ keyboard_event_scan::row_scan#0 ] -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:84 [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:85 [ keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 keyboard_event_scan::keycode#15 ] -Statement [404] (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$4 ] ( main:12::keyboard_event_scan:39 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$4 ] ) always clobbers reg byte a -Statement [407] (byte) keyboard_event_scan::event_type#0 ← (byte) keyboard_event_scan::row_scan#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::event_type#0 ] ( main:12::keyboard_event_scan:39 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::event_type#0 ] ) always clobbers reg byte a -Statement [409] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 ] ( main:12::keyboard_event_scan:39 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 ] ) always clobbers reg byte a -Statement [415] *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 [ keyboard_event_scan::row#2 keyboard_event_scan::keycode#15 keyboard_events_size#30 ] ( main:12::keyboard_event_scan:39 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::keycode#15 keyboard_events_size#30 ] ) always clobbers reg byte a -Statement [416] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$11 ] ( main:12::keyboard_event_scan:39 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$11 ] ) always clobbers reg byte a -Statement [419] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) [ ] ( main:12::keyboard_event_scan:39::keyboard_matrix_read:369 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#29 ] ) always clobbers reg byte a -Statement [420] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:12::keyboard_event_scan:39::keyboard_matrix_read:369 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#29 keyboard_matrix_read::return#0 ] ) always clobbers reg byte a -Statement [431] (byte~) play_init::$1 ← (byte) play_init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ play_init::j#2 play_init::pli#2 play_init::idx#2 play_init::$1 ] ( main:12::play_init:23 [ play_init::j#2 play_init::pli#2 play_init::idx#2 play_init::$1 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:88 [ play_init::j#2 play_init::j#1 ] -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:91 [ play_init::idx#2 play_init::idx#1 ] -Statement [432] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) play_init::$1) ← (byte*) play_init::pli#2 [ play_init::j#2 play_init::pli#2 play_init::idx#2 ] ( main:12::play_init:23 [ play_init::j#2 play_init::pli#2 play_init::idx#2 ] ) always clobbers reg byte a -Statement [433] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) play_init::j#2) ← (byte) play_init::idx#2 [ play_init::j#2 play_init::pli#2 play_init::idx#2 ] ( main:12::play_init:23 [ play_init::j#2 play_init::pli#2 play_init::idx#2 ] ) always clobbers reg byte a -Statement [434] (byte*) play_init::pli#1 ← (byte*) play_init::pli#2 + (const byte) PLAYFIELD_COLS#0 [ play_init::j#2 play_init::idx#2 play_init::pli#1 ] ( main:12::play_init:23 [ play_init::j#2 play_init::idx#2 play_init::pli#1 ] ) always clobbers reg byte a -Statement [435] (byte) play_init::idx#1 ← (byte) play_init::idx#2 + (const byte) PLAYFIELD_COLS#0 [ play_init::j#2 play_init::pli#1 play_init::idx#1 ] ( main:12::play_init:23 [ play_init::j#2 play_init::pli#1 play_init::idx#1 ] ) always clobbers reg byte a -Statement [438] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0+(const byte) PLAYFIELD_LINES#0) ← (const byte) PLAYFIELD_COLS#0*(const byte) PLAYFIELD_LINES#0 [ ] ( main:12::play_init:23 [ ] ) always clobbers reg byte a -Statement [441] (byte) play_init::b4#0 ← (byte) play_init::b#2 << (byte/signed byte/word/signed word/dword/signed dword) 2 [ current_movedown_slow#1 play_init::b#2 play_init::b4#0 ] ( main:12::play_init:23 [ current_movedown_slow#1 play_init::b#2 play_init::b4#0 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:92 [ play_init::b#2 play_init::b#1 ] -Statement [442] *((const dword[5]) score_add_bcd#0 + (byte) play_init::b4#0) ← *((const dword[]) SCORE_BASE_BCD#0 + (byte) play_init::b4#0) [ current_movedown_slow#1 play_init::b#2 ] ( main:12::play_init:23 [ current_movedown_slow#1 play_init::b#2 ] ) always clobbers reg byte a -Statement [447] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a +Statement [103] (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:67::render_bcd:78 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$5 ] main:12::render_score:67::render_bcd:81 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$5 ] main:12::render_score:67::render_bcd:84 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$5 ] main:12::render_score:67::render_bcd:87 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$5 ] main:12::render_score:67::render_bcd:90 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$5 ] main:12::render_score:67::render_bcd:93 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_bcd::screen_pos#3 render_bcd::$5 ] ) always clobbers reg byte a +Statement [104] (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:67::render_bcd:78 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$6 ] main:12::render_score:67::render_bcd:81 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$6 ] main:12::render_score:67::render_bcd:84 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$6 ] main:12::render_score:67::render_bcd:87 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$6 ] main:12::render_score:67::render_bcd:90 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$6 ] main:12::render_score:67::render_bcd:93 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_bcd::screen_pos#3 render_bcd::$6 ] ) always clobbers reg byte a +Statement [105] *((byte*) render_bcd::screen_pos#3) ← (byte~) render_bcd::$6 [ render_bcd::screen_pos#3 ] ( main:12::render_score:67::render_bcd:78 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen_pos#3 ] main:12::render_score:67::render_bcd:81 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen_pos#3 ] main:12::render_score:67::render_bcd:84 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen_pos#3 ] main:12::render_score:67::render_bcd:87 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen_pos#3 ] main:12::render_score:67::render_bcd:90 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen_pos#3 ] main:12::render_score:67::render_bcd:93 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_bcd::screen_pos#3 ] ) always clobbers reg byte y +Statement [106] (byte*) render_bcd::screen_pos#1 ← ++ (byte*) render_bcd::screen_pos#3 [ ] ( main:12::render_score:67::render_bcd:78 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 ] main:12::render_score:67::render_bcd:81 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 ] main:12::render_score:67::render_bcd:84 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 ] main:12::render_score:67::render_bcd:87 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 ] main:12::render_score:67::render_bcd:90 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 ] main:12::render_score:67::render_bcd:93 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 ] ) always clobbers reg byte a +Statement [112] (byte~) render_next::$6 ← (byte) next_piece_idx#12 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ next_piece_idx#12 render_next::screen_next_area#10 render_next::$6 ] ( main:12::render_next:36 [ current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::piece_idx#2 play_spawn_current::$0 current_movedown_slow#1 game_over#52 next_piece_idx#12 render_next::screen_next_area#10 render_next::$6 ] main:12::render_next:65 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 next_piece_idx#12 render_next::screen_next_area#10 render_next::$6 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:16 [ next_piece_idx#12 next_piece_idx#84 next_piece_idx#85 ] +Statement [114] (byte*~) render_next::next_piece_gfx#9 ← (byte*)*((const word[]) PIECES#0 + (byte~) render_next::$6) [ render_next::screen_next_area#10 render_next::next_piece_char#0 render_next::next_piece_gfx#9 ] ( main:12::render_next:36 [ current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::piece_idx#2 play_spawn_current::$0 current_movedown_slow#1 game_over#52 render_next::screen_next_area#10 render_next::next_piece_char#0 render_next::next_piece_gfx#9 ] main:12::render_next:65 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_next::screen_next_area#10 render_next::next_piece_char#0 render_next::next_piece_gfx#9 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:136 [ render_next::next_piece_char#0 ] +Statement [117] (byte) render_next::cell#0 ← *((byte*) render_next::next_piece_gfx#2) [ render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#2 render_next::screen_next_area#4 render_next::c#2 render_next::cell#0 ] ( main:12::render_next:36 [ current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::piece_idx#2 play_spawn_current::$0 current_movedown_slow#1 game_over#52 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#2 render_next::screen_next_area#4 render_next::c#2 render_next::cell#0 ] main:12::render_next:65 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#2 render_next::screen_next_area#4 render_next::c#2 render_next::cell#0 ] ) always clobbers reg byte a reg byte y +Removing always clobbered register reg byte y as potential for zp ZP_BYTE:176 [ play_spawn_current::$0 ] +Removing always clobbered register reg byte y as potential for zp ZP_BYTE:136 [ render_next::next_piece_char#0 ] +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:17 [ render_next::l#7 render_next::l#1 ] +Removing always clobbered register reg byte y as potential for zp ZP_BYTE:17 [ render_next::l#7 render_next::l#1 ] +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:22 [ render_next::c#2 render_next::c#1 ] +Removing always clobbered register reg byte y as potential for zp ZP_BYTE:22 [ render_next::c#2 render_next::c#1 ] +Statement [120] *((byte*) render_next::screen_next_area#4) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#4 render_next::c#2 ] ( main:12::render_next:36 [ current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::piece_idx#2 play_spawn_current::$0 current_movedown_slow#1 game_over#52 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#4 render_next::c#2 ] main:12::render_next:65 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#4 render_next::c#2 ] ) always clobbers reg byte a reg byte y +Statement [124] (byte*) render_next::screen_next_area#3 ← (byte*) render_next::screen_next_area#2 + (byte/signed byte/word/signed word/dword/signed dword) 36 [ render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#3 ] ( main:12::render_next:36 [ current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::piece_idx#2 play_spawn_current::$0 current_movedown_slow#1 game_over#52 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#3 ] main:12::render_next:65 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#3 ] ) always clobbers reg byte a +Statement [128] *((byte*) render_next::screen_next_area#4) ← (byte) render_next::next_piece_char#0 [ render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#4 render_next::c#2 ] ( main:12::render_next:36 [ current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::piece_idx#2 play_spawn_current::$0 current_movedown_slow#1 game_over#52 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#4 render_next::c#2 ] main:12::render_next:65 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#4 render_next::c#2 ] ) always clobbers reg byte a reg byte y +Statement [130] (byte) render_moving::ypos2#0 ← (byte) current_ypos#12 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ render_screen_render#33 current_xpos#58 current_piece_gfx#63 current_piece_char#67 render_moving::ypos2#0 ] ( main:12::render_moving:34 [ current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::piece_idx#2 play_spawn_current::$0 current_movedown_slow#1 game_over#52 render_screen_render#33 current_xpos#58 current_piece_gfx#63 current_piece_char#67 render_moving::ypos2#0 ] main:12::render_moving:62 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_render#33 current_xpos#58 current_piece_gfx#63 current_piece_char#67 render_moving::ypos2#0 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:28 [ current_piece_char#67 current_piece_char#110 current_piece_char#111 ] +Statement [133] (byte) render_moving::i#1 ← (byte) render_moving::i#3 + (byte/signed byte/word/signed word/dword/signed dword) 4 [ render_screen_render#33 current_xpos#58 current_piece_gfx#63 current_piece_char#67 render_moving::ypos2#2 render_moving::l#4 render_moving::i#1 ] ( main:12::render_moving:34 [ current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::piece_idx#2 play_spawn_current::$0 current_movedown_slow#1 game_over#52 render_screen_render#33 current_xpos#58 current_piece_gfx#63 current_piece_char#67 render_moving::ypos2#2 render_moving::l#4 render_moving::i#1 ] main:12::render_moving:62 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_render#33 current_xpos#58 current_piece_gfx#63 current_piece_char#67 render_moving::ypos2#2 render_moving::l#4 render_moving::i#1 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:29 [ render_moving::ypos2#2 render_moving::ypos2#0 render_moving::ypos2#1 ] +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:30 [ render_moving::l#4 render_moving::l#1 ] +Statement [139] (byte~) render_moving::$2 ← (byte) render_screen_render#33 + (byte) render_moving::ypos2#2 [ render_screen_render#33 current_xpos#58 current_piece_gfx#63 current_piece_char#67 render_moving::ypos2#2 render_moving::i#3 render_moving::l#4 render_moving::$2 ] ( main:12::render_moving:34 [ current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::piece_idx#2 play_spawn_current::$0 current_movedown_slow#1 game_over#52 render_screen_render#33 current_xpos#58 current_piece_gfx#63 current_piece_char#67 render_moving::ypos2#2 render_moving::i#3 render_moving::l#4 render_moving::$2 ] main:12::render_moving:62 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_render#33 current_xpos#58 current_piece_gfx#63 current_piece_char#67 render_moving::ypos2#2 render_moving::i#3 render_moving::l#4 render_moving::$2 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:31 [ render_moving::i#4 render_moving::i#3 render_moving::i#8 render_moving::i#2 render_moving::i#1 ] +Statement [140] (byte*) render_moving::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_moving::$2) [ render_screen_render#33 current_xpos#58 current_piece_gfx#63 current_piece_char#67 render_moving::ypos2#2 render_moving::i#3 render_moving::l#4 render_moving::screen_line#0 ] ( main:12::render_moving:34 [ current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::piece_idx#2 play_spawn_current::$0 current_movedown_slow#1 game_over#52 render_screen_render#33 current_xpos#58 current_piece_gfx#63 current_piece_char#67 render_moving::ypos2#2 render_moving::i#3 render_moving::l#4 render_moving::screen_line#0 ] main:12::render_moving:62 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_render#33 current_xpos#58 current_piece_gfx#63 current_piece_char#67 render_moving::ypos2#2 render_moving::i#3 render_moving::l#4 render_moving::screen_line#0 ] ) always clobbers reg byte a +Statement [143] (byte) render_moving::current_cell#0 ← *((byte*) current_piece_gfx#63 + (byte) render_moving::i#4) [ render_screen_render#33 current_xpos#58 current_piece_gfx#63 current_piece_char#67 render_moving::ypos2#2 render_moving::l#4 render_moving::screen_line#0 render_moving::i#4 render_moving::xpos#2 render_moving::c#2 render_moving::current_cell#0 ] ( main:12::render_moving:34 [ current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::piece_idx#2 play_spawn_current::$0 current_movedown_slow#1 game_over#52 render_screen_render#33 current_xpos#58 current_piece_gfx#63 current_piece_char#67 render_moving::ypos2#2 render_moving::l#4 render_moving::screen_line#0 render_moving::i#4 render_moving::xpos#2 render_moving::c#2 render_moving::current_cell#0 ] main:12::render_moving:62 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_render#33 current_xpos#58 current_piece_gfx#63 current_piece_char#67 render_moving::ypos2#2 render_moving::l#4 render_moving::screen_line#0 render_moving::i#4 render_moving::xpos#2 render_moving::c#2 render_moving::current_cell#0 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:32 [ render_moving::xpos#2 render_moving::xpos#0 render_moving::xpos#1 ] +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:33 [ render_moving::c#2 render_moving::c#1 ] +Statement [146] *((byte*) render_moving::screen_line#0 + (byte) render_moving::xpos#2) ← (byte) current_piece_char#67 [ render_screen_render#33 current_xpos#58 current_piece_gfx#63 current_piece_char#67 render_moving::ypos2#2 render_moving::l#4 render_moving::i#2 render_moving::screen_line#0 render_moving::xpos#2 render_moving::c#2 ] ( main:12::render_moving:34 [ current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::piece_idx#2 play_spawn_current::$0 current_movedown_slow#1 game_over#52 render_screen_render#33 current_xpos#58 current_piece_gfx#63 current_piece_char#67 render_moving::ypos2#2 render_moving::l#4 render_moving::i#2 render_moving::screen_line#0 render_moving::xpos#2 render_moving::c#2 ] main:12::render_moving:62 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_render#33 current_xpos#58 current_piece_gfx#63 current_piece_char#67 render_moving::ypos2#2 render_moving::l#4 render_moving::i#2 render_moving::screen_line#0 render_moving::xpos#2 render_moving::c#2 ] ) always clobbers reg byte a +Statement [152] (byte~) render_playfield::$2 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ render_screen_render#22 render_playfield::l#2 render_playfield::i#3 render_playfield::$2 ] ( main:12::render_playfield:29 [ current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::piece_idx#2 play_spawn_current::$0 current_movedown_slow#1 game_over#52 render_screen_render#22 render_playfield::l#2 render_playfield::i#3 render_playfield::$2 ] main:12::render_playfield:56 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_render#22 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:34 [ render_screen_render#22 render_screen_render#70 ] +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:35 [ render_playfield::l#2 render_playfield::l#1 ] +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:36 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] +Statement [153] (byte~) render_playfield::$3 ← (byte) render_screen_render#22 + (byte~) render_playfield::$2 [ render_screen_render#22 render_playfield::l#2 render_playfield::i#3 render_playfield::$3 ] ( main:12::render_playfield:29 [ current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::piece_idx#2 play_spawn_current::$0 current_movedown_slow#1 game_over#52 render_screen_render#22 render_playfield::l#2 render_playfield::i#3 render_playfield::$3 ] main:12::render_playfield:56 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_render#22 render_playfield::l#2 render_playfield::i#3 render_playfield::$3 ] ) always clobbers reg byte a +Statement [154] (byte*) render_playfield::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_playfield::$3) [ render_screen_render#22 render_playfield::l#2 render_playfield::i#3 render_playfield::screen_line#0 ] ( main:12::render_playfield:29 [ current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::piece_idx#2 play_spawn_current::$0 current_movedown_slow#1 game_over#52 render_screen_render#22 render_playfield::l#2 render_playfield::i#3 render_playfield::screen_line#0 ] main:12::render_playfield:56 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_render#22 render_playfield::l#2 render_playfield::i#3 render_playfield::screen_line#0 ] ) always clobbers reg byte a +Statement [156] *((byte*) render_playfield::screen_line#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2) [ render_screen_render#22 render_playfield::l#2 render_playfield::i#2 render_playfield::screen_line#2 render_playfield::c#2 ] ( main:12::render_playfield:29 [ current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::piece_idx#2 play_spawn_current::$0 current_movedown_slow#1 game_over#52 render_screen_render#22 render_playfield::l#2 render_playfield::i#2 render_playfield::screen_line#2 render_playfield::c#2 ] main:12::render_playfield:56 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_render#22 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:34 [ render_screen_render#22 render_screen_render#70 ] +Removing always clobbered register reg byte y as potential for zp ZP_BYTE:35 [ render_playfield::l#2 render_playfield::l#1 ] +Removing always clobbered register reg byte y as potential for zp ZP_BYTE:36 [ 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:39 [ render_playfield::c#2 render_playfield::c#1 ] +Removing always clobbered register reg byte y as potential for zp ZP_BYTE:39 [ render_playfield::c#2 render_playfield::c#1 ] +Statement [168] (byte) play_movement::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) play_movement::$0 [ current_movedown_slow#21 current_piece#15 current_piece_char#15 current_ypos#18 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_orientation#20 current_piece_gfx#19 current_xpos#21 ] ( main:12::play_movement:51 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_ypos#18 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_orientation#20 current_piece_gfx#19 current_xpos#21 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:126 [ play_movement::key_event#0 ] +Statement [176] (byte) play_movement::render#2 ← (byte) play_movement::render#1 + (byte~) play_movement::$3 [ current_movedown_slow#21 current_piece#15 current_piece_char#15 current_ypos#18 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 current_orientation#20 current_piece_gfx#19 current_xpos#25 play_movement::render#2 ] ( main:12::play_movement:51 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_ypos#18 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 current_orientation#20 current_piece_gfx#19 current_xpos#25 play_movement::render#2 ] ) always clobbers reg byte a +Statement [181] (byte) play_movement::return#0 ← (byte) play_movement::render#2 + (byte~) play_movement::$4 [ current_movedown_slow#21 current_piece#15 current_piece_char#15 current_ypos#18 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::return#0 current_orientation#25 current_piece_gfx#20 current_xpos#25 ] ( main:12::play_movement:51 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_ypos#18 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::return#0 current_orientation#25 current_piece_gfx#20 current_xpos#25 ] ) always clobbers reg byte a +Statement [186] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#20 + (byte/signed byte/word/signed word/dword/signed dword) 16 [ current_piece#15 current_ypos#18 current_orientation#20 current_piece_gfx#19 current_xpos#25 play_move_rotate::$2 ] ( main:12::play_movement:51::play_move_rotate:178 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#15 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#18 current_orientation#20 current_piece_gfx#19 current_xpos#25 play_move_rotate::$2 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:150 [ play_movement::render#2 ] +Statement [187] (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#15 current_ypos#18 current_orientation#20 current_piece_gfx#19 current_xpos#25 play_move_rotate::orientation#2 ] ( main:12::play_movement:51::play_move_rotate:178 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#15 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#18 current_orientation#20 current_piece_gfx#19 current_xpos#25 play_move_rotate::orientation#2 ] ) always clobbers reg byte a +Statement [192] (byte*~) current_piece#101 ← (byte*) current_piece#15 [ current_piece#15 current_ypos#18 current_orientation#20 current_piece_gfx#19 current_xpos#25 play_move_rotate::orientation#3 play_collision::xpos#3 play_collision::ypos#3 play_collision::orientation#3 current_piece#101 ] ( main:12::play_movement:51::play_move_rotate:178 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#15 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#18 current_orientation#20 current_piece_gfx#19 current_xpos#25 play_move_rotate::orientation#3 play_collision::xpos#3 play_collision::ypos#3 play_collision::orientation#3 current_piece#101 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:42 [ 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:47 [ play_collision::xpos#6 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 play_collision::xpos#4 ] +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:46 [ play_collision::ypos#5 play_collision::ypos#0 play_collision::ypos#1 play_collision::ypos#2 play_collision::ypos#3 play_collision::ypos#4 ] +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:45 [ play_collision::orientation#5 play_collision::orientation#0 play_collision::orientation#1 play_collision::orientation#2 play_collision::orientation#3 ] +Statement [198] (byte*) current_piece_gfx#6 ← (byte*) current_piece#15 + (byte) current_orientation#7 [ current_piece#15 current_ypos#18 current_xpos#25 current_orientation#7 current_piece_gfx#6 ] ( main:12::play_movement:51::play_move_rotate:178 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#15 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#18 current_xpos#25 current_orientation#7 current_piece_gfx#6 ] ) always clobbers reg byte a +Statement [199] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#20 - (byte/signed byte/word/signed word/dword/signed dword) 16 [ current_piece#15 current_ypos#18 current_orientation#20 current_piece_gfx#19 current_xpos#25 play_move_rotate::$4 ] ( main:12::play_movement:51::play_move_rotate:178 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#15 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#18 current_orientation#20 current_piece_gfx#19 current_xpos#25 play_move_rotate::$4 ] ) always clobbers reg byte a +Statement [200] (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#15 current_ypos#18 current_orientation#20 current_piece_gfx#19 current_xpos#25 play_move_rotate::orientation#1 ] ( main:12::play_movement:51::play_move_rotate:178 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#15 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#18 current_orientation#20 current_piece_gfx#19 current_xpos#25 play_move_rotate::orientation#1 ] ) always clobbers reg byte a +Statement [202] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#17 + (byte) play_collision::orientation#5 [ play_collision::ypos#5 play_collision::xpos#6 play_collision::piece_gfx#0 ] ( main:12::play_movement:51::play_move_rotate:178::play_collision:193 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#15 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#18 current_orientation#20 current_piece_gfx#19 current_xpos#25 play_move_rotate::orientation#3 play_collision::ypos#5 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:12::play_movement:51::play_move_leftright:173::play_collision:231 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#15 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#19 current_piece#15 current_ypos#18 current_orientation#20 current_xpos#21 play_collision::ypos#5 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:12::play_movement:51::play_move_leftright:173::play_collision:242 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#15 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#19 current_piece#15 current_ypos#18 current_orientation#20 current_xpos#21 play_collision::ypos#5 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:12::play_movement:51::play_move_down:165::play_collision:266 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_collision::ypos#5 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:12::play_spawn_current:25::play_collision:295 [ current_movedown_slow#1 current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#65 play_collision::ypos#5 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:12::play_spawn_current:27::play_collision:295 [ current_movedown_slow#1 current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#65 play_collision::ypos#5 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:12::play_movement:51::play_move_down:165::play_spawn_current:279::play_collision:295 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#65 play_collision::ypos#5 play_collision::xpos#6 play_collision::piece_gfx#0 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:40 [ play_movement::return#2 play_movement::render#1 play_movement::return#0 ] +Statement [203] (byte) play_collision::ypos2#0 ← (byte) play_collision::ypos#5 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#0 ] ( main:12::play_movement:51::play_move_rotate:178::play_collision:193 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#15 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#18 current_orientation#20 current_piece_gfx#19 current_xpos#25 play_move_rotate::orientation#3 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:12::play_movement:51::play_move_leftright:173::play_collision:231 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#15 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#19 current_piece#15 current_ypos#18 current_orientation#20 current_xpos#21 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:12::play_movement:51::play_move_leftright:173::play_collision:242 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#15 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#19 current_piece#15 current_ypos#18 current_orientation#20 current_xpos#21 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:12::play_movement:51::play_move_down:165::play_collision:266 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:12::play_spawn_current:25::play_collision:295 [ current_movedown_slow#1 current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:12::play_spawn_current:27::play_collision:295 [ current_movedown_slow#1 current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:12::play_movement:51::play_move_down:165::play_spawn_current:279::play_collision:295 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#0 ] ) always clobbers reg byte a +Statement [205] (byte*) play_collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_collision::ypos2#2) [ play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] ( main:12::play_movement:51::play_move_rotate:178::play_collision:193 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#15 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#18 current_orientation#20 current_piece_gfx#19 current_xpos#25 play_move_rotate::orientation#3 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:12::play_movement:51::play_move_leftright:173::play_collision:231 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#15 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#19 current_piece#15 current_ypos#18 current_orientation#20 current_xpos#21 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:12::play_movement:51::play_move_leftright:173::play_collision:242 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#15 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#19 current_piece#15 current_ypos#18 current_orientation#20 current_xpos#21 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:12::play_movement:51::play_move_down:165::play_collision:266 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:12::play_spawn_current:25::play_collision:295 [ current_movedown_slow#1 current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:12::play_spawn_current:27::play_collision:295 [ current_movedown_slow#1 current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:12::play_movement:51::play_move_down:165::play_spawn_current:279::play_collision:295 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:48 [ 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:50 [ 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:49 [ play_collision::l#6 play_collision::l#1 ] +Statement [209] if(*((byte*) play_collision::piece_gfx#0 + (byte) play_collision::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@3 [ play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ( main:12::play_movement:51::play_move_rotate:178::play_collision:193 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#15 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#18 current_orientation#20 current_piece_gfx#19 current_xpos#25 play_move_rotate::orientation#3 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_movement:51::play_move_leftright:173::play_collision:231 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#15 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#19 current_piece#15 current_ypos#18 current_orientation#20 current_xpos#21 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_movement:51::play_move_leftright:173::play_collision:242 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#15 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#19 current_piece#15 current_ypos#18 current_orientation#20 current_xpos#21 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_movement:51::play_move_down:165::play_collision:266 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_spawn_current:25::play_collision:295 [ current_movedown_slow#1 current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_spawn_current:27::play_collision:295 [ current_movedown_slow#1 current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_movement:51::play_move_down:165::play_spawn_current:279::play_collision:295 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:51 [ 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:52 [ play_collision::c#2 play_collision::c#1 ] +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:162 [ play_collision::i#1 ] +Statement [213] (byte~) play_collision::$7 ← (byte) play_collision::col#2 & (byte/word/signed word/dword/signed dword) 128 [ play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] ( main:12::play_movement:51::play_move_rotate:178::play_collision:193 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#15 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#18 current_orientation#20 current_piece_gfx#19 current_xpos#25 play_move_rotate::orientation#3 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_movement:51::play_move_leftright:173::play_collision:231 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#15 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#19 current_piece#15 current_ypos#18 current_orientation#20 current_xpos#21 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_movement:51::play_move_leftright:173::play_collision:242 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#15 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#19 current_piece#15 current_ypos#18 current_orientation#20 current_xpos#21 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_movement:51::play_move_down:165::play_collision:266 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_spawn_current:25::play_collision:295 [ current_movedown_slow#1 current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_spawn_current:27::play_collision:295 [ current_movedown_slow#1 current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_movement:51::play_move_down:165::play_spawn_current:279::play_collision:295 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] ) always clobbers reg byte a +Statement [216] if(*((byte*) play_collision::playfield_line#0 + (byte) play_collision::col#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@3 [ play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ( main:12::play_movement:51::play_move_rotate:178::play_collision:193 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#15 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#18 current_orientation#20 current_piece_gfx#19 current_xpos#25 play_move_rotate::orientation#3 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_movement:51::play_move_leftright:173::play_collision:231 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#15 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#19 current_piece#15 current_ypos#18 current_orientation#20 current_xpos#21 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_movement:51::play_move_leftright:173::play_collision:242 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#15 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#19 current_piece#15 current_ypos#18 current_orientation#20 current_xpos#21 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_movement:51::play_move_down:165::play_collision:266 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_spawn_current:25::play_collision:295 [ current_movedown_slow#1 current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_spawn_current:27::play_collision:295 [ current_movedown_slow#1 current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_movement:51::play_move_down:165::play_spawn_current:279::play_collision:295 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ) always clobbers reg byte a +Statement [230] (byte*~) current_piece#100 ← (byte*) current_piece#15 [ current_piece#15 current_ypos#18 current_orientation#20 current_xpos#21 current_piece#100 play_collision::orientation#2 play_collision::ypos#2 play_collision::xpos#2 ] ( main:12::play_movement:51::play_move_leftright:173 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#15 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#19 current_piece#15 current_ypos#18 current_orientation#20 current_xpos#21 current_piece#100 play_collision::orientation#2 play_collision::ypos#2 play_collision::xpos#2 ] ) always clobbers reg byte a +Statement [241] (byte*~) current_piece#99 ← (byte*) current_piece#15 [ current_piece#15 current_ypos#18 current_orientation#20 current_xpos#21 current_piece#99 play_collision::orientation#1 play_collision::ypos#1 play_collision::xpos#1 ] ( main:12::play_movement:51::play_move_leftright:173 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#15 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#19 current_piece#15 current_ypos#18 current_orientation#20 current_xpos#21 current_piece#99 play_collision::orientation#1 play_collision::ypos#1 play_collision::xpos#1 ] ) always clobbers reg byte a +Statement [265] (byte*~) current_piece#98 ← (byte*) current_piece#10 [ current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 current_piece#98 play_collision::orientation#0 play_collision::ypos#0 play_collision::xpos#0 ] ( main:12::play_movement:51::play_move_down:165 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 current_piece#98 play_collision::orientation#0 play_collision::ypos#0 play_collision::xpos#0 ] ) always clobbers reg byte a +Statement [280] (byte*~) current_piece#103 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$0) [ current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::piece_idx#2 game_over#52 current_piece#103 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 ] ( main:12::play_movement:51::play_move_down:165 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::piece_idx#2 game_over#52 current_piece#103 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 ] ) always clobbers reg byte a +Statement [287] (byte~) play_spawn_current::$0 ← (byte) play_spawn_current::current_piece_idx#0 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ play_spawn_current::$0 game_over#65 play_spawn_current::current_piece_idx#0 ] ( main:12::play_spawn_current:25 [ current_movedown_slow#1 play_spawn_current::$0 game_over#65 play_spawn_current::current_piece_idx#0 ] main:12::play_spawn_current:27 [ current_movedown_slow#1 play_spawn_current::$0 game_over#65 play_spawn_current::current_piece_idx#0 ] main:12::play_movement:51::play_move_down:165::play_spawn_current:279 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 play_spawn_current::$0 game_over#65 play_spawn_current::current_piece_idx#0 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:175 [ play_spawn_current::current_piece_idx#0 ] +Statement [288] (byte) current_piece_char#4 ← *((const byte[]) PIECES_CHARS#0 + (byte) play_spawn_current::current_piece_idx#0) [ current_piece_char#4 play_spawn_current::$0 game_over#65 play_spawn_current::current_piece_idx#0 ] ( main:12::play_spawn_current:25 [ current_movedown_slow#1 current_piece_char#4 play_spawn_current::$0 game_over#65 play_spawn_current::current_piece_idx#0 ] main:12::play_spawn_current:27 [ current_movedown_slow#1 current_piece_char#4 play_spawn_current::$0 game_over#65 play_spawn_current::current_piece_idx#0 ] main:12::play_movement:51::play_move_down:165::play_spawn_current:279 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_piece_char#4 play_spawn_current::$0 game_over#65 play_spawn_current::current_piece_idx#0 ] ) always clobbers reg byte a +Statement [289] (byte*) current_piece_gfx#7 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$0) + (byte/signed byte/word/signed word/dword/signed dword) 0 [ current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#65 play_spawn_current::current_piece_idx#0 ] ( main:12::play_spawn_current:25 [ current_movedown_slow#1 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#65 play_spawn_current::current_piece_idx#0 ] main:12::play_spawn_current:27 [ current_movedown_slow#1 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#65 play_spawn_current::current_piece_idx#0 ] main:12::play_movement:51::play_move_down:165::play_spawn_current:279 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#65 play_spawn_current::current_piece_idx#0 ] ) always clobbers reg byte a +Statement [290] (byte) current_xpos#102 ← *((const byte[]) PIECES_START_X#0 + (byte) play_spawn_current::current_piece_idx#0) [ current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#65 play_spawn_current::current_piece_idx#0 ] ( main:12::play_spawn_current:25 [ current_movedown_slow#1 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#65 play_spawn_current::current_piece_idx#0 ] main:12::play_spawn_current:27 [ current_movedown_slow#1 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#65 play_spawn_current::current_piece_idx#0 ] main:12::play_movement:51::play_move_down:165::play_spawn_current:279 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#65 play_spawn_current::current_piece_idx#0 ] ) always clobbers reg byte a +Statement [291] (byte) current_ypos#5 ← *((const byte[]) PIECES_START_Y#0 + (byte) play_spawn_current::current_piece_idx#0) [ current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#65 ] ( main:12::play_spawn_current:25 [ current_movedown_slow#1 current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#65 ] main:12::play_spawn_current:27 [ current_movedown_slow#1 current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#65 ] main:12::play_movement:51::play_move_down:165::play_spawn_current:279 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#65 ] ) always clobbers reg byte a +Statement [294] (byte*~) current_piece#102 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$0) [ current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 current_piece#102 play_collision::ypos#4 play_collision::xpos#4 game_over#65 ] ( main:12::play_spawn_current:25 [ current_movedown_slow#1 current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 current_piece#102 play_collision::ypos#4 play_collision::xpos#4 game_over#65 ] main:12::play_spawn_current:27 [ current_movedown_slow#1 current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 current_piece#102 play_collision::ypos#4 play_collision::xpos#4 game_over#65 ] main:12::play_movement:51::play_move_down:165::play_spawn_current:279 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 current_piece#102 play_collision::ypos#4 play_collision::xpos#4 game_over#65 ] ) always clobbers reg byte a +Statement [307] (byte) play_spawn_current::piece_idx#1 ← (byte~) play_spawn_current::$6 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#52 play_spawn_current::piece_idx#1 ] ( main:12::play_spawn_current:25 [ current_movedown_slow#1 current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#52 play_spawn_current::piece_idx#1 ] main:12::play_spawn_current:27 [ current_movedown_slow#1 current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#52 play_spawn_current::piece_idx#1 ] main:12::play_movement:51::play_move_down:165::play_spawn_current:279 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#52 play_spawn_current::piece_idx#1 ] ) always clobbers reg byte a +Statement [312] (byte~) play_update_score::$2 ← < (word) lines_bcd#19 [ current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::$2 ] ( main:12::play_movement:51::play_move_down:165::play_update_score:277 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::$2 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:174 [ play_update_score::removed#0 ] +Statement [313] (byte) play_update_score::lines_before#0 ← (byte~) play_update_score::$2 & (byte/word/signed word/dword/signed dword) 240 [ current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 ] ( main:12::play_movement:51::play_move_down:165::play_update_score:277 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 ] ) always clobbers reg byte a +Statement [314] (byte~) play_update_score::$4 ← (byte) play_update_score::removed#0 << (byte/signed byte/word/signed word/dword/signed dword) 2 [ current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 play_update_score::$4 ] ( main:12::play_movement:51::play_move_down:165::play_update_score:277 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 play_update_score::$4 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:183 [ play_update_score::lines_before#0 ] +Statement [315] (dword) play_update_score::add_bcd#0 ← *((const dword[5]) score_add_bcd#0 + (byte~) play_update_score::$4) [ current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 play_update_score::add_bcd#0 ] ( main:12::play_movement:51::play_move_down:165::play_update_score:277 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 play_update_score::add_bcd#0 ] ) always clobbers reg byte a +Statement [317] (word) lines_bcd#30 ← (word) lines_bcd#19 + (byte) play_update_score::removed#0 [ current_movedown_slow#14 score_bcd#18 level#10 level_bcd#11 play_update_score::lines_before#0 play_update_score::add_bcd#0 lines_bcd#30 ] ( main:12::play_movement:51::play_move_down:165::play_update_score:277 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 current_movedown_slow#14 score_bcd#18 level#10 level_bcd#11 play_update_score::lines_before#0 play_update_score::add_bcd#0 lines_bcd#30 ] ) always clobbers reg byte a +Statement [318] (dword) score_bcd#30 ← (dword) score_bcd#18 + (dword) play_update_score::add_bcd#0 [ current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#30 score_bcd#30 ] ( main:12::play_movement:51::play_move_down:165::play_update_score:277 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#30 score_bcd#30 ] ) always clobbers reg byte a +Statement [320] (byte~) play_update_score::$5 ← < (word) lines_bcd#30 [ current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#30 score_bcd#30 play_update_score::$5 ] ( main:12::play_movement:51::play_move_down:165::play_update_score:277 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#30 score_bcd#30 play_update_score::$5 ] ) always clobbers reg byte a +Statement [321] (byte) play_update_score::lines_after#0 ← (byte~) play_update_score::$5 & (byte/word/signed word/dword/signed dword) 240 [ current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#30 score_bcd#30 play_update_score::lines_after#0 ] ( main:12::play_movement:51::play_move_down:165::play_update_score:277 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#30 score_bcd#30 play_update_score::lines_after#0 ] ) always clobbers reg byte a +Statement [328] if((byte) level#20>(byte/signed byte/word/signed word/dword/signed dword) 29) goto play_increase_level::@2 [ level_bcd#11 level#20 ] ( main:12::play_movement:51::play_move_down:165::play_update_score:277::play_increase_level:324 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 lines_bcd#30 score_bcd#30 level_bcd#11 level#20 ] ) always clobbers reg byte a +Statement [329] (byte) current_movedown_slow#10 ← *((const byte[]) MOVEDOWN_SLOW_SPEEDS#0 + (byte) level#20) [ level_bcd#11 level#20 current_movedown_slow#10 ] ( main:12::play_movement:51::play_move_down:165::play_update_score:277::play_increase_level:324 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 lines_bcd#30 score_bcd#30 level_bcd#11 level#20 current_movedown_slow#10 ] ) always clobbers reg byte a +Statement [332] (byte~) play_increase_level::$1 ← (byte) level_bcd#21 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ level#20 current_movedown_slow#69 level_bcd#21 play_increase_level::$1 ] ( main:12::play_movement:51::play_move_down:165::play_update_score:277::play_increase_level:324 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 lines_bcd#30 score_bcd#30 level#20 current_movedown_slow#69 level_bcd#21 play_increase_level::$1 ] ) always clobbers reg byte a +Statement [334] (byte) level_bcd#8 ← (byte) level_bcd#21 + (byte/signed byte/word/signed word/dword/signed dword) 6 [ level#20 current_movedown_slow#69 level_bcd#8 ] ( main:12::play_movement:51::play_move_down:165::play_update_score:277::play_increase_level:324 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 lines_bcd#30 score_bcd#30 level#20 current_movedown_slow#69 level_bcd#8 ] ) always clobbers reg byte a +Statement [338] (byte) play_increase_level::b4#0 ← (byte) play_increase_level::b#2 << (byte/signed byte/word/signed word/dword/signed dword) 2 [ level#20 current_movedown_slow#69 level_bcd#64 play_increase_level::b#2 play_increase_level::b4#0 ] ( main:12::play_movement:51::play_move_down:165::play_update_score:277::play_increase_level:324 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 lines_bcd#30 score_bcd#30 level#20 current_movedown_slow#69 level_bcd#64 play_increase_level::b#2 play_increase_level::b4#0 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:76 [ play_increase_level::b#2 play_increase_level::b#1 ] +Statement [339] *((const dword[5]) score_add_bcd#0 + (byte) play_increase_level::b4#0) ← *((const dword[5]) score_add_bcd#0 + (byte) play_increase_level::b4#0) + *((const dword[]) SCORE_BASE_BCD#0 + (byte) play_increase_level::b4#0) [ level#20 current_movedown_slow#69 level_bcd#64 play_increase_level::b#2 ] ( main:12::play_movement:51::play_move_down:165::play_update_score:277::play_increase_level:324 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 lines_bcd#30 score_bcd#30 level#20 current_movedown_slow#69 level_bcd#64 play_increase_level::b#2 ] ) always clobbers reg byte a +Statement [356] (byte) play_remove_lines::w#2 ← (byte) play_remove_lines::w#1 + (const byte) PLAYFIELD_COLS#0 [ play_remove_lines::y#8 play_remove_lines::removed#11 play_remove_lines::r#1 play_remove_lines::w#2 ] ( main:12::play_movement:51::play_move_down:165::play_remove_lines:273 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 game_over#10 next_piece_idx#10 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_remove_lines::y#8 play_remove_lines::removed#11 play_remove_lines::r#1 play_remove_lines::w#2 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:77 [ play_remove_lines::y#8 play_remove_lines::y#1 ] +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:78 [ 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:79 [ play_remove_lines::r#2 play_remove_lines::r#3 play_remove_lines::r#1 ] +Statement [364] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::w#6) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ play_remove_lines::removed#7 play_remove_lines::w#6 ] ( main:12::play_movement:51::play_move_down:165::play_remove_lines:273 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 game_over#10 next_piece_idx#10 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_remove_lines::removed#7 play_remove_lines::w#6 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:82 [ 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 [367] (byte) play_lock_current::ypos2#0 ← (byte) current_ypos#10 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ current_piece_char#21 current_piece_gfx#111 current_xpos#121 play_lock_current::ypos2#0 ] ( main:12::play_movement:51::play_move_down:165::play_lock_current:271 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 game_over#10 next_piece_idx#10 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 current_piece_char#21 current_piece_gfx#111 current_xpos#121 play_lock_current::ypos2#0 ] ) always clobbers reg byte a +Statement [369] (byte*) play_lock_current::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_lock_current::ypos2#2) [ current_piece_char#21 current_piece_gfx#111 current_xpos#121 play_lock_current::ypos2#2 play_lock_current::i#3 play_lock_current::l#6 play_lock_current::playfield_line#0 ] ( main:12::play_movement:51::play_move_down:165::play_lock_current:271 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 game_over#10 next_piece_idx#10 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 current_piece_char#21 current_piece_gfx#111 current_xpos#121 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:83 [ 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:85 [ 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:84 [ play_lock_current::l#6 play_lock_current::l#1 ] +Statement [373] if(*((byte*) current_piece_gfx#111 + (byte) play_lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_lock_current::@3 [ current_piece_char#21 current_piece_gfx#111 current_xpos#121 play_lock_current::ypos2#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::col#2 play_lock_current::c#2 play_lock_current::i#1 ] ( main:12::play_movement:51::play_move_down:165::play_lock_current:271 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 game_over#10 next_piece_idx#10 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 current_piece_char#21 current_piece_gfx#111 current_xpos#121 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:86 [ 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:87 [ play_lock_current::c#2 play_lock_current::c#1 ] +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:196 [ play_lock_current::i#1 ] +Statement [374] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::col#2) ← (byte) current_piece_char#21 [ current_piece_char#21 current_piece_gfx#111 current_xpos#121 play_lock_current::ypos2#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::col#2 play_lock_current::c#2 play_lock_current::i#1 ] ( main:12::play_movement:51::play_move_down:165::play_lock_current:271 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 game_over#10 next_piece_idx#10 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 current_piece_char#21 current_piece_gfx#111 current_xpos#121 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 [385] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte/signed byte/word/signed word/dword/signed dword) 3 [ keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] ( main:12::play_movement:51::play_move_down:165::keyboard_event_pressed:251 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 current_movedown_counter#12 play_move_down::movedown#10 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:12::keyboard_event_scan:43::keyboard_event_pressed:407 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:12::keyboard_event_scan:43::keyboard_event_pressed:413 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_modifiers#11 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:12::keyboard_event_scan:43::keyboard_event_pressed:419 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_modifiers#12 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:12::keyboard_event_scan:43::keyboard_event_pressed:425 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_modifiers#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:55 [ 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:88 [ keyboard_event_pressed::keycode#5 ] +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:91 [ keyboard_modifiers#13 keyboard_modifiers#4 keyboard_modifiers#12 keyboard_modifiers#3 keyboard_modifiers#11 ] +Statement [387] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] ( main:12::play_movement:51::play_move_down:165::keyboard_event_pressed:251 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 current_movedown_counter#12 play_move_down::movedown#10 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:12::keyboard_event_scan:43::keyboard_event_pressed:407 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:12::keyboard_event_scan:43::keyboard_event_pressed:413 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_modifiers#11 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:12::keyboard_event_scan:43::keyboard_event_pressed:419 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_modifiers#12 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:12::keyboard_event_scan:43::keyboard_event_pressed:425 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_modifiers#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:198 [ keyboard_event_pressed::row_bits#0 ] +Statement [388] (byte) keyboard_event_pressed::return#11 ← (byte) keyboard_event_pressed::row_bits#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte~) keyboard_event_pressed::$1) [ keyboard_event_pressed::return#11 ] ( main:12::play_movement:51::play_move_down:165::keyboard_event_pressed:251 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 current_movedown_counter#12 play_move_down::movedown#10 keyboard_event_pressed::return#11 ] main:12::keyboard_event_scan:43::keyboard_event_pressed:407 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_pressed::return#11 ] main:12::keyboard_event_scan:43::keyboard_event_pressed:413 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_modifiers#11 keyboard_event_pressed::return#11 ] main:12::keyboard_event_scan:43::keyboard_event_pressed:419 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_modifiers#12 keyboard_event_pressed::return#11 ] main:12::keyboard_event_scan:43::keyboard_event_pressed:425 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_modifiers#13 keyboard_event_pressed::return#11 ] ) always clobbers reg byte a +Statement [402] (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:43 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_events_size#29 keyboard_event_scan::keycode#1 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:90 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] +Statement [417] (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:43 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_modifiers#3 ] ) always clobbers reg byte a +Statement [423] (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:43 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_modifiers#4 ] ) always clobbers reg byte a +Statement [429] (byte) keyboard_modifiers#5 ← (byte) keyboard_modifiers#13 | (const byte) KEY_MODIFIER_COMMODORE#0 [ keyboard_events_size#13 ] ( main:12::keyboard_event_scan:43 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 ] ) always clobbers reg byte a +Statement [432] (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:43 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$3 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:203 [ keyboard_event_scan::row_scan#0 ] +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:92 [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:93 [ 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 [433] (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:43 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$4 ] ) always clobbers reg byte a +Statement [436] (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:43 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::event_type#0 ] ) always clobbers reg byte a +Statement [438] *((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:43 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 ] ) always clobbers reg byte a +Statement [444] *((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:43 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::keycode#15 keyboard_events_size#30 ] ) always clobbers reg byte a +Statement [445] (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:43 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$11 ] ) always clobbers reg byte a +Statement [448] *((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:43::keyboard_matrix_read:398 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#29 ] ) always clobbers reg byte a +Statement [449] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:12::keyboard_event_scan:43::keyboard_matrix_read:398 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#29 keyboard_matrix_read::return#0 ] ) always clobbers reg byte a +Statement [460] (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:96 [ play_init::j#2 play_init::j#1 ] +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:99 [ play_init::idx#2 play_init::idx#1 ] +Statement [461] *((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 [462] *((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 [463] (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 [464] (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 [467] *((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 [470] (byte) play_init::b4#0 ← (byte) play_init::b#2 << (byte/signed byte/word/signed word/dword/signed dword) 2 [ current_movedown_slow#1 play_init::b#2 play_init::b4#0 ] ( main:12::play_init:23 [ current_movedown_slow#1 play_init::b#2 play_init::b4#0 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:100 [ play_init::b#2 play_init::b#1 ] +Statement [471] *((const dword[5]) score_add_bcd#0 + (byte) play_init::b4#0) ← *((const dword[]) SCORE_BASE_BCD#0 + (byte) play_init::b4#0) [ current_movedown_slow#1 play_init::b#2 ] ( main:12::play_init:23 [ current_movedown_slow#1 play_init::b#2 ] ) always clobbers reg byte a +Statement [476] *((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 [449] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a -Statement [450] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a -Statement [451] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a -Statement [452] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a -Statement [453] *((const byte*) RASTER#0) ← (const byte) IRQ_RASTER_FIRST#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a -Statement [454] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a -Statement [455] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a -Statement [458] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 15 [ ] ( main:12::sprites_init:19 [ ] ) always clobbers reg byte a -Statement [459] *((const byte*) SPRITES_MC#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:12::sprites_init:19 [ ] ) always clobbers reg byte a -Statement [460] *((const byte*) SPRITES_EXPAND_Y#0) ← *((const byte*) SPRITES_MC#0) [ ] ( main:12::sprites_init:19 [ ] ) always clobbers reg byte a -Statement [461] *((const byte*) SPRITES_EXPAND_X#0) ← *((const byte*) SPRITES_EXPAND_Y#0) [ ] ( main:12::sprites_init:19 [ ] ) always clobbers reg byte a -Statement [463] (byte) sprites_init::s2#0 ← (byte) sprites_init::s#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ sprites_init::s#2 sprites_init::xpos#2 sprites_init::s2#0 ] ( main:12::sprites_init:19 [ sprites_init::s#2 sprites_init::xpos#2 sprites_init::s2#0 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:93 [ sprites_init::s#2 sprites_init::s#1 ] -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:94 [ sprites_init::xpos#2 sprites_init::xpos#1 ] -Statement [464] *((const byte*) SPRITES_XPOS#0 + (byte) sprites_init::s2#0) ← (byte) sprites_init::xpos#2 [ sprites_init::s#2 sprites_init::xpos#2 ] ( main:12::sprites_init:19 [ sprites_init::s#2 sprites_init::xpos#2 ] ) always clobbers reg byte a -Statement [465] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::s#2) ← (const byte) BLACK#0 [ sprites_init::s#2 sprites_init::xpos#2 ] ( main:12::sprites_init:19 [ sprites_init::s#2 sprites_init::xpos#2 ] ) always clobbers reg byte a -Statement [466] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 [ sprites_init::s#2 sprites_init::xpos#1 ] ( main:12::sprites_init:19 [ sprites_init::s#2 sprites_init::xpos#1 ] ) always clobbers reg byte a -Statement [471] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a -Statement [473] *((const byte*) CIA2_PORT_A#0) ← (const byte) render_init::vicSelectGfxBank1_toDd001_return#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a -Statement [474] *((const byte*) D011#0) ← (const byte) VIC_ECM#0|(const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a -Statement [475] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a -Statement [476] *((const byte*) BGCOL1#0) ← (const byte) BLACK#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a -Statement [477] *((const byte*) BGCOL2#0) ← (const byte) BLUE#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a -Statement [478] *((const byte*) BGCOL3#0) ← (const byte) CYAN#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a -Statement [479] *((const byte*) BGCOL4#0) ← (const byte) GREY#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a -Statement [484] (byte~) render_init::$13 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 render_init::$13 ] ( main:12::render_init:17 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 render_init::$13 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:95 [ render_init::i#2 render_init::i#1 ] -Statement [485] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_init::$13) ← (byte*) render_init::li_1#2 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 ] ( main:12::render_init:17 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 ] ) always clobbers reg byte a -Statement [486] (byte~) render_init::$14 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 render_init::$14 ] ( main:12::render_init:17 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 render_init::$14 ] ) always clobbers reg byte a -Statement [487] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_2#0 + (byte~) render_init::$14) ← (byte*) render_init::li_2#2 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 ] ( main:12::render_init:17 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 ] ) always clobbers reg byte a -Statement [488] (byte*) render_init::li_1#1 ← (byte*) render_init::li_1#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ render_init::i#2 render_init::li_2#2 render_init::li_1#1 ] ( main:12::render_init:17 [ render_init::i#2 render_init::li_2#2 render_init::li_1#1 ] ) always clobbers reg byte a -Statement [489] (byte*) render_init::li_2#1 ← (byte*) render_init::li_2#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ render_init::i#2 render_init::li_1#1 render_init::li_2#1 ] ( main:12::render_init:17 [ render_init::i#2 render_init::li_1#1 render_init::li_2#1 ] ) always clobbers reg byte a -Statement [496] *((byte*) render_screen_original::screen#5) ← (const byte) render_screen_original::SPACE#0 [ render_screen_original::oscr#4 render_screen_original::ocols#4 render_screen_original::y#6 render_screen_original::screen#5 render_screen_original::cols#4 render_screen_original::x#4 ] ( main:12::render_init:17::render_screen_original:480 [ render_screen_original::oscr#4 render_screen_original::ocols#4 render_screen_original::y#6 render_screen_original::screen#5 render_screen_original::cols#4 render_screen_original::x#4 ] main:12::render_init:17::render_screen_original:482 [ render_screen_original::oscr#4 render_screen_original::ocols#4 render_screen_original::y#6 render_screen_original::screen#5 render_screen_original::cols#4 render_screen_original::x#4 ] ) always clobbers reg byte a reg byte y -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:100 [ render_screen_original::y#6 render_screen_original::y#1 ] -Removing always clobbered register reg byte y as potential for zp ZP_BYTE:100 [ render_screen_original::y#6 render_screen_original::y#1 ] -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:109 [ render_screen_original::x#6 render_screen_original::x#5 render_screen_original::x#4 render_screen_original::x#1 render_screen_original::x#2 render_screen_original::x#3 ] -Removing always clobbered register reg byte y as potential for zp ZP_BYTE:109 [ render_screen_original::x#6 render_screen_original::x#5 render_screen_original::x#4 render_screen_original::x#1 render_screen_original::x#2 render_screen_original::x#3 ] -Statement [498] *((byte*) render_screen_original::cols#4) ← (const byte) BLACK#0 [ render_screen_original::oscr#4 render_screen_original::ocols#4 render_screen_original::y#6 render_screen_original::cols#4 render_screen_original::x#4 render_screen_original::screen#2 ] ( main:12::render_init:17::render_screen_original:480 [ render_screen_original::oscr#4 render_screen_original::ocols#4 render_screen_original::y#6 render_screen_original::cols#4 render_screen_original::x#4 render_screen_original::screen#2 ] main:12::render_init:17::render_screen_original:482 [ render_screen_original::oscr#4 render_screen_original::ocols#4 render_screen_original::y#6 render_screen_original::cols#4 render_screen_original::x#4 render_screen_original::screen#2 ] ) always clobbers reg byte a reg byte y -Statement [503] *((byte*) render_screen_original::screen#6) ← *((byte*) render_screen_original::oscr#2) [ render_screen_original::y#6 render_screen_original::oscr#2 render_screen_original::screen#6 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 ] ( main:12::render_init:17::render_screen_original:480 [ render_screen_original::y#6 render_screen_original::oscr#2 render_screen_original::screen#6 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 ] main:12::render_init:17::render_screen_original:482 [ render_screen_original::y#6 render_screen_original::oscr#2 render_screen_original::screen#6 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 ] ) always clobbers reg byte a reg byte y -Statement [506] *((byte*) render_screen_original::cols#5) ← *((byte*) render_screen_original::ocols#2) [ render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 render_screen_original::screen#3 ] ( main:12::render_init:17::render_screen_original:480 [ render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 render_screen_original::screen#3 ] main:12::render_init:17::render_screen_original:482 [ render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 render_screen_original::screen#3 ] ) always clobbers reg byte a reg byte y -Statement [512] *((byte*) render_screen_original::screen#7) ← (const byte) render_screen_original::SPACE#0 [ render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::ocols#1 render_screen_original::screen#7 render_screen_original::cols#6 render_screen_original::x#6 ] ( main:12::render_init:17::render_screen_original:480 [ render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::ocols#1 render_screen_original::screen#7 render_screen_original::cols#6 render_screen_original::x#6 ] main:12::render_init:17::render_screen_original:482 [ render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::ocols#1 render_screen_original::screen#7 render_screen_original::cols#6 render_screen_original::x#6 ] ) always clobbers reg byte a reg byte y -Statement [514] *((byte*) render_screen_original::cols#6) ← (const byte) BLACK#0 [ render_screen_original::y#6 render_screen_original::screen#10 render_screen_original::oscr#1 render_screen_original::ocols#1 render_screen_original::cols#6 render_screen_original::x#6 ] ( main:12::render_init:17::render_screen_original:480 [ render_screen_original::y#6 render_screen_original::screen#10 render_screen_original::oscr#1 render_screen_original::ocols#1 render_screen_original::cols#6 render_screen_original::x#6 ] main:12::render_init:17::render_screen_original:482 [ render_screen_original::y#6 render_screen_original::screen#10 render_screen_original::oscr#1 render_screen_original::ocols#1 render_screen_original::cols#6 render_screen_original::x#6 ] ) always clobbers reg byte a reg byte y -Statement [521] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 [ ] ( main:12::sid_rnd_init:15 [ ] ) always clobbers reg byte a -Statement [522] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 [ ] ( main:12::sid_rnd_init:15 [ ] ) always clobbers reg byte a -Statement [532] if(*((const byte*) RASTER#0)<(byte) sprites_irq::raster_sprite_gfx_modify#0) goto sprites_irq::@1 [ render_screen_showing#0 irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#0 sprites_irq::raster_sprite_gfx_modify#0 ] ( [ render_screen_showing#0 irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#0 sprites_irq::raster_sprite_gfx_modify#0 ] ) always clobbers reg byte a -Statement [534] if((byte) render_screen_showing#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sprites_irq::@2 [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#0 sprites_irq::ptr#0 ] ( [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#0 sprites_irq::ptr#0 ] ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp ZP_BYTE:215 [ sprites_irq::ptr#0 ] -Statement [541] (byte) irq_cnt#1 ← ++ (byte) irq_cnt#0 [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#1 ] ( [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#1 ] ) always clobbers reg byte y -Statement [542] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 9) goto sprites_irq::@4 [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#1 ] ( [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#1 ] ) always clobbers reg byte a -Statement [543] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto sprites_irq::@5 [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 ] ( [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 ] ) always clobbers reg byte a -Statement [544] (byte) irq_raster_next#3 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 20 [ irq_sprite_ypos#0 irq_sprite_ptr#0 irq_raster_next#3 ] ( [ irq_sprite_ypos#0 irq_sprite_ptr#0 irq_raster_next#3 ] ) always clobbers reg byte a -Statement [545] (byte) irq_sprite_ypos#3 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 [ irq_sprite_ptr#0 irq_raster_next#3 ] ( [ irq_sprite_ptr#0 irq_raster_next#3 ] ) always clobbers reg byte a -Statement [546] (byte) irq_sprite_ptr#3 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 [ irq_raster_next#3 ] ( [ irq_raster_next#3 ] ) always clobbers reg byte a -Statement [548] *((const byte*) RASTER#0) ← (byte) irq_raster_next#4 [ ] ( [ ] ) always clobbers reg byte a -Statement [549] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 [ ] ( [ ] ) always clobbers reg byte a -Statement [550] return [ ] ( [ ] ) always clobbers reg byte a reg byte x reg byte y -Statement [551] (byte) irq_cnt#2 ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ irq_sprite_ypos#0 irq_sprite_ptr#0 ] ( [ irq_sprite_ypos#0 irq_sprite_ptr#0 ] ) always clobbers reg byte a -Statement [552] (byte) irq_raster_next#2 ← (const byte) IRQ_RASTER_FIRST#0 [ irq_sprite_ypos#0 irq_sprite_ptr#0 irq_raster_next#2 ] ( [ irq_sprite_ypos#0 irq_sprite_ptr#0 irq_raster_next#2 ] ) always clobbers reg byte a -Statement [553] (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 [ irq_sprite_ptr#0 irq_raster_next#2 ] ( [ irq_sprite_ptr#0 irq_raster_next#2 ] ) always clobbers reg byte a -Statement [554] (byte) irq_sprite_ptr#2 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 [ irq_raster_next#2 ] ( [ irq_raster_next#2 ] ) always clobbers reg byte a -Statement [555] (byte) irq_raster_next#1 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 [ irq_raster_next#1 ] ( [ irq_raster_next#1 ] ) always clobbers reg byte a -Statement [556] (byte) irq_sprite_ypos#1 ← (const byte) SPRITES_FIRST_YPOS#0 [ irq_raster_next#1 ] ( [ irq_raster_next#1 ] ) always clobbers reg byte a -Statement [558] (byte) irq_sprite_ptr#1 ← (const byte) sprites_irq::toSpritePtr2_return#0 [ irq_raster_next#1 ] ( [ irq_raster_next#1 ] ) always clobbers reg byte a +Statement [478] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a +Statement [479] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a +Statement [480] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a +Statement [481] *((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 [482] *((const byte*) RASTER#0) ← (const byte) IRQ_RASTER_FIRST#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a +Statement [483] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a +Statement [484] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a +Statement [487] *((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 [488] *((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 [489] *((const byte*) SPRITES_EXPAND_Y#0) ← *((const byte*) SPRITES_MC#0) [ ] ( main:12::sprites_init:19 [ ] ) always clobbers reg byte a +Statement [490] *((const byte*) SPRITES_EXPAND_X#0) ← *((const byte*) SPRITES_EXPAND_Y#0) [ ] ( main:12::sprites_init:19 [ ] ) always clobbers reg byte a +Statement [492] (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:101 [ sprites_init::s#2 sprites_init::s#1 ] +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:102 [ sprites_init::xpos#2 sprites_init::xpos#1 ] +Statement [493] *((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 [494] *((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 [495] (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 [500] *((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 [502] *((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 [503] *((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 [504] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a +Statement [505] *((const byte*) BGCOL1#0) ← (const byte) BLACK#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a +Statement [506] *((const byte*) BGCOL2#0) ← (const byte) BLUE#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a +Statement [507] *((const byte*) BGCOL3#0) ← (const byte) CYAN#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a +Statement [508] *((const byte*) BGCOL4#0) ← (const byte) GREY#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a +Statement [513] (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:103 [ render_init::i#2 render_init::i#1 ] +Statement [514] *((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 [515] (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 [516] *((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 [517] (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 [518] (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 [525] *((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:509 [ 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:511 [ 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:108 [ render_screen_original::y#6 render_screen_original::y#1 ] +Removing always clobbered register reg byte y as potential for zp ZP_BYTE:108 [ render_screen_original::y#6 render_screen_original::y#1 ] +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:117 [ 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:117 [ 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 [527] *((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:509 [ 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:511 [ 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 [532] *((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:509 [ 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:511 [ 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 [535] *((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:509 [ 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:511 [ 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 [541] *((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:509 [ 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:511 [ 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 [543] *((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:509 [ 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:511 [ 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 [550] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 [ ] ( main:12::sid_rnd_init:15 [ ] ) always clobbers reg byte a +Statement [551] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 [ ] ( main:12::sid_rnd_init:15 [ ] ) always clobbers reg byte a +Statement [561] if(*((const byte*) RASTER#0)<(byte) sprites_irq::raster_sprite_gfx_modify#0) goto sprites_irq::@1 [ render_screen_showing#0 irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#0 sprites_irq::raster_sprite_gfx_modify#0 ] ( [ render_screen_showing#0 irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#0 sprites_irq::raster_sprite_gfx_modify#0 ] ) always clobbers reg byte a +Statement [563] 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:227 [ sprites_irq::ptr#0 ] +Statement [570] (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 [571] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 9) goto sprites_irq::@4 [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#1 ] ( [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#1 ] ) always clobbers reg byte a +Statement [572] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto sprites_irq::@5 [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 ] ( [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 ] ) always clobbers reg byte a +Statement [573] (byte) irq_raster_next#3 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 20 [ irq_sprite_ypos#0 irq_sprite_ptr#0 irq_raster_next#3 ] ( [ irq_sprite_ypos#0 irq_sprite_ptr#0 irq_raster_next#3 ] ) always clobbers reg byte a +Statement [574] (byte) irq_sprite_ypos#3 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 [ irq_sprite_ptr#0 irq_raster_next#3 ] ( [ irq_sprite_ptr#0 irq_raster_next#3 ] ) always clobbers reg byte a +Statement [575] (byte) irq_sprite_ptr#3 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 [ irq_raster_next#3 ] ( [ irq_raster_next#3 ] ) always clobbers reg byte a +Statement [577] *((const byte*) RASTER#0) ← (byte) irq_raster_next#4 [ ] ( [ ] ) always clobbers reg byte a +Statement [578] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 [ ] ( [ ] ) always clobbers reg byte a +Statement [579] return [ ] ( [ ] ) always clobbers reg byte a reg byte x reg byte y +Statement [580] (byte) irq_cnt#2 ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ irq_sprite_ypos#0 irq_sprite_ptr#0 ] ( [ irq_sprite_ypos#0 irq_sprite_ptr#0 ] ) always clobbers reg byte a +Statement [581] (byte) irq_raster_next#2 ← (const byte) IRQ_RASTER_FIRST#0 [ irq_sprite_ypos#0 irq_sprite_ptr#0 irq_raster_next#2 ] ( [ irq_sprite_ypos#0 irq_sprite_ptr#0 irq_raster_next#2 ] ) always clobbers reg byte a +Statement [582] (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 [583] (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 [584] (byte) irq_raster_next#1 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 [ irq_raster_next#1 ] ( [ irq_raster_next#1 ] ) always clobbers reg byte a +Statement [585] (byte) irq_sprite_ypos#1 ← (const byte) SPRITES_FIRST_YPOS#0 [ irq_raster_next#1 ] ( [ irq_raster_next#1 ] ) always clobbers reg byte a +Statement [587] (byte) irq_sprite_ptr#1 ← (const byte) sprites_irq::toSpritePtr2_return#0 [ irq_raster_next#1 ] ( [ irq_raster_next#1 ] ) always clobbers reg byte a Statement [1] (byte) render_screen_showing#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( ) always clobbers reg byte a Statement [6] (byte) irq_raster_next#0 ← (const byte) IRQ_RASTER_FIRST#0 [ ] ( ) always clobbers reg byte a Statement [7] (byte) irq_sprite_ypos#0 ← (const byte) SPRITES_FIRST_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 21 [ ] ( ) always clobbers reg byte a Statement [9] (byte) irq_sprite_ptr#0 ← (const byte) toSpritePtr1_return#0+(byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( ) always clobbers reg byte a Statement [10] (byte) irq_cnt#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( ) always clobbers reg byte a -Statement [30] (byte*~) current_piece_gfx#114 ← (byte*) current_piece_gfx#21 [ current_ypos#100 current_ypos#22 current_xpos#124 current_xpos#28 current_piece_gfx#114 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 current_movedown_slow#1 game_over#15 ] ( main:12 [ current_ypos#100 current_ypos#22 current_xpos#124 current_xpos#28 current_piece_gfx#114 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 current_movedown_slow#1 game_over#15 ] ) always clobbers reg byte a -Statement [33] (byte*~) current_piece#88 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) [ current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 current_piece#88 current_movedown_slow#1 game_over#15 ] ( main:12 [ current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 current_piece#88 current_movedown_slow#1 game_over#15 ] ) always clobbers reg byte a -Statement [35] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 keyboard_events_size#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 ] ( main:12 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 keyboard_events_size#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 ] ) always clobbers reg byte a -Statement [56] (byte*~) current_piece_gfx#115 ← (byte*) current_piece_gfx#16 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 current_ypos#101 render_screen_render#64 current_xpos#125 current_piece_gfx#115 ] ( main:12 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 current_ypos#101 render_screen_render#64 current_xpos#125 current_piece_gfx#115 ] ) always clobbers reg byte a -Statement [63] (byte) render_screen_render#11 ← (byte) render_screen_render#17 ^ (byte/signed byte/word/signed word/dword/signed dword) 64 [ render_screen_show#16 render_screen_render#11 ] ( main:12::render_screen_swap:62 [ current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_show#16 render_screen_render#11 ] ) always clobbers reg byte a -Statement [64] (byte) render_screen_show#13 ← (byte) render_screen_show#16 ^ (byte/signed byte/word/signed word/dword/signed dword) 64 [ render_screen_show#13 render_screen_render#11 ] ( main:12::render_screen_swap:62 [ current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_show#13 render_screen_render#11 ] ) always clobbers reg byte a -Statement [69] (byte*) render_bcd::screen#0 ← (byte*) render_score::screen#2 [ render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen#0 ] ( main:12::render_score:60 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen#0 ] ) always clobbers reg byte a -Statement [72] (byte*) render_bcd::screen#1 ← (byte*) render_score::screen#2 [ render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen#1 ] ( main:12::render_score:60 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen#1 ] ) always clobbers reg byte a -Statement [75] (byte*) render_bcd::screen#2 ← (byte*) render_score::screen#2 [ render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen#2 ] ( main:12::render_score:60 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen#2 ] ) always clobbers reg byte a -Statement [78] (byte) render_bcd::bcd#3 ← > (word) lines_bcd#15 [ render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#3 ] ( main:12::render_score:60 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#3 ] ) always clobbers reg byte a -Statement [79] (byte*) render_bcd::screen#3 ← (byte*) render_score::screen#2 [ render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#3 render_bcd::screen#3 ] ( main:12::render_score:60 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#3 render_bcd::screen#3 ] ) always clobbers reg byte a -Statement [81] (byte) render_bcd::bcd#4 ← < (word) lines_bcd#15 [ render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#4 ] ( main:12::render_score:60 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#4 ] ) always clobbers reg byte a -Statement [82] (byte*) render_bcd::screen#4 ← (byte*) render_score::screen#2 [ render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#4 render_bcd::screen#4 ] ( main:12::render_score:60 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#4 render_bcd::screen#4 ] ) always clobbers reg byte a -Statement [84] (byte*) render_bcd::screen#5 ← (byte*) render_score::screen#2 [ render_screen_render#17 lines_bcd#15 level_bcd#17 render_bcd::screen#5 ] ( main:12::render_score:60 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_bcd::screen#5 ] ) always clobbers reg byte a -Statement [89] (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:60::render_bcd:71 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:60::render_bcd:74 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:60::render_bcd:77 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:60::render_bcd:80 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:60::render_bcd:83 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:60::render_bcd:86 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] ) always clobbers reg byte a -Statement [91] (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:60::render_bcd:71 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$3 ] main:12::render_score:60::render_bcd:74 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$3 ] main:12::render_score:60::render_bcd:77 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$3 ] main:12::render_score:60::render_bcd:80 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$3 ] main:12::render_score:60::render_bcd:83 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$3 ] main:12::render_score:60::render_bcd:86 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$3 ] ) always clobbers reg byte a -Statement [92] (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:60::render_bcd:71 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$4 ] main:12::render_score:60::render_bcd:74 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$4 ] main:12::render_score:60::render_bcd:77 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$4 ] main:12::render_score:60::render_bcd:80 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$4 ] main:12::render_score:60::render_bcd:83 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$4 ] main:12::render_score:60::render_bcd:86 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$4 ] ) always clobbers reg byte a -Statement [93] *((byte*) render_bcd::screen_pos#0) ← (byte~) render_bcd::$4 [ render_bcd::bcd#6 render_bcd::screen_pos#0 ] ( main:12::render_score:60::render_bcd:71 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:60::render_bcd:74 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:60::render_bcd:77 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:60::render_bcd:80 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:60::render_bcd:83 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:60::render_bcd:86 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_bcd::bcd#6 render_bcd::screen_pos#0 ] ) always clobbers reg byte y -Statement [96] (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:60::render_bcd:71 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$5 ] main:12::render_score:60::render_bcd:74 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$5 ] main:12::render_score:60::render_bcd:77 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$5 ] main:12::render_score:60::render_bcd:80 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$5 ] main:12::render_score:60::render_bcd:83 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$5 ] main:12::render_score:60::render_bcd:86 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_bcd::screen_pos#3 render_bcd::$5 ] ) always clobbers reg byte a -Statement [97] (byte~) render_bcd::$6 ← (const byte) render_bcd::ZERO_CHAR#0 + (byte~) render_bcd::$5 [ render_bcd::screen_pos#3 render_bcd::$6 ] ( main:12::render_score:60::render_bcd:71 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$6 ] main:12::render_score:60::render_bcd:74 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$6 ] main:12::render_score:60::render_bcd:77 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$6 ] main:12::render_score:60::render_bcd:80 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$6 ] main:12::render_score:60::render_bcd:83 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$6 ] main:12::render_score:60::render_bcd:86 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_bcd::screen_pos#3 render_bcd::$6 ] ) always clobbers reg byte a -Statement [98] *((byte*) render_bcd::screen_pos#3) ← (byte~) render_bcd::$6 [ render_bcd::screen_pos#3 ] ( main:12::render_score:60::render_bcd:71 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen_pos#3 ] main:12::render_score:60::render_bcd:74 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen_pos#3 ] main:12::render_score:60::render_bcd:77 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen_pos#3 ] main:12::render_score:60::render_bcd:80 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen_pos#3 ] main:12::render_score:60::render_bcd:83 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen_pos#3 ] main:12::render_score:60::render_bcd:86 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_bcd::screen_pos#3 ] ) always clobbers reg byte y -Statement [99] (byte*) render_bcd::screen_pos#1 ← ++ (byte*) render_bcd::screen_pos#3 [ ] ( main:12::render_score:60::render_bcd:71 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 ] main:12::render_score:60::render_bcd:74 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 ] main:12::render_score:60::render_bcd:77 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 ] main:12::render_score:60::render_bcd:80 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 ] main:12::render_score:60::render_bcd:83 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 render_score::screen#2 ] main:12::render_score:60::render_bcd:86 [ render_screen_show#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#17 lines_bcd#15 level_bcd#17 ] ) always clobbers reg byte a -Statement [102] (byte) render_moving::ypos2#0 ← (byte) current_ypos#11 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ render_screen_render#30 current_xpos#57 current_piece_gfx#62 current_piece_char#64 render_moving::ypos2#0 ] ( main:12::render_moving:32 [ current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 current_movedown_slow#1 game_over#15 render_screen_render#30 current_xpos#57 current_piece_gfx#62 current_piece_char#64 render_moving::ypos2#0 ] main:12::render_moving:58 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_render#30 current_xpos#57 current_piece_gfx#62 current_piece_char#64 render_moving::ypos2#0 ] ) always clobbers reg byte a -Statement [104] if((byte) render_moving::ypos2#2>(byte/signed byte/word/signed word/dword/signed dword) 2) goto render_moving::@2 [ render_screen_render#30 current_xpos#57 current_piece_gfx#62 current_piece_char#64 render_moving::ypos2#2 render_moving::i#3 render_moving::l#4 ] ( main:12::render_moving:32 [ current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 current_movedown_slow#1 game_over#15 render_screen_render#30 current_xpos#57 current_piece_gfx#62 current_piece_char#64 render_moving::ypos2#2 render_moving::i#3 render_moving::l#4 ] main:12::render_moving:58 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_render#30 current_xpos#57 current_piece_gfx#62 current_piece_char#64 render_moving::ypos2#2 render_moving::i#3 render_moving::l#4 ] ) always clobbers reg byte a -Statement [105] (byte) render_moving::i#1 ← (byte) render_moving::i#3 + (byte/signed byte/word/signed word/dword/signed dword) 4 [ render_screen_render#30 current_xpos#57 current_piece_gfx#62 current_piece_char#64 render_moving::ypos2#2 render_moving::l#4 render_moving::i#1 ] ( main:12::render_moving:32 [ current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 current_movedown_slow#1 game_over#15 render_screen_render#30 current_xpos#57 current_piece_gfx#62 current_piece_char#64 render_moving::ypos2#2 render_moving::l#4 render_moving::i#1 ] main:12::render_moving:58 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_render#30 current_xpos#57 current_piece_gfx#62 current_piece_char#64 render_moving::ypos2#2 render_moving::l#4 render_moving::i#1 ] ) always clobbers reg byte a -Statement [111] (byte~) render_moving::$2 ← (byte) render_screen_render#30 + (byte) render_moving::ypos2#2 [ render_screen_render#30 current_xpos#57 current_piece_gfx#62 current_piece_char#64 render_moving::ypos2#2 render_moving::i#3 render_moving::l#4 render_moving::$2 ] ( main:12::render_moving:32 [ current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 current_movedown_slow#1 game_over#15 render_screen_render#30 current_xpos#57 current_piece_gfx#62 current_piece_char#64 render_moving::ypos2#2 render_moving::i#3 render_moving::l#4 render_moving::$2 ] main:12::render_moving:58 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_render#30 current_xpos#57 current_piece_gfx#62 current_piece_char#64 render_moving::ypos2#2 render_moving::i#3 render_moving::l#4 render_moving::$2 ] ) always clobbers reg byte a -Statement [112] (byte*) render_moving::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_moving::$2) [ render_screen_render#30 current_xpos#57 current_piece_gfx#62 current_piece_char#64 render_moving::ypos2#2 render_moving::i#3 render_moving::l#4 render_moving::screen_line#0 ] ( main:12::render_moving:32 [ current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 current_movedown_slow#1 game_over#15 render_screen_render#30 current_xpos#57 current_piece_gfx#62 current_piece_char#64 render_moving::ypos2#2 render_moving::i#3 render_moving::l#4 render_moving::screen_line#0 ] main:12::render_moving:58 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_render#30 current_xpos#57 current_piece_gfx#62 current_piece_char#64 render_moving::ypos2#2 render_moving::i#3 render_moving::l#4 render_moving::screen_line#0 ] ) always clobbers reg byte a -Statement [115] (byte) render_moving::current_cell#0 ← *((byte*) current_piece_gfx#62 + (byte) render_moving::i#4) [ render_screen_render#30 current_xpos#57 current_piece_gfx#62 current_piece_char#64 render_moving::ypos2#2 render_moving::l#4 render_moving::screen_line#0 render_moving::i#4 render_moving::xpos#2 render_moving::c#2 render_moving::current_cell#0 ] ( main:12::render_moving:32 [ current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 current_movedown_slow#1 game_over#15 render_screen_render#30 current_xpos#57 current_piece_gfx#62 current_piece_char#64 render_moving::ypos2#2 render_moving::l#4 render_moving::screen_line#0 render_moving::i#4 render_moving::xpos#2 render_moving::c#2 render_moving::current_cell#0 ] main:12::render_moving:58 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_render#30 current_xpos#57 current_piece_gfx#62 current_piece_char#64 render_moving::ypos2#2 render_moving::l#4 render_moving::screen_line#0 render_moving::i#4 render_moving::xpos#2 render_moving::c#2 render_moving::current_cell#0 ] ) always clobbers reg byte a -Statement [118] *((byte*) render_moving::screen_line#0 + (byte) render_moving::xpos#2) ← (byte) current_piece_char#64 [ render_screen_render#30 current_xpos#57 current_piece_gfx#62 current_piece_char#64 render_moving::ypos2#2 render_moving::l#4 render_moving::i#2 render_moving::screen_line#0 render_moving::xpos#2 render_moving::c#2 ] ( main:12::render_moving:32 [ current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 current_movedown_slow#1 game_over#15 render_screen_render#30 current_xpos#57 current_piece_gfx#62 current_piece_char#64 render_moving::ypos2#2 render_moving::l#4 render_moving::i#2 render_moving::screen_line#0 render_moving::xpos#2 render_moving::c#2 ] main:12::render_moving:58 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_render#30 current_xpos#57 current_piece_gfx#62 current_piece_char#64 render_moving::ypos2#2 render_moving::l#4 render_moving::i#2 render_moving::screen_line#0 render_moving::xpos#2 render_moving::c#2 ] ) always clobbers reg byte a -Statement [124] (byte~) render_playfield::$2 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ render_screen_render#21 render_playfield::l#2 render_playfield::i#3 render_playfield::$2 ] ( main:12::render_playfield:27 [ current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 current_movedown_slow#1 game_over#15 render_screen_render#21 render_playfield::l#2 render_playfield::i#3 render_playfield::$2 ] main:12::render_playfield:52 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_render#21 render_playfield::l#2 render_playfield::i#3 render_playfield::$2 ] ) always clobbers reg byte a -Statement [125] (byte~) render_playfield::$3 ← (byte) render_screen_render#21 + (byte~) render_playfield::$2 [ render_screen_render#21 render_playfield::l#2 render_playfield::i#3 render_playfield::$3 ] ( main:12::render_playfield:27 [ current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 current_movedown_slow#1 game_over#15 render_screen_render#21 render_playfield::l#2 render_playfield::i#3 render_playfield::$3 ] main:12::render_playfield:52 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_render#21 render_playfield::l#2 render_playfield::i#3 render_playfield::$3 ] ) always clobbers reg byte a -Statement [126] (byte*) render_playfield::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_playfield::$3) [ render_screen_render#21 render_playfield::l#2 render_playfield::i#3 render_playfield::screen_line#0 ] ( main:12::render_playfield:27 [ current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 current_movedown_slow#1 game_over#15 render_screen_render#21 render_playfield::l#2 render_playfield::i#3 render_playfield::screen_line#0 ] main:12::render_playfield:52 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_render#21 render_playfield::l#2 render_playfield::i#3 render_playfield::screen_line#0 ] ) always clobbers reg byte a -Statement [128] *((byte*) render_playfield::screen_line#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2) [ render_screen_render#21 render_playfield::l#2 render_playfield::i#2 render_playfield::screen_line#2 render_playfield::c#2 ] ( main:12::render_playfield:27 [ current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 current_movedown_slow#1 game_over#15 render_screen_render#21 render_playfield::l#2 render_playfield::i#2 render_playfield::screen_line#2 render_playfield::c#2 ] main:12::render_playfield:52 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_orientation#16 current_piece_gfx#16 current_xpos#17 current_ypos#17 game_over#14 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_render#21 render_playfield::l#2 render_playfield::i#2 render_playfield::screen_line#2 render_playfield::c#2 ] ) always clobbers reg byte a reg byte y -Statement [140] (byte) play_movement::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) play_movement::$0 [ current_movedown_slow#21 current_piece#14 current_piece_char#14 current_ypos#17 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_orientation#19 current_piece_gfx#18 current_xpos#20 ] ( main:12::play_movement:47 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_ypos#17 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_orientation#19 current_piece_gfx#18 current_xpos#20 ] ) always clobbers reg byte a -Statement [148] (byte) play_movement::render#2 ← (byte) play_movement::render#1 + (byte~) play_movement::$3 [ current_movedown_slow#21 current_piece#14 current_piece_char#14 current_ypos#17 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_movement::render#2 ] ( main:12::play_movement:47 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_ypos#17 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_movement::render#2 ] ) always clobbers reg byte a -Statement [153] (byte) play_movement::return#0 ← (byte) play_movement::render#2 + (byte~) play_movement::$4 [ current_movedown_slow#21 current_piece#14 current_piece_char#14 current_ypos#17 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::return#0 current_orientation#24 current_piece_gfx#19 current_xpos#24 ] ( main:12::play_movement:47 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece#14 current_piece_char#14 current_ypos#17 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::return#0 current_orientation#24 current_piece_gfx#19 current_xpos#24 ] ) always clobbers reg byte a -Statement [158] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#19 + (byte/signed byte/word/signed word/dword/signed dword) 16 [ current_piece#14 current_ypos#17 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_move_rotate::$2 ] ( main:12::play_movement:47::play_move_rotate:150 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#14 current_ypos#17 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_move_rotate::$2 ] ) always clobbers reg byte a -Statement [159] (byte) play_move_rotate::orientation#2 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 & (byte/signed byte/word/signed word/dword/signed dword) 63 [ current_piece#14 current_ypos#17 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_move_rotate::orientation#2 ] ( main:12::play_movement:47::play_move_rotate:150 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#14 current_ypos#17 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_move_rotate::orientation#2 ] ) always clobbers reg byte a -Statement [164] (byte*~) current_piece#93 ← (byte*) current_piece#14 [ current_piece#14 current_ypos#17 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_move_rotate::orientation#3 play_collision::xpos#3 play_collision::ypos#3 play_collision::orientation#3 current_piece#93 ] ( main:12::play_movement:47::play_move_rotate:150 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#14 current_ypos#17 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_move_rotate::orientation#3 play_collision::xpos#3 play_collision::ypos#3 play_collision::orientation#3 current_piece#93 ] ) always clobbers reg byte a -Statement [170] (byte*) current_piece_gfx#6 ← (byte*) current_piece#14 + (byte) current_orientation#7 [ current_piece#14 current_ypos#17 current_xpos#24 current_orientation#7 current_piece_gfx#6 ] ( main:12::play_movement:47::play_move_rotate:150 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#14 current_ypos#17 current_xpos#24 current_orientation#7 current_piece_gfx#6 ] ) always clobbers reg byte a -Statement [171] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#19 - (byte/signed byte/word/signed word/dword/signed dword) 16 [ current_piece#14 current_ypos#17 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_move_rotate::$4 ] ( main:12::play_movement:47::play_move_rotate:150 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#14 current_ypos#17 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_move_rotate::$4 ] ) always clobbers reg byte a -Statement [172] (byte) play_move_rotate::orientation#1 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 & (byte/signed byte/word/signed word/dword/signed dword) 63 [ current_piece#14 current_ypos#17 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_move_rotate::orientation#1 ] ( main:12::play_movement:47::play_move_rotate:150 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#14 current_ypos#17 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_move_rotate::orientation#1 ] ) always clobbers reg byte a -Statement [174] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#16 + (byte) play_collision::orientation#5 [ play_collision::ypos#5 play_collision::xpos#6 play_collision::piece_gfx#0 ] ( main:12::play_movement:47::play_move_rotate:150::play_collision:165 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#14 current_ypos#17 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_move_rotate::orientation#3 play_collision::ypos#5 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:12::play_movement:47::play_move_leftright:145::play_collision:203 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#18 current_piece#14 current_ypos#17 current_orientation#19 current_xpos#20 play_collision::ypos#5 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:12::play_movement:47::play_move_leftright:145::play_collision:214 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#18 current_piece#14 current_ypos#17 current_orientation#19 current_xpos#20 play_collision::ypos#5 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:12::play_movement:47::play_move_down:137::play_collision:238 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_collision::ypos#5 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:12::play_spawn_current:25::play_collision:268 [ current_movedown_slow#1 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_collision::ypos#5 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:12::play_movement:47::play_move_down:137::play_spawn_current:251::play_collision:268 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_collision::ypos#5 play_collision::xpos#6 play_collision::piece_gfx#0 ] ) always clobbers reg byte a -Statement [175] (byte) play_collision::ypos2#0 ← (byte) play_collision::ypos#5 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#0 ] ( main:12::play_movement:47::play_move_rotate:150::play_collision:165 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#14 current_ypos#17 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_move_rotate::orientation#3 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:12::play_movement:47::play_move_leftright:145::play_collision:203 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#18 current_piece#14 current_ypos#17 current_orientation#19 current_xpos#20 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:12::play_movement:47::play_move_leftright:145::play_collision:214 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#18 current_piece#14 current_ypos#17 current_orientation#19 current_xpos#20 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:12::play_movement:47::play_move_down:137::play_collision:238 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:12::play_spawn_current:25::play_collision:268 [ current_movedown_slow#1 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:12::play_movement:47::play_move_down:137::play_spawn_current:251::play_collision:268 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#0 ] ) always clobbers reg byte a -Statement [177] (byte*) play_collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_collision::ypos2#2) [ play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] ( main:12::play_movement:47::play_move_rotate:150::play_collision:165 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#14 current_ypos#17 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_move_rotate::orientation#3 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:12::play_movement:47::play_move_leftright:145::play_collision:203 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#18 current_piece#14 current_ypos#17 current_orientation#19 current_xpos#20 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:12::play_movement:47::play_move_leftright:145::play_collision:214 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#18 current_piece#14 current_ypos#17 current_orientation#19 current_xpos#20 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:12::play_movement:47::play_move_down:137::play_collision:238 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:12::play_spawn_current:25::play_collision:268 [ current_movedown_slow#1 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:12::play_movement:47::play_move_down:137::play_spawn_current:251::play_collision:268 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] ) always clobbers reg byte a -Statement [181] if(*((byte*) play_collision::piece_gfx#0 + (byte) play_collision::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@3 [ play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ( main:12::play_movement:47::play_move_rotate:150::play_collision:165 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#14 current_ypos#17 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_move_rotate::orientation#3 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_movement:47::play_move_leftright:145::play_collision:203 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#18 current_piece#14 current_ypos#17 current_orientation#19 current_xpos#20 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_movement:47::play_move_leftright:145::play_collision:214 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#18 current_piece#14 current_ypos#17 current_orientation#19 current_xpos#20 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_movement:47::play_move_down:137::play_collision:238 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_spawn_current:25::play_collision:268 [ current_movedown_slow#1 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_movement:47::play_move_down:137::play_spawn_current:251::play_collision:268 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ) always clobbers reg byte a -Statement [185] (byte~) play_collision::$7 ← (byte) play_collision::col#2 & (byte/word/signed word/dword/signed dword) 128 [ play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] ( main:12::play_movement:47::play_move_rotate:150::play_collision:165 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#14 current_ypos#17 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_move_rotate::orientation#3 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_movement:47::play_move_leftright:145::play_collision:203 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#18 current_piece#14 current_ypos#17 current_orientation#19 current_xpos#20 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_movement:47::play_move_leftright:145::play_collision:214 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#18 current_piece#14 current_ypos#17 current_orientation#19 current_xpos#20 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_movement:47::play_move_down:137::play_collision:238 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_spawn_current:25::play_collision:268 [ current_movedown_slow#1 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_movement:47::play_move_down:137::play_spawn_current:251::play_collision:268 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] ) always clobbers reg byte a -Statement [188] if(*((byte*) play_collision::playfield_line#0 + (byte) play_collision::col#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@3 [ play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ( main:12::play_movement:47::play_move_rotate:150::play_collision:165 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#14 current_ypos#17 current_orientation#19 current_piece_gfx#18 current_xpos#24 play_move_rotate::orientation#3 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_movement:47::play_move_leftright:145::play_collision:203 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#18 current_piece#14 current_ypos#17 current_orientation#19 current_xpos#20 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_movement:47::play_move_leftright:145::play_collision:214 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#18 current_piece#14 current_ypos#17 current_orientation#19 current_xpos#20 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_movement:47::play_move_down:137::play_collision:238 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_spawn_current:25::play_collision:268 [ current_movedown_slow#1 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_movement:47::play_move_down:137::play_spawn_current:251::play_collision:268 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ) always clobbers reg byte a -Statement [202] (byte*~) current_piece#92 ← (byte*) current_piece#14 [ current_piece#14 current_ypos#17 current_orientation#19 current_xpos#20 current_piece#92 play_collision::orientation#2 play_collision::ypos#2 play_collision::xpos#2 ] ( main:12::play_movement:47::play_move_leftright:145 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#18 current_piece#14 current_ypos#17 current_orientation#19 current_xpos#20 current_piece#92 play_collision::orientation#2 play_collision::ypos#2 play_collision::xpos#2 ] ) always clobbers reg byte a -Statement [213] (byte*~) current_piece#91 ← (byte*) current_piece#14 [ current_piece#14 current_ypos#17 current_orientation#19 current_xpos#20 current_piece#91 play_collision::orientation#1 play_collision::ypos#1 play_collision::xpos#1 ] ( main:12::play_movement:47::play_move_leftright:145 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#14 game_over#14 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#18 current_piece#14 current_ypos#17 current_orientation#19 current_xpos#20 current_piece#91 play_collision::orientation#1 play_collision::ypos#1 play_collision::xpos#1 ] ) always clobbers reg byte a -Statement [237] (byte*~) current_piece#90 ← (byte*) current_piece#20 [ current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 current_piece#90 play_collision::orientation#0 play_collision::ypos#0 play_collision::xpos#0 ] ( main:12::play_movement:47::play_move_down:137 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 current_piece#90 play_collision::orientation#0 play_collision::ypos#0 play_collision::xpos#0 ] ) always clobbers reg byte a -Statement [252] (byte*~) current_piece#95 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) [ current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 game_over#15 current_piece#95 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 ] ( main:12::play_movement:47::play_move_down:137 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 game_over#15 current_piece#95 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 ] ) always clobbers reg byte a -Statement [260] (byte~) play_spawn_current::$3 ← (byte) play_spawn_current::piece_idx#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ play_spawn_current::$3 game_over#70 play_spawn_current::piece_idx#2 ] ( main:12::play_spawn_current:25 [ current_movedown_slow#1 play_spawn_current::$3 game_over#70 play_spawn_current::piece_idx#2 ] main:12::play_movement:47::play_move_down:137::play_spawn_current:251 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 play_spawn_current::$3 game_over#70 play_spawn_current::piece_idx#2 ] ) always clobbers reg byte a -Statement [261] (byte) current_piece_char#16 ← *((const byte[]) PIECES_CHARS#0 + (byte) play_spawn_current::piece_idx#2) [ current_piece_char#16 play_spawn_current::$3 game_over#70 play_spawn_current::piece_idx#2 ] ( main:12::play_spawn_current:25 [ current_movedown_slow#1 current_piece_char#16 play_spawn_current::$3 game_over#70 play_spawn_current::piece_idx#2 ] main:12::play_movement:47::play_move_down:137::play_spawn_current:251 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_piece_char#16 play_spawn_current::$3 game_over#70 play_spawn_current::piece_idx#2 ] ) always clobbers reg byte a -Statement [262] (byte*) current_piece_gfx#21 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) + (byte/signed byte/word/signed word/dword/signed dword) 0 [ current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_spawn_current::piece_idx#2 ] ( main:12::play_spawn_current:25 [ current_movedown_slow#1 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_spawn_current::piece_idx#2 ] main:12::play_movement:47::play_move_down:137::play_spawn_current:251 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_spawn_current::piece_idx#2 ] ) always clobbers reg byte a -Statement [263] (byte) current_xpos#28 ← *((const byte[]) PIECES_START_X#0 + (byte) play_spawn_current::piece_idx#2) [ current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_spawn_current::piece_idx#2 ] ( main:12::play_spawn_current:25 [ current_movedown_slow#1 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_spawn_current::piece_idx#2 ] main:12::play_movement:47::play_move_down:137::play_spawn_current:251 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 play_spawn_current::piece_idx#2 ] ) always clobbers reg byte a -Statement [264] (byte) current_ypos#22 ← *((const byte[]) PIECES_START_Y#0 + (byte) play_spawn_current::piece_idx#2) [ current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 ] ( main:12::play_spawn_current:25 [ current_movedown_slow#1 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 ] main:12::play_movement:47::play_move_down:137::play_spawn_current:251 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 game_over#70 ] ) always clobbers reg byte a -Statement [267] (byte*~) current_piece#94 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) [ current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 current_piece#94 play_collision::ypos#4 play_collision::xpos#4 game_over#70 ] ( main:12::play_spawn_current:25 [ current_movedown_slow#1 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 current_piece#94 play_collision::ypos#4 play_collision::xpos#4 game_over#70 ] main:12::play_movement:47::play_move_down:137::play_spawn_current:251 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_ypos#22 current_xpos#28 current_piece_gfx#21 current_piece_char#16 play_spawn_current::$3 current_piece#94 play_collision::ypos#4 play_collision::xpos#4 game_over#70 ] ) always clobbers reg byte a -Statement [279] (byte) play_spawn_current::piece_idx#1 ← (byte~) play_spawn_current::$1 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ game_over#70 play_spawn_current::piece_idx#1 ] ( main:12::play_spawn_current:25 [ current_movedown_slow#1 game_over#70 play_spawn_current::piece_idx#1 ] main:12::play_movement:47::play_move_down:137::play_spawn_current:251 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 game_over#70 play_spawn_current::piece_idx#1 ] ) always clobbers reg byte a -Statement [283] (byte~) play_update_score::$2 ← < (word) lines_bcd#19 [ current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::$2 ] ( main:12::play_movement:47::play_move_down:137::play_update_score:249 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 game_over#19 current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::$2 ] ) always clobbers reg byte a -Statement [284] (byte) play_update_score::lines_before#0 ← (byte~) play_update_score::$2 & (byte/word/signed word/dword/signed dword) 240 [ current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 ] ( main:12::play_movement:47::play_move_down:137::play_update_score:249 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 game_over#19 current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 ] ) always clobbers reg byte a -Statement [285] (byte~) play_update_score::$4 ← (byte) play_update_score::removed#0 << (byte/signed byte/word/signed word/dword/signed dword) 2 [ current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 play_update_score::$4 ] ( main:12::play_movement:47::play_move_down:137::play_update_score:249 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 game_over#19 current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 play_update_score::$4 ] ) always clobbers reg byte a -Statement [286] (dword) play_update_score::add_bcd#0 ← *((const dword[5]) score_add_bcd#0 + (byte~) play_update_score::$4) [ current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 play_update_score::add_bcd#0 ] ( main:12::play_movement:47::play_move_down:137::play_update_score:249 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 game_over#19 current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 play_update_score::add_bcd#0 ] ) always clobbers reg byte a -Statement [288] (word) lines_bcd#30 ← (word) lines_bcd#19 + (byte) play_update_score::removed#0 [ current_movedown_slow#14 score_bcd#18 level#10 level_bcd#11 play_update_score::lines_before#0 play_update_score::add_bcd#0 lines_bcd#30 ] ( main:12::play_movement:47::play_move_down:137::play_update_score:249 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 game_over#19 current_movedown_slow#14 score_bcd#18 level#10 level_bcd#11 play_update_score::lines_before#0 play_update_score::add_bcd#0 lines_bcd#30 ] ) always clobbers reg byte a -Statement [289] (dword) score_bcd#30 ← (dword) score_bcd#18 + (dword) play_update_score::add_bcd#0 [ current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#30 score_bcd#30 ] ( main:12::play_movement:47::play_move_down:137::play_update_score:249 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 game_over#19 current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#30 score_bcd#30 ] ) always clobbers reg byte a -Statement [291] (byte~) play_update_score::$5 ← < (word) lines_bcd#30 [ current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#30 score_bcd#30 play_update_score::$5 ] ( main:12::play_movement:47::play_move_down:137::play_update_score:249 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 game_over#19 current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#30 score_bcd#30 play_update_score::$5 ] ) always clobbers reg byte a -Statement [292] (byte) play_update_score::lines_after#0 ← (byte~) play_update_score::$5 & (byte/word/signed word/dword/signed dword) 240 [ current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#30 score_bcd#30 play_update_score::lines_after#0 ] ( main:12::play_movement:47::play_move_down:137::play_update_score:249 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 game_over#19 current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#30 score_bcd#30 play_update_score::lines_after#0 ] ) always clobbers reg byte a -Statement [299] if((byte) level#20>(byte/signed byte/word/signed word/dword/signed dword) 29) goto play_increase_level::@2 [ level_bcd#11 level#20 ] ( main:12::play_movement:47::play_move_down:137::play_update_score:249::play_increase_level:295 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 game_over#19 lines_bcd#30 score_bcd#30 level_bcd#11 level#20 ] ) always clobbers reg byte a -Statement [300] (byte) current_movedown_slow#10 ← *((const byte[]) MOVEDOWN_SLOW_SPEEDS#0 + (byte) level#20) [ level_bcd#11 level#20 current_movedown_slow#10 ] ( main:12::play_movement:47::play_move_down:137::play_update_score:249::play_increase_level:295 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 game_over#19 lines_bcd#30 score_bcd#30 level_bcd#11 level#20 current_movedown_slow#10 ] ) always clobbers reg byte a -Statement [303] (byte~) play_increase_level::$1 ← (byte) level_bcd#21 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ level#20 current_movedown_slow#69 level_bcd#21 play_increase_level::$1 ] ( main:12::play_movement:47::play_move_down:137::play_update_score:249::play_increase_level:295 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 game_over#19 lines_bcd#30 score_bcd#30 level#20 current_movedown_slow#69 level_bcd#21 play_increase_level::$1 ] ) always clobbers reg byte a -Statement [305] (byte) level_bcd#8 ← (byte) level_bcd#21 + (byte/signed byte/word/signed word/dword/signed dword) 6 [ level#20 current_movedown_slow#69 level_bcd#8 ] ( main:12::play_movement:47::play_move_down:137::play_update_score:249::play_increase_level:295 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 game_over#19 lines_bcd#30 score_bcd#30 level#20 current_movedown_slow#69 level_bcd#8 ] ) always clobbers reg byte a -Statement [309] (byte) play_increase_level::b4#0 ← (byte) play_increase_level::b#2 << (byte/signed byte/word/signed word/dword/signed dword) 2 [ level#20 current_movedown_slow#69 level_bcd#64 play_increase_level::b#2 play_increase_level::b4#0 ] ( main:12::play_movement:47::play_move_down:137::play_update_score:249::play_increase_level:295 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 game_over#19 lines_bcd#30 score_bcd#30 level#20 current_movedown_slow#69 level_bcd#64 play_increase_level::b#2 play_increase_level::b4#0 ] ) always clobbers reg byte a -Statement [310] *((const dword[5]) score_add_bcd#0 + (byte) play_increase_level::b4#0) ← *((const dword[5]) score_add_bcd#0 + (byte) play_increase_level::b4#0) + *((const dword[]) SCORE_BASE_BCD#0 + (byte) play_increase_level::b4#0) [ level#20 current_movedown_slow#69 level_bcd#64 play_increase_level::b#2 ] ( main:12::play_movement:47::play_move_down:137::play_update_score:249::play_increase_level:295 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 game_over#19 lines_bcd#30 score_bcd#30 level#20 current_movedown_slow#69 level_bcd#64 play_increase_level::b#2 ] ) always clobbers reg byte a -Statement [327] (byte) play_remove_lines::w#2 ← (byte) play_remove_lines::w#1 + (const byte) PLAYFIELD_COLS#0 [ play_remove_lines::y#8 play_remove_lines::removed#11 play_remove_lines::r#1 play_remove_lines::w#2 ] ( main:12::play_movement:47::play_move_down:137::play_remove_lines:245 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_remove_lines::y#8 play_remove_lines::removed#11 play_remove_lines::r#1 play_remove_lines::w#2 ] ) always clobbers reg byte a -Statement [335] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::w#6) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ play_remove_lines::removed#7 play_remove_lines::w#6 ] ( main:12::play_movement:47::play_move_down:137::play_remove_lines:245 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_remove_lines::removed#7 play_remove_lines::w#6 ] ) always clobbers reg byte a -Statement [338] (byte) play_lock_current::ypos2#0 ← (byte) current_ypos#25 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ current_piece_char#19 current_piece_gfx#103 current_xpos#113 play_lock_current::ypos2#0 ] ( main:12::play_movement:47::play_move_down:137::play_lock_current:243 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 current_piece_char#19 current_piece_gfx#103 current_xpos#113 play_lock_current::ypos2#0 ] ) always clobbers reg byte a -Statement [340] (byte*) play_lock_current::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_lock_current::ypos2#2) [ current_piece_char#19 current_piece_gfx#103 current_xpos#113 play_lock_current::ypos2#2 play_lock_current::i#3 play_lock_current::l#6 play_lock_current::playfield_line#0 ] ( main:12::play_movement:47::play_move_down:137::play_lock_current:243 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 current_piece_char#19 current_piece_gfx#103 current_xpos#113 play_lock_current::ypos2#2 play_lock_current::i#3 play_lock_current::l#6 play_lock_current::playfield_line#0 ] ) always clobbers reg byte a -Statement [344] if(*((byte*) current_piece_gfx#103 + (byte) play_lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_lock_current::@3 [ current_piece_char#19 current_piece_gfx#103 current_xpos#113 play_lock_current::ypos2#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::col#2 play_lock_current::c#2 play_lock_current::i#1 ] ( main:12::play_movement:47::play_move_down:137::play_lock_current:243 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 current_piece_char#19 current_piece_gfx#103 current_xpos#113 play_lock_current::ypos2#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::col#2 play_lock_current::c#2 play_lock_current::i#1 ] ) always clobbers reg byte a -Statement [345] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::col#2) ← (byte) current_piece_char#19 [ current_piece_char#19 current_piece_gfx#103 current_xpos#113 play_lock_current::ypos2#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::col#2 play_lock_current::c#2 play_lock_current::i#1 ] ( main:12::play_movement:47::play_move_down:137::play_lock_current:243 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 current_piece_char#19 current_piece_gfx#103 current_xpos#113 play_lock_current::ypos2#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::col#2 play_lock_current::c#2 play_lock_current::i#1 ] ) always clobbers reg byte a -Statement [356] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte/signed byte/word/signed word/dword/signed dword) 3 [ keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] ( main:12::play_movement:47::play_move_down:137::keyboard_event_pressed:223 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 current_movedown_counter#12 play_move_down::movedown#10 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:378 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:384 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_modifiers#11 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:390 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_modifiers#12 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:396 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_modifiers#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] ) always clobbers reg byte a -Statement [358] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] ( main:12::play_movement:47::play_move_down:137::keyboard_event_pressed:223 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 current_movedown_counter#12 play_move_down::movedown#10 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:378 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:384 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_modifiers#11 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:390 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_modifiers#12 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:396 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_modifiers#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] ) always clobbers reg byte a -Statement [359] (byte) keyboard_event_pressed::return#11 ← (byte) keyboard_event_pressed::row_bits#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte~) keyboard_event_pressed::$1) [ keyboard_event_pressed::return#11 ] ( main:12::play_movement:47::play_move_down:137::keyboard_event_pressed:223 [ render_screen_show#16 render_screen_render#17 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 current_movedown_counter#12 play_move_down::movedown#10 keyboard_event_pressed::return#11 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:378 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_pressed::return#11 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:384 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_modifiers#11 keyboard_event_pressed::return#11 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:390 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_modifiers#12 keyboard_event_pressed::return#11 ] main:12::keyboard_event_scan:39::keyboard_event_pressed:396 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_modifiers#13 keyboard_event_pressed::return#11 ] ) always clobbers reg byte a -Statement [372] if((byte) keyboard_event_scan::row_scan#0!=*((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2)) goto keyboard_event_scan::@4 [ keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#29 keyboard_event_scan::row_scan#0 ] ( main:12::keyboard_event_scan:39 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#29 keyboard_event_scan::row_scan#0 ] ) always clobbers reg byte a -Statement [373] (byte) keyboard_event_scan::keycode#1 ← (byte) keyboard_event_scan::keycode#11 + (byte/signed byte/word/signed word/dword/signed dword) 8 [ keyboard_event_scan::row#2 keyboard_events_size#29 keyboard_event_scan::keycode#1 ] ( main:12::keyboard_event_scan:39 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_events_size#29 keyboard_event_scan::keycode#1 ] ) always clobbers reg byte a -Statement [388] (byte) keyboard_modifiers#3 ← (byte) keyboard_modifiers#11 | (const byte) KEY_MODIFIER_RSHIFT#0 [ keyboard_events_size#13 keyboard_modifiers#3 ] ( main:12::keyboard_event_scan:39 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_modifiers#3 ] ) always clobbers reg byte a -Statement [394] (byte) keyboard_modifiers#4 ← (byte) keyboard_modifiers#12 | (const byte) KEY_MODIFIER_CTRL#0 [ keyboard_events_size#13 keyboard_modifiers#4 ] ( main:12::keyboard_event_scan:39 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_modifiers#4 ] ) always clobbers reg byte a -Statement [400] (byte) keyboard_modifiers#5 ← (byte) keyboard_modifiers#13 | (const byte) KEY_MODIFIER_COMMODORE#0 [ keyboard_events_size#13 ] ( main:12::keyboard_event_scan:39 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 ] ) always clobbers reg byte a -Statement [403] (byte~) keyboard_event_scan::$3 ← (byte) keyboard_event_scan::row_scan#0 ^ *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$3 ] ( main:12::keyboard_event_scan:39 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$3 ] ) always clobbers reg byte a -Statement [404] (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$4 ] ( main:12::keyboard_event_scan:39 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$4 ] ) always clobbers reg byte a -Statement [407] (byte) keyboard_event_scan::event_type#0 ← (byte) keyboard_event_scan::row_scan#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::event_type#0 ] ( main:12::keyboard_event_scan:39 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::event_type#0 ] ) always clobbers reg byte a -Statement [409] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 ] ( main:12::keyboard_event_scan:39 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 ] ) always clobbers reg byte a -Statement [415] *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 [ keyboard_event_scan::row#2 keyboard_event_scan::keycode#15 keyboard_events_size#30 ] ( main:12::keyboard_event_scan:39 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::keycode#15 keyboard_events_size#30 ] ) always clobbers reg byte a -Statement [416] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64 [ keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$11 ] ( main:12::keyboard_event_scan:39 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$11 ] ) always clobbers reg byte a -Statement [419] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) [ ] ( main:12::keyboard_event_scan:39::keyboard_matrix_read:369 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#29 ] ) always clobbers reg byte a -Statement [420] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:12::keyboard_event_scan:39::keyboard_matrix_read:369 [ render_screen_show#16 render_screen_render#17 current_movedown_slow#14 current_piece#20 current_piece_char#19 current_orientation#12 current_piece_gfx#103 current_xpos#113 current_ypos#25 game_over#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#29 keyboard_matrix_read::return#0 ] ) always clobbers reg byte a -Statement [431] (byte~) play_init::$1 ← (byte) play_init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ play_init::j#2 play_init::pli#2 play_init::idx#2 play_init::$1 ] ( main:12::play_init:23 [ play_init::j#2 play_init::pli#2 play_init::idx#2 play_init::$1 ] ) always clobbers reg byte a -Statement [432] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) play_init::$1) ← (byte*) play_init::pli#2 [ play_init::j#2 play_init::pli#2 play_init::idx#2 ] ( main:12::play_init:23 [ play_init::j#2 play_init::pli#2 play_init::idx#2 ] ) always clobbers reg byte a -Statement [433] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) play_init::j#2) ← (byte) play_init::idx#2 [ play_init::j#2 play_init::pli#2 play_init::idx#2 ] ( main:12::play_init:23 [ play_init::j#2 play_init::pli#2 play_init::idx#2 ] ) always clobbers reg byte a -Statement [434] (byte*) play_init::pli#1 ← (byte*) play_init::pli#2 + (const byte) PLAYFIELD_COLS#0 [ play_init::j#2 play_init::idx#2 play_init::pli#1 ] ( main:12::play_init:23 [ play_init::j#2 play_init::idx#2 play_init::pli#1 ] ) always clobbers reg byte a -Statement [435] (byte) play_init::idx#1 ← (byte) play_init::idx#2 + (const byte) PLAYFIELD_COLS#0 [ play_init::j#2 play_init::pli#1 play_init::idx#1 ] ( main:12::play_init:23 [ play_init::j#2 play_init::pli#1 play_init::idx#1 ] ) always clobbers reg byte a -Statement [438] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0+(const byte) PLAYFIELD_LINES#0) ← (const byte) PLAYFIELD_COLS#0*(const byte) PLAYFIELD_LINES#0 [ ] ( main:12::play_init:23 [ ] ) always clobbers reg byte a -Statement [441] (byte) play_init::b4#0 ← (byte) play_init::b#2 << (byte/signed byte/word/signed word/dword/signed dword) 2 [ current_movedown_slow#1 play_init::b#2 play_init::b4#0 ] ( main:12::play_init:23 [ current_movedown_slow#1 play_init::b#2 play_init::b4#0 ] ) always clobbers reg byte a -Statement [442] *((const dword[5]) score_add_bcd#0 + (byte) play_init::b4#0) ← *((const dword[]) SCORE_BASE_BCD#0 + (byte) play_init::b4#0) [ current_movedown_slow#1 play_init::b#2 ] ( main:12::play_init:23 [ current_movedown_slow#1 play_init::b#2 ] ) always clobbers reg byte a -Statement [447] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a +Statement [32] (byte*~) current_piece_gfx#122 ← (byte*) current_piece_gfx#7 [ current_ypos#108 current_ypos#5 current_xpos#132 current_xpos#102 current_piece_gfx#122 current_piece_gfx#7 current_piece_char#4 play_spawn_current::piece_idx#2 play_spawn_current::$0 current_movedown_slow#1 game_over#52 ] ( main:12 [ current_ypos#108 current_ypos#5 current_xpos#132 current_xpos#102 current_piece_gfx#122 current_piece_gfx#7 current_piece_char#4 play_spawn_current::piece_idx#2 play_spawn_current::$0 current_movedown_slow#1 game_over#52 ] ) always clobbers reg byte a +Statement [37] (byte*~) current_piece#96 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$0) [ current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::piece_idx#2 current_piece#96 current_movedown_slow#1 game_over#52 ] ( main:12 [ current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::piece_idx#2 current_piece#96 current_movedown_slow#1 game_over#52 ] ) always clobbers reg byte a +Statement [39] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 keyboard_events_size#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 ] ( main:12 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 keyboard_events_size#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 ] ) always clobbers reg byte a +Statement [60] (byte*~) current_piece_gfx#123 ← (byte*) current_piece_gfx#17 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 current_ypos#109 render_screen_render#69 current_xpos#133 current_piece_gfx#123 ] ( main:12 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 current_ypos#109 render_screen_render#69 current_xpos#133 current_piece_gfx#123 ] ) always clobbers reg byte a +Statement [70] (byte) render_screen_render#11 ← (byte) render_screen_render#18 ^ (byte/signed byte/word/signed word/dword/signed dword) 64 [ render_screen_show#16 render_screen_render#11 ] ( main:12::render_screen_swap:69 [ current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_show#16 render_screen_render#11 ] ) always clobbers reg byte a +Statement [71] (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:69 [ current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_show#13 render_screen_render#11 ] ) always clobbers reg byte a +Statement [76] (byte*) render_bcd::screen#0 ← (byte*) render_score::screen#2 [ render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen#0 ] ( main:12::render_score:67 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen#0 ] ) always clobbers reg byte a +Statement [79] (byte*) render_bcd::screen#1 ← (byte*) render_score::screen#2 [ render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen#1 ] ( main:12::render_score:67 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen#1 ] ) always clobbers reg byte a +Statement [82] (byte*) render_bcd::screen#2 ← (byte*) render_score::screen#2 [ render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen#2 ] ( main:12::render_score:67 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen#2 ] ) always clobbers reg byte a +Statement [85] (byte) render_bcd::bcd#3 ← > (word) lines_bcd#15 [ render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#3 ] ( main:12::render_score:67 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#3 ] ) always clobbers reg byte a +Statement [86] (byte*) render_bcd::screen#3 ← (byte*) render_score::screen#2 [ render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#3 render_bcd::screen#3 ] ( main:12::render_score:67 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#3 render_bcd::screen#3 ] ) always clobbers reg byte a +Statement [88] (byte) render_bcd::bcd#4 ← < (word) lines_bcd#15 [ render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#4 ] ( main:12::render_score:67 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#4 ] ) always clobbers reg byte a +Statement [89] (byte*) render_bcd::screen#4 ← (byte*) render_score::screen#2 [ render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#4 render_bcd::screen#4 ] ( main:12::render_score:67 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#4 render_bcd::screen#4 ] ) always clobbers reg byte a +Statement [91] (byte*) render_bcd::screen#5 ← (byte*) render_score::screen#2 [ render_screen_render#18 lines_bcd#15 level_bcd#17 render_bcd::screen#5 ] ( main:12::render_score:67 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_bcd::screen#5 ] ) always clobbers reg byte a +Statement [96] (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:67::render_bcd:78 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:67::render_bcd:81 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:67::render_bcd:84 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:67::render_bcd:87 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:67::render_bcd:90 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:67::render_bcd:93 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] ) always clobbers reg byte a +Statement [98] (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:67::render_bcd:78 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$3 ] main:12::render_score:67::render_bcd:81 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$3 ] main:12::render_score:67::render_bcd:84 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$3 ] main:12::render_score:67::render_bcd:87 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$3 ] main:12::render_score:67::render_bcd:90 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$3 ] main:12::render_score:67::render_bcd:93 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$3 ] ) always clobbers reg byte a +Statement [99] (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:67::render_bcd:78 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$4 ] main:12::render_score:67::render_bcd:81 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$4 ] main:12::render_score:67::render_bcd:84 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$4 ] main:12::render_score:67::render_bcd:87 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$4 ] main:12::render_score:67::render_bcd:90 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$4 ] main:12::render_score:67::render_bcd:93 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$4 ] ) always clobbers reg byte a +Statement [100] *((byte*) render_bcd::screen_pos#0) ← (byte~) render_bcd::$4 [ render_bcd::bcd#6 render_bcd::screen_pos#0 ] ( main:12::render_score:67::render_bcd:78 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:67::render_bcd:81 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:67::render_bcd:84 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:67::render_bcd:87 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:67::render_bcd:90 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:67::render_bcd:93 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_bcd::bcd#6 render_bcd::screen_pos#0 ] ) always clobbers reg byte y +Statement [103] (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:67::render_bcd:78 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$5 ] main:12::render_score:67::render_bcd:81 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$5 ] main:12::render_score:67::render_bcd:84 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$5 ] main:12::render_score:67::render_bcd:87 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$5 ] main:12::render_score:67::render_bcd:90 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$5 ] main:12::render_score:67::render_bcd:93 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_bcd::screen_pos#3 render_bcd::$5 ] ) always clobbers reg byte a +Statement [104] (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:67::render_bcd:78 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$6 ] main:12::render_score:67::render_bcd:81 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$6 ] main:12::render_score:67::render_bcd:84 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$6 ] main:12::render_score:67::render_bcd:87 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$6 ] main:12::render_score:67::render_bcd:90 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$6 ] main:12::render_score:67::render_bcd:93 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_bcd::screen_pos#3 render_bcd::$6 ] ) always clobbers reg byte a +Statement [105] *((byte*) render_bcd::screen_pos#3) ← (byte~) render_bcd::$6 [ render_bcd::screen_pos#3 ] ( main:12::render_score:67::render_bcd:78 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen_pos#3 ] main:12::render_score:67::render_bcd:81 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen_pos#3 ] main:12::render_score:67::render_bcd:84 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen_pos#3 ] main:12::render_score:67::render_bcd:87 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen_pos#3 ] main:12::render_score:67::render_bcd:90 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen_pos#3 ] main:12::render_score:67::render_bcd:93 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_bcd::screen_pos#3 ] ) always clobbers reg byte y +Statement [106] (byte*) render_bcd::screen_pos#1 ← ++ (byte*) render_bcd::screen_pos#3 [ ] ( main:12::render_score:67::render_bcd:78 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 ] main:12::render_score:67::render_bcd:81 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 ] main:12::render_score:67::render_bcd:84 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 ] main:12::render_score:67::render_bcd:87 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 ] main:12::render_score:67::render_bcd:90 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 ] main:12::render_score:67::render_bcd:93 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 ] ) always clobbers reg byte a +Statement [112] (byte~) render_next::$6 ← (byte) next_piece_idx#12 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ next_piece_idx#12 render_next::screen_next_area#10 render_next::$6 ] ( main:12::render_next:36 [ current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::piece_idx#2 play_spawn_current::$0 current_movedown_slow#1 game_over#52 next_piece_idx#12 render_next::screen_next_area#10 render_next::$6 ] main:12::render_next:65 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 next_piece_idx#12 render_next::screen_next_area#10 render_next::$6 ] ) always clobbers reg byte a +Statement [113] (byte) render_next::next_piece_char#0 ← *((const byte[]) PIECES_NEXT_CHARS#0 + (byte) next_piece_idx#12) [ render_next::screen_next_area#10 render_next::$6 render_next::next_piece_char#0 ] ( main:12::render_next:36 [ current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::piece_idx#2 play_spawn_current::$0 current_movedown_slow#1 game_over#52 render_next::screen_next_area#10 render_next::$6 render_next::next_piece_char#0 ] main:12::render_next:65 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_next::screen_next_area#10 render_next::$6 render_next::next_piece_char#0 ] ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp ZP_BYTE:135 [ render_next::$6 ] +Statement [114] (byte*~) render_next::next_piece_gfx#9 ← (byte*)*((const word[]) PIECES#0 + (byte~) render_next::$6) [ render_next::screen_next_area#10 render_next::next_piece_char#0 render_next::next_piece_gfx#9 ] ( main:12::render_next:36 [ current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::piece_idx#2 play_spawn_current::$0 current_movedown_slow#1 game_over#52 render_next::screen_next_area#10 render_next::next_piece_char#0 render_next::next_piece_gfx#9 ] main:12::render_next:65 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_next::screen_next_area#10 render_next::next_piece_char#0 render_next::next_piece_gfx#9 ] ) always clobbers reg byte a +Statement [117] (byte) render_next::cell#0 ← *((byte*) render_next::next_piece_gfx#2) [ render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#2 render_next::screen_next_area#4 render_next::c#2 render_next::cell#0 ] ( main:12::render_next:36 [ current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::piece_idx#2 play_spawn_current::$0 current_movedown_slow#1 game_over#52 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#2 render_next::screen_next_area#4 render_next::c#2 render_next::cell#0 ] main:12::render_next:65 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#2 render_next::screen_next_area#4 render_next::c#2 render_next::cell#0 ] ) always clobbers reg byte a reg byte y +Statement [120] *((byte*) render_next::screen_next_area#4) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#4 render_next::c#2 ] ( main:12::render_next:36 [ current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::piece_idx#2 play_spawn_current::$0 current_movedown_slow#1 game_over#52 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#4 render_next::c#2 ] main:12::render_next:65 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#4 render_next::c#2 ] ) always clobbers reg byte a reg byte y +Statement [124] (byte*) render_next::screen_next_area#3 ← (byte*) render_next::screen_next_area#2 + (byte/signed byte/word/signed word/dword/signed dword) 36 [ render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#3 ] ( main:12::render_next:36 [ current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::piece_idx#2 play_spawn_current::$0 current_movedown_slow#1 game_over#52 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#3 ] main:12::render_next:65 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#3 ] ) always clobbers reg byte a +Statement [128] *((byte*) render_next::screen_next_area#4) ← (byte) render_next::next_piece_char#0 [ render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#4 render_next::c#2 ] ( main:12::render_next:36 [ current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::piece_idx#2 play_spawn_current::$0 current_movedown_slow#1 game_over#52 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#4 render_next::c#2 ] main:12::render_next:65 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#4 render_next::c#2 ] ) always clobbers reg byte a reg byte y +Statement [130] (byte) render_moving::ypos2#0 ← (byte) current_ypos#12 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ render_screen_render#33 current_xpos#58 current_piece_gfx#63 current_piece_char#67 render_moving::ypos2#0 ] ( main:12::render_moving:34 [ current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::piece_idx#2 play_spawn_current::$0 current_movedown_slow#1 game_over#52 render_screen_render#33 current_xpos#58 current_piece_gfx#63 current_piece_char#67 render_moving::ypos2#0 ] main:12::render_moving:62 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_render#33 current_xpos#58 current_piece_gfx#63 current_piece_char#67 render_moving::ypos2#0 ] ) always clobbers reg byte a +Statement [132] if((byte) render_moving::ypos2#2>(byte/signed byte/word/signed word/dword/signed dword) 2) goto render_moving::@2 [ render_screen_render#33 current_xpos#58 current_piece_gfx#63 current_piece_char#67 render_moving::ypos2#2 render_moving::i#3 render_moving::l#4 ] ( main:12::render_moving:34 [ current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::piece_idx#2 play_spawn_current::$0 current_movedown_slow#1 game_over#52 render_screen_render#33 current_xpos#58 current_piece_gfx#63 current_piece_char#67 render_moving::ypos2#2 render_moving::i#3 render_moving::l#4 ] main:12::render_moving:62 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_render#33 current_xpos#58 current_piece_gfx#63 current_piece_char#67 render_moving::ypos2#2 render_moving::i#3 render_moving::l#4 ] ) always clobbers reg byte a +Statement [133] (byte) render_moving::i#1 ← (byte) render_moving::i#3 + (byte/signed byte/word/signed word/dword/signed dword) 4 [ render_screen_render#33 current_xpos#58 current_piece_gfx#63 current_piece_char#67 render_moving::ypos2#2 render_moving::l#4 render_moving::i#1 ] ( main:12::render_moving:34 [ current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::piece_idx#2 play_spawn_current::$0 current_movedown_slow#1 game_over#52 render_screen_render#33 current_xpos#58 current_piece_gfx#63 current_piece_char#67 render_moving::ypos2#2 render_moving::l#4 render_moving::i#1 ] main:12::render_moving:62 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_render#33 current_xpos#58 current_piece_gfx#63 current_piece_char#67 render_moving::ypos2#2 render_moving::l#4 render_moving::i#1 ] ) always clobbers reg byte a +Statement [139] (byte~) render_moving::$2 ← (byte) render_screen_render#33 + (byte) render_moving::ypos2#2 [ render_screen_render#33 current_xpos#58 current_piece_gfx#63 current_piece_char#67 render_moving::ypos2#2 render_moving::i#3 render_moving::l#4 render_moving::$2 ] ( main:12::render_moving:34 [ current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::piece_idx#2 play_spawn_current::$0 current_movedown_slow#1 game_over#52 render_screen_render#33 current_xpos#58 current_piece_gfx#63 current_piece_char#67 render_moving::ypos2#2 render_moving::i#3 render_moving::l#4 render_moving::$2 ] main:12::render_moving:62 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_render#33 current_xpos#58 current_piece_gfx#63 current_piece_char#67 render_moving::ypos2#2 render_moving::i#3 render_moving::l#4 render_moving::$2 ] ) always clobbers reg byte a +Statement [140] (byte*) render_moving::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_moving::$2) [ render_screen_render#33 current_xpos#58 current_piece_gfx#63 current_piece_char#67 render_moving::ypos2#2 render_moving::i#3 render_moving::l#4 render_moving::screen_line#0 ] ( main:12::render_moving:34 [ current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::piece_idx#2 play_spawn_current::$0 current_movedown_slow#1 game_over#52 render_screen_render#33 current_xpos#58 current_piece_gfx#63 current_piece_char#67 render_moving::ypos2#2 render_moving::i#3 render_moving::l#4 render_moving::screen_line#0 ] main:12::render_moving:62 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_render#33 current_xpos#58 current_piece_gfx#63 current_piece_char#67 render_moving::ypos2#2 render_moving::i#3 render_moving::l#4 render_moving::screen_line#0 ] ) always clobbers reg byte a +Statement [143] (byte) render_moving::current_cell#0 ← *((byte*) current_piece_gfx#63 + (byte) render_moving::i#4) [ render_screen_render#33 current_xpos#58 current_piece_gfx#63 current_piece_char#67 render_moving::ypos2#2 render_moving::l#4 render_moving::screen_line#0 render_moving::i#4 render_moving::xpos#2 render_moving::c#2 render_moving::current_cell#0 ] ( main:12::render_moving:34 [ current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::piece_idx#2 play_spawn_current::$0 current_movedown_slow#1 game_over#52 render_screen_render#33 current_xpos#58 current_piece_gfx#63 current_piece_char#67 render_moving::ypos2#2 render_moving::l#4 render_moving::screen_line#0 render_moving::i#4 render_moving::xpos#2 render_moving::c#2 render_moving::current_cell#0 ] main:12::render_moving:62 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_render#33 current_xpos#58 current_piece_gfx#63 current_piece_char#67 render_moving::ypos2#2 render_moving::l#4 render_moving::screen_line#0 render_moving::i#4 render_moving::xpos#2 render_moving::c#2 render_moving::current_cell#0 ] ) always clobbers reg byte a +Statement [146] *((byte*) render_moving::screen_line#0 + (byte) render_moving::xpos#2) ← (byte) current_piece_char#67 [ render_screen_render#33 current_xpos#58 current_piece_gfx#63 current_piece_char#67 render_moving::ypos2#2 render_moving::l#4 render_moving::i#2 render_moving::screen_line#0 render_moving::xpos#2 render_moving::c#2 ] ( main:12::render_moving:34 [ current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::piece_idx#2 play_spawn_current::$0 current_movedown_slow#1 game_over#52 render_screen_render#33 current_xpos#58 current_piece_gfx#63 current_piece_char#67 render_moving::ypos2#2 render_moving::l#4 render_moving::i#2 render_moving::screen_line#0 render_moving::xpos#2 render_moving::c#2 ] main:12::render_moving:62 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_render#33 current_xpos#58 current_piece_gfx#63 current_piece_char#67 render_moving::ypos2#2 render_moving::l#4 render_moving::i#2 render_moving::screen_line#0 render_moving::xpos#2 render_moving::c#2 ] ) always clobbers reg byte a +Statement [152] (byte~) render_playfield::$2 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ render_screen_render#22 render_playfield::l#2 render_playfield::i#3 render_playfield::$2 ] ( main:12::render_playfield:29 [ current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::piece_idx#2 play_spawn_current::$0 current_movedown_slow#1 game_over#52 render_screen_render#22 render_playfield::l#2 render_playfield::i#3 render_playfield::$2 ] main:12::render_playfield:56 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_render#22 render_playfield::l#2 render_playfield::i#3 render_playfield::$2 ] ) always clobbers reg byte a +Statement [153] (byte~) render_playfield::$3 ← (byte) render_screen_render#22 + (byte~) render_playfield::$2 [ render_screen_render#22 render_playfield::l#2 render_playfield::i#3 render_playfield::$3 ] ( main:12::render_playfield:29 [ current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::piece_idx#2 play_spawn_current::$0 current_movedown_slow#1 game_over#52 render_screen_render#22 render_playfield::l#2 render_playfield::i#3 render_playfield::$3 ] main:12::render_playfield:56 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_render#22 render_playfield::l#2 render_playfield::i#3 render_playfield::$3 ] ) always clobbers reg byte a +Statement [154] (byte*) render_playfield::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_playfield::$3) [ render_screen_render#22 render_playfield::l#2 render_playfield::i#3 render_playfield::screen_line#0 ] ( main:12::render_playfield:29 [ current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::piece_idx#2 play_spawn_current::$0 current_movedown_slow#1 game_over#52 render_screen_render#22 render_playfield::l#2 render_playfield::i#3 render_playfield::screen_line#0 ] main:12::render_playfield:56 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_render#22 render_playfield::l#2 render_playfield::i#3 render_playfield::screen_line#0 ] ) always clobbers reg byte a +Statement [156] *((byte*) render_playfield::screen_line#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2) [ render_screen_render#22 render_playfield::l#2 render_playfield::i#2 render_playfield::screen_line#2 render_playfield::c#2 ] ( main:12::render_playfield:29 [ current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::piece_idx#2 play_spawn_current::$0 current_movedown_slow#1 game_over#52 render_screen_render#22 render_playfield::l#2 render_playfield::i#2 render_playfield::screen_line#2 render_playfield::c#2 ] main:12::render_playfield:56 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_render#22 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 [168] (byte) play_movement::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) play_movement::$0 [ current_movedown_slow#21 current_piece#15 current_piece_char#15 current_ypos#18 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_orientation#20 current_piece_gfx#19 current_xpos#21 ] ( main:12::play_movement:51 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_ypos#18 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_orientation#20 current_piece_gfx#19 current_xpos#21 ] ) always clobbers reg byte a +Statement [176] (byte) play_movement::render#2 ← (byte) play_movement::render#1 + (byte~) play_movement::$3 [ current_movedown_slow#21 current_piece#15 current_piece_char#15 current_ypos#18 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 current_orientation#20 current_piece_gfx#19 current_xpos#25 play_movement::render#2 ] ( main:12::play_movement:51 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_ypos#18 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 current_orientation#20 current_piece_gfx#19 current_xpos#25 play_movement::render#2 ] ) always clobbers reg byte a +Statement [181] (byte) play_movement::return#0 ← (byte) play_movement::render#2 + (byte~) play_movement::$4 [ current_movedown_slow#21 current_piece#15 current_piece_char#15 current_ypos#18 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::return#0 current_orientation#25 current_piece_gfx#20 current_xpos#25 ] ( main:12::play_movement:51 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_ypos#18 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::return#0 current_orientation#25 current_piece_gfx#20 current_xpos#25 ] ) always clobbers reg byte a +Statement [186] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#20 + (byte/signed byte/word/signed word/dword/signed dword) 16 [ current_piece#15 current_ypos#18 current_orientation#20 current_piece_gfx#19 current_xpos#25 play_move_rotate::$2 ] ( main:12::play_movement:51::play_move_rotate:178 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#15 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#18 current_orientation#20 current_piece_gfx#19 current_xpos#25 play_move_rotate::$2 ] ) always clobbers reg byte a +Statement [187] (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#15 current_ypos#18 current_orientation#20 current_piece_gfx#19 current_xpos#25 play_move_rotate::orientation#2 ] ( main:12::play_movement:51::play_move_rotate:178 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#15 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#18 current_orientation#20 current_piece_gfx#19 current_xpos#25 play_move_rotate::orientation#2 ] ) always clobbers reg byte a +Statement [192] (byte*~) current_piece#101 ← (byte*) current_piece#15 [ current_piece#15 current_ypos#18 current_orientation#20 current_piece_gfx#19 current_xpos#25 play_move_rotate::orientation#3 play_collision::xpos#3 play_collision::ypos#3 play_collision::orientation#3 current_piece#101 ] ( main:12::play_movement:51::play_move_rotate:178 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#15 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#18 current_orientation#20 current_piece_gfx#19 current_xpos#25 play_move_rotate::orientation#3 play_collision::xpos#3 play_collision::ypos#3 play_collision::orientation#3 current_piece#101 ] ) always clobbers reg byte a +Statement [198] (byte*) current_piece_gfx#6 ← (byte*) current_piece#15 + (byte) current_orientation#7 [ current_piece#15 current_ypos#18 current_xpos#25 current_orientation#7 current_piece_gfx#6 ] ( main:12::play_movement:51::play_move_rotate:178 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#15 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#18 current_xpos#25 current_orientation#7 current_piece_gfx#6 ] ) always clobbers reg byte a +Statement [199] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#20 - (byte/signed byte/word/signed word/dword/signed dword) 16 [ current_piece#15 current_ypos#18 current_orientation#20 current_piece_gfx#19 current_xpos#25 play_move_rotate::$4 ] ( main:12::play_movement:51::play_move_rotate:178 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#15 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#18 current_orientation#20 current_piece_gfx#19 current_xpos#25 play_move_rotate::$4 ] ) always clobbers reg byte a +Statement [200] (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#15 current_ypos#18 current_orientation#20 current_piece_gfx#19 current_xpos#25 play_move_rotate::orientation#1 ] ( main:12::play_movement:51::play_move_rotate:178 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#15 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#18 current_orientation#20 current_piece_gfx#19 current_xpos#25 play_move_rotate::orientation#1 ] ) always clobbers reg byte a +Statement [202] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#17 + (byte) play_collision::orientation#5 [ play_collision::ypos#5 play_collision::xpos#6 play_collision::piece_gfx#0 ] ( main:12::play_movement:51::play_move_rotate:178::play_collision:193 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#15 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#18 current_orientation#20 current_piece_gfx#19 current_xpos#25 play_move_rotate::orientation#3 play_collision::ypos#5 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:12::play_movement:51::play_move_leftright:173::play_collision:231 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#15 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#19 current_piece#15 current_ypos#18 current_orientation#20 current_xpos#21 play_collision::ypos#5 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:12::play_movement:51::play_move_leftright:173::play_collision:242 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#15 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#19 current_piece#15 current_ypos#18 current_orientation#20 current_xpos#21 play_collision::ypos#5 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:12::play_movement:51::play_move_down:165::play_collision:266 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_collision::ypos#5 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:12::play_spawn_current:25::play_collision:295 [ current_movedown_slow#1 current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#65 play_collision::ypos#5 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:12::play_spawn_current:27::play_collision:295 [ current_movedown_slow#1 current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#65 play_collision::ypos#5 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:12::play_movement:51::play_move_down:165::play_spawn_current:279::play_collision:295 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#65 play_collision::ypos#5 play_collision::xpos#6 play_collision::piece_gfx#0 ] ) always clobbers reg byte a +Statement [203] (byte) play_collision::ypos2#0 ← (byte) play_collision::ypos#5 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#0 ] ( main:12::play_movement:51::play_move_rotate:178::play_collision:193 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#15 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#18 current_orientation#20 current_piece_gfx#19 current_xpos#25 play_move_rotate::orientation#3 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:12::play_movement:51::play_move_leftright:173::play_collision:231 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#15 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#19 current_piece#15 current_ypos#18 current_orientation#20 current_xpos#21 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:12::play_movement:51::play_move_leftright:173::play_collision:242 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#15 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#19 current_piece#15 current_ypos#18 current_orientation#20 current_xpos#21 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:12::play_movement:51::play_move_down:165::play_collision:266 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:12::play_spawn_current:25::play_collision:295 [ current_movedown_slow#1 current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:12::play_spawn_current:27::play_collision:295 [ current_movedown_slow#1 current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:12::play_movement:51::play_move_down:165::play_spawn_current:279::play_collision:295 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#0 ] ) always clobbers reg byte a +Statement [205] (byte*) play_collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_collision::ypos2#2) [ play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] ( main:12::play_movement:51::play_move_rotate:178::play_collision:193 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#15 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#18 current_orientation#20 current_piece_gfx#19 current_xpos#25 play_move_rotate::orientation#3 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:12::play_movement:51::play_move_leftright:173::play_collision:231 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#15 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#19 current_piece#15 current_ypos#18 current_orientation#20 current_xpos#21 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:12::play_movement:51::play_move_leftright:173::play_collision:242 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#15 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#19 current_piece#15 current_ypos#18 current_orientation#20 current_xpos#21 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:12::play_movement:51::play_move_down:165::play_collision:266 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:12::play_spawn_current:25::play_collision:295 [ current_movedown_slow#1 current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:12::play_spawn_current:27::play_collision:295 [ current_movedown_slow#1 current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:12::play_movement:51::play_move_down:165::play_spawn_current:279::play_collision:295 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] ) always clobbers reg byte a +Statement [209] if(*((byte*) play_collision::piece_gfx#0 + (byte) play_collision::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@3 [ play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ( main:12::play_movement:51::play_move_rotate:178::play_collision:193 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#15 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#18 current_orientation#20 current_piece_gfx#19 current_xpos#25 play_move_rotate::orientation#3 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_movement:51::play_move_leftright:173::play_collision:231 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#15 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#19 current_piece#15 current_ypos#18 current_orientation#20 current_xpos#21 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_movement:51::play_move_leftright:173::play_collision:242 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#15 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#19 current_piece#15 current_ypos#18 current_orientation#20 current_xpos#21 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_movement:51::play_move_down:165::play_collision:266 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_spawn_current:25::play_collision:295 [ current_movedown_slow#1 current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_spawn_current:27::play_collision:295 [ current_movedown_slow#1 current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_movement:51::play_move_down:165::play_spawn_current:279::play_collision:295 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ) always clobbers reg byte a +Statement [213] (byte~) play_collision::$7 ← (byte) play_collision::col#2 & (byte/word/signed word/dword/signed dword) 128 [ play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] ( main:12::play_movement:51::play_move_rotate:178::play_collision:193 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#15 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#18 current_orientation#20 current_piece_gfx#19 current_xpos#25 play_move_rotate::orientation#3 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_movement:51::play_move_leftright:173::play_collision:231 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#15 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#19 current_piece#15 current_ypos#18 current_orientation#20 current_xpos#21 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_movement:51::play_move_leftright:173::play_collision:242 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#15 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#19 current_piece#15 current_ypos#18 current_orientation#20 current_xpos#21 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_movement:51::play_move_down:165::play_collision:266 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_spawn_current:25::play_collision:295 [ current_movedown_slow#1 current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_spawn_current:27::play_collision:295 [ current_movedown_slow#1 current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_movement:51::play_move_down:165::play_spawn_current:279::play_collision:295 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] ) always clobbers reg byte a +Statement [216] if(*((byte*) play_collision::playfield_line#0 + (byte) play_collision::col#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@3 [ play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ( main:12::play_movement:51::play_move_rotate:178::play_collision:193 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#15 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#18 current_orientation#20 current_piece_gfx#19 current_xpos#25 play_move_rotate::orientation#3 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_movement:51::play_move_leftright:173::play_collision:231 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#15 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#19 current_piece#15 current_ypos#18 current_orientation#20 current_xpos#21 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_movement:51::play_move_leftright:173::play_collision:242 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#15 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#19 current_piece#15 current_ypos#18 current_orientation#20 current_xpos#21 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_movement:51::play_move_down:165::play_collision:266 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_spawn_current:25::play_collision:295 [ current_movedown_slow#1 current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_spawn_current:27::play_collision:295 [ current_movedown_slow#1 current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_movement:51::play_move_down:165::play_spawn_current:279::play_collision:295 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ) always clobbers reg byte a +Statement [230] (byte*~) current_piece#100 ← (byte*) current_piece#15 [ current_piece#15 current_ypos#18 current_orientation#20 current_xpos#21 current_piece#100 play_collision::orientation#2 play_collision::ypos#2 play_collision::xpos#2 ] ( main:12::play_movement:51::play_move_leftright:173 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#15 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#19 current_piece#15 current_ypos#18 current_orientation#20 current_xpos#21 current_piece#100 play_collision::orientation#2 play_collision::ypos#2 play_collision::xpos#2 ] ) always clobbers reg byte a +Statement [241] (byte*~) current_piece#99 ← (byte*) current_piece#15 [ current_piece#15 current_ypos#18 current_orientation#20 current_xpos#21 current_piece#99 play_collision::orientation#1 play_collision::ypos#1 play_collision::xpos#1 ] ( main:12::play_movement:51::play_move_leftright:173 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#15 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#19 current_piece#15 current_ypos#18 current_orientation#20 current_xpos#21 current_piece#99 play_collision::orientation#1 play_collision::ypos#1 play_collision::xpos#1 ] ) always clobbers reg byte a +Statement [265] (byte*~) current_piece#98 ← (byte*) current_piece#10 [ current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 current_piece#98 play_collision::orientation#0 play_collision::ypos#0 play_collision::xpos#0 ] ( main:12::play_movement:51::play_move_down:165 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 current_piece#98 play_collision::orientation#0 play_collision::ypos#0 play_collision::xpos#0 ] ) always clobbers reg byte a +Statement [280] (byte*~) current_piece#103 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$0) [ current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::piece_idx#2 game_over#52 current_piece#103 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 ] ( main:12::play_movement:51::play_move_down:165 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::piece_idx#2 game_over#52 current_piece#103 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 ] ) always clobbers reg byte a +Statement [287] (byte~) play_spawn_current::$0 ← (byte) play_spawn_current::current_piece_idx#0 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ play_spawn_current::$0 game_over#65 play_spawn_current::current_piece_idx#0 ] ( main:12::play_spawn_current:25 [ current_movedown_slow#1 play_spawn_current::$0 game_over#65 play_spawn_current::current_piece_idx#0 ] main:12::play_spawn_current:27 [ current_movedown_slow#1 play_spawn_current::$0 game_over#65 play_spawn_current::current_piece_idx#0 ] main:12::play_movement:51::play_move_down:165::play_spawn_current:279 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 play_spawn_current::$0 game_over#65 play_spawn_current::current_piece_idx#0 ] ) always clobbers reg byte a +Statement [288] (byte) current_piece_char#4 ← *((const byte[]) PIECES_CHARS#0 + (byte) play_spawn_current::current_piece_idx#0) [ current_piece_char#4 play_spawn_current::$0 game_over#65 play_spawn_current::current_piece_idx#0 ] ( main:12::play_spawn_current:25 [ current_movedown_slow#1 current_piece_char#4 play_spawn_current::$0 game_over#65 play_spawn_current::current_piece_idx#0 ] main:12::play_spawn_current:27 [ current_movedown_slow#1 current_piece_char#4 play_spawn_current::$0 game_over#65 play_spawn_current::current_piece_idx#0 ] main:12::play_movement:51::play_move_down:165::play_spawn_current:279 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_piece_char#4 play_spawn_current::$0 game_over#65 play_spawn_current::current_piece_idx#0 ] ) always clobbers reg byte a +Statement [289] (byte*) current_piece_gfx#7 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$0) + (byte/signed byte/word/signed word/dword/signed dword) 0 [ current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#65 play_spawn_current::current_piece_idx#0 ] ( main:12::play_spawn_current:25 [ current_movedown_slow#1 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#65 play_spawn_current::current_piece_idx#0 ] main:12::play_spawn_current:27 [ current_movedown_slow#1 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#65 play_spawn_current::current_piece_idx#0 ] main:12::play_movement:51::play_move_down:165::play_spawn_current:279 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#65 play_spawn_current::current_piece_idx#0 ] ) always clobbers reg byte a +Statement [290] (byte) current_xpos#102 ← *((const byte[]) PIECES_START_X#0 + (byte) play_spawn_current::current_piece_idx#0) [ current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#65 play_spawn_current::current_piece_idx#0 ] ( main:12::play_spawn_current:25 [ current_movedown_slow#1 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#65 play_spawn_current::current_piece_idx#0 ] main:12::play_spawn_current:27 [ current_movedown_slow#1 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#65 play_spawn_current::current_piece_idx#0 ] main:12::play_movement:51::play_move_down:165::play_spawn_current:279 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#65 play_spawn_current::current_piece_idx#0 ] ) always clobbers reg byte a +Statement [291] (byte) current_ypos#5 ← *((const byte[]) PIECES_START_Y#0 + (byte) play_spawn_current::current_piece_idx#0) [ current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#65 ] ( main:12::play_spawn_current:25 [ current_movedown_slow#1 current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#65 ] main:12::play_spawn_current:27 [ current_movedown_slow#1 current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#65 ] main:12::play_movement:51::play_move_down:165::play_spawn_current:279 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#65 ] ) always clobbers reg byte a +Statement [294] (byte*~) current_piece#102 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$0) [ current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 current_piece#102 play_collision::ypos#4 play_collision::xpos#4 game_over#65 ] ( main:12::play_spawn_current:25 [ current_movedown_slow#1 current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 current_piece#102 play_collision::ypos#4 play_collision::xpos#4 game_over#65 ] main:12::play_spawn_current:27 [ current_movedown_slow#1 current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 current_piece#102 play_collision::ypos#4 play_collision::xpos#4 game_over#65 ] main:12::play_movement:51::play_move_down:165::play_spawn_current:279 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 current_piece#102 play_collision::ypos#4 play_collision::xpos#4 game_over#65 ] ) always clobbers reg byte a +Statement [307] (byte) play_spawn_current::piece_idx#1 ← (byte~) play_spawn_current::$6 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#52 play_spawn_current::piece_idx#1 ] ( main:12::play_spawn_current:25 [ current_movedown_slow#1 current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#52 play_spawn_current::piece_idx#1 ] main:12::play_spawn_current:27 [ current_movedown_slow#1 current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#52 play_spawn_current::piece_idx#1 ] main:12::play_movement:51::play_move_down:165::play_spawn_current:279 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#52 play_spawn_current::piece_idx#1 ] ) always clobbers reg byte a +Statement [312] (byte~) play_update_score::$2 ← < (word) lines_bcd#19 [ current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::$2 ] ( main:12::play_movement:51::play_move_down:165::play_update_score:277 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::$2 ] ) always clobbers reg byte a +Statement [313] (byte) play_update_score::lines_before#0 ← (byte~) play_update_score::$2 & (byte/word/signed word/dword/signed dword) 240 [ current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 ] ( main:12::play_movement:51::play_move_down:165::play_update_score:277 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 ] ) always clobbers reg byte a +Statement [314] (byte~) play_update_score::$4 ← (byte) play_update_score::removed#0 << (byte/signed byte/word/signed word/dword/signed dword) 2 [ current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 play_update_score::$4 ] ( main:12::play_movement:51::play_move_down:165::play_update_score:277 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 play_update_score::$4 ] ) always clobbers reg byte a +Statement [315] (dword) play_update_score::add_bcd#0 ← *((const dword[5]) score_add_bcd#0 + (byte~) play_update_score::$4) [ current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 play_update_score::add_bcd#0 ] ( main:12::play_movement:51::play_move_down:165::play_update_score:277 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 play_update_score::add_bcd#0 ] ) always clobbers reg byte a +Statement [317] (word) lines_bcd#30 ← (word) lines_bcd#19 + (byte) play_update_score::removed#0 [ current_movedown_slow#14 score_bcd#18 level#10 level_bcd#11 play_update_score::lines_before#0 play_update_score::add_bcd#0 lines_bcd#30 ] ( main:12::play_movement:51::play_move_down:165::play_update_score:277 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 current_movedown_slow#14 score_bcd#18 level#10 level_bcd#11 play_update_score::lines_before#0 play_update_score::add_bcd#0 lines_bcd#30 ] ) always clobbers reg byte a +Statement [318] (dword) score_bcd#30 ← (dword) score_bcd#18 + (dword) play_update_score::add_bcd#0 [ current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#30 score_bcd#30 ] ( main:12::play_movement:51::play_move_down:165::play_update_score:277 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#30 score_bcd#30 ] ) always clobbers reg byte a +Statement [320] (byte~) play_update_score::$5 ← < (word) lines_bcd#30 [ current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#30 score_bcd#30 play_update_score::$5 ] ( main:12::play_movement:51::play_move_down:165::play_update_score:277 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#30 score_bcd#30 play_update_score::$5 ] ) always clobbers reg byte a +Statement [321] (byte) play_update_score::lines_after#0 ← (byte~) play_update_score::$5 & (byte/word/signed word/dword/signed dword) 240 [ current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#30 score_bcd#30 play_update_score::lines_after#0 ] ( main:12::play_movement:51::play_move_down:165::play_update_score:277 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#30 score_bcd#30 play_update_score::lines_after#0 ] ) always clobbers reg byte a +Statement [328] if((byte) level#20>(byte/signed byte/word/signed word/dword/signed dword) 29) goto play_increase_level::@2 [ level_bcd#11 level#20 ] ( main:12::play_movement:51::play_move_down:165::play_update_score:277::play_increase_level:324 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 lines_bcd#30 score_bcd#30 level_bcd#11 level#20 ] ) always clobbers reg byte a +Statement [329] (byte) current_movedown_slow#10 ← *((const byte[]) MOVEDOWN_SLOW_SPEEDS#0 + (byte) level#20) [ level_bcd#11 level#20 current_movedown_slow#10 ] ( main:12::play_movement:51::play_move_down:165::play_update_score:277::play_increase_level:324 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 lines_bcd#30 score_bcd#30 level_bcd#11 level#20 current_movedown_slow#10 ] ) always clobbers reg byte a +Statement [332] (byte~) play_increase_level::$1 ← (byte) level_bcd#21 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ level#20 current_movedown_slow#69 level_bcd#21 play_increase_level::$1 ] ( main:12::play_movement:51::play_move_down:165::play_update_score:277::play_increase_level:324 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 lines_bcd#30 score_bcd#30 level#20 current_movedown_slow#69 level_bcd#21 play_increase_level::$1 ] ) always clobbers reg byte a +Statement [334] (byte) level_bcd#8 ← (byte) level_bcd#21 + (byte/signed byte/word/signed word/dword/signed dword) 6 [ level#20 current_movedown_slow#69 level_bcd#8 ] ( main:12::play_movement:51::play_move_down:165::play_update_score:277::play_increase_level:324 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 lines_bcd#30 score_bcd#30 level#20 current_movedown_slow#69 level_bcd#8 ] ) always clobbers reg byte a +Statement [338] (byte) play_increase_level::b4#0 ← (byte) play_increase_level::b#2 << (byte/signed byte/word/signed word/dword/signed dword) 2 [ level#20 current_movedown_slow#69 level_bcd#64 play_increase_level::b#2 play_increase_level::b4#0 ] ( main:12::play_movement:51::play_move_down:165::play_update_score:277::play_increase_level:324 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 lines_bcd#30 score_bcd#30 level#20 current_movedown_slow#69 level_bcd#64 play_increase_level::b#2 play_increase_level::b4#0 ] ) always clobbers reg byte a +Statement [339] *((const dword[5]) score_add_bcd#0 + (byte) play_increase_level::b4#0) ← *((const dword[5]) score_add_bcd#0 + (byte) play_increase_level::b4#0) + *((const dword[]) SCORE_BASE_BCD#0 + (byte) play_increase_level::b4#0) [ level#20 current_movedown_slow#69 level_bcd#64 play_increase_level::b#2 ] ( main:12::play_movement:51::play_move_down:165::play_update_score:277::play_increase_level:324 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 lines_bcd#30 score_bcd#30 level#20 current_movedown_slow#69 level_bcd#64 play_increase_level::b#2 ] ) always clobbers reg byte a +Statement [356] (byte) play_remove_lines::w#2 ← (byte) play_remove_lines::w#1 + (const byte) PLAYFIELD_COLS#0 [ play_remove_lines::y#8 play_remove_lines::removed#11 play_remove_lines::r#1 play_remove_lines::w#2 ] ( main:12::play_movement:51::play_move_down:165::play_remove_lines:273 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 game_over#10 next_piece_idx#10 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_remove_lines::y#8 play_remove_lines::removed#11 play_remove_lines::r#1 play_remove_lines::w#2 ] ) always clobbers reg byte a +Statement [364] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::w#6) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ play_remove_lines::removed#7 play_remove_lines::w#6 ] ( main:12::play_movement:51::play_move_down:165::play_remove_lines:273 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 game_over#10 next_piece_idx#10 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_remove_lines::removed#7 play_remove_lines::w#6 ] ) always clobbers reg byte a +Statement [367] (byte) play_lock_current::ypos2#0 ← (byte) current_ypos#10 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ current_piece_char#21 current_piece_gfx#111 current_xpos#121 play_lock_current::ypos2#0 ] ( main:12::play_movement:51::play_move_down:165::play_lock_current:271 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 game_over#10 next_piece_idx#10 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 current_piece_char#21 current_piece_gfx#111 current_xpos#121 play_lock_current::ypos2#0 ] ) always clobbers reg byte a +Statement [369] (byte*) play_lock_current::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_lock_current::ypos2#2) [ current_piece_char#21 current_piece_gfx#111 current_xpos#121 play_lock_current::ypos2#2 play_lock_current::i#3 play_lock_current::l#6 play_lock_current::playfield_line#0 ] ( main:12::play_movement:51::play_move_down:165::play_lock_current:271 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 game_over#10 next_piece_idx#10 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 current_piece_char#21 current_piece_gfx#111 current_xpos#121 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 [373] if(*((byte*) current_piece_gfx#111 + (byte) play_lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_lock_current::@3 [ current_piece_char#21 current_piece_gfx#111 current_xpos#121 play_lock_current::ypos2#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::col#2 play_lock_current::c#2 play_lock_current::i#1 ] ( main:12::play_movement:51::play_move_down:165::play_lock_current:271 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 game_over#10 next_piece_idx#10 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 current_piece_char#21 current_piece_gfx#111 current_xpos#121 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 [374] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::col#2) ← (byte) current_piece_char#21 [ current_piece_char#21 current_piece_gfx#111 current_xpos#121 play_lock_current::ypos2#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::col#2 play_lock_current::c#2 play_lock_current::i#1 ] ( main:12::play_movement:51::play_move_down:165::play_lock_current:271 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 game_over#10 next_piece_idx#10 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 current_piece_char#21 current_piece_gfx#111 current_xpos#121 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 [385] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte/signed byte/word/signed word/dword/signed dword) 3 [ keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] ( main:12::play_movement:51::play_move_down:165::keyboard_event_pressed:251 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 current_movedown_counter#12 play_move_down::movedown#10 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:12::keyboard_event_scan:43::keyboard_event_pressed:407 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:12::keyboard_event_scan:43::keyboard_event_pressed:413 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_modifiers#11 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:12::keyboard_event_scan:43::keyboard_event_pressed:419 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_modifiers#12 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:12::keyboard_event_scan:43::keyboard_event_pressed:425 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_modifiers#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] ) always clobbers reg byte a +Statement [387] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] ( main:12::play_movement:51::play_move_down:165::keyboard_event_pressed:251 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 current_movedown_counter#12 play_move_down::movedown#10 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:12::keyboard_event_scan:43::keyboard_event_pressed:407 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:12::keyboard_event_scan:43::keyboard_event_pressed:413 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_modifiers#11 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:12::keyboard_event_scan:43::keyboard_event_pressed:419 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_modifiers#12 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:12::keyboard_event_scan:43::keyboard_event_pressed:425 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_modifiers#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] ) always clobbers reg byte a +Statement [388] (byte) keyboard_event_pressed::return#11 ← (byte) keyboard_event_pressed::row_bits#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte~) keyboard_event_pressed::$1) [ keyboard_event_pressed::return#11 ] ( main:12::play_movement:51::play_move_down:165::keyboard_event_pressed:251 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 current_movedown_counter#12 play_move_down::movedown#10 keyboard_event_pressed::return#11 ] main:12::keyboard_event_scan:43::keyboard_event_pressed:407 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_pressed::return#11 ] main:12::keyboard_event_scan:43::keyboard_event_pressed:413 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_modifiers#11 keyboard_event_pressed::return#11 ] main:12::keyboard_event_scan:43::keyboard_event_pressed:419 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_modifiers#12 keyboard_event_pressed::return#11 ] main:12::keyboard_event_scan:43::keyboard_event_pressed:425 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_modifiers#13 keyboard_event_pressed::return#11 ] ) always clobbers reg byte a +Statement [401] 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:43 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#29 keyboard_event_scan::row_scan#0 ] ) always clobbers reg byte a +Statement [402] (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:43 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_events_size#29 keyboard_event_scan::keycode#1 ] ) always clobbers reg byte a +Statement [417] (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:43 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_modifiers#3 ] ) always clobbers reg byte a +Statement [423] (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:43 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_modifiers#4 ] ) always clobbers reg byte a +Statement [429] (byte) keyboard_modifiers#5 ← (byte) keyboard_modifiers#13 | (const byte) KEY_MODIFIER_COMMODORE#0 [ keyboard_events_size#13 ] ( main:12::keyboard_event_scan:43 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 ] ) always clobbers reg byte a +Statement [432] (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:43 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$3 ] ) always clobbers reg byte a +Statement [433] (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:43 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$4 ] ) always clobbers reg byte a +Statement [436] (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:43 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::event_type#0 ] ) always clobbers reg byte a +Statement [438] *((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:43 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 ] ) always clobbers reg byte a +Statement [444] *((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:43 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::keycode#15 keyboard_events_size#30 ] ) always clobbers reg byte a +Statement [445] (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:43 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$11 ] ) always clobbers reg byte a +Statement [448] *((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:43::keyboard_matrix_read:398 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#29 ] ) always clobbers reg byte a +Statement [449] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:12::keyboard_event_scan:43::keyboard_matrix_read:398 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#29 keyboard_matrix_read::return#0 ] ) always clobbers reg byte a +Statement [460] (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 [461] *((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 [462] *((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 [463] (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 [464] (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 [467] *((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 [470] (byte) play_init::b4#0 ← (byte) play_init::b#2 << (byte/signed byte/word/signed word/dword/signed dword) 2 [ current_movedown_slow#1 play_init::b#2 play_init::b4#0 ] ( main:12::play_init:23 [ current_movedown_slow#1 play_init::b#2 play_init::b4#0 ] ) always clobbers reg byte a +Statement [471] *((const dword[5]) score_add_bcd#0 + (byte) play_init::b4#0) ← *((const dword[]) SCORE_BASE_BCD#0 + (byte) play_init::b4#0) [ current_movedown_slow#1 play_init::b#2 ] ( main:12::play_init:23 [ current_movedown_slow#1 play_init::b#2 ] ) always clobbers reg byte a +Statement [476] *((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 [449] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a -Statement [450] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a -Statement [451] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a -Statement [452] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a -Statement [453] *((const byte*) RASTER#0) ← (const byte) IRQ_RASTER_FIRST#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a -Statement [454] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a -Statement [455] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a -Statement [458] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 15 [ ] ( main:12::sprites_init:19 [ ] ) always clobbers reg byte a -Statement [459] *((const byte*) SPRITES_MC#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:12::sprites_init:19 [ ] ) always clobbers reg byte a -Statement [460] *((const byte*) SPRITES_EXPAND_Y#0) ← *((const byte*) SPRITES_MC#0) [ ] ( main:12::sprites_init:19 [ ] ) always clobbers reg byte a -Statement [461] *((const byte*) SPRITES_EXPAND_X#0) ← *((const byte*) SPRITES_EXPAND_Y#0) [ ] ( main:12::sprites_init:19 [ ] ) always clobbers reg byte a -Statement [463] (byte) sprites_init::s2#0 ← (byte) sprites_init::s#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ sprites_init::s#2 sprites_init::xpos#2 sprites_init::s2#0 ] ( main:12::sprites_init:19 [ sprites_init::s#2 sprites_init::xpos#2 sprites_init::s2#0 ] ) always clobbers reg byte a -Statement [464] *((const byte*) SPRITES_XPOS#0 + (byte) sprites_init::s2#0) ← (byte) sprites_init::xpos#2 [ sprites_init::s#2 sprites_init::xpos#2 ] ( main:12::sprites_init:19 [ sprites_init::s#2 sprites_init::xpos#2 ] ) always clobbers reg byte a -Statement [465] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::s#2) ← (const byte) BLACK#0 [ sprites_init::s#2 sprites_init::xpos#2 ] ( main:12::sprites_init:19 [ sprites_init::s#2 sprites_init::xpos#2 ] ) always clobbers reg byte a -Statement [466] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 [ sprites_init::s#2 sprites_init::xpos#1 ] ( main:12::sprites_init:19 [ sprites_init::s#2 sprites_init::xpos#1 ] ) always clobbers reg byte a -Statement [471] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a -Statement [473] *((const byte*) CIA2_PORT_A#0) ← (const byte) render_init::vicSelectGfxBank1_toDd001_return#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a -Statement [474] *((const byte*) D011#0) ← (const byte) VIC_ECM#0|(const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a -Statement [475] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a -Statement [476] *((const byte*) BGCOL1#0) ← (const byte) BLACK#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a -Statement [477] *((const byte*) BGCOL2#0) ← (const byte) BLUE#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a -Statement [478] *((const byte*) BGCOL3#0) ← (const byte) CYAN#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a -Statement [479] *((const byte*) BGCOL4#0) ← (const byte) GREY#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a -Statement [484] (byte~) render_init::$13 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 render_init::$13 ] ( main:12::render_init:17 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 render_init::$13 ] ) always clobbers reg byte a -Statement [485] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_init::$13) ← (byte*) render_init::li_1#2 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 ] ( main:12::render_init:17 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 ] ) always clobbers reg byte a -Statement [486] (byte~) render_init::$14 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 render_init::$14 ] ( main:12::render_init:17 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 render_init::$14 ] ) always clobbers reg byte a -Statement [487] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_2#0 + (byte~) render_init::$14) ← (byte*) render_init::li_2#2 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 ] ( main:12::render_init:17 [ render_init::i#2 render_init::li_1#2 render_init::li_2#2 ] ) always clobbers reg byte a -Statement [488] (byte*) render_init::li_1#1 ← (byte*) render_init::li_1#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ render_init::i#2 render_init::li_2#2 render_init::li_1#1 ] ( main:12::render_init:17 [ render_init::i#2 render_init::li_2#2 render_init::li_1#1 ] ) always clobbers reg byte a -Statement [489] (byte*) render_init::li_2#1 ← (byte*) render_init::li_2#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ render_init::i#2 render_init::li_1#1 render_init::li_2#1 ] ( main:12::render_init:17 [ render_init::i#2 render_init::li_1#1 render_init::li_2#1 ] ) always clobbers reg byte a -Statement [496] *((byte*) render_screen_original::screen#5) ← (const byte) render_screen_original::SPACE#0 [ render_screen_original::oscr#4 render_screen_original::ocols#4 render_screen_original::y#6 render_screen_original::screen#5 render_screen_original::cols#4 render_screen_original::x#4 ] ( main:12::render_init:17::render_screen_original:480 [ render_screen_original::oscr#4 render_screen_original::ocols#4 render_screen_original::y#6 render_screen_original::screen#5 render_screen_original::cols#4 render_screen_original::x#4 ] main:12::render_init:17::render_screen_original:482 [ render_screen_original::oscr#4 render_screen_original::ocols#4 render_screen_original::y#6 render_screen_original::screen#5 render_screen_original::cols#4 render_screen_original::x#4 ] ) always clobbers reg byte a reg byte y -Statement [498] *((byte*) render_screen_original::cols#4) ← (const byte) BLACK#0 [ render_screen_original::oscr#4 render_screen_original::ocols#4 render_screen_original::y#6 render_screen_original::cols#4 render_screen_original::x#4 render_screen_original::screen#2 ] ( main:12::render_init:17::render_screen_original:480 [ render_screen_original::oscr#4 render_screen_original::ocols#4 render_screen_original::y#6 render_screen_original::cols#4 render_screen_original::x#4 render_screen_original::screen#2 ] main:12::render_init:17::render_screen_original:482 [ render_screen_original::oscr#4 render_screen_original::ocols#4 render_screen_original::y#6 render_screen_original::cols#4 render_screen_original::x#4 render_screen_original::screen#2 ] ) always clobbers reg byte a reg byte y -Statement [503] *((byte*) render_screen_original::screen#6) ← *((byte*) render_screen_original::oscr#2) [ render_screen_original::y#6 render_screen_original::oscr#2 render_screen_original::screen#6 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 ] ( main:12::render_init:17::render_screen_original:480 [ render_screen_original::y#6 render_screen_original::oscr#2 render_screen_original::screen#6 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 ] main:12::render_init:17::render_screen_original:482 [ render_screen_original::y#6 render_screen_original::oscr#2 render_screen_original::screen#6 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 ] ) always clobbers reg byte a reg byte y -Statement [506] *((byte*) render_screen_original::cols#5) ← *((byte*) render_screen_original::ocols#2) [ render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 render_screen_original::screen#3 ] ( main:12::render_init:17::render_screen_original:480 [ render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 render_screen_original::screen#3 ] main:12::render_init:17::render_screen_original:482 [ render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::ocols#2 render_screen_original::cols#5 render_screen_original::x#5 render_screen_original::screen#3 ] ) always clobbers reg byte a reg byte y -Statement [512] *((byte*) render_screen_original::screen#7) ← (const byte) render_screen_original::SPACE#0 [ render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::ocols#1 render_screen_original::screen#7 render_screen_original::cols#6 render_screen_original::x#6 ] ( main:12::render_init:17::render_screen_original:480 [ render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::ocols#1 render_screen_original::screen#7 render_screen_original::cols#6 render_screen_original::x#6 ] main:12::render_init:17::render_screen_original:482 [ render_screen_original::y#6 render_screen_original::oscr#1 render_screen_original::ocols#1 render_screen_original::screen#7 render_screen_original::cols#6 render_screen_original::x#6 ] ) always clobbers reg byte a reg byte y -Statement [514] *((byte*) render_screen_original::cols#6) ← (const byte) BLACK#0 [ render_screen_original::y#6 render_screen_original::screen#10 render_screen_original::oscr#1 render_screen_original::ocols#1 render_screen_original::cols#6 render_screen_original::x#6 ] ( main:12::render_init:17::render_screen_original:480 [ render_screen_original::y#6 render_screen_original::screen#10 render_screen_original::oscr#1 render_screen_original::ocols#1 render_screen_original::cols#6 render_screen_original::x#6 ] main:12::render_init:17::render_screen_original:482 [ render_screen_original::y#6 render_screen_original::screen#10 render_screen_original::oscr#1 render_screen_original::ocols#1 render_screen_original::cols#6 render_screen_original::x#6 ] ) always clobbers reg byte a reg byte y -Statement [521] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 [ ] ( main:12::sid_rnd_init:15 [ ] ) always clobbers reg byte a -Statement [522] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 [ ] ( main:12::sid_rnd_init:15 [ ] ) always clobbers reg byte a -Statement [532] if(*((const byte*) RASTER#0)<(byte) sprites_irq::raster_sprite_gfx_modify#0) goto sprites_irq::@1 [ render_screen_showing#0 irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#0 sprites_irq::raster_sprite_gfx_modify#0 ] ( [ render_screen_showing#0 irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#0 sprites_irq::raster_sprite_gfx_modify#0 ] ) always clobbers reg byte a -Statement [534] if((byte) render_screen_showing#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sprites_irq::@2 [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#0 sprites_irq::ptr#0 ] ( [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#0 sprites_irq::ptr#0 ] ) always clobbers reg byte a -Statement [541] (byte) irq_cnt#1 ← ++ (byte) irq_cnt#0 [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#1 ] ( [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#1 ] ) always clobbers reg byte y -Statement [542] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 9) goto sprites_irq::@4 [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#1 ] ( [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#1 ] ) always clobbers reg byte a -Statement [543] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto sprites_irq::@5 [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 ] ( [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 ] ) always clobbers reg byte a -Statement [544] (byte) irq_raster_next#3 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 20 [ irq_sprite_ypos#0 irq_sprite_ptr#0 irq_raster_next#3 ] ( [ irq_sprite_ypos#0 irq_sprite_ptr#0 irq_raster_next#3 ] ) always clobbers reg byte a -Statement [545] (byte) irq_sprite_ypos#3 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 [ irq_sprite_ptr#0 irq_raster_next#3 ] ( [ irq_sprite_ptr#0 irq_raster_next#3 ] ) always clobbers reg byte a -Statement [546] (byte) irq_sprite_ptr#3 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 [ irq_raster_next#3 ] ( [ irq_raster_next#3 ] ) always clobbers reg byte a -Statement [548] *((const byte*) RASTER#0) ← (byte) irq_raster_next#4 [ ] ( [ ] ) always clobbers reg byte a -Statement [549] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 [ ] ( [ ] ) always clobbers reg byte a -Statement [550] return [ ] ( [ ] ) always clobbers reg byte a reg byte x reg byte y -Statement [551] (byte) irq_cnt#2 ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ irq_sprite_ypos#0 irq_sprite_ptr#0 ] ( [ irq_sprite_ypos#0 irq_sprite_ptr#0 ] ) always clobbers reg byte a -Statement [552] (byte) irq_raster_next#2 ← (const byte) IRQ_RASTER_FIRST#0 [ irq_sprite_ypos#0 irq_sprite_ptr#0 irq_raster_next#2 ] ( [ irq_sprite_ypos#0 irq_sprite_ptr#0 irq_raster_next#2 ] ) always clobbers reg byte a -Statement [553] (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 [ irq_sprite_ptr#0 irq_raster_next#2 ] ( [ irq_sprite_ptr#0 irq_raster_next#2 ] ) always clobbers reg byte a -Statement [554] (byte) irq_sprite_ptr#2 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 [ irq_raster_next#2 ] ( [ irq_raster_next#2 ] ) always clobbers reg byte a -Statement [555] (byte) irq_raster_next#1 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 [ irq_raster_next#1 ] ( [ irq_raster_next#1 ] ) always clobbers reg byte a -Statement [556] (byte) irq_sprite_ypos#1 ← (const byte) SPRITES_FIRST_YPOS#0 [ irq_raster_next#1 ] ( [ irq_raster_next#1 ] ) always clobbers reg byte a -Statement [558] (byte) irq_sprite_ptr#1 ← (const byte) sprites_irq::toSpritePtr2_return#0 [ irq_raster_next#1 ] ( [ irq_raster_next#1 ] ) always clobbers reg byte a +Statement [478] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a +Statement [479] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a +Statement [480] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a +Statement [481] *((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 [482] *((const byte*) RASTER#0) ← (const byte) IRQ_RASTER_FIRST#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a +Statement [483] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a +Statement [484] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a +Statement [487] *((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 [488] *((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 [489] *((const byte*) SPRITES_EXPAND_Y#0) ← *((const byte*) SPRITES_MC#0) [ ] ( main:12::sprites_init:19 [ ] ) always clobbers reg byte a +Statement [490] *((const byte*) SPRITES_EXPAND_X#0) ← *((const byte*) SPRITES_EXPAND_Y#0) [ ] ( main:12::sprites_init:19 [ ] ) always clobbers reg byte a +Statement [492] (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 [493] *((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 [494] *((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 [495] (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 [500] *((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 [502] *((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 [503] *((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 [504] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a +Statement [505] *((const byte*) BGCOL1#0) ← (const byte) BLACK#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a +Statement [506] *((const byte*) BGCOL2#0) ← (const byte) BLUE#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a +Statement [507] *((const byte*) BGCOL3#0) ← (const byte) CYAN#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a +Statement [508] *((const byte*) BGCOL4#0) ← (const byte) GREY#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a +Statement [513] (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 [514] *((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 [515] (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 [516] *((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 [517] (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 [518] (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 [525] *((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:509 [ 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:511 [ 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 [527] *((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:509 [ 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:511 [ 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 [532] *((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:509 [ 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:511 [ 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 [535] *((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:509 [ 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:511 [ 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 [541] *((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:509 [ 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:511 [ 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 [543] *((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:509 [ 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:511 [ 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 [550] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 [ ] ( main:12::sid_rnd_init:15 [ ] ) always clobbers reg byte a +Statement [551] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 [ ] ( main:12::sid_rnd_init:15 [ ] ) always clobbers reg byte a +Statement [561] if(*((const byte*) RASTER#0)<(byte) sprites_irq::raster_sprite_gfx_modify#0) goto sprites_irq::@1 [ render_screen_showing#0 irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#0 sprites_irq::raster_sprite_gfx_modify#0 ] ( [ render_screen_showing#0 irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#0 sprites_irq::raster_sprite_gfx_modify#0 ] ) always clobbers reg byte a +Statement [563] 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 [570] (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 [571] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 9) goto sprites_irq::@4 [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#1 ] ( [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#1 ] ) always clobbers reg byte a +Statement [572] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto sprites_irq::@5 [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 ] ( [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 ] ) always clobbers reg byte a +Statement [573] (byte) irq_raster_next#3 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 20 [ irq_sprite_ypos#0 irq_sprite_ptr#0 irq_raster_next#3 ] ( [ irq_sprite_ypos#0 irq_sprite_ptr#0 irq_raster_next#3 ] ) always clobbers reg byte a +Statement [574] (byte) irq_sprite_ypos#3 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 [ irq_sprite_ptr#0 irq_raster_next#3 ] ( [ irq_sprite_ptr#0 irq_raster_next#3 ] ) always clobbers reg byte a +Statement [575] (byte) irq_sprite_ptr#3 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 [ irq_raster_next#3 ] ( [ irq_raster_next#3 ] ) always clobbers reg byte a +Statement [577] *((const byte*) RASTER#0) ← (byte) irq_raster_next#4 [ ] ( [ ] ) always clobbers reg byte a +Statement [578] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 [ ] ( [ ] ) always clobbers reg byte a +Statement [579] return [ ] ( [ ] ) always clobbers reg byte a reg byte x reg byte y +Statement [580] (byte) irq_cnt#2 ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ irq_sprite_ypos#0 irq_sprite_ptr#0 ] ( [ irq_sprite_ypos#0 irq_sprite_ptr#0 ] ) always clobbers reg byte a +Statement [581] (byte) irq_raster_next#2 ← (const byte) IRQ_RASTER_FIRST#0 [ irq_sprite_ypos#0 irq_sprite_ptr#0 irq_raster_next#2 ] ( [ irq_sprite_ypos#0 irq_sprite_ptr#0 irq_raster_next#2 ] ) always clobbers reg byte a +Statement [582] (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 [583] (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 [584] (byte) irq_raster_next#1 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 [ irq_raster_next#1 ] ( [ irq_raster_next#1 ] ) always clobbers reg byte a +Statement [585] (byte) irq_sprite_ypos#1 ← (const byte) SPRITES_FIRST_YPOS#0 [ irq_raster_next#1 ] ( [ irq_raster_next#1 ] ) always clobbers reg byte a +Statement [587] (byte) irq_sprite_ptr#1 ← (const byte) sprites_irq::toSpritePtr2_return#0 [ irq_raster_next#1 ] ( [ irq_raster_next#1 ] ) always clobbers reg byte a +Statement [1] (byte) render_screen_showing#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( ) always clobbers reg byte a +Statement [6] (byte) irq_raster_next#0 ← (const byte) IRQ_RASTER_FIRST#0 [ ] ( ) always clobbers reg byte a +Statement [7] (byte) irq_sprite_ypos#0 ← (const byte) SPRITES_FIRST_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 21 [ ] ( ) always clobbers reg byte a +Statement [9] (byte) irq_sprite_ptr#0 ← (const byte) toSpritePtr1_return#0+(byte/signed byte/word/signed word/dword/signed dword) 3 [ ] ( ) always clobbers reg byte a +Statement [10] (byte) irq_cnt#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( ) always clobbers reg byte a +Statement [32] (byte*~) current_piece_gfx#122 ← (byte*) current_piece_gfx#7 [ current_ypos#108 current_ypos#5 current_xpos#132 current_xpos#102 current_piece_gfx#122 current_piece_gfx#7 current_piece_char#4 play_spawn_current::piece_idx#2 play_spawn_current::$0 current_movedown_slow#1 game_over#52 ] ( main:12 [ current_ypos#108 current_ypos#5 current_xpos#132 current_xpos#102 current_piece_gfx#122 current_piece_gfx#7 current_piece_char#4 play_spawn_current::piece_idx#2 play_spawn_current::$0 current_movedown_slow#1 game_over#52 ] ) always clobbers reg byte a +Statement [37] (byte*~) current_piece#96 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$0) [ current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::piece_idx#2 current_piece#96 current_movedown_slow#1 game_over#52 ] ( main:12 [ current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::piece_idx#2 current_piece#96 current_movedown_slow#1 game_over#52 ] ) always clobbers reg byte a +Statement [39] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 keyboard_events_size#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 ] ( main:12 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 keyboard_events_size#19 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 ] ) always clobbers reg byte a +Statement [60] (byte*~) current_piece_gfx#123 ← (byte*) current_piece_gfx#17 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 current_ypos#109 render_screen_render#69 current_xpos#133 current_piece_gfx#123 ] ( main:12 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 current_ypos#109 render_screen_render#69 current_xpos#133 current_piece_gfx#123 ] ) always clobbers reg byte a +Statement [70] (byte) render_screen_render#11 ← (byte) render_screen_render#18 ^ (byte/signed byte/word/signed word/dword/signed dword) 64 [ render_screen_show#16 render_screen_render#11 ] ( main:12::render_screen_swap:69 [ current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_show#16 render_screen_render#11 ] ) always clobbers reg byte a +Statement [71] (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:69 [ current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_show#13 render_screen_render#11 ] ) always clobbers reg byte a +Statement [76] (byte*) render_bcd::screen#0 ← (byte*) render_score::screen#2 [ render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen#0 ] ( main:12::render_score:67 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen#0 ] ) always clobbers reg byte a +Statement [79] (byte*) render_bcd::screen#1 ← (byte*) render_score::screen#2 [ render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen#1 ] ( main:12::render_score:67 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen#1 ] ) always clobbers reg byte a +Statement [82] (byte*) render_bcd::screen#2 ← (byte*) render_score::screen#2 [ render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen#2 ] ( main:12::render_score:67 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen#2 ] ) always clobbers reg byte a +Statement [85] (byte) render_bcd::bcd#3 ← > (word) lines_bcd#15 [ render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#3 ] ( main:12::render_score:67 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#3 ] ) always clobbers reg byte a +Statement [86] (byte*) render_bcd::screen#3 ← (byte*) render_score::screen#2 [ render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#3 render_bcd::screen#3 ] ( main:12::render_score:67 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#3 render_bcd::screen#3 ] ) always clobbers reg byte a +Statement [88] (byte) render_bcd::bcd#4 ← < (word) lines_bcd#15 [ render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#4 ] ( main:12::render_score:67 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#4 ] ) always clobbers reg byte a +Statement [89] (byte*) render_bcd::screen#4 ← (byte*) render_score::screen#2 [ render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#4 render_bcd::screen#4 ] ( main:12::render_score:67 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#4 render_bcd::screen#4 ] ) always clobbers reg byte a +Statement [91] (byte*) render_bcd::screen#5 ← (byte*) render_score::screen#2 [ render_screen_render#18 lines_bcd#15 level_bcd#17 render_bcd::screen#5 ] ( main:12::render_score:67 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_bcd::screen#5 ] ) always clobbers reg byte a +Statement [96] (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:67::render_bcd:78 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:67::render_bcd:81 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:67::render_bcd:84 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:67::render_bcd:87 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:67::render_bcd:90 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:67::render_bcd:93 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_bcd::only_low#6 render_bcd::bcd#6 render_bcd::screen_pos#0 ] ) always clobbers reg byte a +Statement [98] (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:67::render_bcd:78 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$3 ] main:12::render_score:67::render_bcd:81 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$3 ] main:12::render_score:67::render_bcd:84 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$3 ] main:12::render_score:67::render_bcd:87 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$3 ] main:12::render_score:67::render_bcd:90 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$3 ] main:12::render_score:67::render_bcd:93 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$3 ] ) always clobbers reg byte a +Statement [99] (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:67::render_bcd:78 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$4 ] main:12::render_score:67::render_bcd:81 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$4 ] main:12::render_score:67::render_bcd:84 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$4 ] main:12::render_score:67::render_bcd:87 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$4 ] main:12::render_score:67::render_bcd:90 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$4 ] main:12::render_score:67::render_bcd:93 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_bcd::bcd#6 render_bcd::screen_pos#0 render_bcd::$4 ] ) always clobbers reg byte a +Statement [100] *((byte*) render_bcd::screen_pos#0) ← (byte~) render_bcd::$4 [ render_bcd::bcd#6 render_bcd::screen_pos#0 ] ( main:12::render_score:67::render_bcd:78 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:67::render_bcd:81 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:67::render_bcd:84 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:67::render_bcd:87 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:67::render_bcd:90 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::bcd#6 render_bcd::screen_pos#0 ] main:12::render_score:67::render_bcd:93 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_bcd::bcd#6 render_bcd::screen_pos#0 ] ) always clobbers reg byte y +Statement [103] (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:67::render_bcd:78 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$5 ] main:12::render_score:67::render_bcd:81 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$5 ] main:12::render_score:67::render_bcd:84 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$5 ] main:12::render_score:67::render_bcd:87 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$5 ] main:12::render_score:67::render_bcd:90 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$5 ] main:12::render_score:67::render_bcd:93 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_bcd::screen_pos#3 render_bcd::$5 ] ) always clobbers reg byte a +Statement [104] (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:67::render_bcd:78 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$6 ] main:12::render_score:67::render_bcd:81 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$6 ] main:12::render_score:67::render_bcd:84 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$6 ] main:12::render_score:67::render_bcd:87 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$6 ] main:12::render_score:67::render_bcd:90 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen_pos#3 render_bcd::$6 ] main:12::render_score:67::render_bcd:93 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_bcd::screen_pos#3 render_bcd::$6 ] ) always clobbers reg byte a +Statement [105] *((byte*) render_bcd::screen_pos#3) ← (byte~) render_bcd::$6 [ render_bcd::screen_pos#3 ] ( main:12::render_score:67::render_bcd:78 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen_pos#3 ] main:12::render_score:67::render_bcd:81 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen_pos#3 ] main:12::render_score:67::render_bcd:84 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen_pos#3 ] main:12::render_score:67::render_bcd:87 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen_pos#3 ] main:12::render_score:67::render_bcd:90 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 render_bcd::screen_pos#3 ] main:12::render_score:67::render_bcd:93 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_bcd::screen_pos#3 ] ) always clobbers reg byte y +Statement [106] (byte*) render_bcd::screen_pos#1 ← ++ (byte*) render_bcd::screen_pos#3 [ ] ( main:12::render_score:67::render_bcd:78 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 ] main:12::render_score:67::render_bcd:81 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 ] main:12::render_score:67::render_bcd:84 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 ] main:12::render_score:67::render_bcd:87 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 ] main:12::render_score:67::render_bcd:90 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 render_score::screen#2 ] main:12::render_score:67::render_bcd:93 [ render_screen_show#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 score_bcd#14 level#16 render_screen_render#18 lines_bcd#15 level_bcd#17 ] ) always clobbers reg byte a +Statement [112] (byte~) render_next::$6 ← (byte) next_piece_idx#12 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ next_piece_idx#12 render_next::screen_next_area#10 render_next::$6 ] ( main:12::render_next:36 [ current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::piece_idx#2 play_spawn_current::$0 current_movedown_slow#1 game_over#52 next_piece_idx#12 render_next::screen_next_area#10 render_next::$6 ] main:12::render_next:65 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 next_piece_idx#12 render_next::screen_next_area#10 render_next::$6 ] ) always clobbers reg byte a +Statement [113] (byte) render_next::next_piece_char#0 ← *((const byte[]) PIECES_NEXT_CHARS#0 + (byte) next_piece_idx#12) [ render_next::screen_next_area#10 render_next::$6 render_next::next_piece_char#0 ] ( main:12::render_next:36 [ current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::piece_idx#2 play_spawn_current::$0 current_movedown_slow#1 game_over#52 render_next::screen_next_area#10 render_next::$6 render_next::next_piece_char#0 ] main:12::render_next:65 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_next::screen_next_area#10 render_next::$6 render_next::next_piece_char#0 ] ) always clobbers reg byte a +Statement [114] (byte*~) render_next::next_piece_gfx#9 ← (byte*)*((const word[]) PIECES#0 + (byte~) render_next::$6) [ render_next::screen_next_area#10 render_next::next_piece_char#0 render_next::next_piece_gfx#9 ] ( main:12::render_next:36 [ current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::piece_idx#2 play_spawn_current::$0 current_movedown_slow#1 game_over#52 render_next::screen_next_area#10 render_next::next_piece_char#0 render_next::next_piece_gfx#9 ] main:12::render_next:65 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_next::screen_next_area#10 render_next::next_piece_char#0 render_next::next_piece_gfx#9 ] ) always clobbers reg byte a +Statement [117] (byte) render_next::cell#0 ← *((byte*) render_next::next_piece_gfx#2) [ render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#2 render_next::screen_next_area#4 render_next::c#2 render_next::cell#0 ] ( main:12::render_next:36 [ current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::piece_idx#2 play_spawn_current::$0 current_movedown_slow#1 game_over#52 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#2 render_next::screen_next_area#4 render_next::c#2 render_next::cell#0 ] main:12::render_next:65 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#2 render_next::screen_next_area#4 render_next::c#2 render_next::cell#0 ] ) always clobbers reg byte a reg byte y +Statement [120] *((byte*) render_next::screen_next_area#4) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#4 render_next::c#2 ] ( main:12::render_next:36 [ current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::piece_idx#2 play_spawn_current::$0 current_movedown_slow#1 game_over#52 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#4 render_next::c#2 ] main:12::render_next:65 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#4 render_next::c#2 ] ) always clobbers reg byte a reg byte y +Statement [124] (byte*) render_next::screen_next_area#3 ← (byte*) render_next::screen_next_area#2 + (byte/signed byte/word/signed word/dword/signed dword) 36 [ render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#3 ] ( main:12::render_next:36 [ current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::piece_idx#2 play_spawn_current::$0 current_movedown_slow#1 game_over#52 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#3 ] main:12::render_next:65 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#3 ] ) always clobbers reg byte a +Statement [128] *((byte*) render_next::screen_next_area#4) ← (byte) render_next::next_piece_char#0 [ render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#4 render_next::c#2 ] ( main:12::render_next:36 [ current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::piece_idx#2 play_spawn_current::$0 current_movedown_slow#1 game_over#52 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#4 render_next::c#2 ] main:12::render_next:65 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_next::next_piece_char#0 render_next::l#7 render_next::next_piece_gfx#1 render_next::screen_next_area#4 render_next::c#2 ] ) always clobbers reg byte a reg byte y +Statement [130] (byte) render_moving::ypos2#0 ← (byte) current_ypos#12 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ render_screen_render#33 current_xpos#58 current_piece_gfx#63 current_piece_char#67 render_moving::ypos2#0 ] ( main:12::render_moving:34 [ current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::piece_idx#2 play_spawn_current::$0 current_movedown_slow#1 game_over#52 render_screen_render#33 current_xpos#58 current_piece_gfx#63 current_piece_char#67 render_moving::ypos2#0 ] main:12::render_moving:62 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_render#33 current_xpos#58 current_piece_gfx#63 current_piece_char#67 render_moving::ypos2#0 ] ) always clobbers reg byte a +Statement [132] if((byte) render_moving::ypos2#2>(byte/signed byte/word/signed word/dword/signed dword) 2) goto render_moving::@2 [ render_screen_render#33 current_xpos#58 current_piece_gfx#63 current_piece_char#67 render_moving::ypos2#2 render_moving::i#3 render_moving::l#4 ] ( main:12::render_moving:34 [ current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::piece_idx#2 play_spawn_current::$0 current_movedown_slow#1 game_over#52 render_screen_render#33 current_xpos#58 current_piece_gfx#63 current_piece_char#67 render_moving::ypos2#2 render_moving::i#3 render_moving::l#4 ] main:12::render_moving:62 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_render#33 current_xpos#58 current_piece_gfx#63 current_piece_char#67 render_moving::ypos2#2 render_moving::i#3 render_moving::l#4 ] ) always clobbers reg byte a +Statement [133] (byte) render_moving::i#1 ← (byte) render_moving::i#3 + (byte/signed byte/word/signed word/dword/signed dword) 4 [ render_screen_render#33 current_xpos#58 current_piece_gfx#63 current_piece_char#67 render_moving::ypos2#2 render_moving::l#4 render_moving::i#1 ] ( main:12::render_moving:34 [ current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::piece_idx#2 play_spawn_current::$0 current_movedown_slow#1 game_over#52 render_screen_render#33 current_xpos#58 current_piece_gfx#63 current_piece_char#67 render_moving::ypos2#2 render_moving::l#4 render_moving::i#1 ] main:12::render_moving:62 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_render#33 current_xpos#58 current_piece_gfx#63 current_piece_char#67 render_moving::ypos2#2 render_moving::l#4 render_moving::i#1 ] ) always clobbers reg byte a +Statement [139] (byte~) render_moving::$2 ← (byte) render_screen_render#33 + (byte) render_moving::ypos2#2 [ render_screen_render#33 current_xpos#58 current_piece_gfx#63 current_piece_char#67 render_moving::ypos2#2 render_moving::i#3 render_moving::l#4 render_moving::$2 ] ( main:12::render_moving:34 [ current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::piece_idx#2 play_spawn_current::$0 current_movedown_slow#1 game_over#52 render_screen_render#33 current_xpos#58 current_piece_gfx#63 current_piece_char#67 render_moving::ypos2#2 render_moving::i#3 render_moving::l#4 render_moving::$2 ] main:12::render_moving:62 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_render#33 current_xpos#58 current_piece_gfx#63 current_piece_char#67 render_moving::ypos2#2 render_moving::i#3 render_moving::l#4 render_moving::$2 ] ) always clobbers reg byte a +Statement [140] (byte*) render_moving::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_moving::$2) [ render_screen_render#33 current_xpos#58 current_piece_gfx#63 current_piece_char#67 render_moving::ypos2#2 render_moving::i#3 render_moving::l#4 render_moving::screen_line#0 ] ( main:12::render_moving:34 [ current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::piece_idx#2 play_spawn_current::$0 current_movedown_slow#1 game_over#52 render_screen_render#33 current_xpos#58 current_piece_gfx#63 current_piece_char#67 render_moving::ypos2#2 render_moving::i#3 render_moving::l#4 render_moving::screen_line#0 ] main:12::render_moving:62 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_render#33 current_xpos#58 current_piece_gfx#63 current_piece_char#67 render_moving::ypos2#2 render_moving::i#3 render_moving::l#4 render_moving::screen_line#0 ] ) always clobbers reg byte a +Statement [143] (byte) render_moving::current_cell#0 ← *((byte*) current_piece_gfx#63 + (byte) render_moving::i#4) [ render_screen_render#33 current_xpos#58 current_piece_gfx#63 current_piece_char#67 render_moving::ypos2#2 render_moving::l#4 render_moving::screen_line#0 render_moving::i#4 render_moving::xpos#2 render_moving::c#2 render_moving::current_cell#0 ] ( main:12::render_moving:34 [ current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::piece_idx#2 play_spawn_current::$0 current_movedown_slow#1 game_over#52 render_screen_render#33 current_xpos#58 current_piece_gfx#63 current_piece_char#67 render_moving::ypos2#2 render_moving::l#4 render_moving::screen_line#0 render_moving::i#4 render_moving::xpos#2 render_moving::c#2 render_moving::current_cell#0 ] main:12::render_moving:62 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_render#33 current_xpos#58 current_piece_gfx#63 current_piece_char#67 render_moving::ypos2#2 render_moving::l#4 render_moving::screen_line#0 render_moving::i#4 render_moving::xpos#2 render_moving::c#2 render_moving::current_cell#0 ] ) always clobbers reg byte a +Statement [146] *((byte*) render_moving::screen_line#0 + (byte) render_moving::xpos#2) ← (byte) current_piece_char#67 [ render_screen_render#33 current_xpos#58 current_piece_gfx#63 current_piece_char#67 render_moving::ypos2#2 render_moving::l#4 render_moving::i#2 render_moving::screen_line#0 render_moving::xpos#2 render_moving::c#2 ] ( main:12::render_moving:34 [ current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::piece_idx#2 play_spawn_current::$0 current_movedown_slow#1 game_over#52 render_screen_render#33 current_xpos#58 current_piece_gfx#63 current_piece_char#67 render_moving::ypos2#2 render_moving::l#4 render_moving::i#2 render_moving::screen_line#0 render_moving::xpos#2 render_moving::c#2 ] main:12::render_moving:62 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_render#33 current_xpos#58 current_piece_gfx#63 current_piece_char#67 render_moving::ypos2#2 render_moving::l#4 render_moving::i#2 render_moving::screen_line#0 render_moving::xpos#2 render_moving::c#2 ] ) always clobbers reg byte a +Statement [152] (byte~) render_playfield::$2 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ render_screen_render#22 render_playfield::l#2 render_playfield::i#3 render_playfield::$2 ] ( main:12::render_playfield:29 [ current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::piece_idx#2 play_spawn_current::$0 current_movedown_slow#1 game_over#52 render_screen_render#22 render_playfield::l#2 render_playfield::i#3 render_playfield::$2 ] main:12::render_playfield:56 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_render#22 render_playfield::l#2 render_playfield::i#3 render_playfield::$2 ] ) always clobbers reg byte a +Statement [153] (byte~) render_playfield::$3 ← (byte) render_screen_render#22 + (byte~) render_playfield::$2 [ render_screen_render#22 render_playfield::l#2 render_playfield::i#3 render_playfield::$3 ] ( main:12::render_playfield:29 [ current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::piece_idx#2 play_spawn_current::$0 current_movedown_slow#1 game_over#52 render_screen_render#22 render_playfield::l#2 render_playfield::i#3 render_playfield::$3 ] main:12::render_playfield:56 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_render#22 render_playfield::l#2 render_playfield::i#3 render_playfield::$3 ] ) always clobbers reg byte a +Statement [154] (byte*) render_playfield::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_playfield::$3) [ render_screen_render#22 render_playfield::l#2 render_playfield::i#3 render_playfield::screen_line#0 ] ( main:12::render_playfield:29 [ current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::piece_idx#2 play_spawn_current::$0 current_movedown_slow#1 game_over#52 render_screen_render#22 render_playfield::l#2 render_playfield::i#3 render_playfield::screen_line#0 ] main:12::render_playfield:56 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_render#22 render_playfield::l#2 render_playfield::i#3 render_playfield::screen_line#0 ] ) always clobbers reg byte a +Statement [156] *((byte*) render_playfield::screen_line#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2) [ render_screen_render#22 render_playfield::l#2 render_playfield::i#2 render_playfield::screen_line#2 render_playfield::c#2 ] ( main:12::render_playfield:29 [ current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::piece_idx#2 play_spawn_current::$0 current_movedown_slow#1 game_over#52 render_screen_render#22 render_playfield::l#2 render_playfield::i#2 render_playfield::screen_line#2 render_playfield::c#2 ] main:12::render_playfield:56 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_orientation#17 current_piece_gfx#17 current_xpos#18 current_ypos#18 game_over#15 next_piece_idx#16 keyboard_events_size#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 render_screen_render#22 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 [168] (byte) play_movement::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) play_movement::$0 [ current_movedown_slow#21 current_piece#15 current_piece_char#15 current_ypos#18 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_orientation#20 current_piece_gfx#19 current_xpos#21 ] ( main:12::play_movement:51 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_ypos#18 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_orientation#20 current_piece_gfx#19 current_xpos#21 ] ) always clobbers reg byte a +Statement [176] (byte) play_movement::render#2 ← (byte) play_movement::render#1 + (byte~) play_movement::$3 [ current_movedown_slow#21 current_piece#15 current_piece_char#15 current_ypos#18 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 current_orientation#20 current_piece_gfx#19 current_xpos#25 play_movement::render#2 ] ( main:12::play_movement:51 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_ypos#18 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 current_orientation#20 current_piece_gfx#19 current_xpos#25 play_movement::render#2 ] ) always clobbers reg byte a +Statement [181] (byte) play_movement::return#0 ← (byte) play_movement::render#2 + (byte~) play_movement::$4 [ current_movedown_slow#21 current_piece#15 current_piece_char#15 current_ypos#18 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::return#0 current_orientation#25 current_piece_gfx#20 current_xpos#25 ] ( main:12::play_movement:51 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece#15 current_piece_char#15 current_ypos#18 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::return#0 current_orientation#25 current_piece_gfx#20 current_xpos#25 ] ) always clobbers reg byte a +Statement [186] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#20 + (byte/signed byte/word/signed word/dword/signed dword) 16 [ current_piece#15 current_ypos#18 current_orientation#20 current_piece_gfx#19 current_xpos#25 play_move_rotate::$2 ] ( main:12::play_movement:51::play_move_rotate:178 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#15 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#18 current_orientation#20 current_piece_gfx#19 current_xpos#25 play_move_rotate::$2 ] ) always clobbers reg byte a +Statement [187] (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#15 current_ypos#18 current_orientation#20 current_piece_gfx#19 current_xpos#25 play_move_rotate::orientation#2 ] ( main:12::play_movement:51::play_move_rotate:178 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#15 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#18 current_orientation#20 current_piece_gfx#19 current_xpos#25 play_move_rotate::orientation#2 ] ) always clobbers reg byte a +Statement [192] (byte*~) current_piece#101 ← (byte*) current_piece#15 [ current_piece#15 current_ypos#18 current_orientation#20 current_piece_gfx#19 current_xpos#25 play_move_rotate::orientation#3 play_collision::xpos#3 play_collision::ypos#3 play_collision::orientation#3 current_piece#101 ] ( main:12::play_movement:51::play_move_rotate:178 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#15 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#18 current_orientation#20 current_piece_gfx#19 current_xpos#25 play_move_rotate::orientation#3 play_collision::xpos#3 play_collision::ypos#3 play_collision::orientation#3 current_piece#101 ] ) always clobbers reg byte a +Statement [198] (byte*) current_piece_gfx#6 ← (byte*) current_piece#15 + (byte) current_orientation#7 [ current_piece#15 current_ypos#18 current_xpos#25 current_orientation#7 current_piece_gfx#6 ] ( main:12::play_movement:51::play_move_rotate:178 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#15 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#18 current_xpos#25 current_orientation#7 current_piece_gfx#6 ] ) always clobbers reg byte a +Statement [199] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#20 - (byte/signed byte/word/signed word/dword/signed dword) 16 [ current_piece#15 current_ypos#18 current_orientation#20 current_piece_gfx#19 current_xpos#25 play_move_rotate::$4 ] ( main:12::play_movement:51::play_move_rotate:178 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#15 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#18 current_orientation#20 current_piece_gfx#19 current_xpos#25 play_move_rotate::$4 ] ) always clobbers reg byte a +Statement [200] (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#15 current_ypos#18 current_orientation#20 current_piece_gfx#19 current_xpos#25 play_move_rotate::orientation#1 ] ( main:12::play_movement:51::play_move_rotate:178 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#15 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#18 current_orientation#20 current_piece_gfx#19 current_xpos#25 play_move_rotate::orientation#1 ] ) always clobbers reg byte a +Statement [202] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#17 + (byte) play_collision::orientation#5 [ play_collision::ypos#5 play_collision::xpos#6 play_collision::piece_gfx#0 ] ( main:12::play_movement:51::play_move_rotate:178::play_collision:193 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#15 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#18 current_orientation#20 current_piece_gfx#19 current_xpos#25 play_move_rotate::orientation#3 play_collision::ypos#5 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:12::play_movement:51::play_move_leftright:173::play_collision:231 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#15 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#19 current_piece#15 current_ypos#18 current_orientation#20 current_xpos#21 play_collision::ypos#5 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:12::play_movement:51::play_move_leftright:173::play_collision:242 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#15 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#19 current_piece#15 current_ypos#18 current_orientation#20 current_xpos#21 play_collision::ypos#5 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:12::play_movement:51::play_move_down:165::play_collision:266 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_collision::ypos#5 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:12::play_spawn_current:25::play_collision:295 [ current_movedown_slow#1 current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#65 play_collision::ypos#5 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:12::play_spawn_current:27::play_collision:295 [ current_movedown_slow#1 current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#65 play_collision::ypos#5 play_collision::xpos#6 play_collision::piece_gfx#0 ] main:12::play_movement:51::play_move_down:165::play_spawn_current:279::play_collision:295 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#65 play_collision::ypos#5 play_collision::xpos#6 play_collision::piece_gfx#0 ] ) always clobbers reg byte a +Statement [203] (byte) play_collision::ypos2#0 ← (byte) play_collision::ypos#5 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#0 ] ( main:12::play_movement:51::play_move_rotate:178::play_collision:193 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#15 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#18 current_orientation#20 current_piece_gfx#19 current_xpos#25 play_move_rotate::orientation#3 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:12::play_movement:51::play_move_leftright:173::play_collision:231 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#15 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#19 current_piece#15 current_ypos#18 current_orientation#20 current_xpos#21 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:12::play_movement:51::play_move_leftright:173::play_collision:242 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#15 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#19 current_piece#15 current_ypos#18 current_orientation#20 current_xpos#21 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:12::play_movement:51::play_move_down:165::play_collision:266 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:12::play_spawn_current:25::play_collision:295 [ current_movedown_slow#1 current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:12::play_spawn_current:27::play_collision:295 [ current_movedown_slow#1 current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#0 ] main:12::play_movement:51::play_move_down:165::play_spawn_current:279::play_collision:295 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#0 ] ) always clobbers reg byte a +Statement [205] (byte*) play_collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_collision::ypos2#2) [ play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] ( main:12::play_movement:51::play_move_rotate:178::play_collision:193 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#15 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#18 current_orientation#20 current_piece_gfx#19 current_xpos#25 play_move_rotate::orientation#3 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:12::play_movement:51::play_move_leftright:173::play_collision:231 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#15 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#19 current_piece#15 current_ypos#18 current_orientation#20 current_xpos#21 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:12::play_movement:51::play_move_leftright:173::play_collision:242 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#15 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#19 current_piece#15 current_ypos#18 current_orientation#20 current_xpos#21 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:12::play_movement:51::play_move_down:165::play_collision:266 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:12::play_spawn_current:25::play_collision:295 [ current_movedown_slow#1 current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:12::play_spawn_current:27::play_collision:295 [ current_movedown_slow#1 current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] main:12::play_movement:51::play_move_down:165::play_spawn_current:279::play_collision:295 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::i#3 play_collision::l#6 play_collision::playfield_line#0 ] ) always clobbers reg byte a +Statement [209] if(*((byte*) play_collision::piece_gfx#0 + (byte) play_collision::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@3 [ play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ( main:12::play_movement:51::play_move_rotate:178::play_collision:193 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#15 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#18 current_orientation#20 current_piece_gfx#19 current_xpos#25 play_move_rotate::orientation#3 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_movement:51::play_move_leftright:173::play_collision:231 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#15 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#19 current_piece#15 current_ypos#18 current_orientation#20 current_xpos#21 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_movement:51::play_move_leftright:173::play_collision:242 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#15 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#19 current_piece#15 current_ypos#18 current_orientation#20 current_xpos#21 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_movement:51::play_move_down:165::play_collision:266 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_spawn_current:25::play_collision:295 [ current_movedown_slow#1 current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_spawn_current:27::play_collision:295 [ current_movedown_slow#1 current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_movement:51::play_move_down:165::play_spawn_current:279::play_collision:295 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ) always clobbers reg byte a +Statement [213] (byte~) play_collision::$7 ← (byte) play_collision::col#2 & (byte/word/signed word/dword/signed dword) 128 [ play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] ( main:12::play_movement:51::play_move_rotate:178::play_collision:193 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#15 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#18 current_orientation#20 current_piece_gfx#19 current_xpos#25 play_move_rotate::orientation#3 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_movement:51::play_move_leftright:173::play_collision:231 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#15 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#19 current_piece#15 current_ypos#18 current_orientation#20 current_xpos#21 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_movement:51::play_move_leftright:173::play_collision:242 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#15 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#19 current_piece#15 current_ypos#18 current_orientation#20 current_xpos#21 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_movement:51::play_move_down:165::play_collision:266 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_spawn_current:25::play_collision:295 [ current_movedown_slow#1 current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_spawn_current:27::play_collision:295 [ current_movedown_slow#1 current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] main:12::play_movement:51::play_move_down:165::play_spawn_current:279::play_collision:295 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 play_collision::$7 ] ) always clobbers reg byte a +Statement [216] if(*((byte*) play_collision::playfield_line#0 + (byte) play_collision::col#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@3 [ play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ( main:12::play_movement:51::play_move_rotate:178::play_collision:193 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#15 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::render#2 current_piece#15 current_ypos#18 current_orientation#20 current_piece_gfx#19 current_xpos#25 play_move_rotate::orientation#3 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_movement:51::play_move_leftright:173::play_collision:231 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#15 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#19 current_piece#15 current_ypos#18 current_orientation#20 current_xpos#21 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_movement:51::play_move_leftright:173::play_collision:242 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#15 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#19 current_piece#15 current_ypos#18 current_orientation#20 current_xpos#21 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_movement:51::play_move_down:165::play_collision:266 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_spawn_current:25::play_collision:295 [ current_movedown_slow#1 current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_spawn_current:27::play_collision:295 [ current_movedown_slow#1 current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] main:12::play_movement:51::play_move_down:165::play_spawn_current:279::play_collision:295 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#65 play_collision::xpos#6 play_collision::piece_gfx#0 play_collision::ypos2#2 play_collision::l#6 play_collision::playfield_line#0 play_collision::col#2 play_collision::c#2 play_collision::i#1 ] ) always clobbers reg byte a +Statement [230] (byte*~) current_piece#100 ← (byte*) current_piece#15 [ current_piece#15 current_ypos#18 current_orientation#20 current_xpos#21 current_piece#100 play_collision::orientation#2 play_collision::ypos#2 play_collision::xpos#2 ] ( main:12::play_movement:51::play_move_leftright:173 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#15 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#19 current_piece#15 current_ypos#18 current_orientation#20 current_xpos#21 current_piece#100 play_collision::orientation#2 play_collision::ypos#2 play_collision::xpos#2 ] ) always clobbers reg byte a +Statement [241] (byte*~) current_piece#99 ← (byte*) current_piece#15 [ current_piece#15 current_ypos#18 current_orientation#20 current_xpos#21 current_piece#99 play_collision::orientation#1 play_collision::ypos#1 play_collision::xpos#1 ] ( main:12::play_movement:51::play_move_leftright:173 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 current_movedown_slow#21 current_piece_char#15 game_over#15 next_piece_idx#16 current_movedown_counter#14 lines_bcd#15 score_bcd#14 level#16 level_bcd#17 play_movement::key_event#0 play_movement::render#1 current_piece_gfx#19 current_piece#15 current_ypos#18 current_orientation#20 current_xpos#21 current_piece#99 play_collision::orientation#1 play_collision::ypos#1 play_collision::xpos#1 ] ) always clobbers reg byte a +Statement [265] (byte*~) current_piece#98 ← (byte*) current_piece#10 [ current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 current_piece#98 play_collision::orientation#0 play_collision::ypos#0 play_collision::xpos#0 ] ( main:12::play_movement:51::play_move_down:165 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 current_piece#98 play_collision::orientation#0 play_collision::ypos#0 play_collision::xpos#0 ] ) always clobbers reg byte a +Statement [280] (byte*~) current_piece#103 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$0) [ current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::piece_idx#2 game_over#52 current_piece#103 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 ] ( main:12::play_movement:51::play_move_down:165 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::piece_idx#2 game_over#52 current_piece#103 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 ] ) always clobbers reg byte a +Statement [287] (byte~) play_spawn_current::$0 ← (byte) play_spawn_current::current_piece_idx#0 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ play_spawn_current::$0 game_over#65 play_spawn_current::current_piece_idx#0 ] ( main:12::play_spawn_current:25 [ current_movedown_slow#1 play_spawn_current::$0 game_over#65 play_spawn_current::current_piece_idx#0 ] main:12::play_spawn_current:27 [ current_movedown_slow#1 play_spawn_current::$0 game_over#65 play_spawn_current::current_piece_idx#0 ] main:12::play_movement:51::play_move_down:165::play_spawn_current:279 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 play_spawn_current::$0 game_over#65 play_spawn_current::current_piece_idx#0 ] ) always clobbers reg byte a +Statement [288] (byte) current_piece_char#4 ← *((const byte[]) PIECES_CHARS#0 + (byte) play_spawn_current::current_piece_idx#0) [ current_piece_char#4 play_spawn_current::$0 game_over#65 play_spawn_current::current_piece_idx#0 ] ( main:12::play_spawn_current:25 [ current_movedown_slow#1 current_piece_char#4 play_spawn_current::$0 game_over#65 play_spawn_current::current_piece_idx#0 ] main:12::play_spawn_current:27 [ current_movedown_slow#1 current_piece_char#4 play_spawn_current::$0 game_over#65 play_spawn_current::current_piece_idx#0 ] main:12::play_movement:51::play_move_down:165::play_spawn_current:279 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_piece_char#4 play_spawn_current::$0 game_over#65 play_spawn_current::current_piece_idx#0 ] ) always clobbers reg byte a +Statement [289] (byte*) current_piece_gfx#7 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$0) + (byte/signed byte/word/signed word/dword/signed dword) 0 [ current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#65 play_spawn_current::current_piece_idx#0 ] ( main:12::play_spawn_current:25 [ current_movedown_slow#1 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#65 play_spawn_current::current_piece_idx#0 ] main:12::play_spawn_current:27 [ current_movedown_slow#1 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#65 play_spawn_current::current_piece_idx#0 ] main:12::play_movement:51::play_move_down:165::play_spawn_current:279 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#65 play_spawn_current::current_piece_idx#0 ] ) always clobbers reg byte a +Statement [290] (byte) current_xpos#102 ← *((const byte[]) PIECES_START_X#0 + (byte) play_spawn_current::current_piece_idx#0) [ current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#65 play_spawn_current::current_piece_idx#0 ] ( main:12::play_spawn_current:25 [ current_movedown_slow#1 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#65 play_spawn_current::current_piece_idx#0 ] main:12::play_spawn_current:27 [ current_movedown_slow#1 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#65 play_spawn_current::current_piece_idx#0 ] main:12::play_movement:51::play_move_down:165::play_spawn_current:279 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#65 play_spawn_current::current_piece_idx#0 ] ) always clobbers reg byte a +Statement [291] (byte) current_ypos#5 ← *((const byte[]) PIECES_START_Y#0 + (byte) play_spawn_current::current_piece_idx#0) [ current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#65 ] ( main:12::play_spawn_current:25 [ current_movedown_slow#1 current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#65 ] main:12::play_spawn_current:27 [ current_movedown_slow#1 current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#65 ] main:12::play_movement:51::play_move_down:165::play_spawn_current:279 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#65 ] ) always clobbers reg byte a +Statement [294] (byte*~) current_piece#102 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$0) [ current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 current_piece#102 play_collision::ypos#4 play_collision::xpos#4 game_over#65 ] ( main:12::play_spawn_current:25 [ current_movedown_slow#1 current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 current_piece#102 play_collision::ypos#4 play_collision::xpos#4 game_over#65 ] main:12::play_spawn_current:27 [ current_movedown_slow#1 current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 current_piece#102 play_collision::ypos#4 play_collision::xpos#4 game_over#65 ] main:12::play_movement:51::play_move_down:165::play_spawn_current:279 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 current_piece#102 play_collision::ypos#4 play_collision::xpos#4 game_over#65 ] ) always clobbers reg byte a +Statement [307] (byte) play_spawn_current::piece_idx#1 ← (byte~) play_spawn_current::$6 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#52 play_spawn_current::piece_idx#1 ] ( main:12::play_spawn_current:25 [ current_movedown_slow#1 current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#52 play_spawn_current::piece_idx#1 ] main:12::play_spawn_current:27 [ current_movedown_slow#1 current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#52 play_spawn_current::piece_idx#1 ] main:12::play_movement:51::play_move_down:165::play_spawn_current:279 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 lines_bcd#17 score_bcd#16 level#18 current_movedown_slow#23 level_bcd#19 current_ypos#5 current_xpos#102 current_piece_gfx#7 current_piece_char#4 play_spawn_current::$0 game_over#52 play_spawn_current::piece_idx#1 ] ) always clobbers reg byte a +Statement [312] (byte~) play_update_score::$2 ← < (word) lines_bcd#19 [ current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::$2 ] ( main:12::play_movement:51::play_move_down:165::play_update_score:277 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::$2 ] ) always clobbers reg byte a +Statement [313] (byte) play_update_score::lines_before#0 ← (byte~) play_update_score::$2 & (byte/word/signed word/dword/signed dword) 240 [ current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 ] ( main:12::play_movement:51::play_move_down:165::play_update_score:277 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 ] ) always clobbers reg byte a +Statement [314] (byte~) play_update_score::$4 ← (byte) play_update_score::removed#0 << (byte/signed byte/word/signed word/dword/signed dword) 2 [ current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 play_update_score::$4 ] ( main:12::play_movement:51::play_move_down:165::play_update_score:277 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 play_update_score::$4 ] ) always clobbers reg byte a +Statement [315] (dword) play_update_score::add_bcd#0 ← *((const dword[5]) score_add_bcd#0 + (byte~) play_update_score::$4) [ current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 play_update_score::add_bcd#0 ] ( main:12::play_movement:51::play_move_down:165::play_update_score:277 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 current_movedown_slow#14 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_update_score::removed#0 play_update_score::lines_before#0 play_update_score::add_bcd#0 ] ) always clobbers reg byte a +Statement [317] (word) lines_bcd#30 ← (word) lines_bcd#19 + (byte) play_update_score::removed#0 [ current_movedown_slow#14 score_bcd#18 level#10 level_bcd#11 play_update_score::lines_before#0 play_update_score::add_bcd#0 lines_bcd#30 ] ( main:12::play_movement:51::play_move_down:165::play_update_score:277 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 current_movedown_slow#14 score_bcd#18 level#10 level_bcd#11 play_update_score::lines_before#0 play_update_score::add_bcd#0 lines_bcd#30 ] ) always clobbers reg byte a +Statement [318] (dword) score_bcd#30 ← (dword) score_bcd#18 + (dword) play_update_score::add_bcd#0 [ current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#30 score_bcd#30 ] ( main:12::play_movement:51::play_move_down:165::play_update_score:277 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#30 score_bcd#30 ] ) always clobbers reg byte a +Statement [320] (byte~) play_update_score::$5 ← < (word) lines_bcd#30 [ current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#30 score_bcd#30 play_update_score::$5 ] ( main:12::play_movement:51::play_move_down:165::play_update_score:277 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#30 score_bcd#30 play_update_score::$5 ] ) always clobbers reg byte a +Statement [321] (byte) play_update_score::lines_after#0 ← (byte~) play_update_score::$5 & (byte/word/signed word/dword/signed dword) 240 [ current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#30 score_bcd#30 play_update_score::lines_after#0 ] ( main:12::play_movement:51::play_move_down:165::play_update_score:277 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 current_movedown_slow#14 level#10 level_bcd#11 play_update_score::lines_before#0 lines_bcd#30 score_bcd#30 play_update_score::lines_after#0 ] ) always clobbers reg byte a +Statement [328] if((byte) level#20>(byte/signed byte/word/signed word/dword/signed dword) 29) goto play_increase_level::@2 [ level_bcd#11 level#20 ] ( main:12::play_movement:51::play_move_down:165::play_update_score:277::play_increase_level:324 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 lines_bcd#30 score_bcd#30 level_bcd#11 level#20 ] ) always clobbers reg byte a +Statement [329] (byte) current_movedown_slow#10 ← *((const byte[]) MOVEDOWN_SLOW_SPEEDS#0 + (byte) level#20) [ level_bcd#11 level#20 current_movedown_slow#10 ] ( main:12::play_movement:51::play_move_down:165::play_update_score:277::play_increase_level:324 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 lines_bcd#30 score_bcd#30 level_bcd#11 level#20 current_movedown_slow#10 ] ) always clobbers reg byte a +Statement [332] (byte~) play_increase_level::$1 ← (byte) level_bcd#21 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ level#20 current_movedown_slow#69 level_bcd#21 play_increase_level::$1 ] ( main:12::play_movement:51::play_move_down:165::play_update_score:277::play_increase_level:324 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 lines_bcd#30 score_bcd#30 level#20 current_movedown_slow#69 level_bcd#21 play_increase_level::$1 ] ) always clobbers reg byte a +Statement [334] (byte) level_bcd#8 ← (byte) level_bcd#21 + (byte/signed byte/word/signed word/dword/signed dword) 6 [ level#20 current_movedown_slow#69 level_bcd#8 ] ( main:12::play_movement:51::play_move_down:165::play_update_score:277::play_increase_level:324 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 lines_bcd#30 score_bcd#30 level#20 current_movedown_slow#69 level_bcd#8 ] ) always clobbers reg byte a +Statement [338] (byte) play_increase_level::b4#0 ← (byte) play_increase_level::b#2 << (byte/signed byte/word/signed word/dword/signed dword) 2 [ level#20 current_movedown_slow#69 level_bcd#64 play_increase_level::b#2 play_increase_level::b4#0 ] ( main:12::play_movement:51::play_move_down:165::play_update_score:277::play_increase_level:324 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 lines_bcd#30 score_bcd#30 level#20 current_movedown_slow#69 level_bcd#64 play_increase_level::b#2 play_increase_level::b4#0 ] ) always clobbers reg byte a +Statement [339] *((const dword[5]) score_add_bcd#0 + (byte) play_increase_level::b4#0) ← *((const dword[5]) score_add_bcd#0 + (byte) play_increase_level::b4#0) + *((const dword[]) SCORE_BASE_BCD#0 + (byte) play_increase_level::b4#0) [ level#20 current_movedown_slow#69 level_bcd#64 play_increase_level::b#2 ] ( main:12::play_movement:51::play_move_down:165::play_update_score:277::play_increase_level:324 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 game_over#10 next_piece_idx#10 lines_bcd#30 score_bcd#30 level#20 current_movedown_slow#69 level_bcd#64 play_increase_level::b#2 ] ) always clobbers reg byte a +Statement [356] (byte) play_remove_lines::w#2 ← (byte) play_remove_lines::w#1 + (const byte) PLAYFIELD_COLS#0 [ play_remove_lines::y#8 play_remove_lines::removed#11 play_remove_lines::r#1 play_remove_lines::w#2 ] ( main:12::play_movement:51::play_move_down:165::play_remove_lines:273 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 game_over#10 next_piece_idx#10 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_remove_lines::y#8 play_remove_lines::removed#11 play_remove_lines::r#1 play_remove_lines::w#2 ] ) always clobbers reg byte a +Statement [364] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::w#6) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ play_remove_lines::removed#7 play_remove_lines::w#6 ] ( main:12::play_movement:51::play_move_down:165::play_remove_lines:273 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 game_over#10 next_piece_idx#10 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 play_remove_lines::removed#7 play_remove_lines::w#6 ] ) always clobbers reg byte a +Statement [367] (byte) play_lock_current::ypos2#0 ← (byte) current_ypos#10 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ current_piece_char#21 current_piece_gfx#111 current_xpos#121 play_lock_current::ypos2#0 ] ( main:12::play_movement:51::play_move_down:165::play_lock_current:271 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 game_over#10 next_piece_idx#10 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 current_piece_char#21 current_piece_gfx#111 current_xpos#121 play_lock_current::ypos2#0 ] ) always clobbers reg byte a +Statement [369] (byte*) play_lock_current::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_lock_current::ypos2#2) [ current_piece_char#21 current_piece_gfx#111 current_xpos#121 play_lock_current::ypos2#2 play_lock_current::i#3 play_lock_current::l#6 play_lock_current::playfield_line#0 ] ( main:12::play_movement:51::play_move_down:165::play_lock_current:271 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 game_over#10 next_piece_idx#10 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 current_piece_char#21 current_piece_gfx#111 current_xpos#121 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 [373] if(*((byte*) current_piece_gfx#111 + (byte) play_lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_lock_current::@3 [ current_piece_char#21 current_piece_gfx#111 current_xpos#121 play_lock_current::ypos2#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::col#2 play_lock_current::c#2 play_lock_current::i#1 ] ( main:12::play_movement:51::play_move_down:165::play_lock_current:271 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 game_over#10 next_piece_idx#10 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 current_piece_char#21 current_piece_gfx#111 current_xpos#121 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 [374] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::col#2) ← (byte) current_piece_char#21 [ current_piece_char#21 current_piece_gfx#111 current_xpos#121 play_lock_current::ypos2#2 play_lock_current::l#6 play_lock_current::playfield_line#0 play_lock_current::col#2 play_lock_current::c#2 play_lock_current::i#1 ] ( main:12::play_movement:51::play_move_down:165::play_lock_current:271 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 game_over#10 next_piece_idx#10 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 current_piece_char#21 current_piece_gfx#111 current_xpos#121 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 [385] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte/signed byte/word/signed word/dword/signed dword) 3 [ keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] ( main:12::play_movement:51::play_move_down:165::keyboard_event_pressed:251 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 current_movedown_counter#12 play_move_down::movedown#10 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:12::keyboard_event_scan:43::keyboard_event_pressed:407 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:12::keyboard_event_scan:43::keyboard_event_pressed:413 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_modifiers#11 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:12::keyboard_event_scan:43::keyboard_event_pressed:419 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_modifiers#12 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] main:12::keyboard_event_scan:43::keyboard_event_pressed:425 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_modifiers#13 keyboard_event_pressed::keycode#5 keyboard_event_pressed::$0 ] ) always clobbers reg byte a +Statement [387] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte/signed byte/word/signed word/dword/signed dword) 7 [ keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] ( main:12::play_movement:51::play_move_down:165::keyboard_event_pressed:251 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 current_movedown_counter#12 play_move_down::movedown#10 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:12::keyboard_event_scan:43::keyboard_event_pressed:407 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:12::keyboard_event_scan:43::keyboard_event_pressed:413 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_modifiers#11 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:12::keyboard_event_scan:43::keyboard_event_pressed:419 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_modifiers#12 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] main:12::keyboard_event_scan:43::keyboard_event_pressed:425 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_modifiers#13 keyboard_event_pressed::row_bits#0 keyboard_event_pressed::$1 ] ) always clobbers reg byte a +Statement [388] (byte) keyboard_event_pressed::return#11 ← (byte) keyboard_event_pressed::row_bits#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte~) keyboard_event_pressed::$1) [ keyboard_event_pressed::return#11 ] ( main:12::play_movement:51::play_move_down:165::keyboard_event_pressed:251 [ render_screen_show#16 render_screen_render#18 keyboard_events_size#16 play_movement::key_event#0 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 current_movedown_counter#12 play_move_down::movedown#10 keyboard_event_pressed::return#11 ] main:12::keyboard_event_scan:43::keyboard_event_pressed:407 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_event_pressed::return#11 ] main:12::keyboard_event_scan:43::keyboard_event_pressed:413 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_modifiers#11 keyboard_event_pressed::return#11 ] main:12::keyboard_event_scan:43::keyboard_event_pressed:419 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_modifiers#12 keyboard_event_pressed::return#11 ] main:12::keyboard_event_scan:43::keyboard_event_pressed:425 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_modifiers#13 keyboard_event_pressed::return#11 ] ) always clobbers reg byte a +Statement [401] 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:43 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#29 keyboard_event_scan::row_scan#0 ] ) always clobbers reg byte a +Statement [402] (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:43 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_events_size#29 keyboard_event_scan::keycode#1 ] ) always clobbers reg byte a +Statement [417] (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:43 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_modifiers#3 ] ) always clobbers reg byte a +Statement [423] (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:43 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 keyboard_modifiers#4 ] ) always clobbers reg byte a +Statement [429] (byte) keyboard_modifiers#5 ← (byte) keyboard_modifiers#13 | (const byte) KEY_MODIFIER_COMMODORE#0 [ keyboard_events_size#13 ] ( main:12::keyboard_event_scan:43 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_events_size#13 ] ) always clobbers reg byte a +Statement [432] (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:43 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$3 ] ) always clobbers reg byte a +Statement [433] (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:43 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$4 ] ) always clobbers reg byte a +Statement [436] (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:43 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::event_type#0 ] ) always clobbers reg byte a +Statement [438] *((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:43 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 ] ) always clobbers reg byte a +Statement [444] *((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:43 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::keycode#15 keyboard_events_size#30 ] ) always clobbers reg byte a +Statement [445] (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:43 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::row_scan#0 keyboard_event_scan::col#2 keyboard_event_scan::keycode#10 keyboard_events_size#10 keyboard_event_scan::$11 ] ) always clobbers reg byte a +Statement [448] *((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:43::keyboard_matrix_read:398 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#29 ] ) always clobbers reg byte a +Statement [449] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) [ keyboard_matrix_read::return#0 ] ( main:12::keyboard_event_scan:43::keyboard_matrix_read:398 [ render_screen_show#16 render_screen_render#18 current_movedown_slow#14 current_piece#10 current_piece_char#21 current_orientation#13 current_piece_gfx#111 current_xpos#121 current_ypos#10 game_over#10 next_piece_idx#10 current_movedown_counter#16 lines_bcd#19 score_bcd#18 level#10 level_bcd#11 keyboard_event_scan::row#2 keyboard_event_scan::keycode#11 keyboard_events_size#29 keyboard_matrix_read::return#0 ] ) always clobbers reg byte a +Statement [460] (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 [461] *((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 [462] *((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 [463] (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 [464] (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 [467] *((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 [470] (byte) play_init::b4#0 ← (byte) play_init::b#2 << (byte/signed byte/word/signed word/dword/signed dword) 2 [ current_movedown_slow#1 play_init::b#2 play_init::b4#0 ] ( main:12::play_init:23 [ current_movedown_slow#1 play_init::b#2 play_init::b4#0 ] ) always clobbers reg byte a +Statement [471] *((const dword[5]) score_add_bcd#0 + (byte) play_init::b4#0) ← *((const dword[]) SCORE_BASE_BCD#0 + (byte) play_init::b4#0) [ current_movedown_slow#1 play_init::b#2 ] ( main:12::play_init:23 [ current_movedown_slow#1 play_init::b#2 ] ) always clobbers reg byte a +Statement [476] *((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 [478] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a +Statement [479] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a +Statement [480] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a +Statement [481] *((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 [482] *((const byte*) RASTER#0) ← (const byte) IRQ_RASTER_FIRST#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a +Statement [483] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a +Statement [484] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() [ ] ( main:12::sprites_irq_init:21 [ ] ) always clobbers reg byte a +Statement [487] *((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 [488] *((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 [489] *((const byte*) SPRITES_EXPAND_Y#0) ← *((const byte*) SPRITES_MC#0) [ ] ( main:12::sprites_init:19 [ ] ) always clobbers reg byte a +Statement [490] *((const byte*) SPRITES_EXPAND_X#0) ← *((const byte*) SPRITES_EXPAND_Y#0) [ ] ( main:12::sprites_init:19 [ ] ) always clobbers reg byte a +Statement [492] (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 [493] *((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 [494] *((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 [495] (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 [500] *((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 [502] *((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 [503] *((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 [504] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a +Statement [505] *((const byte*) BGCOL1#0) ← (const byte) BLACK#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a +Statement [506] *((const byte*) BGCOL2#0) ← (const byte) BLUE#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a +Statement [507] *((const byte*) BGCOL3#0) ← (const byte) CYAN#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a +Statement [508] *((const byte*) BGCOL4#0) ← (const byte) GREY#0 [ ] ( main:12::render_init:17 [ ] ) always clobbers reg byte a +Statement [513] (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 [514] *((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 [515] (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 [516] *((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 [517] (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 [518] (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 [525] *((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:509 [ 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:511 [ 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 [527] *((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:509 [ 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:511 [ 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 [532] *((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:509 [ 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:511 [ 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 [535] *((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:509 [ 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:511 [ 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 [541] *((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:509 [ 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:511 [ 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 [543] *((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:509 [ 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:511 [ 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 [550] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 [ ] ( main:12::sid_rnd_init:15 [ ] ) always clobbers reg byte a +Statement [551] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 [ ] ( main:12::sid_rnd_init:15 [ ] ) always clobbers reg byte a +Statement [561] if(*((const byte*) RASTER#0)<(byte) sprites_irq::raster_sprite_gfx_modify#0) goto sprites_irq::@1 [ render_screen_showing#0 irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#0 sprites_irq::raster_sprite_gfx_modify#0 ] ( [ render_screen_showing#0 irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#0 sprites_irq::raster_sprite_gfx_modify#0 ] ) always clobbers reg byte a +Statement [563] 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 [570] (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 [571] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 9) goto sprites_irq::@4 [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#1 ] ( [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 irq_cnt#1 ] ) always clobbers reg byte a +Statement [572] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto sprites_irq::@5 [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 ] ( [ irq_raster_next#0 irq_sprite_ypos#0 irq_sprite_ptr#0 ] ) always clobbers reg byte a +Statement [573] (byte) irq_raster_next#3 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 20 [ irq_sprite_ypos#0 irq_sprite_ptr#0 irq_raster_next#3 ] ( [ irq_sprite_ypos#0 irq_sprite_ptr#0 irq_raster_next#3 ] ) always clobbers reg byte a +Statement [574] (byte) irq_sprite_ypos#3 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 [ irq_sprite_ptr#0 irq_raster_next#3 ] ( [ irq_sprite_ptr#0 irq_raster_next#3 ] ) always clobbers reg byte a +Statement [575] (byte) irq_sprite_ptr#3 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 [ irq_raster_next#3 ] ( [ irq_raster_next#3 ] ) always clobbers reg byte a +Statement [577] *((const byte*) RASTER#0) ← (byte) irq_raster_next#4 [ ] ( [ ] ) always clobbers reg byte a +Statement [578] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 [ ] ( [ ] ) always clobbers reg byte a +Statement [579] return [ ] ( [ ] ) always clobbers reg byte a reg byte x reg byte y +Statement [580] (byte) irq_cnt#2 ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ irq_sprite_ypos#0 irq_sprite_ptr#0 ] ( [ irq_sprite_ypos#0 irq_sprite_ptr#0 ] ) always clobbers reg byte a +Statement [581] (byte) irq_raster_next#2 ← (const byte) IRQ_RASTER_FIRST#0 [ irq_sprite_ypos#0 irq_sprite_ptr#0 irq_raster_next#2 ] ( [ irq_sprite_ypos#0 irq_sprite_ptr#0 irq_raster_next#2 ] ) always clobbers reg byte a +Statement [582] (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 [583] (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 [584] (byte) irq_raster_next#1 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 [ irq_raster_next#1 ] ( [ irq_raster_next#1 ] ) always clobbers reg byte a +Statement [585] (byte) irq_sprite_ypos#1 ← (const byte) SPRITES_FIRST_YPOS#0 [ irq_raster_next#1 ] ( [ irq_raster_next#1 ] ) always clobbers reg byte a +Statement [587] (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:3 [ render_screen_render#18 render_screen_render#11 ] : zp ZP_BYTE:3 , reg byte x , Potential registers zp ZP_BYTE:4 [ current_movedown_counter#16 current_movedown_counter#14 current_movedown_counter#12 ] : zp ZP_BYTE:4 , reg byte x , 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 , @@ -16059,577 +17254,604 @@ 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#11 current_ypos#100 current_ypos#101 ] : zp ZP_BYTE:15 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:16 [ render_screen_render#30 render_screen_render#64 ] : zp ZP_BYTE:16 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:17 [ current_xpos#57 current_xpos#124 current_xpos#125 ] : zp ZP_BYTE:17 , reg byte x , reg byte y , -Potential registers zp ZP_WORD:18 [ current_piece_gfx#62 current_piece_gfx#114 current_piece_gfx#115 ] : zp ZP_WORD:18 , -Potential registers zp ZP_BYTE:20 [ current_piece_char#64 current_piece_char#102 current_piece_char#103 ] : zp ZP_BYTE:20 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:21 [ render_moving::ypos2#2 render_moving::ypos2#0 render_moving::ypos2#1 ] : zp ZP_BYTE:21 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:22 [ render_moving::l#4 render_moving::l#1 ] : zp ZP_BYTE:22 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:23 [ render_moving::i#4 render_moving::i#3 render_moving::i#8 render_moving::i#2 render_moving::i#1 ] : zp ZP_BYTE:23 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:24 [ render_moving::xpos#2 render_moving::xpos#0 render_moving::xpos#1 ] : zp ZP_BYTE:24 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:25 [ render_moving::c#2 render_moving::c#1 ] : zp ZP_BYTE:25 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:26 [ render_screen_render#21 render_screen_render#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_movement::return#2 play_movement::render#1 play_movement::return#0 ] : zp ZP_BYTE:32 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:33 [ play_move_rotate::return#2 ] : zp ZP_BYTE:33 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:34 [ play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] : zp ZP_BYTE:34 , reg byte x , reg byte y , -Potential registers zp ZP_WORD:35 [ current_piece#16 current_piece#90 current_piece#91 current_piece#92 current_piece#93 current_piece#94 ] : zp ZP_WORD:35 , -Potential registers zp ZP_BYTE:37 [ play_collision::orientation#5 play_collision::orientation#0 play_collision::orientation#1 play_collision::orientation#2 play_collision::orientation#3 ] : zp ZP_BYTE:37 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:38 [ play_collision::ypos#5 play_collision::ypos#0 play_collision::ypos#1 play_collision::ypos#2 play_collision::ypos#3 play_collision::ypos#4 ] : zp ZP_BYTE:38 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:39 [ play_collision::xpos#6 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 play_collision::xpos#4 ] : zp ZP_BYTE:39 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:40 [ play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 ] : zp ZP_BYTE:40 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:41 [ play_collision::l#6 play_collision::l#1 ] : zp ZP_BYTE:41 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:42 [ play_collision::i#2 play_collision::i#3 play_collision::i#11 play_collision::i#13 ] : zp ZP_BYTE:42 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:43 [ play_collision::col#2 play_collision::col#9 play_collision::col#1 ] : zp ZP_BYTE:43 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:44 [ play_collision::c#2 play_collision::c#1 ] : zp ZP_BYTE:44 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:45 [ play_collision::return#15 ] : zp ZP_BYTE:45 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:46 [ play_move_leftright::return#2 ] : zp ZP_BYTE:46 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:47 [ play_move_down::movedown#6 play_move_down::movedown#3 play_move_down::movedown#7 play_move_down::movedown#2 play_move_down::movedown#10 ] : zp ZP_BYTE:47 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:48 [ current_ypos#36 current_ypos#25 current_ypos#17 current_ypos#22 current_ypos#2 ] : zp ZP_BYTE:48 , reg byte x , -Potential registers zp ZP_WORD:49 [ lines_bcd#27 lines_bcd#17 lines_bcd#19 lines_bcd#15 lines_bcd#30 ] : zp ZP_WORD:49 , -Potential registers zp ZP_DWORD:51 [ score_bcd#27 score_bcd#16 score_bcd#18 score_bcd#14 score_bcd#30 ] : zp ZP_DWORD:51 , -Potential registers zp ZP_BYTE:55 [ level#31 level#18 level#10 level#16 level#20 ] : zp ZP_BYTE:55 , reg byte x , -Potential registers zp ZP_BYTE:56 [ current_movedown_slow#38 current_movedown_slow#23 current_movedown_slow#14 current_movedown_slow#21 current_movedown_slow#1 current_movedown_slow#69 current_movedown_slow#10 ] : zp ZP_BYTE:56 , reg byte x , -Potential registers zp ZP_BYTE:57 [ level_bcd#32 level_bcd#19 level_bcd#11 level_bcd#17 level_bcd#64 level_bcd#21 level_bcd#8 ] : zp ZP_BYTE:57 , reg byte x , -Potential registers zp ZP_WORD:58 [ current_piece#27 current_piece#95 current_piece#20 current_piece#14 current_piece#88 ] : zp ZP_WORD:58 , -Potential registers zp ZP_BYTE:60 [ current_piece_char#27 current_piece_char#19 current_piece_char#14 current_piece_char#16 ] : zp ZP_BYTE:60 , reg byte x , -Potential registers zp ZP_BYTE:61 [ current_orientation#36 current_orientation#12 current_orientation#16 current_orientation#19 current_orientation#24 current_orientation#7 ] : zp ZP_BYTE:61 , reg byte x , -Potential registers zp ZP_WORD:62 [ current_piece_gfx#33 current_piece_gfx#103 current_piece_gfx#16 current_piece_gfx#21 current_piece_gfx#18 current_piece_gfx#19 current_piece_gfx#6 ] : zp ZP_WORD:62 , -Potential registers zp ZP_BYTE:64 [ current_xpos#41 current_xpos#113 current_xpos#17 current_xpos#28 current_xpos#20 current_xpos#24 current_xpos#7 current_xpos#5 ] : zp ZP_BYTE:64 , reg byte x , -Potential registers zp ZP_BYTE:65 [ play_move_down::return#3 ] : zp ZP_BYTE:65 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:66 [ game_over#70 game_over#26 game_over#19 game_over#14 game_over#15 ] : zp ZP_BYTE:66 , reg byte x , -Potential registers zp ZP_BYTE:67 [ play_spawn_current::piece_idx#2 play_spawn_current::piece_idx#1 ] : zp ZP_BYTE:67 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:68 [ play_increase_level::b#2 play_increase_level::b#1 ] : zp ZP_BYTE:68 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:69 [ play_remove_lines::y#8 play_remove_lines::y#1 ] : zp ZP_BYTE:69 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:70 [ play_remove_lines::removed#11 play_remove_lines::removed#7 play_remove_lines::removed#1 ] : zp ZP_BYTE:70 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:71 [ play_remove_lines::r#2 play_remove_lines::r#3 play_remove_lines::r#1 ] : zp ZP_BYTE:71 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:72 [ play_remove_lines::x#2 play_remove_lines::x#1 ] : zp ZP_BYTE:72 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:73 [ play_remove_lines::full#4 play_remove_lines::full#2 ] : zp ZP_BYTE:73 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:74 [ play_remove_lines::w#6 play_remove_lines::w#4 play_remove_lines::w#12 play_remove_lines::w#11 play_remove_lines::w#1 play_remove_lines::w#2 play_remove_lines::w#3 ] : zp ZP_BYTE:74 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:75 [ play_lock_current::ypos2#2 play_lock_current::ypos2#0 play_lock_current::ypos2#1 ] : zp ZP_BYTE:75 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:76 [ play_lock_current::l#6 play_lock_current::l#1 ] : zp ZP_BYTE:76 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:77 [ play_lock_current::i#2 play_lock_current::i#3 play_lock_current::i#7 play_lock_current::i#9 ] : zp ZP_BYTE:77 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:78 [ play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 ] : zp ZP_BYTE:78 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:79 [ play_lock_current::c#2 play_lock_current::c#1 ] : zp ZP_BYTE:79 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:80 [ keyboard_event_pressed::keycode#5 ] : zp ZP_BYTE:80 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:81 [ keyboard_event_get::return#2 keyboard_event_get::return#1 ] : zp ZP_BYTE:81 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:82 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] : zp ZP_BYTE:82 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:83 [ keyboard_modifiers#13 keyboard_modifiers#4 keyboard_modifiers#12 keyboard_modifiers#3 keyboard_modifiers#11 ] : zp ZP_BYTE:83 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:84 [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] : zp ZP_BYTE:84 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:85 [ keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 keyboard_event_scan::keycode#15 ] : zp ZP_BYTE:85 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:86 [ keyboard_events_size#10 keyboard_events_size#29 keyboard_events_size#19 keyboard_events_size#16 keyboard_events_size#13 keyboard_events_size#4 keyboard_events_size#30 keyboard_events_size#2 keyboard_events_size#1 ] : zp ZP_BYTE:86 , reg byte x , -Potential registers zp ZP_BYTE:87 [ render_show::d018val#3 ] : zp ZP_BYTE:87 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:88 [ play_init::j#2 play_init::j#1 ] : zp ZP_BYTE:88 , reg byte x , reg byte y , -Potential registers zp ZP_WORD:89 [ play_init::pli#2 play_init::pli#1 ] : zp ZP_WORD:89 , -Potential registers zp ZP_BYTE:91 [ play_init::idx#2 play_init::idx#1 ] : zp ZP_BYTE:91 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:92 [ play_init::b#2 play_init::b#1 ] : zp ZP_BYTE:92 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:93 [ sprites_init::s#2 sprites_init::s#1 ] : zp ZP_BYTE:93 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:94 [ sprites_init::xpos#2 sprites_init::xpos#1 ] : zp ZP_BYTE:94 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:95 [ render_init::i#2 render_init::i#1 ] : zp ZP_BYTE:95 , reg byte x , reg byte y , -Potential registers zp ZP_WORD:96 [ render_init::li_1#2 render_init::li_1#1 ] : zp ZP_WORD:96 , -Potential registers zp ZP_WORD:98 [ render_init::li_2#2 render_init::li_2#1 ] : zp ZP_WORD:98 , -Potential registers zp ZP_BYTE:100 [ render_screen_original::y#6 render_screen_original::y#1 ] : zp ZP_BYTE:100 , reg byte x , -Potential registers zp ZP_WORD:101 [ render_screen_original::oscr#2 render_screen_original::oscr#4 render_screen_original::oscr#1 ] : zp ZP_WORD:101 , -Potential registers zp ZP_WORD:103 [ render_screen_original::ocols#2 render_screen_original::ocols#4 render_screen_original::ocols#1 ] : zp ZP_WORD:103 , -Potential registers zp ZP_WORD:105 [ render_screen_original::screen#7 render_screen_original::screen#6 render_screen_original::screen#5 render_screen_original::screen#8 render_screen_original::screen#9 render_screen_original::screen#10 render_screen_original::screen#2 render_screen_original::screen#3 ] : zp ZP_WORD:105 , -Potential registers zp ZP_WORD:107 [ render_screen_original::cols#6 render_screen_original::cols#5 render_screen_original::cols#4 render_screen_original::cols#7 render_screen_original::cols#3 render_screen_original::cols#1 render_screen_original::cols#2 ] : zp ZP_WORD:107 , -Potential registers zp ZP_BYTE:109 [ render_screen_original::x#6 render_screen_original::x#5 render_screen_original::x#4 render_screen_original::x#1 render_screen_original::x#2 render_screen_original::x#3 ] : zp ZP_BYTE:109 , reg byte x , -Potential registers zp ZP_BYTE:110 [ irq_raster_next#4 irq_raster_next#3 irq_raster_next#1 irq_raster_next#2 ] : zp ZP_BYTE:110 , -Potential registers zp ZP_BYTE:111 [ render_screen_showing#0 ] : zp ZP_BYTE:111 , -Potential registers zp ZP_BYTE:112 [ irq_raster_next#0 ] : zp ZP_BYTE:112 , -Potential registers zp ZP_BYTE:113 [ irq_sprite_ypos#0 ] : zp ZP_BYTE:113 , -Potential registers zp ZP_BYTE:114 [ irq_sprite_ptr#0 ] : zp ZP_BYTE:114 , -Potential registers zp ZP_BYTE:115 [ irq_cnt#0 ] : zp ZP_BYTE:115 , -Potential registers zp ZP_BYTE:116 [ keyboard_event_get::return#3 ] : zp ZP_BYTE:116 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:117 [ main::key_event#0 ] : zp ZP_BYTE:117 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:118 [ play_movement::key_event#0 ] : zp ZP_BYTE:118 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:119 [ play_movement::return#3 ] : zp ZP_BYTE:119 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:120 [ main::render#1 ] : zp ZP_BYTE:120 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:121 [ render_bcd::$3 ] : zp ZP_BYTE:121 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:122 [ render_bcd::$4 ] : zp ZP_BYTE:122 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:123 [ render_bcd::$5 ] : zp ZP_BYTE:123 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:124 [ render_bcd::$6 ] : zp ZP_BYTE:124 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_WORD:125 [ render_bcd::screen_pos#1 ] : zp ZP_WORD:125 , -Potential registers zp ZP_BYTE:127 [ render_moving::$2 ] : zp ZP_BYTE:127 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_WORD:128 [ render_moving::screen_line#0 ] : zp ZP_WORD:128 , -Potential registers zp ZP_BYTE:130 [ render_moving::current_cell#0 ] : zp ZP_BYTE:130 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:131 [ render_playfield::$2 ] : zp ZP_BYTE:131 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:132 [ render_playfield::$3 ] : zp ZP_BYTE:132 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:133 [ play_move_down::key_event#0 ] : zp ZP_BYTE:133 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:134 [ play_move_down::return#0 ] : zp ZP_BYTE:134 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:135 [ play_movement::$0 ] : zp ZP_BYTE:135 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:136 [ play_move_leftright::key_event#0 ] : zp ZP_BYTE:136 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:137 [ play_move_leftright::return#0 ] : zp ZP_BYTE:137 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:138 [ play_movement::$3 ] : zp ZP_BYTE:138 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:139 [ play_movement::render#2 ] : zp ZP_BYTE:139 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:140 [ play_move_rotate::key_event#0 ] : zp ZP_BYTE:140 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:141 [ play_move_rotate::return#0 ] : zp ZP_BYTE:141 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:142 [ play_movement::$4 ] : zp ZP_BYTE:142 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:143 [ play_move_rotate::$2 ] : zp ZP_BYTE:143 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:144 [ play_collision::return#14 ] : zp ZP_BYTE:144 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:145 [ play_move_rotate::$6 ] : zp ZP_BYTE:145 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:146 [ play_move_rotate::$4 ] : zp ZP_BYTE:146 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_WORD:147 [ play_collision::piece_gfx#0 ] : zp ZP_WORD:147 , -Potential registers zp ZP_WORD:149 [ play_collision::playfield_line#0 ] : zp ZP_WORD:149 , -Potential registers zp ZP_BYTE:151 [ play_collision::i#1 ] : zp ZP_BYTE:151 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:152 [ play_collision::$7 ] : zp ZP_BYTE:152 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:153 [ play_collision::return#13 ] : zp ZP_BYTE:153 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:154 [ play_move_leftright::$4 ] : zp ZP_BYTE:154 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:155 [ play_collision::return#1 ] : zp ZP_BYTE:155 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:156 [ play_move_leftright::$8 ] : zp ZP_BYTE:156 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:157 [ keyboard_event_pressed::return#12 ] : zp ZP_BYTE:157 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:158 [ play_move_down::$2 ] : zp ZP_BYTE:158 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:159 [ play_collision::return#0 ] : zp ZP_BYTE:159 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:160 [ play_move_down::$12 ] : zp ZP_BYTE:160 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:161 [ play_remove_lines::return#0 ] : zp ZP_BYTE:161 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:162 [ play_move_down::removed#0 ] : zp ZP_BYTE:162 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:163 [ play_update_score::removed#0 ] : zp ZP_BYTE:163 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:164 [ play_spawn_current::$3 ] : zp ZP_BYTE:164 , reg byte x , -Potential registers zp ZP_BYTE:165 [ play_collision::return#10 ] : zp ZP_BYTE:165 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:166 [ play_spawn_current::$5 ] : zp ZP_BYTE:166 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:167 [ sid_rnd::return#2 ] : zp ZP_BYTE:167 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:168 [ play_spawn_current::$1 ] : zp ZP_BYTE:168 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:169 [ sid_rnd::return#0 ] : zp ZP_BYTE:169 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:170 [ play_update_score::$2 ] : zp ZP_BYTE:170 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:171 [ play_update_score::lines_before#0 ] : zp ZP_BYTE:171 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:172 [ play_update_score::$4 ] : zp ZP_BYTE:172 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_DWORD:173 [ play_update_score::add_bcd#0 ] : zp ZP_DWORD:173 , -Potential registers zp ZP_BYTE:177 [ play_update_score::$5 ] : zp ZP_BYTE:177 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:178 [ play_update_score::lines_after#0 ] : zp ZP_BYTE:178 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:179 [ play_increase_level::$1 ] : zp ZP_BYTE:179 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:180 [ play_increase_level::b4#0 ] : zp ZP_BYTE:180 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:181 [ play_remove_lines::c#0 ] : zp ZP_BYTE:181 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_WORD:182 [ play_lock_current::playfield_line#0 ] : zp ZP_WORD:182 , -Potential registers zp ZP_BYTE:184 [ play_lock_current::i#1 ] : zp ZP_BYTE:184 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:185 [ keyboard_event_pressed::$0 ] : zp ZP_BYTE:185 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:186 [ keyboard_event_pressed::row_bits#0 ] : zp ZP_BYTE:186 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:187 [ keyboard_event_pressed::$1 ] : zp ZP_BYTE:187 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:188 [ keyboard_event_pressed::return#11 ] : zp ZP_BYTE:188 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:189 [ keyboard_matrix_read::rowid#0 ] : zp ZP_BYTE:189 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:190 [ keyboard_matrix_read::return#2 ] : zp ZP_BYTE:190 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:191 [ keyboard_event_scan::row_scan#0 ] : zp ZP_BYTE:191 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:192 [ keyboard_event_pressed::return#0 ] : zp ZP_BYTE:192 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:193 [ keyboard_event_scan::$14 ] : zp ZP_BYTE:193 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:194 [ keyboard_event_pressed::return#1 ] : zp ZP_BYTE:194 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:195 [ keyboard_event_scan::$18 ] : zp ZP_BYTE:195 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:196 [ keyboard_event_pressed::return#2 ] : zp ZP_BYTE:196 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:197 [ keyboard_event_scan::$22 ] : zp ZP_BYTE:197 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:198 [ keyboard_event_pressed::return#10 ] : zp ZP_BYTE:198 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:199 [ keyboard_event_scan::$26 ] : zp ZP_BYTE:199 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:200 [ keyboard_modifiers#5 ] : zp ZP_BYTE:200 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:201 [ keyboard_event_scan::$3 ] : zp ZP_BYTE:201 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:202 [ keyboard_event_scan::$4 ] : zp ZP_BYTE:202 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:203 [ keyboard_event_scan::event_type#0 ] : zp ZP_BYTE:203 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:204 [ keyboard_event_scan::$11 ] : zp ZP_BYTE:204 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:205 [ keyboard_matrix_read::return#0 ] : zp ZP_BYTE:205 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:206 [ render_screen_showing#1 ] : zp ZP_BYTE:206 , -Potential registers zp ZP_BYTE:207 [ play_init::$1 ] : zp ZP_BYTE:207 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:208 [ play_init::b4#0 ] : zp ZP_BYTE:208 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:209 [ sprites_init::s2#0 ] : zp ZP_BYTE:209 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:210 [ render_init::$13 ] : zp ZP_BYTE:210 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:211 [ render_init::$14 ] : zp ZP_BYTE:211 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:212 [ sprites_irq::ypos#0 ] : zp ZP_BYTE:212 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:213 [ sprites_irq::$0 ] : zp ZP_BYTE:213 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:214 [ sprites_irq::raster_sprite_gfx_modify#0 ] : zp ZP_BYTE:214 , -Potential registers zp ZP_BYTE:215 [ sprites_irq::ptr#0 ] : zp ZP_BYTE:215 , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:216 [ sprites_irq::ptr#3 ] : zp ZP_BYTE:216 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:217 [ sprites_irq::ptr#4 ] : zp ZP_BYTE:217 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:218 [ irq_cnt#1 ] : zp ZP_BYTE:218 , -Potential registers zp ZP_BYTE:219 [ irq_sprite_ypos#3 ] : zp ZP_BYTE:219 , -Potential registers zp ZP_BYTE:220 [ irq_sprite_ptr#3 ] : zp ZP_BYTE:220 , -Potential registers zp ZP_BYTE:221 [ irq_cnt#2 ] : zp ZP_BYTE:221 , -Potential registers zp ZP_BYTE:222 [ irq_sprite_ypos#2 ] : zp ZP_BYTE:222 , -Potential registers zp ZP_BYTE:223 [ irq_sprite_ptr#2 ] : zp ZP_BYTE:223 , -Potential registers zp ZP_BYTE:224 [ irq_sprite_ypos#1 ] : zp ZP_BYTE:224 , -Potential registers zp ZP_BYTE:225 [ irq_sprite_ptr#1 ] : zp ZP_BYTE:225 , -Potential registers zp ZP_BYTE:226 [ sprites_irq::ptr#1 ] : zp ZP_BYTE:226 , reg byte a , reg byte x , reg byte y , -Potential registers zp ZP_BYTE:227 [ sprites_irq::ptr#2 ] : zp ZP_BYTE:227 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:15 [ render_screen_render#15 render_screen_render#68 ] : zp ZP_BYTE:15 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:16 [ next_piece_idx#12 next_piece_idx#84 next_piece_idx#85 ] : zp ZP_BYTE:16 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:17 [ render_next::l#7 render_next::l#1 ] : zp ZP_BYTE:17 , reg byte x , +Potential registers zp ZP_WORD:18 [ render_next::next_piece_gfx#2 render_next::next_piece_gfx#3 render_next::next_piece_gfx#1 render_next::next_piece_gfx#9 ] : zp ZP_WORD:18 , +Potential registers zp ZP_WORD:20 [ render_next::screen_next_area#4 render_next::screen_next_area#9 render_next::screen_next_area#3 render_next::screen_next_area#10 render_next::screen_next_area#2 ] : zp ZP_WORD:20 , +Potential registers zp ZP_BYTE:22 [ render_next::c#2 render_next::c#1 ] : zp ZP_BYTE:22 , reg byte x , +Potential registers zp ZP_BYTE:23 [ current_ypos#12 current_ypos#108 current_ypos#109 ] : zp ZP_BYTE:23 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:24 [ render_screen_render#33 render_screen_render#69 ] : zp ZP_BYTE:24 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:25 [ current_xpos#58 current_xpos#132 current_xpos#133 ] : zp ZP_BYTE:25 , reg byte x , reg byte y , +Potential registers zp ZP_WORD:26 [ current_piece_gfx#63 current_piece_gfx#122 current_piece_gfx#123 ] : zp ZP_WORD:26 , +Potential registers zp ZP_BYTE:28 [ current_piece_char#67 current_piece_char#110 current_piece_char#111 ] : zp ZP_BYTE:28 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:29 [ render_moving::ypos2#2 render_moving::ypos2#0 render_moving::ypos2#1 ] : zp ZP_BYTE:29 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:30 [ render_moving::l#4 render_moving::l#1 ] : zp ZP_BYTE:30 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:31 [ render_moving::i#4 render_moving::i#3 render_moving::i#8 render_moving::i#2 render_moving::i#1 ] : zp ZP_BYTE:31 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:32 [ render_moving::xpos#2 render_moving::xpos#0 render_moving::xpos#1 ] : zp ZP_BYTE:32 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:33 [ render_moving::c#2 render_moving::c#1 ] : zp ZP_BYTE:33 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:34 [ render_screen_render#22 render_screen_render#70 ] : zp ZP_BYTE:34 , reg byte x , +Potential registers zp ZP_BYTE:35 [ render_playfield::l#2 render_playfield::l#1 ] : zp ZP_BYTE:35 , reg byte x , +Potential registers zp ZP_BYTE:36 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] : zp ZP_BYTE:36 , reg byte x , +Potential registers zp ZP_WORD:37 [ render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 ] : zp ZP_WORD:37 , +Potential registers zp ZP_BYTE:39 [ render_playfield::c#2 render_playfield::c#1 ] : zp ZP_BYTE:39 , reg byte x , +Potential registers zp ZP_BYTE:40 [ play_movement::return#2 play_movement::render#1 play_movement::return#0 ] : zp ZP_BYTE:40 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:41 [ play_move_rotate::return#2 ] : zp ZP_BYTE:41 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:42 [ play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] : zp ZP_BYTE:42 , reg byte x , reg byte y , +Potential registers zp ZP_WORD:43 [ current_piece#17 current_piece#98 current_piece#99 current_piece#100 current_piece#101 current_piece#102 ] : zp ZP_WORD:43 , +Potential registers zp ZP_BYTE:45 [ play_collision::orientation#5 play_collision::orientation#0 play_collision::orientation#1 play_collision::orientation#2 play_collision::orientation#3 ] : zp ZP_BYTE:45 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:46 [ play_collision::ypos#5 play_collision::ypos#0 play_collision::ypos#1 play_collision::ypos#2 play_collision::ypos#3 play_collision::ypos#4 ] : zp ZP_BYTE:46 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:47 [ play_collision::xpos#6 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 play_collision::xpos#4 ] : zp ZP_BYTE:47 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:48 [ play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 ] : zp ZP_BYTE:48 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:49 [ play_collision::l#6 play_collision::l#1 ] : zp ZP_BYTE:49 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:50 [ play_collision::i#2 play_collision::i#3 play_collision::i#11 play_collision::i#13 ] : zp ZP_BYTE:50 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:51 [ play_collision::col#2 play_collision::col#9 play_collision::col#1 ] : zp ZP_BYTE:51 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:52 [ play_collision::c#2 play_collision::c#1 ] : zp ZP_BYTE:52 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:53 [ play_collision::return#15 ] : zp ZP_BYTE:53 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:54 [ play_move_leftright::return#2 ] : zp ZP_BYTE:54 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:55 [ 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:55 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:56 [ current_ypos#38 current_ypos#10 current_ypos#18 current_ypos#5 current_ypos#2 ] : zp ZP_BYTE:56 , reg byte x , +Potential registers zp ZP_WORD:57 [ lines_bcd#27 lines_bcd#17 lines_bcd#19 lines_bcd#15 lines_bcd#30 ] : zp ZP_WORD:57 , +Potential registers zp ZP_DWORD:59 [ score_bcd#27 score_bcd#16 score_bcd#18 score_bcd#14 score_bcd#30 ] : zp ZP_DWORD:59 , +Potential registers zp ZP_BYTE:63 [ level#31 level#18 level#10 level#16 level#20 ] : zp ZP_BYTE:63 , reg byte x , +Potential registers zp ZP_BYTE:64 [ current_movedown_slow#38 current_movedown_slow#23 current_movedown_slow#14 current_movedown_slow#21 current_movedown_slow#1 current_movedown_slow#69 current_movedown_slow#10 ] : zp ZP_BYTE:64 , reg byte x , +Potential registers zp ZP_BYTE:65 [ level_bcd#32 level_bcd#19 level_bcd#11 level_bcd#17 level_bcd#64 level_bcd#21 level_bcd#8 ] : zp ZP_BYTE:65 , reg byte x , +Potential registers zp ZP_WORD:66 [ current_piece#29 current_piece#103 current_piece#10 current_piece#15 current_piece#96 ] : zp ZP_WORD:66 , +Potential registers zp ZP_BYTE:68 [ current_piece_char#29 current_piece_char#21 current_piece_char#15 current_piece_char#4 ] : zp ZP_BYTE:68 , reg byte x , +Potential registers zp ZP_BYTE:69 [ current_orientation#38 current_orientation#13 current_orientation#17 current_orientation#20 current_orientation#25 current_orientation#7 ] : zp ZP_BYTE:69 , reg byte x , +Potential registers zp ZP_WORD:70 [ current_piece_gfx#35 current_piece_gfx#111 current_piece_gfx#17 current_piece_gfx#7 current_piece_gfx#19 current_piece_gfx#20 current_piece_gfx#6 ] : zp ZP_WORD:70 , +Potential registers zp ZP_BYTE:72 [ current_xpos#43 current_xpos#121 current_xpos#18 current_xpos#102 current_xpos#21 current_xpos#25 current_xpos#7 current_xpos#5 ] : zp ZP_BYTE:72 , reg byte x , +Potential registers zp ZP_BYTE:73 [ play_move_down::return#3 ] : zp ZP_BYTE:73 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:74 [ next_piece_idx#17 next_piece_idx#31 next_piece_idx#10 next_piece_idx#16 play_spawn_current::piece_idx#2 play_spawn_current::piece_idx#1 ] : zp ZP_BYTE:74 , reg byte x , +Potential registers zp ZP_BYTE:75 [ game_over#65 game_over#28 game_over#10 game_over#15 game_over#52 ] : zp ZP_BYTE:75 , reg byte x , +Potential registers zp ZP_BYTE:76 [ play_increase_level::b#2 play_increase_level::b#1 ] : zp ZP_BYTE:76 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:77 [ play_remove_lines::y#8 play_remove_lines::y#1 ] : zp ZP_BYTE:77 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:78 [ play_remove_lines::removed#11 play_remove_lines::removed#7 play_remove_lines::removed#1 ] : zp ZP_BYTE:78 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:79 [ play_remove_lines::r#2 play_remove_lines::r#3 play_remove_lines::r#1 ] : zp ZP_BYTE:79 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:80 [ play_remove_lines::x#2 play_remove_lines::x#1 ] : zp ZP_BYTE:80 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:81 [ play_remove_lines::full#4 play_remove_lines::full#2 ] : zp ZP_BYTE:81 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:82 [ 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:82 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:83 [ play_lock_current::ypos2#2 play_lock_current::ypos2#0 play_lock_current::ypos2#1 ] : zp ZP_BYTE:83 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:84 [ play_lock_current::l#6 play_lock_current::l#1 ] : zp ZP_BYTE:84 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:85 [ play_lock_current::i#2 play_lock_current::i#3 play_lock_current::i#7 play_lock_current::i#9 ] : zp ZP_BYTE:85 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:86 [ play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 ] : zp ZP_BYTE:86 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:87 [ play_lock_current::c#2 play_lock_current::c#1 ] : zp ZP_BYTE:87 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:88 [ keyboard_event_pressed::keycode#5 ] : zp ZP_BYTE:88 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:89 [ keyboard_event_get::return#2 keyboard_event_get::return#1 ] : zp ZP_BYTE:89 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:90 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] : zp ZP_BYTE:90 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:91 [ keyboard_modifiers#13 keyboard_modifiers#4 keyboard_modifiers#12 keyboard_modifiers#3 keyboard_modifiers#11 ] : zp ZP_BYTE:91 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:92 [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] : zp ZP_BYTE:92 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:93 [ 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:93 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:94 [ 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:94 , reg byte x , +Potential registers zp ZP_BYTE:95 [ render_show::d018val#3 ] : zp ZP_BYTE:95 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:96 [ play_init::j#2 play_init::j#1 ] : zp ZP_BYTE:96 , reg byte x , reg byte y , +Potential registers zp ZP_WORD:97 [ play_init::pli#2 play_init::pli#1 ] : zp ZP_WORD:97 , +Potential registers zp ZP_BYTE:99 [ play_init::idx#2 play_init::idx#1 ] : zp ZP_BYTE:99 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:100 [ play_init::b#2 play_init::b#1 ] : zp ZP_BYTE:100 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:101 [ sprites_init::s#2 sprites_init::s#1 ] : zp ZP_BYTE:101 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:102 [ sprites_init::xpos#2 sprites_init::xpos#1 ] : zp ZP_BYTE:102 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:103 [ render_init::i#2 render_init::i#1 ] : zp ZP_BYTE:103 , reg byte x , reg byte y , +Potential registers zp ZP_WORD:104 [ render_init::li_1#2 render_init::li_1#1 ] : zp ZP_WORD:104 , +Potential registers zp ZP_WORD:106 [ render_init::li_2#2 render_init::li_2#1 ] : zp ZP_WORD:106 , +Potential registers zp ZP_BYTE:108 [ render_screen_original::y#6 render_screen_original::y#1 ] : zp ZP_BYTE:108 , reg byte x , +Potential registers zp ZP_WORD:109 [ render_screen_original::oscr#2 render_screen_original::oscr#4 render_screen_original::oscr#1 ] : zp ZP_WORD:109 , +Potential registers zp ZP_WORD:111 [ render_screen_original::ocols#2 render_screen_original::ocols#4 render_screen_original::ocols#1 ] : zp ZP_WORD:111 , +Potential registers zp ZP_WORD:113 [ 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:113 , +Potential registers zp ZP_WORD:115 [ 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:115 , +Potential registers zp ZP_BYTE:117 [ 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:117 , reg byte x , +Potential registers zp ZP_BYTE:118 [ irq_raster_next#4 irq_raster_next#3 irq_raster_next#1 irq_raster_next#2 ] : zp ZP_BYTE:118 , +Potential registers zp ZP_BYTE:119 [ render_screen_showing#0 ] : zp ZP_BYTE:119 , +Potential registers zp ZP_BYTE:120 [ irq_raster_next#0 ] : zp ZP_BYTE:120 , +Potential registers zp ZP_BYTE:121 [ irq_sprite_ypos#0 ] : zp ZP_BYTE:121 , +Potential registers zp ZP_BYTE:122 [ irq_sprite_ptr#0 ] : zp ZP_BYTE:122 , +Potential registers zp ZP_BYTE:123 [ irq_cnt#0 ] : zp ZP_BYTE:123 , +Potential registers zp ZP_BYTE:124 [ keyboard_event_get::return#3 ] : zp ZP_BYTE:124 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:125 [ main::key_event#0 ] : zp ZP_BYTE:125 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:126 [ play_movement::key_event#0 ] : zp ZP_BYTE:126 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:127 [ play_movement::return#3 ] : zp ZP_BYTE:127 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:128 [ main::render#1 ] : zp ZP_BYTE:128 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:129 [ render_bcd::$3 ] : zp ZP_BYTE:129 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:130 [ render_bcd::$4 ] : zp ZP_BYTE:130 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:131 [ render_bcd::$5 ] : zp ZP_BYTE:131 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:132 [ render_bcd::$6 ] : zp ZP_BYTE:132 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_WORD:133 [ render_bcd::screen_pos#1 ] : zp ZP_WORD:133 , +Potential registers zp ZP_BYTE:135 [ render_next::$6 ] : zp ZP_BYTE:135 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:136 [ render_next::next_piece_char#0 ] : zp ZP_BYTE:136 , reg byte x , +Potential registers zp ZP_BYTE:137 [ render_next::cell#0 ] : zp ZP_BYTE:137 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:138 [ render_moving::$2 ] : zp ZP_BYTE:138 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_WORD:139 [ render_moving::screen_line#0 ] : zp ZP_WORD:139 , +Potential registers zp ZP_BYTE:141 [ render_moving::current_cell#0 ] : zp ZP_BYTE:141 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:142 [ render_playfield::$2 ] : zp ZP_BYTE:142 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:143 [ render_playfield::$3 ] : zp ZP_BYTE:143 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:144 [ play_move_down::key_event#0 ] : zp ZP_BYTE:144 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:145 [ play_move_down::return#0 ] : zp ZP_BYTE:145 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:146 [ play_movement::$0 ] : zp ZP_BYTE:146 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:147 [ play_move_leftright::key_event#0 ] : zp ZP_BYTE:147 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:148 [ play_move_leftright::return#0 ] : zp ZP_BYTE:148 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:149 [ play_movement::$3 ] : zp ZP_BYTE:149 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:150 [ play_movement::render#2 ] : zp ZP_BYTE:150 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:151 [ play_move_rotate::key_event#0 ] : zp ZP_BYTE:151 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:152 [ play_move_rotate::return#0 ] : zp ZP_BYTE:152 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:153 [ play_movement::$4 ] : zp ZP_BYTE:153 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:154 [ play_move_rotate::$2 ] : zp ZP_BYTE:154 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:155 [ play_collision::return#14 ] : zp ZP_BYTE:155 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:156 [ play_move_rotate::$6 ] : zp ZP_BYTE:156 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:157 [ play_move_rotate::$4 ] : zp ZP_BYTE:157 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_WORD:158 [ play_collision::piece_gfx#0 ] : zp ZP_WORD:158 , +Potential registers zp ZP_WORD:160 [ play_collision::playfield_line#0 ] : zp ZP_WORD:160 , +Potential registers zp ZP_BYTE:162 [ play_collision::i#1 ] : zp ZP_BYTE:162 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:163 [ play_collision::$7 ] : zp ZP_BYTE:163 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:164 [ play_collision::return#13 ] : zp ZP_BYTE:164 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:165 [ play_move_leftright::$4 ] : zp ZP_BYTE:165 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:166 [ play_collision::return#1 ] : zp ZP_BYTE:166 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:167 [ play_move_leftright::$8 ] : zp ZP_BYTE:167 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:168 [ keyboard_event_pressed::return#12 ] : zp ZP_BYTE:168 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:169 [ play_move_down::$2 ] : zp ZP_BYTE:169 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:170 [ play_collision::return#0 ] : zp ZP_BYTE:170 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:171 [ play_move_down::$12 ] : zp ZP_BYTE:171 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:172 [ play_remove_lines::return#0 ] : zp ZP_BYTE:172 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:173 [ play_move_down::removed#0 ] : zp ZP_BYTE:173 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:174 [ play_update_score::removed#0 ] : zp ZP_BYTE:174 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:175 [ play_spawn_current::current_piece_idx#0 ] : zp ZP_BYTE:175 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:176 [ play_spawn_current::$0 ] : zp ZP_BYTE:176 , reg byte x , +Potential registers zp ZP_BYTE:177 [ play_collision::return#10 ] : zp ZP_BYTE:177 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:178 [ play_spawn_current::$2 ] : zp ZP_BYTE:178 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:179 [ sid_rnd::return#2 ] : zp ZP_BYTE:179 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:180 [ play_spawn_current::$6 ] : zp ZP_BYTE:180 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:181 [ sid_rnd::return#0 ] : zp ZP_BYTE:181 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:182 [ play_update_score::$2 ] : zp ZP_BYTE:182 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:183 [ play_update_score::lines_before#0 ] : zp ZP_BYTE:183 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:184 [ play_update_score::$4 ] : zp ZP_BYTE:184 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_DWORD:185 [ play_update_score::add_bcd#0 ] : zp ZP_DWORD:185 , +Potential registers zp ZP_BYTE:189 [ play_update_score::$5 ] : zp ZP_BYTE:189 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:190 [ play_update_score::lines_after#0 ] : zp ZP_BYTE:190 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:191 [ play_increase_level::$1 ] : zp ZP_BYTE:191 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:192 [ play_increase_level::b4#0 ] : zp ZP_BYTE:192 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:193 [ play_remove_lines::c#0 ] : zp ZP_BYTE:193 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_WORD:194 [ play_lock_current::playfield_line#0 ] : zp ZP_WORD:194 , +Potential registers zp ZP_BYTE:196 [ play_lock_current::i#1 ] : zp ZP_BYTE:196 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:197 [ keyboard_event_pressed::$0 ] : zp ZP_BYTE:197 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:198 [ keyboard_event_pressed::row_bits#0 ] : zp ZP_BYTE:198 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:199 [ keyboard_event_pressed::$1 ] : zp ZP_BYTE:199 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:200 [ keyboard_event_pressed::return#11 ] : zp ZP_BYTE:200 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:201 [ keyboard_matrix_read::rowid#0 ] : zp ZP_BYTE:201 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:202 [ keyboard_matrix_read::return#2 ] : zp ZP_BYTE:202 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:203 [ keyboard_event_scan::row_scan#0 ] : zp ZP_BYTE:203 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:204 [ keyboard_event_pressed::return#0 ] : zp ZP_BYTE:204 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:205 [ keyboard_event_scan::$14 ] : zp ZP_BYTE:205 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:206 [ keyboard_event_pressed::return#1 ] : zp ZP_BYTE:206 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:207 [ keyboard_event_scan::$18 ] : zp ZP_BYTE:207 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:208 [ keyboard_event_pressed::return#2 ] : zp ZP_BYTE:208 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:209 [ keyboard_event_scan::$22 ] : zp ZP_BYTE:209 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:210 [ keyboard_event_pressed::return#10 ] : zp ZP_BYTE:210 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:211 [ keyboard_event_scan::$26 ] : zp ZP_BYTE:211 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:212 [ keyboard_modifiers#5 ] : zp ZP_BYTE:212 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:213 [ keyboard_event_scan::$3 ] : zp ZP_BYTE:213 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:214 [ keyboard_event_scan::$4 ] : zp ZP_BYTE:214 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:215 [ keyboard_event_scan::event_type#0 ] : zp ZP_BYTE:215 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:216 [ keyboard_event_scan::$11 ] : zp ZP_BYTE:216 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:217 [ keyboard_matrix_read::return#0 ] : zp ZP_BYTE:217 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:218 [ render_screen_showing#1 ] : zp ZP_BYTE:218 , +Potential registers zp ZP_BYTE:219 [ play_init::$1 ] : zp ZP_BYTE:219 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:220 [ play_init::b4#0 ] : zp ZP_BYTE:220 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:221 [ sprites_init::s2#0 ] : zp ZP_BYTE:221 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:222 [ render_init::$13 ] : zp ZP_BYTE:222 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:223 [ render_init::$14 ] : zp ZP_BYTE:223 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:224 [ sprites_irq::ypos#0 ] : zp ZP_BYTE:224 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:225 [ sprites_irq::$0 ] : zp ZP_BYTE:225 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:226 [ sprites_irq::raster_sprite_gfx_modify#0 ] : zp ZP_BYTE:226 , +Potential registers zp ZP_BYTE:227 [ sprites_irq::ptr#0 ] : zp ZP_BYTE:227 , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:228 [ sprites_irq::ptr#3 ] : zp ZP_BYTE:228 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:229 [ sprites_irq::ptr#4 ] : zp ZP_BYTE:229 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:230 [ irq_cnt#1 ] : zp ZP_BYTE:230 , +Potential registers zp ZP_BYTE:231 [ irq_sprite_ypos#3 ] : zp ZP_BYTE:231 , +Potential registers zp ZP_BYTE:232 [ irq_sprite_ptr#3 ] : zp ZP_BYTE:232 , +Potential registers zp ZP_BYTE:233 [ irq_cnt#2 ] : zp ZP_BYTE:233 , +Potential registers zp ZP_BYTE:234 [ irq_sprite_ypos#2 ] : zp ZP_BYTE:234 , +Potential registers zp ZP_BYTE:235 [ irq_sprite_ptr#2 ] : zp ZP_BYTE:235 , +Potential registers zp ZP_BYTE:236 [ irq_sprite_ypos#1 ] : zp ZP_BYTE:236 , +Potential registers zp ZP_BYTE:237 [ irq_sprite_ptr#1 ] : zp ZP_BYTE:237 , +Potential registers zp ZP_BYTE:238 [ sprites_irq::ptr#1 ] : zp ZP_BYTE:238 , reg byte a , reg byte x , reg byte y , +Potential registers zp ZP_BYTE:239 [ sprites_irq::ptr#2 ] : zp ZP_BYTE:239 , reg byte a , reg byte x , reg byte y , REGISTER UPLIFT SCOPES -Uplift Scope [keyboard_event_scan] 20,002: zp ZP_BYTE:201 [ keyboard_event_scan::$3 ] 20,002: zp ZP_BYTE:202 [ keyboard_event_scan::$4 ] 20,002: zp ZP_BYTE:203 [ keyboard_event_scan::event_type#0 ] 20,002: zp ZP_BYTE:204 [ keyboard_event_scan::$11 ] 17,858.93: zp ZP_BYTE:84 [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] 11,908.48: zp ZP_BYTE:85 [ keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 keyboard_event_scan::keycode#15 ] 2,101.74: zp ZP_BYTE:82 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] 1,278.06: zp ZP_BYTE:191 [ keyboard_event_scan::row_scan#0 ] 4: zp ZP_BYTE:193 [ keyboard_event_scan::$14 ] 4: zp ZP_BYTE:195 [ keyboard_event_scan::$18 ] 4: zp ZP_BYTE:197 [ keyboard_event_scan::$22 ] 4: zp ZP_BYTE:199 [ keyboard_event_scan::$26 ] -Uplift Scope [play_collision] 38,173.33: zp ZP_BYTE:42 [ play_collision::i#2 play_collision::i#3 play_collision::i#11 play_collision::i#13 ] 20,002: zp ZP_BYTE:152 [ play_collision::$7 ] 13,378.25: zp ZP_BYTE:43 [ play_collision::col#2 play_collision::col#9 play_collision::col#1 ] 12,223.44: zp ZP_BYTE:44 [ play_collision::c#2 play_collision::c#1 ] 1,615.62: zp ZP_BYTE:151 [ play_collision::i#1 ] 1,371.57: zp ZP_BYTE:40 [ play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 ] 1,126.12: zp ZP_BYTE:41 [ play_collision::l#6 play_collision::l#1 ] 785.86: zp ZP_WORD:149 [ play_collision::playfield_line#0 ] 476.33: zp ZP_WORD:147 [ play_collision::piece_gfx#0 ] 51.62: zp ZP_BYTE:39 [ play_collision::xpos#6 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 play_collision::xpos#4 ] 18: zp ZP_BYTE:37 [ play_collision::orientation#5 play_collision::orientation#0 play_collision::orientation#1 play_collision::orientation#2 play_collision::orientation#3 ] 13: zp ZP_BYTE:38 [ play_collision::ypos#5 play_collision::ypos#0 play_collision::ypos#1 play_collision::ypos#2 play_collision::ypos#3 play_collision::ypos#4 ] 4: zp ZP_BYTE:144 [ play_collision::return#14 ] 4: zp ZP_BYTE:153 [ play_collision::return#13 ] 4: zp ZP_BYTE:155 [ play_collision::return#1 ] 4: zp ZP_BYTE:159 [ play_collision::return#0 ] 4: zp ZP_BYTE:165 [ play_collision::return#10 ] 1.43: zp ZP_BYTE:45 [ play_collision::return#15 ] -Uplift Scope [play_remove_lines] 19,004.21: zp ZP_BYTE:71 [ play_remove_lines::r#2 play_remove_lines::r#3 play_remove_lines::r#1 ] 17,938.14: zp ZP_BYTE:74 [ play_remove_lines::w#6 play_remove_lines::w#4 play_remove_lines::w#12 play_remove_lines::w#11 play_remove_lines::w#1 play_remove_lines::w#2 play_remove_lines::w#3 ] 17,501.75: zp ZP_BYTE:72 [ play_remove_lines::x#2 play_remove_lines::x#1 ] 8,201: zp ZP_BYTE:73 [ play_remove_lines::full#4 play_remove_lines::full#2 ] 6,000.6: zp ZP_BYTE:181 [ play_remove_lines::c#0 ] 2,566.89: zp ZP_BYTE:70 [ play_remove_lines::removed#11 play_remove_lines::removed#7 play_remove_lines::removed#1 ] 1,634.97: zp ZP_BYTE:69 [ play_remove_lines::y#8 play_remove_lines::y#1 ] 4: zp ZP_BYTE:161 [ play_remove_lines::return#0 ] -Uplift Scope [play_lock_current] 38,173.33: zp ZP_BYTE:77 [ play_lock_current::i#2 play_lock_current::i#3 play_lock_current::i#7 play_lock_current::i#9 ] 14,753.5: zp ZP_BYTE:78 [ play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 ] 14,001.4: zp ZP_BYTE:79 [ play_lock_current::c#2 play_lock_current::c#1 ] 2,333.67: zp ZP_BYTE:184 [ play_lock_current::i#1 ] 1,167.83: zp ZP_BYTE:76 [ play_lock_current::l#6 play_lock_current::l#1 ] 1,100.2: zp ZP_WORD:182 [ play_lock_current::playfield_line#0 ] 777.68: zp ZP_BYTE:75 [ play_lock_current::ypos2#2 play_lock_current::ypos2#0 play_lock_current::ypos2#1 ] -Uplift Scope [] 58,859.49: zp ZP_BYTE:86 [ keyboard_events_size#10 keyboard_events_size#29 keyboard_events_size#19 keyboard_events_size#16 keyboard_events_size#13 keyboard_events_size#4 keyboard_events_size#30 keyboard_events_size#2 keyboard_events_size#1 ] 206.47: zp ZP_WORD:62 [ current_piece_gfx#33 current_piece_gfx#103 current_piece_gfx#16 current_piece_gfx#21 current_piece_gfx#18 current_piece_gfx#19 current_piece_gfx#6 ] 197.34: zp ZP_BYTE:60 [ current_piece_char#27 current_piece_char#19 current_piece_char#14 current_piece_char#16 ] 76.7: zp ZP_BYTE:20 [ current_piece_char#64 current_piece_char#102 current_piece_char#103 ] 63.7: zp ZP_WORD:18 [ current_piece_gfx#62 current_piece_gfx#114 current_piece_gfx#115 ] 43.49: zp ZP_BYTE:64 [ current_xpos#41 current_xpos#113 current_xpos#17 current_xpos#28 current_xpos#20 current_xpos#24 current_xpos#7 current_xpos#5 ] 32: zp ZP_WORD:35 [ current_piece#16 current_piece#90 current_piece#91 current_piece#92 current_piece#93 current_piece#94 ] 30.62: zp ZP_BYTE:26 [ render_screen_render#21 render_screen_render#65 ] 20.4: zp ZP_BYTE:15 [ current_ypos#11 current_ypos#100 current_ypos#101 ] 20: zp ZP_BYTE:200 [ keyboard_modifiers#5 ] 20: zp ZP_BYTE:206 [ render_screen_showing#1 ] 20: zp ZP_BYTE:219 [ irq_sprite_ypos#3 ] 20: zp ZP_BYTE:220 [ irq_sprite_ptr#3 ] 20: zp ZP_BYTE:221 [ irq_cnt#2 ] 20: zp ZP_BYTE:222 [ irq_sprite_ypos#2 ] 20: zp ZP_BYTE:223 [ irq_sprite_ptr#2 ] 20: zp ZP_BYTE:224 [ irq_sprite_ypos#1 ] 20: zp ZP_BYTE:225 [ irq_sprite_ptr#1 ] 18.87: zp ZP_WORD:58 [ current_piece#27 current_piece#95 current_piece#20 current_piece#14 current_piece#88 ] 18.67: zp ZP_BYTE:57 [ level_bcd#32 level_bcd#19 level_bcd#11 level_bcd#17 level_bcd#64 level_bcd#21 level_bcd#8 ] 18.33: zp ZP_BYTE:61 [ current_orientation#36 current_orientation#12 current_orientation#16 current_orientation#19 current_orientation#24 current_orientation#7 ] 17.35: zp ZP_BYTE:56 [ current_movedown_slow#38 current_movedown_slow#23 current_movedown_slow#14 current_movedown_slow#21 current_movedown_slow#1 current_movedown_slow#69 current_movedown_slow#10 ] 15.5: zp ZP_BYTE:48 [ current_ypos#36 current_ypos#25 current_ypos#17 current_ypos#22 current_ypos#2 ] 14.83: zp ZP_BYTE:66 [ game_over#70 game_over#26 game_over#19 game_over#14 game_over#15 ] 14.37: zp ZP_BYTE:17 [ current_xpos#57 current_xpos#124 current_xpos#125 ] 13.86: zp ZP_DWORD:51 [ score_bcd#27 score_bcd#16 score_bcd#18 score_bcd#14 score_bcd#30 ] 13.23: zp ZP_BYTE:55 [ level#31 level#18 level#10 level#16 level#20 ] 12.88: zp ZP_WORD:49 [ lines_bcd#27 lines_bcd#17 lines_bcd#19 lines_bcd#15 lines_bcd#30 ] 12.56: zp ZP_BYTE:4 [ current_movedown_counter#16 current_movedown_counter#14 current_movedown_counter#12 ] 11.67: zp ZP_BYTE:110 [ irq_raster_next#4 irq_raster_next#3 irq_raster_next#1 irq_raster_next#2 ] 11.6: zp ZP_BYTE:83 [ keyboard_modifiers#13 keyboard_modifiers#4 keyboard_modifiers#12 keyboard_modifiers#3 keyboard_modifiers#11 ] 11.1: zp ZP_BYTE:16 [ render_screen_render#30 render_screen_render#64 ] 4.82: zp ZP_BYTE:2 [ render_screen_show#16 render_screen_show#13 ] 4.01: zp ZP_BYTE:3 [ render_screen_render#17 render_screen_render#11 ] 3: zp ZP_BYTE:218 [ irq_cnt#1 ] 0.4: zp ZP_BYTE:111 [ render_screen_showing#0 ] 0.31: zp ZP_BYTE:112 [ irq_raster_next#0 ] 0.28: zp ZP_BYTE:113 [ irq_sprite_ypos#0 ] 0.26: zp ZP_BYTE:114 [ irq_sprite_ptr#0 ] 0.17: zp ZP_BYTE:115 [ irq_cnt#0 ] -Uplift Scope [render_moving] 2,615.85: zp ZP_BYTE:23 [ render_moving::i#4 render_moving::i#3 render_moving::i#8 render_moving::i#2 render_moving::i#1 ] 1,835.17: zp ZP_BYTE:25 [ render_moving::c#2 render_moving::c#1 ] 1,490.13: zp ZP_BYTE:24 [ render_moving::xpos#2 render_moving::xpos#0 render_moving::xpos#1 ] 1,001: zp ZP_BYTE:130 [ render_moving::current_cell#0 ] 202: zp ZP_BYTE:127 [ render_moving::$2 ] 164.12: zp ZP_BYTE:22 [ render_moving::l#4 render_moving::l#1 ] 110.2: zp ZP_WORD:128 [ render_moving::screen_line#0 ] 98.4: zp ZP_BYTE:21 [ render_moving::ypos2#2 render_moving::ypos2#0 render_moving::ypos2#1 ] -Uplift Scope [play_increase_level] 4,004: zp ZP_BYTE:180 [ play_increase_level::b4#0 ] 2,502.5: zp ZP_BYTE:68 [ play_increase_level::b#2 play_increase_level::b#1 ] 4: zp ZP_BYTE:179 [ play_increase_level::$1 ] -Uplift Scope [render_playfield] 2,254.5: zp ZP_WORD:29 [ render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 ] 2,002: zp ZP_BYTE:31 [ render_playfield::c#2 render_playfield::c#1 ] 1,505.77: zp ZP_BYTE:28 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] 202: zp ZP_BYTE:131 [ render_playfield::$2 ] 202: zp ZP_BYTE:132 [ render_playfield::$3 ] 181.8: zp ZP_BYTE:27 [ render_playfield::l#2 render_playfield::l#1 ] -Uplift Scope [play_spawn_current] 2,337: zp ZP_BYTE:67 [ play_spawn_current::piece_idx#2 play_spawn_current::piece_idx#1 ] 2,002: zp ZP_BYTE:168 [ play_spawn_current::$1 ] 4: zp ZP_BYTE:166 [ play_spawn_current::$5 ] 0.08: zp ZP_BYTE:164 [ play_spawn_current::$3 ] -Uplift Scope [keyboard_matrix_read] 2,002: zp ZP_BYTE:190 [ keyboard_matrix_read::return#2 ] 1,003: zp ZP_BYTE:189 [ keyboard_matrix_read::rowid#0 ] 334.33: zp ZP_BYTE:205 [ keyboard_matrix_read::return#0 ] -Uplift Scope [sid_rnd] 2,002: zp ZP_BYTE:167 [ sid_rnd::return#2 ] 334.33: zp ZP_BYTE:169 [ sid_rnd::return#0 ] -Uplift Scope [render_screen_original] 721.31: zp ZP_WORD:105 [ render_screen_original::screen#7 render_screen_original::screen#6 render_screen_original::screen#5 render_screen_original::screen#8 render_screen_original::screen#9 render_screen_original::screen#10 render_screen_original::screen#2 render_screen_original::screen#3 ] 699.79: zp ZP_BYTE:109 [ render_screen_original::x#6 render_screen_original::x#5 render_screen_original::x#4 render_screen_original::x#1 render_screen_original::x#2 render_screen_original::x#3 ] 501.65: zp ZP_WORD:107 [ render_screen_original::cols#6 render_screen_original::cols#5 render_screen_original::cols#4 render_screen_original::cols#7 render_screen_original::cols#3 render_screen_original::cols#1 render_screen_original::cols#2 ] 162.87: zp ZP_WORD:101 [ render_screen_original::oscr#2 render_screen_original::oscr#4 render_screen_original::oscr#1 ] 99.08: zp ZP_WORD:103 [ render_screen_original::ocols#2 render_screen_original::ocols#4 render_screen_original::ocols#1 ] 17.42: zp ZP_BYTE:100 [ render_screen_original::y#6 render_screen_original::y#1 ] -Uplift Scope [main] 202: zp ZP_BYTE:120 [ main::render#1 ] 101: zp ZP_BYTE:117 [ main::key_event#0 ] -Uplift Scope [play_movement] 202: zp ZP_BYTE:119 [ play_movement::return#3 ] 40: zp ZP_BYTE:32 [ play_movement::return#2 play_movement::render#1 play_movement::return#0 ] 8.92: zp ZP_BYTE:118 [ play_movement::key_event#0 ] 4: zp ZP_BYTE:135 [ play_movement::$0 ] 4: zp ZP_BYTE:138 [ play_movement::$3 ] 4: zp ZP_BYTE:142 [ play_movement::$4 ] 0.8: zp ZP_BYTE:139 [ play_movement::render#2 ] -Uplift Scope [keyboard_event_get] 202: zp ZP_BYTE:116 [ keyboard_event_get::return#3 ] 38.33: zp ZP_BYTE:81 [ keyboard_event_get::return#2 keyboard_event_get::return#1 ] -Uplift Scope [play_init] 33: zp ZP_BYTE:208 [ play_init::b4#0 ] 27.5: zp ZP_BYTE:92 [ play_init::b#2 play_init::b#1 ] 23.83: zp ZP_BYTE:88 [ play_init::j#2 play_init::j#1 ] 22: zp ZP_BYTE:207 [ play_init::$1 ] 13.93: zp ZP_BYTE:91 [ play_init::idx#2 play_init::idx#1 ] 13.75: zp ZP_WORD:89 [ play_init::pli#2 play_init::pli#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:125 [ 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:121 [ render_bcd::$3 ] 4: zp ZP_BYTE:122 [ render_bcd::$4 ] 4: zp ZP_BYTE:123 [ render_bcd::$5 ] 4: zp ZP_BYTE:124 [ 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:95 [ render_init::i#2 render_init::i#1 ] 22: zp ZP_BYTE:210 [ render_init::$13 ] 22: zp ZP_BYTE:211 [ render_init::$14 ] 12.83: zp ZP_WORD:98 [ render_init::li_2#2 render_init::li_2#1 ] 12.1: zp ZP_WORD:96 [ render_init::li_1#2 render_init::li_1#1 ] -Uplift Scope [sprites_init] 25.3: zp ZP_BYTE:93 [ sprites_init::s#2 sprites_init::s#1 ] 22: zp ZP_BYTE:209 [ sprites_init::s2#0 ] 15.58: zp ZP_BYTE:94 [ sprites_init::xpos#2 sprites_init::xpos#1 ] -Uplift Scope [play_move_down] 20: zp ZP_BYTE:47 [ play_move_down::movedown#6 play_move_down::movedown#3 play_move_down::movedown#7 play_move_down::movedown#2 play_move_down::movedown#10 ] 4: zp ZP_BYTE:134 [ play_move_down::return#0 ] 4: zp ZP_BYTE:158 [ play_move_down::$2 ] 4: zp ZP_BYTE:160 [ play_move_down::$12 ] 4: zp ZP_BYTE:162 [ play_move_down::removed#0 ] 2: zp ZP_BYTE:133 [ play_move_down::key_event#0 ] 0.67: zp ZP_BYTE:65 [ play_move_down::return#3 ] -Uplift Scope [keyboard_event_pressed] 4: zp ZP_BYTE:157 [ keyboard_event_pressed::return#12 ] 4: zp ZP_BYTE:185 [ keyboard_event_pressed::$0 ] 4: zp ZP_BYTE:187 [ keyboard_event_pressed::$1 ] 4: zp ZP_BYTE:192 [ keyboard_event_pressed::return#0 ] 4: zp ZP_BYTE:194 [ keyboard_event_pressed::return#1 ] 4: zp ZP_BYTE:196 [ keyboard_event_pressed::return#2 ] 4: zp ZP_BYTE:198 [ keyboard_event_pressed::return#10 ] 2: zp ZP_BYTE:186 [ keyboard_event_pressed::row_bits#0 ] 1.71: zp ZP_BYTE:188 [ keyboard_event_pressed::return#11 ] 1.33: zp ZP_BYTE:80 [ keyboard_event_pressed::keycode#5 ] -Uplift Scope [sprites_irq] 6.5: zp ZP_BYTE:214 [ sprites_irq::raster_sprite_gfx_modify#0 ] 4: zp ZP_BYTE:213 [ sprites_irq::$0 ] 4: zp ZP_BYTE:217 [ sprites_irq::ptr#4 ] 4: zp ZP_BYTE:227 [ sprites_irq::ptr#2 ] 2.67: zp ZP_BYTE:216 [ sprites_irq::ptr#3 ] 2.67: zp ZP_BYTE:226 [ sprites_irq::ptr#1 ] 2.5: zp ZP_BYTE:212 [ sprites_irq::ypos#0 ] 2.5: zp ZP_BYTE:215 [ sprites_irq::ptr#0 ] -Uplift Scope [play_move_rotate] 8.89: zp ZP_BYTE:34 [ play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] 4: zp ZP_BYTE:141 [ play_move_rotate::return#0 ] 4: zp ZP_BYTE:143 [ play_move_rotate::$2 ] 4: zp ZP_BYTE:145 [ play_move_rotate::$6 ] 4: zp ZP_BYTE:146 [ play_move_rotate::$4 ] 3: zp ZP_BYTE:140 [ play_move_rotate::key_event#0 ] 0.67: zp ZP_BYTE:33 [ play_move_rotate::return#2 ] -Uplift Scope [play_update_score] 4: zp ZP_BYTE:170 [ play_update_score::$2 ] 4: zp ZP_BYTE:172 [ play_update_score::$4 ] 4: zp ZP_BYTE:177 [ play_update_score::$5 ] 4: zp ZP_BYTE:178 [ play_update_score::lines_after#0 ] 1.33: zp ZP_DWORD:173 [ play_update_score::add_bcd#0 ] 1.14: zp ZP_BYTE:163 [ play_update_score::removed#0 ] 0.44: zp ZP_BYTE:171 [ play_update_score::lines_before#0 ] -Uplift Scope [play_move_leftright] 4: zp ZP_BYTE:137 [ play_move_leftright::return#0 ] 4: zp ZP_BYTE:154 [ play_move_leftright::$4 ] 4: zp ZP_BYTE:156 [ play_move_leftright::$8 ] 3: zp ZP_BYTE:136 [ play_move_leftright::key_event#0 ] 0.67: zp ZP_BYTE:46 [ play_move_leftright::return#2 ] -Uplift Scope [render_show] 2: zp ZP_BYTE:87 [ render_show::d018val#3 ] +Uplift Scope [keyboard_event_scan] 20,002: zp ZP_BYTE:213 [ keyboard_event_scan::$3 ] 20,002: zp ZP_BYTE:214 [ keyboard_event_scan::$4 ] 20,002: zp ZP_BYTE:215 [ keyboard_event_scan::event_type#0 ] 20,002: zp ZP_BYTE:216 [ keyboard_event_scan::$11 ] 17,858.93: zp ZP_BYTE:92 [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] 11,908.48: zp ZP_BYTE:93 [ 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:90 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] 1,278.06: zp ZP_BYTE:203 [ keyboard_event_scan::row_scan#0 ] 4: zp ZP_BYTE:205 [ keyboard_event_scan::$14 ] 4: zp ZP_BYTE:207 [ keyboard_event_scan::$18 ] 4: zp ZP_BYTE:209 [ keyboard_event_scan::$22 ] 4: zp ZP_BYTE:211 [ keyboard_event_scan::$26 ] +Uplift Scope [play_collision] 38,173.33: zp ZP_BYTE:50 [ play_collision::i#2 play_collision::i#3 play_collision::i#11 play_collision::i#13 ] 20,002: zp ZP_BYTE:163 [ play_collision::$7 ] 13,378.25: zp ZP_BYTE:51 [ play_collision::col#2 play_collision::col#9 play_collision::col#1 ] 12,223.44: zp ZP_BYTE:52 [ play_collision::c#2 play_collision::c#1 ] 1,615.62: zp ZP_BYTE:162 [ play_collision::i#1 ] 1,371.57: zp ZP_BYTE:48 [ play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 ] 1,126.12: zp ZP_BYTE:49 [ play_collision::l#6 play_collision::l#1 ] 785.86: zp ZP_WORD:160 [ play_collision::playfield_line#0 ] 476.33: zp ZP_WORD:158 [ play_collision::piece_gfx#0 ] 51.62: zp ZP_BYTE:47 [ play_collision::xpos#6 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 play_collision::xpos#4 ] 18: zp ZP_BYTE:45 [ play_collision::orientation#5 play_collision::orientation#0 play_collision::orientation#1 play_collision::orientation#2 play_collision::orientation#3 ] 13: zp ZP_BYTE:46 [ play_collision::ypos#5 play_collision::ypos#0 play_collision::ypos#1 play_collision::ypos#2 play_collision::ypos#3 play_collision::ypos#4 ] 4: zp ZP_BYTE:155 [ play_collision::return#14 ] 4: zp ZP_BYTE:164 [ play_collision::return#13 ] 4: zp ZP_BYTE:166 [ play_collision::return#1 ] 4: zp ZP_BYTE:170 [ play_collision::return#0 ] 4: zp ZP_BYTE:177 [ play_collision::return#10 ] 1.43: zp ZP_BYTE:53 [ play_collision::return#15 ] +Uplift Scope [play_remove_lines] 19,004.21: zp ZP_BYTE:79 [ play_remove_lines::r#2 play_remove_lines::r#3 play_remove_lines::r#1 ] 17,938.14: zp ZP_BYTE:82 [ 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:80 [ play_remove_lines::x#2 play_remove_lines::x#1 ] 8,201: zp ZP_BYTE:81 [ play_remove_lines::full#4 play_remove_lines::full#2 ] 6,000.6: zp ZP_BYTE:193 [ play_remove_lines::c#0 ] 2,566.89: zp ZP_BYTE:78 [ play_remove_lines::removed#11 play_remove_lines::removed#7 play_remove_lines::removed#1 ] 1,634.97: zp ZP_BYTE:77 [ play_remove_lines::y#8 play_remove_lines::y#1 ] 4: zp ZP_BYTE:172 [ play_remove_lines::return#0 ] +Uplift Scope [play_lock_current] 38,173.33: zp ZP_BYTE:85 [ 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:86 [ play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 ] 14,001.4: zp ZP_BYTE:87 [ play_lock_current::c#2 play_lock_current::c#1 ] 2,333.67: zp ZP_BYTE:196 [ play_lock_current::i#1 ] 1,167.83: zp ZP_BYTE:84 [ play_lock_current::l#6 play_lock_current::l#1 ] 1,100.2: zp ZP_WORD:194 [ play_lock_current::playfield_line#0 ] 777.68: zp ZP_BYTE:83 [ play_lock_current::ypos2#2 play_lock_current::ypos2#0 play_lock_current::ypos2#1 ] +Uplift Scope [] 58,858.91: zp ZP_BYTE:94 [ 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 ] 2,131.62: zp ZP_BYTE:74 [ next_piece_idx#17 next_piece_idx#31 next_piece_idx#10 next_piece_idx#16 play_spawn_current::piece_idx#2 play_spawn_current::piece_idx#1 ] 205.37: zp ZP_WORD:70 [ current_piece_gfx#35 current_piece_gfx#111 current_piece_gfx#17 current_piece_gfx#7 current_piece_gfx#19 current_piece_gfx#20 current_piece_gfx#6 ] 196.97: zp ZP_BYTE:68 [ current_piece_char#29 current_piece_char#21 current_piece_char#15 current_piece_char#4 ] 76.7: zp ZP_BYTE:28 [ current_piece_char#67 current_piece_char#110 current_piece_char#111 ] 63.7: zp ZP_WORD:26 [ current_piece_gfx#63 current_piece_gfx#122 current_piece_gfx#123 ] 42.36: zp ZP_BYTE:72 [ current_xpos#43 current_xpos#121 current_xpos#18 current_xpos#102 current_xpos#21 current_xpos#25 current_xpos#7 current_xpos#5 ] 32: zp ZP_WORD:43 [ current_piece#17 current_piece#98 current_piece#99 current_piece#100 current_piece#101 current_piece#102 ] 30.62: zp ZP_BYTE:34 [ render_screen_render#22 render_screen_render#70 ] 29.4: zp ZP_BYTE:16 [ next_piece_idx#12 next_piece_idx#84 next_piece_idx#85 ] 24: zp ZP_BYTE:15 [ render_screen_render#15 render_screen_render#68 ] 20.4: zp ZP_BYTE:23 [ current_ypos#12 current_ypos#108 current_ypos#109 ] 20: zp ZP_BYTE:212 [ keyboard_modifiers#5 ] 20: zp ZP_BYTE:218 [ render_screen_showing#1 ] 20: zp ZP_BYTE:231 [ irq_sprite_ypos#3 ] 20: zp ZP_BYTE:232 [ irq_sprite_ptr#3 ] 20: zp ZP_BYTE:233 [ irq_cnt#2 ] 20: zp ZP_BYTE:234 [ irq_sprite_ypos#2 ] 20: zp ZP_BYTE:235 [ irq_sprite_ptr#2 ] 20: zp ZP_BYTE:236 [ irq_sprite_ypos#1 ] 20: zp ZP_BYTE:237 [ irq_sprite_ptr#1 ] 18.81: zp ZP_WORD:66 [ current_piece#29 current_piece#103 current_piece#10 current_piece#15 current_piece#96 ] 18.57: zp ZP_BYTE:65 [ level_bcd#32 level_bcd#19 level_bcd#11 level_bcd#17 level_bcd#64 level_bcd#21 level_bcd#8 ] 17.41: zp ZP_BYTE:69 [ current_orientation#38 current_orientation#13 current_orientation#17 current_orientation#20 current_orientation#25 current_orientation#7 ] 17.05: zp ZP_BYTE:64 [ current_movedown_slow#38 current_movedown_slow#23 current_movedown_slow#14 current_movedown_slow#21 current_movedown_slow#1 current_movedown_slow#69 current_movedown_slow#10 ] 15.3: zp ZP_BYTE:56 [ current_ypos#38 current_ypos#10 current_ypos#18 current_ypos#5 current_ypos#2 ] 14.64: zp ZP_BYTE:75 [ game_over#65 game_over#28 game_over#10 game_over#15 game_over#52 ] 14.37: zp ZP_BYTE:25 [ current_xpos#58 current_xpos#132 current_xpos#133 ] 13.6: zp ZP_DWORD:59 [ score_bcd#27 score_bcd#16 score_bcd#18 score_bcd#14 score_bcd#30 ] 12.97: zp ZP_BYTE:63 [ level#31 level#18 level#10 level#16 level#20 ] 12.77: zp ZP_WORD:57 [ lines_bcd#27 lines_bcd#17 lines_bcd#19 lines_bcd#15 lines_bcd#30 ] 12.3: zp ZP_BYTE:4 [ current_movedown_counter#16 current_movedown_counter#14 current_movedown_counter#12 ] 11.67: zp ZP_BYTE:118 [ irq_raster_next#4 irq_raster_next#3 irq_raster_next#1 irq_raster_next#2 ] 11.6: zp ZP_BYTE:91 [ keyboard_modifiers#13 keyboard_modifiers#4 keyboard_modifiers#12 keyboard_modifiers#3 keyboard_modifiers#11 ] 11.1: zp ZP_BYTE:24 [ render_screen_render#33 render_screen_render#69 ] 4.78: zp ZP_BYTE:2 [ render_screen_show#16 render_screen_show#13 ] 4.17: zp ZP_BYTE:3 [ render_screen_render#18 render_screen_render#11 ] 3: zp ZP_BYTE:230 [ irq_cnt#1 ] 0.4: zp ZP_BYTE:119 [ render_screen_showing#0 ] 0.31: zp ZP_BYTE:120 [ irq_raster_next#0 ] 0.28: zp ZP_BYTE:121 [ irq_sprite_ypos#0 ] 0.26: zp ZP_BYTE:122 [ irq_sprite_ptr#0 ] 0.17: zp ZP_BYTE:123 [ irq_cnt#0 ] +Uplift Scope [render_moving] 2,615.85: zp ZP_BYTE:31 [ render_moving::i#4 render_moving::i#3 render_moving::i#8 render_moving::i#2 render_moving::i#1 ] 1,835.17: zp ZP_BYTE:33 [ render_moving::c#2 render_moving::c#1 ] 1,490.13: zp ZP_BYTE:32 [ render_moving::xpos#2 render_moving::xpos#0 render_moving::xpos#1 ] 1,001: zp ZP_BYTE:141 [ render_moving::current_cell#0 ] 202: zp ZP_BYTE:138 [ render_moving::$2 ] 164.12: zp ZP_BYTE:30 [ render_moving::l#4 render_moving::l#1 ] 110.2: zp ZP_WORD:139 [ render_moving::screen_line#0 ] 98.4: zp ZP_BYTE:29 [ render_moving::ypos2#2 render_moving::ypos2#0 render_moving::ypos2#1 ] +Uplift Scope [render_next] 1,970.3: zp ZP_WORD:18 [ render_next::next_piece_gfx#2 render_next::next_piece_gfx#3 render_next::next_piece_gfx#1 render_next::next_piece_gfx#9 ] 1,787.5: zp ZP_BYTE:22 [ render_next::c#2 render_next::c#1 ] 1,657: zp ZP_WORD:20 [ render_next::screen_next_area#4 render_next::screen_next_area#9 render_next::screen_next_area#3 render_next::screen_next_area#10 render_next::screen_next_area#2 ] 1,001: zp ZP_BYTE:137 [ render_next::cell#0 ] 169.86: zp ZP_BYTE:17 [ render_next::l#7 render_next::l#1 ] 66.87: zp ZP_BYTE:136 [ render_next::next_piece_char#0 ] 1: zp ZP_BYTE:135 [ render_next::$6 ] +Uplift Scope [play_increase_level] 4,004: zp ZP_BYTE:192 [ play_increase_level::b4#0 ] 2,502.5: zp ZP_BYTE:76 [ play_increase_level::b#2 play_increase_level::b#1 ] 4: zp ZP_BYTE:191 [ play_increase_level::$1 ] +Uplift Scope [render_playfield] 2,254.5: zp ZP_WORD:37 [ render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 ] 2,002: zp ZP_BYTE:39 [ render_playfield::c#2 render_playfield::c#1 ] 1,505.77: zp ZP_BYTE:36 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] 202: zp ZP_BYTE:142 [ render_playfield::$2 ] 202: zp ZP_BYTE:143 [ render_playfield::$3 ] 181.8: zp ZP_BYTE:35 [ render_playfield::l#2 render_playfield::l#1 ] +Uplift Scope [keyboard_matrix_read] 2,002: zp ZP_BYTE:202 [ keyboard_matrix_read::return#2 ] 1,003: zp ZP_BYTE:201 [ keyboard_matrix_read::rowid#0 ] 334.33: zp ZP_BYTE:217 [ keyboard_matrix_read::return#0 ] +Uplift Scope [sid_rnd] 2,002: zp ZP_BYTE:179 [ sid_rnd::return#2 ] 334.33: zp ZP_BYTE:181 [ sid_rnd::return#0 ] +Uplift Scope [render_screen_original] 721.31: zp ZP_WORD:113 [ 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:117 [ 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:115 [ 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:109 [ render_screen_original::oscr#2 render_screen_original::oscr#4 render_screen_original::oscr#1 ] 99.08: zp ZP_WORD:111 [ render_screen_original::ocols#2 render_screen_original::ocols#4 render_screen_original::ocols#1 ] 17.42: zp ZP_BYTE:108 [ render_screen_original::y#6 render_screen_original::y#1 ] +Uplift Scope [play_spawn_current] 2,002: zp ZP_BYTE:180 [ play_spawn_current::$6 ] 4: zp ZP_BYTE:178 [ play_spawn_current::$2 ] 2: zp ZP_BYTE:175 [ play_spawn_current::current_piece_idx#0 ] 0.06: zp ZP_BYTE:176 [ play_spawn_current::$0 ] +Uplift Scope [main] 202: zp ZP_BYTE:128 [ main::render#1 ] 101: zp ZP_BYTE:125 [ main::key_event#0 ] +Uplift Scope [play_movement] 202: zp ZP_BYTE:127 [ play_movement::return#3 ] 40: zp ZP_BYTE:40 [ play_movement::return#2 play_movement::render#1 play_movement::return#0 ] 8.92: zp ZP_BYTE:126 [ play_movement::key_event#0 ] 4: zp ZP_BYTE:146 [ play_movement::$0 ] 4: zp ZP_BYTE:149 [ play_movement::$3 ] 4: zp ZP_BYTE:153 [ play_movement::$4 ] 0.8: zp ZP_BYTE:150 [ play_movement::render#2 ] +Uplift Scope [keyboard_event_get] 202: zp ZP_BYTE:124 [ keyboard_event_get::return#3 ] 38.33: zp ZP_BYTE:89 [ keyboard_event_get::return#2 keyboard_event_get::return#1 ] +Uplift Scope [play_init] 33: zp ZP_BYTE:220 [ play_init::b4#0 ] 27.5: zp ZP_BYTE:100 [ play_init::b#2 play_init::b#1 ] 23.83: zp ZP_BYTE:96 [ play_init::j#2 play_init::j#1 ] 22: zp ZP_BYTE:219 [ play_init::$1 ] 13.93: zp ZP_BYTE:99 [ play_init::idx#2 play_init::idx#1 ] 13.75: zp ZP_WORD:97 [ play_init::pli#2 play_init::pli#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:133 [ 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:129 [ render_bcd::$3 ] 4: zp ZP_BYTE:130 [ render_bcd::$4 ] 4: zp ZP_BYTE:131 [ render_bcd::$5 ] 4: zp ZP_BYTE:132 [ 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:103 [ render_init::i#2 render_init::i#1 ] 22: zp ZP_BYTE:222 [ render_init::$13 ] 22: zp ZP_BYTE:223 [ render_init::$14 ] 12.83: zp ZP_WORD:106 [ render_init::li_2#2 render_init::li_2#1 ] 12.1: zp ZP_WORD:104 [ render_init::li_1#2 render_init::li_1#1 ] +Uplift Scope [sprites_init] 25.3: zp ZP_BYTE:101 [ sprites_init::s#2 sprites_init::s#1 ] 22: zp ZP_BYTE:221 [ sprites_init::s2#0 ] 15.58: zp ZP_BYTE:102 [ sprites_init::xpos#2 sprites_init::xpos#1 ] +Uplift Scope [play_move_down] 20: zp ZP_BYTE:55 [ 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:145 [ play_move_down::return#0 ] 4: zp ZP_BYTE:169 [ play_move_down::$2 ] 4: zp ZP_BYTE:171 [ play_move_down::$12 ] 4: zp ZP_BYTE:173 [ play_move_down::removed#0 ] 2: zp ZP_BYTE:144 [ play_move_down::key_event#0 ] 0.67: zp ZP_BYTE:73 [ play_move_down::return#3 ] +Uplift Scope [keyboard_event_pressed] 4: zp ZP_BYTE:168 [ keyboard_event_pressed::return#12 ] 4: zp ZP_BYTE:197 [ keyboard_event_pressed::$0 ] 4: zp ZP_BYTE:199 [ keyboard_event_pressed::$1 ] 4: zp ZP_BYTE:204 [ keyboard_event_pressed::return#0 ] 4: zp ZP_BYTE:206 [ keyboard_event_pressed::return#1 ] 4: zp ZP_BYTE:208 [ keyboard_event_pressed::return#2 ] 4: zp ZP_BYTE:210 [ keyboard_event_pressed::return#10 ] 2: zp ZP_BYTE:198 [ keyboard_event_pressed::row_bits#0 ] 1.71: zp ZP_BYTE:200 [ keyboard_event_pressed::return#11 ] 1.33: zp ZP_BYTE:88 [ keyboard_event_pressed::keycode#5 ] +Uplift Scope [sprites_irq] 6.5: zp ZP_BYTE:226 [ sprites_irq::raster_sprite_gfx_modify#0 ] 4: zp ZP_BYTE:225 [ sprites_irq::$0 ] 4: zp ZP_BYTE:229 [ sprites_irq::ptr#4 ] 4: zp ZP_BYTE:239 [ sprites_irq::ptr#2 ] 2.67: zp ZP_BYTE:228 [ sprites_irq::ptr#3 ] 2.67: zp ZP_BYTE:238 [ sprites_irq::ptr#1 ] 2.5: zp ZP_BYTE:224 [ sprites_irq::ypos#0 ] 2.5: zp ZP_BYTE:227 [ sprites_irq::ptr#0 ] +Uplift Scope [play_move_rotate] 8.89: zp ZP_BYTE:42 [ play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] 4: zp ZP_BYTE:152 [ play_move_rotate::return#0 ] 4: zp ZP_BYTE:154 [ play_move_rotate::$2 ] 4: zp ZP_BYTE:156 [ play_move_rotate::$6 ] 4: zp ZP_BYTE:157 [ play_move_rotate::$4 ] 3: zp ZP_BYTE:151 [ play_move_rotate::key_event#0 ] 0.67: zp ZP_BYTE:41 [ play_move_rotate::return#2 ] +Uplift Scope [play_update_score] 4: zp ZP_BYTE:182 [ play_update_score::$2 ] 4: zp ZP_BYTE:184 [ play_update_score::$4 ] 4: zp ZP_BYTE:189 [ play_update_score::$5 ] 4: zp ZP_BYTE:190 [ play_update_score::lines_after#0 ] 1.33: zp ZP_DWORD:185 [ play_update_score::add_bcd#0 ] 1.14: zp ZP_BYTE:174 [ play_update_score::removed#0 ] 0.44: zp ZP_BYTE:183 [ play_update_score::lines_before#0 ] +Uplift Scope [play_move_leftright] 4: zp ZP_BYTE:148 [ play_move_leftright::return#0 ] 4: zp ZP_BYTE:165 [ play_move_leftright::$4 ] 4: zp ZP_BYTE:167 [ play_move_leftright::$8 ] 3: zp ZP_BYTE:147 [ play_move_leftright::key_event#0 ] 0.67: zp ZP_BYTE:54 [ play_move_leftright::return#2 ] +Uplift Scope [render_show] 2: zp ZP_BYTE:95 [ 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 4609654 combination reg byte a [ keyboard_event_scan::$3 ] reg byte a [ keyboard_event_scan::$4 ] reg byte a [ keyboard_event_scan::event_type#0 ] reg byte a [ keyboard_event_scan::$11 ] zp ZP_BYTE:84 [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] zp ZP_BYTE:85 [ keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 keyboard_event_scan::keycode#15 ] zp ZP_BYTE:82 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] zp ZP_BYTE:191 [ keyboard_event_scan::row_scan#0 ] zp ZP_BYTE:193 [ keyboard_event_scan::$14 ] zp ZP_BYTE:195 [ keyboard_event_scan::$18 ] zp ZP_BYTE:197 [ keyboard_event_scan::$22 ] zp ZP_BYTE:199 [ keyboard_event_scan::$26 ] +Uplifting [keyboard_event_scan] best 4713801 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:92 [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] zp ZP_BYTE:93 [ 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:90 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] zp ZP_BYTE:203 [ keyboard_event_scan::row_scan#0 ] zp ZP_BYTE:205 [ keyboard_event_scan::$14 ] zp ZP_BYTE:207 [ keyboard_event_scan::$18 ] zp ZP_BYTE:209 [ keyboard_event_scan::$22 ] zp ZP_BYTE:211 [ keyboard_event_scan::$26 ] Limited combination testing to 100 combinations of 5308416 possible. -Uplifting [play_collision] best 4459654 combination zp ZP_BYTE:42 [ play_collision::i#2 play_collision::i#3 play_collision::i#11 play_collision::i#13 ] reg byte a [ play_collision::$7 ] zp ZP_BYTE:43 [ play_collision::col#2 play_collision::col#9 play_collision::col#1 ] reg byte x [ play_collision::c#2 play_collision::c#1 ] zp ZP_BYTE:151 [ play_collision::i#1 ] zp ZP_BYTE:40 [ play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 ] zp ZP_BYTE:41 [ play_collision::l#6 play_collision::l#1 ] zp ZP_WORD:149 [ play_collision::playfield_line#0 ] zp ZP_WORD:147 [ play_collision::piece_gfx#0 ] zp ZP_BYTE:39 [ play_collision::xpos#6 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 play_collision::xpos#4 ] zp ZP_BYTE:37 [ play_collision::orientation#5 play_collision::orientation#0 play_collision::orientation#1 play_collision::orientation#2 play_collision::orientation#3 ] zp ZP_BYTE:38 [ play_collision::ypos#5 play_collision::ypos#0 play_collision::ypos#1 play_collision::ypos#2 play_collision::ypos#3 play_collision::ypos#4 ] zp ZP_BYTE:144 [ play_collision::return#14 ] zp ZP_BYTE:153 [ play_collision::return#13 ] zp ZP_BYTE:155 [ play_collision::return#1 ] zp ZP_BYTE:159 [ play_collision::return#0 ] zp ZP_BYTE:165 [ play_collision::return#10 ] zp ZP_BYTE:45 [ play_collision::return#15 ] +Uplifting [play_collision] best 4563801 combination zp ZP_BYTE:50 [ 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:51 [ 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:162 [ play_collision::i#1 ] zp ZP_BYTE:48 [ play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 ] zp ZP_BYTE:49 [ play_collision::l#6 play_collision::l#1 ] zp ZP_WORD:160 [ play_collision::playfield_line#0 ] zp ZP_WORD:158 [ play_collision::piece_gfx#0 ] zp ZP_BYTE:47 [ play_collision::xpos#6 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 play_collision::xpos#4 ] zp ZP_BYTE:45 [ play_collision::orientation#5 play_collision::orientation#0 play_collision::orientation#1 play_collision::orientation#2 play_collision::orientation#3 ] zp ZP_BYTE:46 [ play_collision::ypos#5 play_collision::ypos#0 play_collision::ypos#1 play_collision::ypos#2 play_collision::ypos#3 play_collision::ypos#4 ] zp ZP_BYTE:155 [ play_collision::return#14 ] zp ZP_BYTE:164 [ play_collision::return#13 ] zp ZP_BYTE:166 [ play_collision::return#1 ] zp ZP_BYTE:170 [ play_collision::return#0 ] zp ZP_BYTE:177 [ play_collision::return#10 ] zp ZP_BYTE:53 [ play_collision::return#15 ] Limited combination testing to 100 combinations of 322486272 possible. -Uplifting [play_remove_lines] best 4322654 combination reg byte y [ play_remove_lines::r#2 play_remove_lines::r#3 play_remove_lines::r#1 ] reg byte x [ play_remove_lines::w#6 play_remove_lines::w#4 play_remove_lines::w#12 play_remove_lines::w#11 play_remove_lines::w#1 play_remove_lines::w#2 play_remove_lines::w#3 ] zp ZP_BYTE:72 [ play_remove_lines::x#2 play_remove_lines::x#1 ] zp ZP_BYTE:73 [ play_remove_lines::full#4 play_remove_lines::full#2 ] zp ZP_BYTE:181 [ play_remove_lines::c#0 ] zp ZP_BYTE:70 [ play_remove_lines::removed#11 play_remove_lines::removed#7 play_remove_lines::removed#1 ] zp ZP_BYTE:69 [ play_remove_lines::y#8 play_remove_lines::y#1 ] zp ZP_BYTE:161 [ play_remove_lines::return#0 ] +Uplifting [play_remove_lines] best 4426801 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:80 [ play_remove_lines::x#2 play_remove_lines::x#1 ] zp ZP_BYTE:81 [ play_remove_lines::full#4 play_remove_lines::full#2 ] zp ZP_BYTE:193 [ play_remove_lines::c#0 ] zp ZP_BYTE:78 [ play_remove_lines::removed#11 play_remove_lines::removed#7 play_remove_lines::removed#1 ] zp ZP_BYTE:77 [ play_remove_lines::y#8 play_remove_lines::y#1 ] zp ZP_BYTE:172 [ play_remove_lines::return#0 ] Limited combination testing to 100 combinations of 20736 possible. -Uplifting [play_lock_current] best 4232654 combination zp ZP_BYTE:77 [ play_lock_current::i#2 play_lock_current::i#3 play_lock_current::i#7 play_lock_current::i#9 ] zp ZP_BYTE:78 [ play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 ] reg byte x [ play_lock_current::c#2 play_lock_current::c#1 ] zp ZP_BYTE:184 [ play_lock_current::i#1 ] zp ZP_BYTE:76 [ play_lock_current::l#6 play_lock_current::l#1 ] zp ZP_WORD:182 [ play_lock_current::playfield_line#0 ] zp ZP_BYTE:75 [ play_lock_current::ypos2#2 play_lock_current::ypos2#0 play_lock_current::ypos2#1 ] +Uplifting [play_lock_current] best 4336801 combination zp ZP_BYTE:85 [ play_lock_current::i#2 play_lock_current::i#3 play_lock_current::i#7 play_lock_current::i#9 ] zp ZP_BYTE:86 [ 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:196 [ play_lock_current::i#1 ] zp ZP_BYTE:84 [ play_lock_current::l#6 play_lock_current::l#1 ] zp ZP_WORD:194 [ play_lock_current::playfield_line#0 ] zp ZP_BYTE:83 [ 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 4231488 combination zp ZP_BYTE:86 [ keyboard_events_size#10 keyboard_events_size#29 keyboard_events_size#19 keyboard_events_size#16 keyboard_events_size#13 keyboard_events_size#4 keyboard_events_size#30 keyboard_events_size#2 keyboard_events_size#1 ] zp ZP_WORD:62 [ current_piece_gfx#33 current_piece_gfx#103 current_piece_gfx#16 current_piece_gfx#21 current_piece_gfx#18 current_piece_gfx#19 current_piece_gfx#6 ] zp ZP_BYTE:60 [ current_piece_char#27 current_piece_char#19 current_piece_char#14 current_piece_char#16 ] reg byte x [ current_piece_char#64 current_piece_char#102 current_piece_char#103 ] zp ZP_WORD:18 [ current_piece_gfx#62 current_piece_gfx#114 current_piece_gfx#115 ] zp ZP_BYTE:64 [ current_xpos#41 current_xpos#113 current_xpos#17 current_xpos#28 current_xpos#20 current_xpos#24 current_xpos#7 current_xpos#5 ] zp ZP_WORD:35 [ current_piece#16 current_piece#90 current_piece#91 current_piece#92 current_piece#93 current_piece#94 ] reg byte x [ render_screen_render#21 render_screen_render#65 ] zp ZP_BYTE:15 [ current_ypos#11 current_ypos#100 current_ypos#101 ] zp ZP_BYTE:200 [ keyboard_modifiers#5 ] zp ZP_BYTE:206 [ render_screen_showing#1 ] zp ZP_BYTE:219 [ irq_sprite_ypos#3 ] zp ZP_BYTE:220 [ irq_sprite_ptr#3 ] zp ZP_BYTE:221 [ irq_cnt#2 ] zp ZP_BYTE:222 [ irq_sprite_ypos#2 ] zp ZP_BYTE:223 [ irq_sprite_ptr#2 ] zp ZP_BYTE:224 [ irq_sprite_ypos#1 ] zp ZP_BYTE:225 [ irq_sprite_ptr#1 ] zp ZP_WORD:58 [ current_piece#27 current_piece#95 current_piece#20 current_piece#14 current_piece#88 ] zp ZP_BYTE:57 [ level_bcd#32 level_bcd#19 level_bcd#11 level_bcd#17 level_bcd#64 level_bcd#21 level_bcd#8 ] zp ZP_BYTE:61 [ current_orientation#36 current_orientation#12 current_orientation#16 current_orientation#19 current_orientation#24 current_orientation#7 ] zp ZP_BYTE:56 [ current_movedown_slow#38 current_movedown_slow#23 current_movedown_slow#14 current_movedown_slow#21 current_movedown_slow#1 current_movedown_slow#69 current_movedown_slow#10 ] zp ZP_BYTE:48 [ current_ypos#36 current_ypos#25 current_ypos#17 current_ypos#22 current_ypos#2 ] zp ZP_BYTE:66 [ game_over#70 game_over#26 game_over#19 game_over#14 game_over#15 ] zp ZP_BYTE:17 [ current_xpos#57 current_xpos#124 current_xpos#125 ] zp ZP_DWORD:51 [ score_bcd#27 score_bcd#16 score_bcd#18 score_bcd#14 score_bcd#30 ] zp ZP_BYTE:55 [ level#31 level#18 level#10 level#16 level#20 ] zp ZP_WORD:49 [ lines_bcd#27 lines_bcd#17 lines_bcd#19 lines_bcd#15 lines_bcd#30 ] zp ZP_BYTE:4 [ current_movedown_counter#16 current_movedown_counter#14 current_movedown_counter#12 ] zp ZP_BYTE:110 [ irq_raster_next#4 irq_raster_next#3 irq_raster_next#1 irq_raster_next#2 ] zp ZP_BYTE:83 [ keyboard_modifiers#13 keyboard_modifiers#4 keyboard_modifiers#12 keyboard_modifiers#3 keyboard_modifiers#11 ] zp ZP_BYTE:16 [ render_screen_render#30 render_screen_render#64 ] zp ZP_BYTE:2 [ render_screen_show#16 render_screen_show#13 ] zp ZP_BYTE:3 [ render_screen_render#17 render_screen_render#11 ] zp ZP_BYTE:218 [ irq_cnt#1 ] zp ZP_BYTE:111 [ render_screen_showing#0 ] zp ZP_BYTE:112 [ irq_raster_next#0 ] zp ZP_BYTE:113 [ irq_sprite_ypos#0 ] zp ZP_BYTE:114 [ irq_sprite_ptr#0 ] zp ZP_BYTE:115 [ irq_cnt#0 ] -Limited combination testing to 100 combinations of 7962624 possible. -Uplifting [render_moving] best 4225488 combination zp ZP_BYTE:23 [ render_moving::i#4 render_moving::i#3 render_moving::i#8 render_moving::i#2 render_moving::i#1 ] zp ZP_BYTE:25 [ render_moving::c#2 render_moving::c#1 ] zp ZP_BYTE:24 [ render_moving::xpos#2 render_moving::xpos#0 render_moving::xpos#1 ] reg byte a [ render_moving::current_cell#0 ] zp ZP_BYTE:127 [ render_moving::$2 ] zp ZP_BYTE:22 [ render_moving::l#4 render_moving::l#1 ] zp ZP_WORD:128 [ render_moving::screen_line#0 ] zp ZP_BYTE:21 [ render_moving::ypos2#2 render_moving::ypos2#0 render_moving::ypos2#1 ] +Uplifting [] best 4335635 combination zp ZP_BYTE:94 [ 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:74 [ next_piece_idx#17 next_piece_idx#31 next_piece_idx#10 next_piece_idx#16 play_spawn_current::piece_idx#2 play_spawn_current::piece_idx#1 ] zp ZP_WORD:70 [ current_piece_gfx#35 current_piece_gfx#111 current_piece_gfx#17 current_piece_gfx#7 current_piece_gfx#19 current_piece_gfx#20 current_piece_gfx#6 ] zp ZP_BYTE:68 [ current_piece_char#29 current_piece_char#21 current_piece_char#15 current_piece_char#4 ] reg byte x [ current_piece_char#67 current_piece_char#110 current_piece_char#111 ] zp ZP_WORD:26 [ current_piece_gfx#63 current_piece_gfx#122 current_piece_gfx#123 ] zp ZP_BYTE:72 [ current_xpos#43 current_xpos#121 current_xpos#18 current_xpos#102 current_xpos#21 current_xpos#25 current_xpos#7 current_xpos#5 ] zp ZP_WORD:43 [ current_piece#17 current_piece#98 current_piece#99 current_piece#100 current_piece#101 current_piece#102 ] reg byte x [ render_screen_render#22 render_screen_render#70 ] zp ZP_BYTE:16 [ next_piece_idx#12 next_piece_idx#84 next_piece_idx#85 ] zp ZP_BYTE:15 [ render_screen_render#15 render_screen_render#68 ] zp ZP_BYTE:23 [ current_ypos#12 current_ypos#108 current_ypos#109 ] zp ZP_BYTE:212 [ keyboard_modifiers#5 ] zp ZP_BYTE:218 [ render_screen_showing#1 ] zp ZP_BYTE:231 [ irq_sprite_ypos#3 ] zp ZP_BYTE:232 [ irq_sprite_ptr#3 ] zp ZP_BYTE:233 [ irq_cnt#2 ] zp ZP_BYTE:234 [ irq_sprite_ypos#2 ] zp ZP_BYTE:235 [ irq_sprite_ptr#2 ] zp ZP_BYTE:236 [ irq_sprite_ypos#1 ] zp ZP_BYTE:237 [ irq_sprite_ptr#1 ] zp ZP_WORD:66 [ current_piece#29 current_piece#103 current_piece#10 current_piece#15 current_piece#96 ] zp ZP_BYTE:65 [ level_bcd#32 level_bcd#19 level_bcd#11 level_bcd#17 level_bcd#64 level_bcd#21 level_bcd#8 ] zp ZP_BYTE:69 [ current_orientation#38 current_orientation#13 current_orientation#17 current_orientation#20 current_orientation#25 current_orientation#7 ] zp ZP_BYTE:64 [ current_movedown_slow#38 current_movedown_slow#23 current_movedown_slow#14 current_movedown_slow#21 current_movedown_slow#1 current_movedown_slow#69 current_movedown_slow#10 ] zp ZP_BYTE:56 [ current_ypos#38 current_ypos#10 current_ypos#18 current_ypos#5 current_ypos#2 ] zp ZP_BYTE:75 [ game_over#65 game_over#28 game_over#10 game_over#15 game_over#52 ] zp ZP_BYTE:25 [ current_xpos#58 current_xpos#132 current_xpos#133 ] zp ZP_DWORD:59 [ score_bcd#27 score_bcd#16 score_bcd#18 score_bcd#14 score_bcd#30 ] zp ZP_BYTE:63 [ level#31 level#18 level#10 level#16 level#20 ] zp ZP_WORD:57 [ lines_bcd#27 lines_bcd#17 lines_bcd#19 lines_bcd#15 lines_bcd#30 ] zp ZP_BYTE:4 [ current_movedown_counter#16 current_movedown_counter#14 current_movedown_counter#12 ] zp ZP_BYTE:118 [ irq_raster_next#4 irq_raster_next#3 irq_raster_next#1 irq_raster_next#2 ] zp ZP_BYTE:91 [ keyboard_modifiers#13 keyboard_modifiers#4 keyboard_modifiers#12 keyboard_modifiers#3 keyboard_modifiers#11 ] zp ZP_BYTE:24 [ render_screen_render#33 render_screen_render#69 ] zp ZP_BYTE:2 [ render_screen_show#16 render_screen_show#13 ] zp ZP_BYTE:3 [ render_screen_render#18 render_screen_render#11 ] zp ZP_BYTE:230 [ irq_cnt#1 ] zp ZP_BYTE:119 [ render_screen_showing#0 ] zp ZP_BYTE:120 [ irq_raster_next#0 ] zp ZP_BYTE:121 [ irq_sprite_ypos#0 ] zp ZP_BYTE:122 [ irq_sprite_ptr#0 ] zp ZP_BYTE:123 [ irq_cnt#0 ] +Limited combination testing to 100 combinations of 191102976 possible. +Uplifting [render_moving] best 4329635 combination zp ZP_BYTE:31 [ render_moving::i#4 render_moving::i#3 render_moving::i#8 render_moving::i#2 render_moving::i#1 ] zp ZP_BYTE:33 [ render_moving::c#2 render_moving::c#1 ] zp ZP_BYTE:32 [ render_moving::xpos#2 render_moving::xpos#0 render_moving::xpos#1 ] reg byte a [ render_moving::current_cell#0 ] zp ZP_BYTE:138 [ render_moving::$2 ] zp ZP_BYTE:30 [ render_moving::l#4 render_moving::l#1 ] zp ZP_WORD:139 [ render_moving::screen_line#0 ] zp ZP_BYTE:29 [ render_moving::ypos2#2 render_moving::ypos2#0 render_moving::ypos2#1 ] Limited combination testing to 100 combinations of 3888 possible. -Uplifting [play_increase_level] best 4211482 combination reg byte a [ play_increase_level::b4#0 ] reg byte x [ play_increase_level::b#2 play_increase_level::b#1 ] reg byte a [ play_increase_level::$1 ] -Uplifting [render_playfield] best 4210882 combination zp ZP_WORD:29 [ render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 ] zp ZP_BYTE:31 [ render_playfield::c#2 render_playfield::c#1 ] zp ZP_BYTE:28 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] reg byte a [ render_playfield::$2 ] reg byte a [ render_playfield::$3 ] zp ZP_BYTE:27 [ render_playfield::l#2 render_playfield::l#1 ] +Uplifting [render_next] best 4314631 combination zp ZP_WORD:18 [ render_next::next_piece_gfx#2 render_next::next_piece_gfx#3 render_next::next_piece_gfx#1 render_next::next_piece_gfx#9 ] reg byte x [ render_next::c#2 render_next::c#1 ] zp ZP_WORD:20 [ render_next::screen_next_area#4 render_next::screen_next_area#9 render_next::screen_next_area#3 render_next::screen_next_area#10 render_next::screen_next_area#2 ] reg byte a [ render_next::cell#0 ] zp ZP_BYTE:17 [ render_next::l#7 render_next::l#1 ] zp ZP_BYTE:136 [ render_next::next_piece_char#0 ] reg byte x [ render_next::$6 ] +Uplifting [play_increase_level] best 4300625 combination reg byte a [ play_increase_level::b4#0 ] reg byte x [ play_increase_level::b#2 play_increase_level::b#1 ] reg byte a [ play_increase_level::$1 ] +Uplifting [render_playfield] best 4300025 combination zp ZP_WORD:37 [ render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 ] zp ZP_BYTE:39 [ render_playfield::c#2 render_playfield::c#1 ] zp ZP_BYTE:36 [ 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:35 [ render_playfield::l#2 render_playfield::l#1 ] Limited combination testing to 100 combinations of 128 possible. -Uplifting [play_spawn_current] best 4197866 combination reg byte x [ play_spawn_current::piece_idx#2 play_spawn_current::piece_idx#1 ] reg byte a [ play_spawn_current::$1 ] reg byte a [ play_spawn_current::$5 ] zp ZP_BYTE:164 [ play_spawn_current::$3 ] -Uplifting [keyboard_matrix_read] best 4185860 combination reg byte a [ keyboard_matrix_read::return#2 ] reg byte x [ keyboard_matrix_read::rowid#0 ] reg byte a [ keyboard_matrix_read::return#0 ] -Uplifting [sid_rnd] best 4176857 combination reg byte a [ sid_rnd::return#2 ] reg byte a [ sid_rnd::return#0 ] -Uplifting [render_screen_original] best 4174757 combination zp ZP_WORD:105 [ render_screen_original::screen#7 render_screen_original::screen#6 render_screen_original::screen#5 render_screen_original::screen#8 render_screen_original::screen#9 render_screen_original::screen#10 render_screen_original::screen#2 render_screen_original::screen#3 ] reg byte x [ render_screen_original::x#6 render_screen_original::x#5 render_screen_original::x#4 render_screen_original::x#1 render_screen_original::x#2 render_screen_original::x#3 ] zp ZP_WORD:107 [ render_screen_original::cols#6 render_screen_original::cols#5 render_screen_original::cols#4 render_screen_original::cols#7 render_screen_original::cols#3 render_screen_original::cols#1 render_screen_original::cols#2 ] zp ZP_WORD:101 [ render_screen_original::oscr#2 render_screen_original::oscr#4 render_screen_original::oscr#1 ] zp ZP_WORD:103 [ render_screen_original::ocols#2 render_screen_original::ocols#4 render_screen_original::ocols#1 ] zp ZP_BYTE:100 [ render_screen_original::y#6 render_screen_original::y#1 ] -Uplifting [main] best 4173557 combination reg byte a [ main::render#1 ] reg byte x [ main::key_event#0 ] -Uplifting [play_movement] best 4172951 combination reg byte a [ play_movement::return#3 ] zp ZP_BYTE:32 [ play_movement::return#2 play_movement::render#1 play_movement::return#0 ] zp ZP_BYTE:118 [ play_movement::key_event#0 ] reg byte a [ play_movement::$0 ] zp ZP_BYTE:138 [ play_movement::$3 ] zp ZP_BYTE:142 [ play_movement::$4 ] zp ZP_BYTE:139 [ play_movement::render#2 ] +Uplifting [keyboard_matrix_read] best 4288019 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 4279016 combination reg byte a [ sid_rnd::return#2 ] reg byte a [ sid_rnd::return#0 ] +Uplifting [render_screen_original] best 4276916 combination zp ZP_WORD:113 [ 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:115 [ 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:109 [ render_screen_original::oscr#2 render_screen_original::oscr#4 render_screen_original::oscr#1 ] zp ZP_WORD:111 [ render_screen_original::ocols#2 render_screen_original::ocols#4 render_screen_original::ocols#1 ] zp ZP_BYTE:108 [ render_screen_original::y#6 render_screen_original::y#1 ] +Uplifting [play_spawn_current] best 4270897 combination reg byte a [ play_spawn_current::$6 ] reg byte a [ play_spawn_current::$2 ] reg byte x [ play_spawn_current::current_piece_idx#0 ] zp ZP_BYTE:176 [ play_spawn_current::$0 ] +Uplifting [main] best 4269697 combination reg byte a [ main::render#1 ] reg byte x [ main::key_event#0 ] +Uplifting [play_movement] best 4269091 combination reg byte a [ play_movement::return#3 ] zp ZP_BYTE:40 [ play_movement::return#2 play_movement::render#1 play_movement::return#0 ] zp ZP_BYTE:126 [ play_movement::key_event#0 ] reg byte a [ play_movement::$0 ] zp ZP_BYTE:149 [ play_movement::$3 ] zp ZP_BYTE:153 [ play_movement::$4 ] zp ZP_BYTE:150 [ play_movement::render#2 ] Limited combination testing to 100 combinations of 6912 possible. -Uplifting [keyboard_event_get] best 4172047 combination reg byte x [ keyboard_event_get::return#3 ] reg byte x [ keyboard_event_get::return#2 keyboard_event_get::return#1 ] -Uplifting [play_init] best 4171737 combination reg byte a [ play_init::b4#0 ] reg byte x [ play_init::b#2 play_init::b#1 ] reg byte x [ play_init::j#2 play_init::j#1 ] reg byte a [ play_init::$1 ] zp ZP_BYTE:91 [ play_init::idx#2 play_init::idx#1 ] zp ZP_WORD:89 [ play_init::pli#2 play_init::pli#1 ] +Uplifting [keyboard_event_get] best 4268187 combination reg byte x [ keyboard_event_get::return#3 ] reg byte x [ keyboard_event_get::return#2 keyboard_event_get::return#1 ] +Uplifting [play_init] best 4267877 combination reg byte a [ play_init::b4#0 ] reg byte x [ play_init::b#2 play_init::b#1 ] reg byte x [ play_init::j#2 play_init::j#1 ] reg byte a [ play_init::$1 ] zp ZP_BYTE:99 [ play_init::idx#2 play_init::idx#1 ] zp ZP_WORD:97 [ play_init::pli#2 play_init::pli#1 ] Limited combination testing to 100 combinations of 432 possible. -Uplifting [render_bcd] best 4171703 combination zp ZP_WORD:7 [ render_bcd::screen#6 render_bcd::screen#0 render_bcd::screen#1 render_bcd::screen#2 render_bcd::screen#3 render_bcd::screen#4 render_bcd::screen#5 ] reg byte x [ render_bcd::bcd#6 render_bcd::bcd#0 render_bcd::bcd#1 render_bcd::bcd#2 render_bcd::bcd#3 render_bcd::bcd#4 render_bcd::bcd#5 ] zp ZP_WORD:125 [ render_bcd::screen_pos#1 ] zp ZP_WORD:13 [ render_bcd::screen_pos#3 render_bcd::screen_pos#0 render_bcd::screen_pos#2 ] reg byte a [ render_bcd::$3 ] reg byte a [ render_bcd::$4 ] reg byte a [ render_bcd::$5 ] zp ZP_BYTE:124 [ render_bcd::$6 ] zp ZP_WORD:9 [ render_bcd::offset#6 ] zp ZP_BYTE:11 [ render_bcd::only_low#6 ] +Uplifting [render_bcd] best 4267843 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:133 [ 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:132 [ 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 4171513 combination reg byte x [ render_init::i#2 render_init::i#1 ] reg byte a [ render_init::$13 ] reg byte a [ render_init::$14 ] zp ZP_WORD:98 [ render_init::li_2#2 render_init::li_2#1 ] zp ZP_WORD:96 [ render_init::li_1#2 render_init::li_1#1 ] -Uplifting [sprites_init] best 4171343 combination reg byte x [ sprites_init::s#2 sprites_init::s#1 ] reg byte a [ sprites_init::s2#0 ] zp ZP_BYTE:94 [ sprites_init::xpos#2 sprites_init::xpos#1 ] -Uplifting [play_move_down] best 4171310 combination reg byte x [ play_move_down::movedown#6 play_move_down::movedown#3 play_move_down::movedown#7 play_move_down::movedown#2 play_move_down::movedown#10 ] reg byte a [ play_move_down::return#0 ] reg byte a [ play_move_down::$2 ] reg byte a [ play_move_down::$12 ] zp ZP_BYTE:162 [ play_move_down::removed#0 ] zp ZP_BYTE:133 [ play_move_down::key_event#0 ] zp ZP_BYTE:65 [ play_move_down::return#3 ] +Uplifting [render_init] best 4267653 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:106 [ render_init::li_2#2 render_init::li_2#1 ] zp ZP_WORD:104 [ render_init::li_1#2 render_init::li_1#1 ] +Uplifting [sprites_init] best 4267483 combination reg byte x [ sprites_init::s#2 sprites_init::s#1 ] reg byte a [ sprites_init::s2#0 ] zp ZP_BYTE:102 [ sprites_init::xpos#2 sprites_init::xpos#1 ] +Uplifting [play_move_down] best 4267450 combination reg byte x [ play_move_down::movedown#6 play_move_down::movedown#3 play_move_down::movedown#7 play_move_down::movedown#2 play_move_down::movedown#10 ] reg byte a [ play_move_down::return#0 ] reg byte a [ play_move_down::$2 ] reg byte a [ play_move_down::$12 ] zp ZP_BYTE:173 [ play_move_down::removed#0 ] zp ZP_BYTE:144 [ play_move_down::key_event#0 ] zp ZP_BYTE:73 [ play_move_down::return#3 ] Limited combination testing to 100 combinations of 12288 possible. -Uplifting [keyboard_event_pressed] best 4171290 combination reg byte a [ keyboard_event_pressed::return#12 ] reg byte a [ keyboard_event_pressed::$0 ] reg byte a [ keyboard_event_pressed::$1 ] reg byte a [ keyboard_event_pressed::return#0 ] zp ZP_BYTE:194 [ keyboard_event_pressed::return#1 ] zp ZP_BYTE:196 [ keyboard_event_pressed::return#2 ] zp ZP_BYTE:198 [ keyboard_event_pressed::return#10 ] zp ZP_BYTE:186 [ keyboard_event_pressed::row_bits#0 ] zp ZP_BYTE:188 [ keyboard_event_pressed::return#11 ] zp ZP_BYTE:80 [ keyboard_event_pressed::keycode#5 ] +Uplifting [keyboard_event_pressed] best 4267430 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:206 [ keyboard_event_pressed::return#1 ] zp ZP_BYTE:208 [ keyboard_event_pressed::return#2 ] zp ZP_BYTE:210 [ keyboard_event_pressed::return#10 ] zp ZP_BYTE:198 [ keyboard_event_pressed::row_bits#0 ] zp ZP_BYTE:200 [ keyboard_event_pressed::return#11 ] zp ZP_BYTE:88 [ keyboard_event_pressed::keycode#5 ] Limited combination testing to 100 combinations of 589824 possible. -Uplifting [sprites_irq] best 4171266 combination zp ZP_BYTE:214 [ sprites_irq::raster_sprite_gfx_modify#0 ] reg byte x [ sprites_irq::$0 ] reg byte a [ sprites_irq::ptr#4 ] reg byte a [ sprites_irq::ptr#2 ] reg byte a [ sprites_irq::ptr#3 ] zp ZP_BYTE:226 [ sprites_irq::ptr#1 ] zp ZP_BYTE:212 [ sprites_irq::ypos#0 ] zp ZP_BYTE:215 [ sprites_irq::ptr#0 ] +Uplifting [sprites_irq] best 4267406 combination zp ZP_BYTE:226 [ sprites_irq::raster_sprite_gfx_modify#0 ] reg byte x [ sprites_irq::$0 ] reg byte a [ sprites_irq::ptr#4 ] reg byte a [ sprites_irq::ptr#2 ] reg byte a [ sprites_irq::ptr#3 ] zp ZP_BYTE:238 [ sprites_irq::ptr#1 ] zp ZP_BYTE:224 [ sprites_irq::ypos#0 ] zp ZP_BYTE:227 [ sprites_irq::ptr#0 ] Limited combination testing to 100 combinations of 12288 possible. -Uplifting [play_move_rotate] best 4171248 combination zp ZP_BYTE:34 [ play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] reg byte a [ play_move_rotate::return#0 ] reg byte a [ play_move_rotate::$2 ] reg byte a [ play_move_rotate::$6 ] zp ZP_BYTE:146 [ play_move_rotate::$4 ] zp ZP_BYTE:140 [ play_move_rotate::key_event#0 ] zp ZP_BYTE:33 [ play_move_rotate::return#2 ] +Uplifting [play_move_rotate] best 4267388 combination zp ZP_BYTE:42 [ play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] reg byte a [ play_move_rotate::return#0 ] reg byte a [ play_move_rotate::$2 ] reg byte a [ play_move_rotate::$6 ] zp ZP_BYTE:157 [ play_move_rotate::$4 ] zp ZP_BYTE:151 [ play_move_rotate::key_event#0 ] zp ZP_BYTE:41 [ play_move_rotate::return#2 ] Limited combination testing to 100 combinations of 12288 possible. -Uplifting [play_update_score] best 4171226 combination reg byte a [ play_update_score::$2 ] reg byte a [ play_update_score::$4 ] reg byte a [ play_update_score::$5 ] reg byte a [ play_update_score::lines_after#0 ] zp ZP_DWORD:173 [ play_update_score::add_bcd#0 ] zp ZP_BYTE:163 [ play_update_score::removed#0 ] zp ZP_BYTE:171 [ play_update_score::lines_before#0 ] +Uplifting [play_update_score] best 4267366 combination reg byte a [ play_update_score::$2 ] reg byte a [ play_update_score::$4 ] reg byte a [ play_update_score::$5 ] reg byte a [ play_update_score::lines_after#0 ] zp ZP_DWORD:185 [ play_update_score::add_bcd#0 ] zp ZP_BYTE:174 [ play_update_score::removed#0 ] zp ZP_BYTE:183 [ play_update_score::lines_before#0 ] Limited combination testing to 100 combinations of 2304 possible. -Uplifting [play_move_leftright] best 4171199 combination reg byte a [ play_move_leftright::return#0 ] reg byte a [ play_move_leftright::$4 ] reg byte a [ play_move_leftright::$8 ] reg byte a [ play_move_leftright::key_event#0 ] zp ZP_BYTE:46 [ play_move_leftright::return#2 ] +Uplifting [play_move_leftright] best 4267339 combination reg byte a [ play_move_leftright::return#0 ] reg byte a [ play_move_leftright::$4 ] reg byte a [ play_move_leftright::$8 ] reg byte a [ play_move_leftright::key_event#0 ] zp ZP_BYTE:54 [ play_move_leftright::return#2 ] Limited combination testing to 100 combinations of 1024 possible. -Uplifting [render_show] best 4171190 combination reg byte a [ render_show::d018val#3 ] -Uplifting [render_score] best 4171190 combination zp ZP_WORD:5 [ render_score::screen#2 ] -Uplifting [sid_rnd_init] best 4171190 combination -Uplifting [render_screen_swap] best 4171190 combination -Uplifting [sprites_irq_init] best 4171190 combination -Attempting to uplift remaining variables inzp ZP_BYTE:86 [ keyboard_events_size#10 keyboard_events_size#29 keyboard_events_size#19 keyboard_events_size#16 keyboard_events_size#13 keyboard_events_size#4 keyboard_events_size#30 keyboard_events_size#2 keyboard_events_size#1 ] -Uplifting [] best 4171190 combination zp ZP_BYTE:86 [ keyboard_events_size#10 keyboard_events_size#29 keyboard_events_size#19 keyboard_events_size#16 keyboard_events_size#13 keyboard_events_size#4 keyboard_events_size#30 keyboard_events_size#2 keyboard_events_size#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:42 [ play_collision::i#2 play_collision::i#3 play_collision::i#11 play_collision::i#13 ] -Uplifting [play_collision] best 4171190 combination zp ZP_BYTE:42 [ play_collision::i#2 play_collision::i#3 play_collision::i#11 play_collision::i#13 ] -Attempting to uplift remaining variables inzp ZP_BYTE:77 [ play_lock_current::i#2 play_lock_current::i#3 play_lock_current::i#7 play_lock_current::i#9 ] -Uplifting [play_lock_current] best 4171190 combination zp ZP_BYTE:77 [ play_lock_current::i#2 play_lock_current::i#3 play_lock_current::i#7 play_lock_current::i#9 ] -Attempting to uplift remaining variables inzp ZP_BYTE:84 [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] -Uplifting [keyboard_event_scan] best 4021190 combination reg byte x [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:72 [ play_remove_lines::x#2 play_remove_lines::x#1 ] -Uplifting [play_remove_lines] best 4021190 combination zp ZP_BYTE:72 [ play_remove_lines::x#2 play_remove_lines::x#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:78 [ play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 ] -Uplifting [play_lock_current] best 4021190 combination zp ZP_BYTE:78 [ play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:43 [ play_collision::col#2 play_collision::col#9 play_collision::col#1 ] -Uplifting [play_collision] best 4021190 combination zp ZP_BYTE:43 [ play_collision::col#2 play_collision::col#9 play_collision::col#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:85 [ keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 keyboard_event_scan::keycode#15 ] -Uplifting [keyboard_event_scan] best 4021190 combination zp ZP_BYTE:85 [ keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 keyboard_event_scan::keycode#15 ] -Attempting to uplift remaining variables inzp ZP_BYTE:73 [ play_remove_lines::full#4 play_remove_lines::full#2 ] -Uplifting [play_remove_lines] best 4021190 combination zp ZP_BYTE:73 [ play_remove_lines::full#4 play_remove_lines::full#2 ] -Attempting to uplift remaining variables inzp ZP_BYTE:181 [ play_remove_lines::c#0 ] -Uplifting [play_remove_lines] best 4021190 combination zp ZP_BYTE:181 [ play_remove_lines::c#0 ] -Attempting to uplift remaining variables inzp ZP_BYTE:23 [ render_moving::i#4 render_moving::i#3 render_moving::i#8 render_moving::i#2 render_moving::i#1 ] -Uplifting [render_moving] best 4021190 combination zp ZP_BYTE:23 [ render_moving::i#4 render_moving::i#3 render_moving::i#8 render_moving::i#2 render_moving::i#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:70 [ play_remove_lines::removed#11 play_remove_lines::removed#7 play_remove_lines::removed#1 ] -Uplifting [play_remove_lines] best 4021190 combination zp ZP_BYTE:70 [ play_remove_lines::removed#11 play_remove_lines::removed#7 play_remove_lines::removed#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:184 [ play_lock_current::i#1 ] -Uplifting [play_lock_current] best 4021190 combination zp ZP_BYTE:184 [ play_lock_current::i#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:82 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] -Uplifting [keyboard_event_scan] best 4021190 combination zp ZP_BYTE:82 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:31 [ render_playfield::c#2 render_playfield::c#1 ] -Uplifting [render_playfield] best 4021190 combination zp ZP_BYTE:31 [ render_playfield::c#2 render_playfield::c#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:25 [ render_moving::c#2 render_moving::c#1 ] -Uplifting [render_moving] best 4021190 combination zp ZP_BYTE:25 [ render_moving::c#2 render_moving::c#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:69 [ play_remove_lines::y#8 play_remove_lines::y#1 ] -Uplifting [play_remove_lines] best 4021190 combination zp ZP_BYTE:69 [ play_remove_lines::y#8 play_remove_lines::y#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:151 [ play_collision::i#1 ] -Uplifting [play_collision] best 4021190 combination zp ZP_BYTE:151 [ play_collision::i#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:28 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] -Uplifting [render_playfield] best 4021190 combination zp ZP_BYTE:28 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:24 [ render_moving::xpos#2 render_moving::xpos#0 render_moving::xpos#1 ] -Uplifting [render_moving] best 4021190 combination zp ZP_BYTE:24 [ render_moving::xpos#2 render_moving::xpos#0 render_moving::xpos#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:40 [ play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 ] -Uplifting [play_collision] best 4021190 combination zp ZP_BYTE:40 [ play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:191 [ keyboard_event_scan::row_scan#0 ] -Uplifting [keyboard_event_scan] best 4021190 combination zp ZP_BYTE:191 [ keyboard_event_scan::row_scan#0 ] -Attempting to uplift remaining variables inzp ZP_BYTE:76 [ play_lock_current::l#6 play_lock_current::l#1 ] -Uplifting [play_lock_current] best 4021190 combination zp ZP_BYTE:76 [ play_lock_current::l#6 play_lock_current::l#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:41 [ play_collision::l#6 play_collision::l#1 ] -Uplifting [play_collision] best 4021190 combination zp ZP_BYTE:41 [ play_collision::l#6 play_collision::l#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:75 [ play_lock_current::ypos2#2 play_lock_current::ypos2#0 play_lock_current::ypos2#1 ] -Uplifting [play_lock_current] best 4021190 combination zp ZP_BYTE:75 [ play_lock_current::ypos2#2 play_lock_current::ypos2#0 play_lock_current::ypos2#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:127 [ render_moving::$2 ] -Uplifting [render_moving] best 4020790 combination reg byte a [ render_moving::$2 ] -Attempting to uplift remaining variables inzp ZP_BYTE:60 [ current_piece_char#27 current_piece_char#19 current_piece_char#14 current_piece_char#16 ] -Uplifting [] best 4020790 combination zp ZP_BYTE:60 [ current_piece_char#27 current_piece_char#19 current_piece_char#14 current_piece_char#16 ] -Attempting to uplift remaining variables inzp ZP_BYTE:27 [ render_playfield::l#2 render_playfield::l#1 ] -Uplifting [render_playfield] best 4020790 combination zp ZP_BYTE:27 [ render_playfield::l#2 render_playfield::l#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:22 [ render_moving::l#4 render_moving::l#1 ] -Uplifting [render_moving] best 4020790 combination zp ZP_BYTE:22 [ render_moving::l#4 render_moving::l#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:21 [ render_moving::ypos2#2 render_moving::ypos2#0 render_moving::ypos2#1 ] -Uplifting [render_moving] best 4020790 combination zp ZP_BYTE:21 [ render_moving::ypos2#2 render_moving::ypos2#0 render_moving::ypos2#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:39 [ play_collision::xpos#6 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 play_collision::xpos#4 ] -Uplifting [play_collision] best 4020790 combination zp ZP_BYTE:39 [ play_collision::xpos#6 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 play_collision::xpos#4 ] -Attempting to uplift remaining variables inzp ZP_BYTE:64 [ current_xpos#41 current_xpos#113 current_xpos#17 current_xpos#28 current_xpos#20 current_xpos#24 current_xpos#7 current_xpos#5 ] -Uplifting [] best 4020790 combination zp ZP_BYTE:64 [ current_xpos#41 current_xpos#113 current_xpos#17 current_xpos#28 current_xpos#20 current_xpos#24 current_xpos#7 current_xpos#5 ] -Attempting to uplift remaining variables inzp ZP_BYTE:32 [ play_movement::return#2 play_movement::render#1 play_movement::return#0 ] -Uplifting [play_movement] best 4020790 combination zp ZP_BYTE:32 [ play_movement::return#2 play_movement::render#1 play_movement::return#0 ] -Attempting to uplift remaining variables inzp ZP_BYTE:15 [ current_ypos#11 current_ypos#100 current_ypos#101 ] -Uplifting [] best 4020756 combination reg byte y [ current_ypos#11 current_ypos#100 current_ypos#101 ] -Attempting to uplift remaining variables inzp ZP_BYTE:200 [ keyboard_modifiers#5 ] -Uplifting [] best 4020753 combination reg byte a [ keyboard_modifiers#5 ] -Attempting to uplift remaining variables inzp ZP_BYTE:206 [ render_screen_showing#1 ] -Uplifting [] best 4020753 combination zp ZP_BYTE:206 [ render_screen_showing#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:219 [ irq_sprite_ypos#3 ] -Uplifting [] best 4020753 combination zp ZP_BYTE:219 [ irq_sprite_ypos#3 ] -Attempting to uplift remaining variables inzp ZP_BYTE:220 [ irq_sprite_ptr#3 ] -Uplifting [] best 4020753 combination zp ZP_BYTE:220 [ irq_sprite_ptr#3 ] -Attempting to uplift remaining variables inzp ZP_BYTE:221 [ irq_cnt#2 ] -Uplifting [] best 4020753 combination zp ZP_BYTE:221 [ irq_cnt#2 ] -Attempting to uplift remaining variables inzp ZP_BYTE:222 [ irq_sprite_ypos#2 ] -Uplifting [] best 4020753 combination zp ZP_BYTE:222 [ irq_sprite_ypos#2 ] -Attempting to uplift remaining variables inzp ZP_BYTE:223 [ irq_sprite_ptr#2 ] -Uplifting [] best 4020753 combination zp ZP_BYTE:223 [ irq_sprite_ptr#2 ] -Attempting to uplift remaining variables inzp ZP_BYTE:224 [ irq_sprite_ypos#1 ] -Uplifting [] best 4020753 combination zp ZP_BYTE:224 [ irq_sprite_ypos#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:225 [ irq_sprite_ptr#1 ] -Uplifting [] best 4020753 combination zp ZP_BYTE:225 [ irq_sprite_ptr#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:57 [ level_bcd#32 level_bcd#19 level_bcd#11 level_bcd#17 level_bcd#64 level_bcd#21 level_bcd#8 ] -Uplifting [] best 4020753 combination zp ZP_BYTE:57 [ level_bcd#32 level_bcd#19 level_bcd#11 level_bcd#17 level_bcd#64 level_bcd#21 level_bcd#8 ] -Attempting to uplift remaining variables inzp ZP_BYTE:61 [ current_orientation#36 current_orientation#12 current_orientation#16 current_orientation#19 current_orientation#24 current_orientation#7 ] -Uplifting [] best 4020753 combination zp ZP_BYTE:61 [ current_orientation#36 current_orientation#12 current_orientation#16 current_orientation#19 current_orientation#24 current_orientation#7 ] -Attempting to uplift remaining variables inzp ZP_BYTE:37 [ play_collision::orientation#5 play_collision::orientation#0 play_collision::orientation#1 play_collision::orientation#2 play_collision::orientation#3 ] -Uplifting [play_collision] best 4020737 combination reg byte x [ play_collision::orientation#5 play_collision::orientation#0 play_collision::orientation#1 play_collision::orientation#2 play_collision::orientation#3 ] -Attempting to uplift remaining variables inzp ZP_BYTE:100 [ render_screen_original::y#6 render_screen_original::y#1 ] -Uplifting [render_screen_original] best 4020737 combination zp ZP_BYTE:100 [ render_screen_original::y#6 render_screen_original::y#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:56 [ current_movedown_slow#38 current_movedown_slow#23 current_movedown_slow#14 current_movedown_slow#21 current_movedown_slow#1 current_movedown_slow#69 current_movedown_slow#10 ] -Uplifting [] best 4020737 combination zp ZP_BYTE:56 [ current_movedown_slow#38 current_movedown_slow#23 current_movedown_slow#14 current_movedown_slow#21 current_movedown_slow#1 current_movedown_slow#69 current_movedown_slow#10 ] -Attempting to uplift remaining variables inzp ZP_BYTE:94 [ sprites_init::xpos#2 sprites_init::xpos#1 ] -Uplifting [sprites_init] best 4020737 combination zp ZP_BYTE:94 [ sprites_init::xpos#2 sprites_init::xpos#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:48 [ current_ypos#36 current_ypos#25 current_ypos#17 current_ypos#22 current_ypos#2 ] -Uplifting [] best 4020737 combination zp ZP_BYTE:48 [ current_ypos#36 current_ypos#25 current_ypos#17 current_ypos#22 current_ypos#2 ] -Attempting to uplift remaining variables inzp ZP_BYTE:66 [ game_over#70 game_over#26 game_over#19 game_over#14 game_over#15 ] -Uplifting [] best 4020737 combination zp ZP_BYTE:66 [ game_over#70 game_over#26 game_over#19 game_over#14 game_over#15 ] -Attempting to uplift remaining variables inzp ZP_BYTE:17 [ current_xpos#57 current_xpos#124 current_xpos#125 ] -Uplifting [] best 4020737 combination zp ZP_BYTE:17 [ current_xpos#57 current_xpos#124 current_xpos#125 ] -Attempting to uplift remaining variables inzp ZP_BYTE:91 [ play_init::idx#2 play_init::idx#1 ] -Uplifting [play_init] best 4020737 combination zp ZP_BYTE:91 [ play_init::idx#2 play_init::idx#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:55 [ level#31 level#18 level#10 level#16 level#20 ] -Uplifting [] best 4020737 combination zp ZP_BYTE:55 [ level#31 level#18 level#10 level#16 level#20 ] -Attempting to uplift remaining variables inzp ZP_BYTE:38 [ play_collision::ypos#5 play_collision::ypos#0 play_collision::ypos#1 play_collision::ypos#2 play_collision::ypos#3 play_collision::ypos#4 ] -Uplifting [play_collision] best 4020737 combination zp ZP_BYTE:38 [ play_collision::ypos#5 play_collision::ypos#0 play_collision::ypos#1 play_collision::ypos#2 play_collision::ypos#3 play_collision::ypos#4 ] +Uplifting [render_show] best 4267330 combination reg byte a [ render_show::d018val#3 ] +Uplifting [render_score] best 4267330 combination zp ZP_WORD:5 [ render_score::screen#2 ] +Uplifting [sid_rnd_init] best 4267330 combination +Uplifting [render_screen_swap] best 4267330 combination +Uplifting [sprites_irq_init] best 4267330 combination +Attempting to uplift remaining variables inzp ZP_BYTE:94 [ 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 4267330 combination zp ZP_BYTE:94 [ 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:50 [ play_collision::i#2 play_collision::i#3 play_collision::i#11 play_collision::i#13 ] +Uplifting [play_collision] best 4267330 combination zp ZP_BYTE:50 [ play_collision::i#2 play_collision::i#3 play_collision::i#11 play_collision::i#13 ] +Attempting to uplift remaining variables inzp ZP_BYTE:85 [ 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 4267330 combination zp ZP_BYTE:85 [ 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:92 [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] +Uplifting [keyboard_event_scan] best 4117330 combination reg byte x [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:80 [ play_remove_lines::x#2 play_remove_lines::x#1 ] +Uplifting [play_remove_lines] best 4117330 combination zp ZP_BYTE:80 [ play_remove_lines::x#2 play_remove_lines::x#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:86 [ play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 ] +Uplifting [play_lock_current] best 4117330 combination zp ZP_BYTE:86 [ play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:51 [ play_collision::col#2 play_collision::col#9 play_collision::col#1 ] +Uplifting [play_collision] best 4117330 combination zp ZP_BYTE:51 [ play_collision::col#2 play_collision::col#9 play_collision::col#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:93 [ 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 4117330 combination zp ZP_BYTE:93 [ 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:81 [ play_remove_lines::full#4 play_remove_lines::full#2 ] +Uplifting [play_remove_lines] best 4117330 combination zp ZP_BYTE:81 [ play_remove_lines::full#4 play_remove_lines::full#2 ] +Attempting to uplift remaining variables inzp ZP_BYTE:193 [ play_remove_lines::c#0 ] +Uplifting [play_remove_lines] best 4117330 combination zp ZP_BYTE:193 [ play_remove_lines::c#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:31 [ render_moving::i#4 render_moving::i#3 render_moving::i#8 render_moving::i#2 render_moving::i#1 ] +Uplifting [render_moving] best 4117330 combination zp ZP_BYTE:31 [ render_moving::i#4 render_moving::i#3 render_moving::i#8 render_moving::i#2 render_moving::i#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:78 [ play_remove_lines::removed#11 play_remove_lines::removed#7 play_remove_lines::removed#1 ] +Uplifting [play_remove_lines] best 4117330 combination zp ZP_BYTE:78 [ play_remove_lines::removed#11 play_remove_lines::removed#7 play_remove_lines::removed#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:196 [ play_lock_current::i#1 ] +Uplifting [play_lock_current] best 4117330 combination zp ZP_BYTE:196 [ play_lock_current::i#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:74 [ next_piece_idx#17 next_piece_idx#31 next_piece_idx#10 next_piece_idx#16 play_spawn_current::piece_idx#2 play_spawn_current::piece_idx#1 ] +Uplifting [] best 4117330 combination zp ZP_BYTE:74 [ next_piece_idx#17 next_piece_idx#31 next_piece_idx#10 next_piece_idx#16 play_spawn_current::piece_idx#2 play_spawn_current::piece_idx#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:90 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] +Uplifting [keyboard_event_scan] best 4117330 combination zp ZP_BYTE:90 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:39 [ render_playfield::c#2 render_playfield::c#1 ] +Uplifting [render_playfield] best 4117330 combination zp ZP_BYTE:39 [ render_playfield::c#2 render_playfield::c#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:33 [ render_moving::c#2 render_moving::c#1 ] +Uplifting [render_moving] best 4117330 combination zp ZP_BYTE:33 [ render_moving::c#2 render_moving::c#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:77 [ play_remove_lines::y#8 play_remove_lines::y#1 ] +Uplifting [play_remove_lines] best 4117330 combination zp ZP_BYTE:77 [ play_remove_lines::y#8 play_remove_lines::y#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:162 [ play_collision::i#1 ] +Uplifting [play_collision] best 4117330 combination zp ZP_BYTE:162 [ play_collision::i#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:36 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] +Uplifting [render_playfield] best 4117330 combination zp ZP_BYTE:36 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:32 [ render_moving::xpos#2 render_moving::xpos#0 render_moving::xpos#1 ] +Uplifting [render_moving] best 4117330 combination zp ZP_BYTE:32 [ render_moving::xpos#2 render_moving::xpos#0 render_moving::xpos#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:48 [ play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 ] +Uplifting [play_collision] best 4117330 combination zp ZP_BYTE:48 [ play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:203 [ keyboard_event_scan::row_scan#0 ] +Uplifting [keyboard_event_scan] best 4117330 combination zp ZP_BYTE:203 [ keyboard_event_scan::row_scan#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:84 [ play_lock_current::l#6 play_lock_current::l#1 ] +Uplifting [play_lock_current] best 4117330 combination zp ZP_BYTE:84 [ play_lock_current::l#6 play_lock_current::l#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:49 [ play_collision::l#6 play_collision::l#1 ] +Uplifting [play_collision] best 4117330 combination zp ZP_BYTE:49 [ play_collision::l#6 play_collision::l#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:83 [ play_lock_current::ypos2#2 play_lock_current::ypos2#0 play_lock_current::ypos2#1 ] +Uplifting [play_lock_current] best 4117330 combination zp ZP_BYTE:83 [ play_lock_current::ypos2#2 play_lock_current::ypos2#0 play_lock_current::ypos2#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:138 [ render_moving::$2 ] +Uplifting [render_moving] best 4116930 combination reg byte a [ render_moving::$2 ] +Attempting to uplift remaining variables inzp ZP_BYTE:68 [ current_piece_char#29 current_piece_char#21 current_piece_char#15 current_piece_char#4 ] +Uplifting [] best 4116930 combination zp ZP_BYTE:68 [ current_piece_char#29 current_piece_char#21 current_piece_char#15 current_piece_char#4 ] +Attempting to uplift remaining variables inzp ZP_BYTE:35 [ render_playfield::l#2 render_playfield::l#1 ] +Uplifting [render_playfield] best 4116930 combination zp ZP_BYTE:35 [ render_playfield::l#2 render_playfield::l#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:17 [ render_next::l#7 render_next::l#1 ] +Uplifting [render_next] best 4116930 combination zp ZP_BYTE:17 [ render_next::l#7 render_next::l#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:30 [ render_moving::l#4 render_moving::l#1 ] +Uplifting [render_moving] best 4116930 combination zp ZP_BYTE:30 [ render_moving::l#4 render_moving::l#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:29 [ render_moving::ypos2#2 render_moving::ypos2#0 render_moving::ypos2#1 ] +Uplifting [render_moving] best 4116930 combination zp ZP_BYTE:29 [ render_moving::ypos2#2 render_moving::ypos2#0 render_moving::ypos2#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:136 [ render_next::next_piece_char#0 ] +Uplifting [render_next] best 4116930 combination zp ZP_BYTE:136 [ render_next::next_piece_char#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:47 [ play_collision::xpos#6 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 play_collision::xpos#4 ] +Uplifting [play_collision] best 4116930 combination zp ZP_BYTE:47 [ play_collision::xpos#6 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 play_collision::xpos#4 ] +Attempting to uplift remaining variables inzp ZP_BYTE:72 [ current_xpos#43 current_xpos#121 current_xpos#18 current_xpos#102 current_xpos#21 current_xpos#25 current_xpos#7 current_xpos#5 ] +Uplifting [] best 4116930 combination zp ZP_BYTE:72 [ current_xpos#43 current_xpos#121 current_xpos#18 current_xpos#102 current_xpos#21 current_xpos#25 current_xpos#7 current_xpos#5 ] +Attempting to uplift remaining variables inzp ZP_BYTE:40 [ play_movement::return#2 play_movement::render#1 play_movement::return#0 ] +Uplifting [play_movement] best 4116930 combination zp ZP_BYTE:40 [ play_movement::return#2 play_movement::render#1 play_movement::return#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:16 [ next_piece_idx#12 next_piece_idx#84 next_piece_idx#85 ] +Uplifting [] best 4116893 combination reg byte y [ next_piece_idx#12 next_piece_idx#84 next_piece_idx#85 ] +Attempting to uplift remaining variables inzp ZP_BYTE:15 [ render_screen_render#15 render_screen_render#68 ] +Uplifting [] best 4116857 combination reg byte a [ render_screen_render#15 render_screen_render#68 ] +Attempting to uplift remaining variables inzp ZP_BYTE:23 [ current_ypos#12 current_ypos#108 current_ypos#109 ] +Uplifting [] best 4116823 combination reg byte y [ current_ypos#12 current_ypos#108 current_ypos#109 ] +Attempting to uplift remaining variables inzp ZP_BYTE:212 [ keyboard_modifiers#5 ] +Uplifting [] best 4116820 combination reg byte a [ keyboard_modifiers#5 ] +Attempting to uplift remaining variables inzp ZP_BYTE:218 [ render_screen_showing#1 ] +Uplifting [] best 4116820 combination zp ZP_BYTE:218 [ render_screen_showing#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:231 [ irq_sprite_ypos#3 ] +Uplifting [] best 4116820 combination zp ZP_BYTE:231 [ irq_sprite_ypos#3 ] +Attempting to uplift remaining variables inzp ZP_BYTE:232 [ irq_sprite_ptr#3 ] +Uplifting [] best 4116820 combination zp ZP_BYTE:232 [ irq_sprite_ptr#3 ] +Attempting to uplift remaining variables inzp ZP_BYTE:233 [ irq_cnt#2 ] +Uplifting [] best 4116820 combination zp ZP_BYTE:233 [ irq_cnt#2 ] +Attempting to uplift remaining variables inzp ZP_BYTE:234 [ irq_sprite_ypos#2 ] +Uplifting [] best 4116820 combination zp ZP_BYTE:234 [ irq_sprite_ypos#2 ] +Attempting to uplift remaining variables inzp ZP_BYTE:235 [ irq_sprite_ptr#2 ] +Uplifting [] best 4116820 combination zp ZP_BYTE:235 [ irq_sprite_ptr#2 ] +Attempting to uplift remaining variables inzp ZP_BYTE:236 [ irq_sprite_ypos#1 ] +Uplifting [] best 4116820 combination zp ZP_BYTE:236 [ irq_sprite_ypos#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:237 [ irq_sprite_ptr#1 ] +Uplifting [] best 4116820 combination zp ZP_BYTE:237 [ irq_sprite_ptr#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:65 [ level_bcd#32 level_bcd#19 level_bcd#11 level_bcd#17 level_bcd#64 level_bcd#21 level_bcd#8 ] +Uplifting [] best 4116820 combination zp ZP_BYTE:65 [ level_bcd#32 level_bcd#19 level_bcd#11 level_bcd#17 level_bcd#64 level_bcd#21 level_bcd#8 ] +Attempting to uplift remaining variables inzp ZP_BYTE:45 [ play_collision::orientation#5 play_collision::orientation#0 play_collision::orientation#1 play_collision::orientation#2 play_collision::orientation#3 ] +Uplifting [play_collision] best 4116804 combination reg byte x [ play_collision::orientation#5 play_collision::orientation#0 play_collision::orientation#1 play_collision::orientation#2 play_collision::orientation#3 ] +Attempting to uplift remaining variables inzp ZP_BYTE:108 [ render_screen_original::y#6 render_screen_original::y#1 ] +Uplifting [render_screen_original] best 4116804 combination zp ZP_BYTE:108 [ render_screen_original::y#6 render_screen_original::y#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:69 [ current_orientation#38 current_orientation#13 current_orientation#17 current_orientation#20 current_orientation#25 current_orientation#7 ] +Uplifting [] best 4116804 combination zp ZP_BYTE:69 [ current_orientation#38 current_orientation#13 current_orientation#17 current_orientation#20 current_orientation#25 current_orientation#7 ] +Attempting to uplift remaining variables inzp ZP_BYTE:64 [ current_movedown_slow#38 current_movedown_slow#23 current_movedown_slow#14 current_movedown_slow#21 current_movedown_slow#1 current_movedown_slow#69 current_movedown_slow#10 ] +Uplifting [] best 4116804 combination zp ZP_BYTE:64 [ current_movedown_slow#38 current_movedown_slow#23 current_movedown_slow#14 current_movedown_slow#21 current_movedown_slow#1 current_movedown_slow#69 current_movedown_slow#10 ] +Attempting to uplift remaining variables inzp ZP_BYTE:102 [ sprites_init::xpos#2 sprites_init::xpos#1 ] +Uplifting [sprites_init] best 4116804 combination zp ZP_BYTE:102 [ sprites_init::xpos#2 sprites_init::xpos#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:56 [ current_ypos#38 current_ypos#10 current_ypos#18 current_ypos#5 current_ypos#2 ] +Uplifting [] best 4116804 combination zp ZP_BYTE:56 [ current_ypos#38 current_ypos#10 current_ypos#18 current_ypos#5 current_ypos#2 ] +Attempting to uplift remaining variables inzp ZP_BYTE:75 [ game_over#65 game_over#28 game_over#10 game_over#15 game_over#52 ] +Uplifting [] best 4116804 combination zp ZP_BYTE:75 [ game_over#65 game_over#28 game_over#10 game_over#15 game_over#52 ] +Attempting to uplift remaining variables inzp ZP_BYTE:25 [ current_xpos#58 current_xpos#132 current_xpos#133 ] +Uplifting [] best 4116804 combination zp ZP_BYTE:25 [ current_xpos#58 current_xpos#132 current_xpos#133 ] +Attempting to uplift remaining variables inzp ZP_BYTE:99 [ play_init::idx#2 play_init::idx#1 ] +Uplifting [play_init] best 4116804 combination zp ZP_BYTE:99 [ play_init::idx#2 play_init::idx#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:46 [ play_collision::ypos#5 play_collision::ypos#0 play_collision::ypos#1 play_collision::ypos#2 play_collision::ypos#3 play_collision::ypos#4 ] +Uplifting [play_collision] best 4116804 combination zp ZP_BYTE:46 [ play_collision::ypos#5 play_collision::ypos#0 play_collision::ypos#1 play_collision::ypos#2 play_collision::ypos#3 play_collision::ypos#4 ] +Attempting to uplift remaining variables inzp ZP_BYTE:63 [ level#31 level#18 level#10 level#16 level#20 ] +Uplifting [] best 4116804 combination zp ZP_BYTE:63 [ level#31 level#18 level#10 level#16 level#20 ] Attempting to uplift remaining variables inzp ZP_BYTE:4 [ current_movedown_counter#16 current_movedown_counter#14 current_movedown_counter#12 ] -Uplifting [] best 4020737 combination zp ZP_BYTE:4 [ current_movedown_counter#16 current_movedown_counter#14 current_movedown_counter#12 ] -Attempting to uplift remaining variables inzp ZP_BYTE:110 [ irq_raster_next#4 irq_raster_next#3 irq_raster_next#1 irq_raster_next#2 ] -Uplifting [] best 4020737 combination zp ZP_BYTE:110 [ irq_raster_next#4 irq_raster_next#3 irq_raster_next#1 irq_raster_next#2 ] -Attempting to uplift remaining variables inzp ZP_BYTE:83 [ keyboard_modifiers#13 keyboard_modifiers#4 keyboard_modifiers#12 keyboard_modifiers#3 keyboard_modifiers#11 ] -Uplifting [] best 4020726 combination reg byte x [ keyboard_modifiers#13 keyboard_modifiers#4 keyboard_modifiers#12 keyboard_modifiers#3 keyboard_modifiers#11 ] -Attempting to uplift remaining variables inzp ZP_BYTE:16 [ render_screen_render#30 render_screen_render#64 ] -Uplifting [] best 4020726 combination zp ZP_BYTE:16 [ render_screen_render#30 render_screen_render#64 ] -Attempting to uplift remaining variables inzp ZP_BYTE:118 [ play_movement::key_event#0 ] -Uplifting [play_movement] best 4020726 combination zp ZP_BYTE:118 [ play_movement::key_event#0 ] -Attempting to uplift remaining variables inzp ZP_BYTE:34 [ play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] -Uplifting [play_move_rotate] best 4020726 combination zp ZP_BYTE:34 [ play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] -Attempting to uplift remaining variables inzp ZP_BYTE:214 [ sprites_irq::raster_sprite_gfx_modify#0 ] -Uplifting [sprites_irq] best 4020726 combination zp ZP_BYTE:214 [ sprites_irq::raster_sprite_gfx_modify#0 ] +Uplifting [] best 4116804 combination zp ZP_BYTE:4 [ current_movedown_counter#16 current_movedown_counter#14 current_movedown_counter#12 ] +Attempting to uplift remaining variables inzp ZP_BYTE:118 [ irq_raster_next#4 irq_raster_next#3 irq_raster_next#1 irq_raster_next#2 ] +Uplifting [] best 4116804 combination zp ZP_BYTE:118 [ irq_raster_next#4 irq_raster_next#3 irq_raster_next#1 irq_raster_next#2 ] +Attempting to uplift remaining variables inzp ZP_BYTE:91 [ keyboard_modifiers#13 keyboard_modifiers#4 keyboard_modifiers#12 keyboard_modifiers#3 keyboard_modifiers#11 ] +Uplifting [] best 4116793 combination reg byte x [ keyboard_modifiers#13 keyboard_modifiers#4 keyboard_modifiers#12 keyboard_modifiers#3 keyboard_modifiers#11 ] +Attempting to uplift remaining variables inzp ZP_BYTE:24 [ render_screen_render#33 render_screen_render#69 ] +Uplifting [] best 4116793 combination zp ZP_BYTE:24 [ render_screen_render#33 render_screen_render#69 ] +Attempting to uplift remaining variables inzp ZP_BYTE:126 [ play_movement::key_event#0 ] +Uplifting [play_movement] best 4116793 combination zp ZP_BYTE:126 [ play_movement::key_event#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:42 [ play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] +Uplifting [play_move_rotate] best 4116793 combination zp ZP_BYTE:42 [ play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] +Attempting to uplift remaining variables inzp ZP_BYTE:226 [ sprites_irq::raster_sprite_gfx_modify#0 ] +Uplifting [sprites_irq] best 4116793 combination zp ZP_BYTE:226 [ sprites_irq::raster_sprite_gfx_modify#0 ] Attempting to uplift remaining variables inzp ZP_BYTE:2 [ render_screen_show#16 render_screen_show#13 ] -Uplifting [] best 4020726 combination zp ZP_BYTE:2 [ render_screen_show#16 render_screen_show#13 ] -Attempting to uplift remaining variables inzp ZP_BYTE:3 [ render_screen_render#17 render_screen_render#11 ] -Uplifting [] best 4020726 combination zp ZP_BYTE:3 [ render_screen_render#17 render_screen_render#11 ] -Attempting to uplift remaining variables inzp ZP_BYTE:124 [ render_bcd::$6 ] -Uplifting [render_bcd] best 4020720 combination reg byte a [ render_bcd::$6 ] -Attempting to uplift remaining variables inzp ZP_BYTE:138 [ play_movement::$3 ] -Uplifting [play_movement] best 4020714 combination reg byte a [ play_movement::$3 ] -Attempting to uplift remaining variables inzp ZP_BYTE:142 [ play_movement::$4 ] -Uplifting [play_movement] best 4020708 combination reg byte a [ play_movement::$4 ] -Attempting to uplift remaining variables inzp ZP_BYTE:144 [ play_collision::return#14 ] -Uplifting [play_collision] best 4020702 combination reg byte a [ play_collision::return#14 ] -Attempting to uplift remaining variables inzp ZP_BYTE:146 [ play_move_rotate::$4 ] -Uplifting [play_move_rotate] best 4020696 combination reg byte a [ play_move_rotate::$4 ] -Attempting to uplift remaining variables inzp ZP_BYTE:153 [ play_collision::return#13 ] -Uplifting [play_collision] best 4020690 combination reg byte a [ play_collision::return#13 ] -Attempting to uplift remaining variables inzp ZP_BYTE:155 [ play_collision::return#1 ] -Uplifting [play_collision] best 4020684 combination reg byte a [ play_collision::return#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:159 [ play_collision::return#0 ] -Uplifting [play_collision] best 4020678 combination reg byte a [ play_collision::return#0 ] -Attempting to uplift remaining variables inzp ZP_BYTE:161 [ play_remove_lines::return#0 ] -Uplifting [play_remove_lines] best 4020672 combination reg byte a [ play_remove_lines::return#0 ] -Attempting to uplift remaining variables inzp ZP_BYTE:162 [ play_move_down::removed#0 ] -Uplifting [play_move_down] best 4020666 combination reg byte a [ play_move_down::removed#0 ] -Attempting to uplift remaining variables inzp ZP_BYTE:165 [ play_collision::return#10 ] -Uplifting [play_collision] best 4020660 combination reg byte a [ play_collision::return#10 ] -Attempting to uplift remaining variables inzp ZP_BYTE:193 [ keyboard_event_scan::$14 ] -Uplifting [keyboard_event_scan] best 4020654 combination reg byte a [ keyboard_event_scan::$14 ] -Attempting to uplift remaining variables inzp ZP_BYTE:194 [ keyboard_event_pressed::return#1 ] -Uplifting [keyboard_event_pressed] best 4020648 combination reg byte a [ keyboard_event_pressed::return#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:195 [ keyboard_event_scan::$18 ] -Uplifting [keyboard_event_scan] best 4020642 combination reg byte a [ keyboard_event_scan::$18 ] -Attempting to uplift remaining variables inzp ZP_BYTE:196 [ keyboard_event_pressed::return#2 ] -Uplifting [keyboard_event_pressed] best 4020636 combination reg byte a [ keyboard_event_pressed::return#2 ] -Attempting to uplift remaining variables inzp ZP_BYTE:197 [ keyboard_event_scan::$22 ] -Uplifting [keyboard_event_scan] best 4020630 combination reg byte a [ keyboard_event_scan::$22 ] -Attempting to uplift remaining variables inzp ZP_BYTE:198 [ keyboard_event_pressed::return#10 ] -Uplifting [keyboard_event_pressed] best 4020624 combination reg byte a [ keyboard_event_pressed::return#10 ] -Attempting to uplift remaining variables inzp ZP_BYTE:199 [ keyboard_event_scan::$26 ] -Uplifting [keyboard_event_scan] best 4020618 combination reg byte a [ keyboard_event_scan::$26 ] -Attempting to uplift remaining variables inzp ZP_BYTE:140 [ play_move_rotate::key_event#0 ] -Uplifting [play_move_rotate] best 4020609 combination reg byte a [ play_move_rotate::key_event#0 ] -Attempting to uplift remaining variables inzp ZP_BYTE:218 [ irq_cnt#1 ] -Uplifting [] best 4020609 combination zp ZP_BYTE:218 [ irq_cnt#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:226 [ sprites_irq::ptr#1 ] -Uplifting [sprites_irq] best 4020599 combination reg byte a [ sprites_irq::ptr#1 ] -Attempting to uplift remaining variables inzp ZP_BYTE:212 [ sprites_irq::ypos#0 ] -Uplifting [sprites_irq] best 4020584 combination reg byte a [ sprites_irq::ypos#0 ] -Attempting to uplift remaining variables inzp ZP_BYTE:215 [ sprites_irq::ptr#0 ] -Uplifting [sprites_irq] best 4020573 combination reg byte x [ sprites_irq::ptr#0 ] -Attempting to uplift remaining variables inzp ZP_BYTE:133 [ play_move_down::key_event#0 ] -Uplifting [play_move_down] best 4020567 combination reg byte a [ play_move_down::key_event#0 ] -Attempting to uplift remaining variables inzp ZP_BYTE:186 [ keyboard_event_pressed::row_bits#0 ] -Uplifting [keyboard_event_pressed] best 4020567 combination zp ZP_BYTE:186 [ keyboard_event_pressed::row_bits#0 ] -Attempting to uplift remaining variables inzp ZP_BYTE:188 [ keyboard_event_pressed::return#11 ] -Uplifting [keyboard_event_pressed] best 4020549 combination reg byte a [ keyboard_event_pressed::return#11 ] -Attempting to uplift remaining variables inzp ZP_BYTE:45 [ play_collision::return#15 ] -Uplifting [play_collision] best 4020519 combination reg byte a [ play_collision::return#15 ] -Attempting to uplift remaining variables inzp ZP_BYTE:80 [ keyboard_event_pressed::keycode#5 ] -Uplifting [keyboard_event_pressed] best 4020519 combination zp ZP_BYTE:80 [ keyboard_event_pressed::keycode#5 ] -Attempting to uplift remaining variables inzp ZP_BYTE:163 [ play_update_score::removed#0 ] -Uplifting [play_update_score] best 4020513 combination reg byte x [ play_update_score::removed#0 ] +Uplifting [] best 4116793 combination zp ZP_BYTE:2 [ render_screen_show#16 render_screen_show#13 ] +Attempting to uplift remaining variables inzp ZP_BYTE:3 [ render_screen_render#18 render_screen_render#11 ] +Uplifting [] best 4116793 combination zp ZP_BYTE:3 [ render_screen_render#18 render_screen_render#11 ] +Attempting to uplift remaining variables inzp ZP_BYTE:132 [ render_bcd::$6 ] +Uplifting [render_bcd] best 4116787 combination reg byte a [ render_bcd::$6 ] +Attempting to uplift remaining variables inzp ZP_BYTE:149 [ play_movement::$3 ] +Uplifting [play_movement] best 4116781 combination reg byte a [ play_movement::$3 ] +Attempting to uplift remaining variables inzp ZP_BYTE:153 [ play_movement::$4 ] +Uplifting [play_movement] best 4116775 combination reg byte a [ play_movement::$4 ] +Attempting to uplift remaining variables inzp ZP_BYTE:155 [ play_collision::return#14 ] +Uplifting [play_collision] best 4116769 combination reg byte a [ play_collision::return#14 ] +Attempting to uplift remaining variables inzp ZP_BYTE:157 [ play_move_rotate::$4 ] +Uplifting [play_move_rotate] best 4116763 combination reg byte a [ play_move_rotate::$4 ] +Attempting to uplift remaining variables inzp ZP_BYTE:164 [ play_collision::return#13 ] +Uplifting [play_collision] best 4116757 combination reg byte a [ play_collision::return#13 ] +Attempting to uplift remaining variables inzp ZP_BYTE:166 [ play_collision::return#1 ] +Uplifting [play_collision] best 4116751 combination reg byte a [ play_collision::return#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:170 [ play_collision::return#0 ] +Uplifting [play_collision] best 4116745 combination reg byte a [ play_collision::return#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:172 [ play_remove_lines::return#0 ] +Uplifting [play_remove_lines] best 4116739 combination reg byte a [ play_remove_lines::return#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:173 [ play_move_down::removed#0 ] +Uplifting [play_move_down] best 4116733 combination reg byte a [ play_move_down::removed#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:177 [ play_collision::return#10 ] +Uplifting [play_collision] best 4116727 combination reg byte a [ play_collision::return#10 ] +Attempting to uplift remaining variables inzp ZP_BYTE:205 [ keyboard_event_scan::$14 ] +Uplifting [keyboard_event_scan] best 4116721 combination reg byte a [ keyboard_event_scan::$14 ] +Attempting to uplift remaining variables inzp ZP_BYTE:206 [ keyboard_event_pressed::return#1 ] +Uplifting [keyboard_event_pressed] best 4116715 combination reg byte a [ keyboard_event_pressed::return#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:207 [ keyboard_event_scan::$18 ] +Uplifting [keyboard_event_scan] best 4116709 combination reg byte a [ keyboard_event_scan::$18 ] +Attempting to uplift remaining variables inzp ZP_BYTE:208 [ keyboard_event_pressed::return#2 ] +Uplifting [keyboard_event_pressed] best 4116703 combination reg byte a [ keyboard_event_pressed::return#2 ] +Attempting to uplift remaining variables inzp ZP_BYTE:209 [ keyboard_event_scan::$22 ] +Uplifting [keyboard_event_scan] best 4116697 combination reg byte a [ keyboard_event_scan::$22 ] +Attempting to uplift remaining variables inzp ZP_BYTE:210 [ keyboard_event_pressed::return#10 ] +Uplifting [keyboard_event_pressed] best 4116691 combination reg byte a [ keyboard_event_pressed::return#10 ] +Attempting to uplift remaining variables inzp ZP_BYTE:211 [ keyboard_event_scan::$26 ] +Uplifting [keyboard_event_scan] best 4116685 combination reg byte a [ keyboard_event_scan::$26 ] +Attempting to uplift remaining variables inzp ZP_BYTE:151 [ play_move_rotate::key_event#0 ] +Uplifting [play_move_rotate] best 4116676 combination reg byte a [ play_move_rotate::key_event#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:230 [ irq_cnt#1 ] +Uplifting [] best 4116676 combination zp ZP_BYTE:230 [ irq_cnt#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:238 [ sprites_irq::ptr#1 ] +Uplifting [sprites_irq] best 4116666 combination reg byte a [ sprites_irq::ptr#1 ] +Attempting to uplift remaining variables inzp ZP_BYTE:224 [ sprites_irq::ypos#0 ] +Uplifting [sprites_irq] best 4116651 combination reg byte a [ sprites_irq::ypos#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:227 [ sprites_irq::ptr#0 ] +Uplifting [sprites_irq] best 4116640 combination reg byte x [ sprites_irq::ptr#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:144 [ play_move_down::key_event#0 ] +Uplifting [play_move_down] best 4116634 combination reg byte a [ play_move_down::key_event#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:198 [ keyboard_event_pressed::row_bits#0 ] +Uplifting [keyboard_event_pressed] best 4116634 combination zp ZP_BYTE:198 [ keyboard_event_pressed::row_bits#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:200 [ keyboard_event_pressed::return#11 ] +Uplifting [keyboard_event_pressed] best 4116616 combination reg byte a [ keyboard_event_pressed::return#11 ] +Attempting to uplift remaining variables inzp ZP_BYTE:53 [ play_collision::return#15 ] +Uplifting [play_collision] best 4116586 combination reg byte a [ play_collision::return#15 ] +Attempting to uplift remaining variables inzp ZP_BYTE:88 [ keyboard_event_pressed::keycode#5 ] +Uplifting [keyboard_event_pressed] best 4116586 combination zp ZP_BYTE:88 [ keyboard_event_pressed::keycode#5 ] +Attempting to uplift remaining variables inzp ZP_BYTE:174 [ play_update_score::removed#0 ] +Uplifting [play_update_score] best 4116580 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 4020492 combination reg byte y [ render_bcd::only_low#6 ] -Attempting to uplift remaining variables inzp ZP_BYTE:139 [ play_movement::render#2 ] -Uplifting [play_movement] best 4020492 combination zp ZP_BYTE:139 [ play_movement::render#2 ] -Attempting to uplift remaining variables inzp ZP_BYTE:33 [ play_move_rotate::return#2 ] -Uplifting [play_move_rotate] best 4020483 combination reg byte a [ play_move_rotate::return#2 ] -Attempting to uplift remaining variables inzp ZP_BYTE:46 [ play_move_leftright::return#2 ] -Uplifting [play_move_leftright] best 4020474 combination reg byte a [ play_move_leftright::return#2 ] -Attempting to uplift remaining variables inzp ZP_BYTE:65 [ play_move_down::return#3 ] -Uplifting [play_move_down] best 4020467 combination reg byte x [ play_move_down::return#3 ] -Attempting to uplift remaining variables inzp ZP_BYTE:171 [ play_update_score::lines_before#0 ] -Uplifting [play_update_score] best 4020467 combination zp ZP_BYTE:171 [ play_update_score::lines_before#0 ] -Attempting to uplift remaining variables inzp ZP_BYTE:111 [ render_screen_showing#0 ] -Uplifting [] best 4020467 combination zp ZP_BYTE:111 [ render_screen_showing#0 ] -Attempting to uplift remaining variables inzp ZP_BYTE:112 [ irq_raster_next#0 ] -Uplifting [] best 4020467 combination zp ZP_BYTE:112 [ irq_raster_next#0 ] -Attempting to uplift remaining variables inzp ZP_BYTE:113 [ irq_sprite_ypos#0 ] -Uplifting [] best 4020467 combination zp ZP_BYTE:113 [ irq_sprite_ypos#0 ] -Attempting to uplift remaining variables inzp ZP_BYTE:114 [ irq_sprite_ptr#0 ] -Uplifting [] best 4020467 combination zp ZP_BYTE:114 [ irq_sprite_ptr#0 ] -Attempting to uplift remaining variables inzp ZP_BYTE:115 [ irq_cnt#0 ] -Uplifting [] best 4020467 combination zp ZP_BYTE:115 [ irq_cnt#0 ] -Attempting to uplift remaining variables inzp ZP_BYTE:164 [ play_spawn_current::$3 ] -Uplifting [play_spawn_current] best 4020467 combination zp ZP_BYTE:164 [ play_spawn_current::$3 ] +Uplifting [render_bcd] best 4116559 combination reg byte y [ render_bcd::only_low#6 ] +Attempting to uplift remaining variables inzp ZP_BYTE:150 [ play_movement::render#2 ] +Uplifting [play_movement] best 4116559 combination zp ZP_BYTE:150 [ play_movement::render#2 ] +Attempting to uplift remaining variables inzp ZP_BYTE:41 [ play_move_rotate::return#2 ] +Uplifting [play_move_rotate] best 4116550 combination reg byte a [ play_move_rotate::return#2 ] +Attempting to uplift remaining variables inzp ZP_BYTE:54 [ play_move_leftright::return#2 ] +Uplifting [play_move_leftright] best 4116541 combination reg byte a [ play_move_leftright::return#2 ] +Attempting to uplift remaining variables inzp ZP_BYTE:73 [ play_move_down::return#3 ] +Uplifting [play_move_down] best 4116534 combination reg byte x [ play_move_down::return#3 ] +Attempting to uplift remaining variables inzp ZP_BYTE:183 [ play_update_score::lines_before#0 ] +Uplifting [play_update_score] best 4116534 combination zp ZP_BYTE:183 [ play_update_score::lines_before#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:119 [ render_screen_showing#0 ] +Uplifting [] best 4116534 combination zp ZP_BYTE:119 [ render_screen_showing#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:120 [ irq_raster_next#0 ] +Uplifting [] best 4116534 combination zp ZP_BYTE:120 [ irq_raster_next#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:121 [ irq_sprite_ypos#0 ] +Uplifting [] best 4116534 combination zp ZP_BYTE:121 [ irq_sprite_ypos#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:122 [ irq_sprite_ptr#0 ] +Uplifting [] best 4116534 combination zp ZP_BYTE:122 [ irq_sprite_ptr#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:123 [ irq_cnt#0 ] +Uplifting [] best 4116534 combination zp ZP_BYTE:123 [ irq_cnt#0 ] +Attempting to uplift remaining variables inzp ZP_BYTE:176 [ play_spawn_current::$0 ] +Uplifting [play_spawn_current] best 4116534 combination zp ZP_BYTE:176 [ play_spawn_current::$0 ] Coalescing zero page register with common assignment [ zp ZP_WORD:5 [ render_score::screen#2 ] ] with [ zp ZP_WORD:7 [ render_bcd::screen#6 render_bcd::screen#0 render_bcd::screen#1 render_bcd::screen#2 render_bcd::screen#3 render_bcd::screen#4 render_bcd::screen#5 ] ] - score: 6 -Coalescing zero page register with common assignment [ zp ZP_BYTE:32 [ play_movement::return#2 play_movement::render#1 play_movement::return#0 ] ] with [ zp ZP_BYTE:139 [ play_movement::render#2 ] ] - score: 2 -Coalescing zero page register with common assignment [ zp ZP_BYTE:110 [ irq_raster_next#4 irq_raster_next#3 irq_raster_next#1 irq_raster_next#2 ] ] with [ zp ZP_BYTE:112 [ irq_raster_next#0 ] ] - score: 2 +Coalescing zero page register with common assignment [ zp ZP_BYTE:40 [ play_movement::return#2 play_movement::render#1 play_movement::return#0 ] ] with [ zp ZP_BYTE:150 [ play_movement::render#2 ] ] - score: 2 +Coalescing zero page register with common assignment [ zp ZP_BYTE:118 [ irq_raster_next#4 irq_raster_next#3 irq_raster_next#1 irq_raster_next#2 ] ] with [ zp ZP_BYTE:120 [ irq_raster_next#0 ] ] - score: 2 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:35 [ current_piece#16 current_piece#90 current_piece#91 current_piece#92 current_piece#93 current_piece#94 ] ] with [ zp ZP_WORD:147 [ play_collision::piece_gfx#0 ] ] - score: 1 -Coalescing zero page register with common assignment [ zp ZP_BYTE:38 [ play_collision::ypos#5 play_collision::ypos#0 play_collision::ypos#1 play_collision::ypos#2 play_collision::ypos#3 play_collision::ypos#4 ] ] with [ zp ZP_BYTE:40 [ play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 ] ] - score: 1 -Coalescing zero page register with common assignment [ zp ZP_BYTE:48 [ current_ypos#36 current_ypos#25 current_ypos#17 current_ypos#22 current_ypos#2 ] ] with [ zp ZP_BYTE:75 [ 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:113 [ irq_sprite_ypos#0 ] ] with [ zp ZP_BYTE:219 [ irq_sprite_ypos#3 ] ] - score: 1 -Coalescing zero page register with common assignment [ zp ZP_BYTE:113 [ irq_sprite_ypos#0 irq_sprite_ypos#3 ] ] with [ zp ZP_BYTE:222 [ irq_sprite_ypos#2 ] ] - score: 1 -Coalescing zero page register with common assignment [ zp ZP_BYTE:114 [ irq_sprite_ptr#0 ] ] with [ zp ZP_BYTE:220 [ irq_sprite_ptr#3 ] ] - score: 1 -Coalescing zero page register with common assignment [ zp ZP_BYTE:114 [ irq_sprite_ptr#0 irq_sprite_ptr#3 ] ] with [ zp ZP_BYTE:223 [ irq_sprite_ptr#2 ] ] - score: 1 -Coalescing zero page register with common assignment [ zp ZP_BYTE:115 [ irq_cnt#0 ] ] with [ zp ZP_BYTE:218 [ irq_cnt#1 ] ] - 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:125 [ 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:91 [ 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:94 [ 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:100 [ render_screen_original::y#6 render_screen_original::y#1 ] ] -Coalescing zero page register [ zp ZP_BYTE:4 [ current_movedown_counter#16 current_movedown_counter#14 current_movedown_counter#12 ] ] with [ zp ZP_BYTE:69 [ play_remove_lines::y#8 play_remove_lines::y#1 ] ] -Coalescing zero page register [ zp ZP_BYTE:4 [ current_movedown_counter#16 current_movedown_counter#14 current_movedown_counter#12 play_remove_lines::y#8 play_remove_lines::y#1 ] ] with [ zp ZP_BYTE:76 [ play_lock_current::l#6 play_lock_current::l#1 ] ] -Coalescing zero page register [ zp ZP_BYTE:4 [ current_movedown_counter#16 current_movedown_counter#14 current_movedown_counter#12 play_remove_lines::y#8 play_remove_lines::y#1 play_lock_current::l#6 play_lock_current::l#1 ] ] with [ zp ZP_BYTE:164 [ play_spawn_current::$3 ] ] -Coalescing zero page register [ zp ZP_BYTE:4 [ current_movedown_counter#16 current_movedown_counter#14 current_movedown_counter#12 play_remove_lines::y#8 play_remove_lines::y#1 play_lock_current::l#6 play_lock_current::l#1 play_spawn_current::$3 ] ] with [ zp ZP_BYTE:171 [ play_update_score::lines_before#0 ] ] -Coalescing zero page register [ zp ZP_WORD:5 [ render_score::screen#2 render_bcd::screen#6 render_bcd::screen#0 render_bcd::screen#1 render_bcd::screen#2 render_bcd::screen#3 render_bcd::screen#4 render_bcd::screen#5 ] ] with [ zp ZP_WORD:18 [ current_piece_gfx#62 current_piece_gfx#114 current_piece_gfx#115 ] ] -Coalescing zero page register [ zp ZP_WORD:5 [ render_score::screen#2 render_bcd::screen#6 render_bcd::screen#0 render_bcd::screen#1 render_bcd::screen#2 render_bcd::screen#3 render_bcd::screen#4 render_bcd::screen#5 current_piece_gfx#62 current_piece_gfx#114 current_piece_gfx#115 ] ] with [ zp ZP_WORD:29 [ render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 ] ] -Coalescing zero page register [ zp ZP_WORD:5 [ render_score::screen#2 render_bcd::screen#6 render_bcd::screen#0 render_bcd::screen#1 render_bcd::screen#2 render_bcd::screen#3 render_bcd::screen#4 render_bcd::screen#5 current_piece_gfx#62 current_piece_gfx#114 current_piece_gfx#115 render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 ] ] with [ zp ZP_WORD:35 [ current_piece#16 current_piece#90 current_piece#91 current_piece#92 current_piece#93 current_piece#94 play_collision::piece_gfx#0 ] ] -Coalescing zero page register [ zp ZP_WORD:5 [ render_score::screen#2 render_bcd::screen#6 render_bcd::screen#0 render_bcd::screen#1 render_bcd::screen#2 render_bcd::screen#3 render_bcd::screen#4 render_bcd::screen#5 current_piece_gfx#62 current_piece_gfx#114 current_piece_gfx#115 render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 current_piece#16 current_piece#90 current_piece#91 current_piece#92 current_piece#93 current_piece#94 play_collision::piece_gfx#0 ] ] with [ zp ZP_WORD:89 [ play_init::pli#2 play_init::pli#1 ] ] -Coalescing zero page register [ zp ZP_WORD:5 [ render_score::screen#2 render_bcd::screen#6 render_bcd::screen#0 render_bcd::screen#1 render_bcd::screen#2 render_bcd::screen#3 render_bcd::screen#4 render_bcd::screen#5 current_piece_gfx#62 current_piece_gfx#114 current_piece_gfx#115 render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 current_piece#16 current_piece#90 current_piece#91 current_piece#92 current_piece#93 current_piece#94 play_collision::piece_gfx#0 play_init::pli#2 play_init::pli#1 ] ] with [ zp ZP_WORD:96 [ render_init::li_1#2 render_init::li_1#1 ] ] -Coalescing zero page register [ zp ZP_WORD:5 [ render_score::screen#2 render_bcd::screen#6 render_bcd::screen#0 render_bcd::screen#1 render_bcd::screen#2 render_bcd::screen#3 render_bcd::screen#4 render_bcd::screen#5 current_piece_gfx#62 current_piece_gfx#114 current_piece_gfx#115 render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 current_piece#16 current_piece#90 current_piece#91 current_piece#92 current_piece#93 current_piece#94 play_collision::piece_gfx#0 play_init::pli#2 play_init::pli#1 render_init::li_1#2 render_init::li_1#1 ] ] with [ zp ZP_WORD:101 [ render_screen_original::oscr#2 render_screen_original::oscr#4 render_screen_original::oscr#1 ] ] -Coalescing zero page register [ zp ZP_WORD:5 [ render_score::screen#2 render_bcd::screen#6 render_bcd::screen#0 render_bcd::screen#1 render_bcd::screen#2 render_bcd::screen#3 render_bcd::screen#4 render_bcd::screen#5 current_piece_gfx#62 current_piece_gfx#114 current_piece_gfx#115 render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 current_piece#16 current_piece#90 current_piece#91 current_piece#92 current_piece#93 current_piece#94 play_collision::piece_gfx#0 play_init::pli#2 play_init::pli#1 render_init::li_1#2 render_init::li_1#1 render_screen_original::oscr#2 render_screen_original::oscr#4 render_screen_original::oscr#1 ] ] with [ zp ZP_WORD:182 [ play_lock_current::playfield_line#0 ] ] -Coalescing zero page register [ zp ZP_WORD:9 [ render_bcd::offset#6 render_bcd::screen_pos#3 render_bcd::screen_pos#0 render_bcd::screen_pos#2 render_bcd::screen_pos#1 ] ] with [ zp ZP_WORD:98 [ render_init::li_2#2 render_init::li_2#1 ] ] -Coalescing zero page register [ zp ZP_WORD:9 [ render_bcd::offset#6 render_bcd::screen_pos#3 render_bcd::screen_pos#0 render_bcd::screen_pos#2 render_bcd::screen_pos#1 render_init::li_2#2 render_init::li_2#1 ] ] with [ zp ZP_WORD:103 [ render_screen_original::ocols#2 render_screen_original::ocols#4 render_screen_original::ocols#1 ] ] -Coalescing zero page register [ zp ZP_WORD:9 [ render_bcd::offset#6 render_bcd::screen_pos#3 render_bcd::screen_pos#0 render_bcd::screen_pos#2 render_bcd::screen_pos#1 render_init::li_2#2 render_init::li_2#1 render_screen_original::ocols#2 render_screen_original::ocols#4 render_screen_original::ocols#1 ] ] with [ zp ZP_WORD:128 [ render_moving::screen_line#0 ] ] -Coalescing zero page register [ zp ZP_WORD:9 [ render_bcd::offset#6 render_bcd::screen_pos#3 render_bcd::screen_pos#0 render_bcd::screen_pos#2 render_bcd::screen_pos#1 render_init::li_2#2 render_init::li_2#1 render_screen_original::ocols#2 render_screen_original::ocols#4 render_screen_original::ocols#1 render_moving::screen_line#0 ] ] with [ zp ZP_WORD:149 [ play_collision::playfield_line#0 ] ] -Coalescing zero page register [ zp ZP_BYTE:16 [ render_screen_render#30 render_screen_render#64 ] ] with [ zp ZP_BYTE:27 [ render_playfield::l#2 render_playfield::l#1 ] ] -Coalescing zero page register [ zp ZP_BYTE:16 [ render_screen_render#30 render_screen_render#64 render_playfield::l#2 render_playfield::l#1 ] ] with [ zp ZP_BYTE:32 [ play_movement::return#2 play_movement::render#1 play_movement::return#0 play_movement::render#2 ] ] -Coalescing zero page register [ zp ZP_BYTE:16 [ render_screen_render#30 render_screen_render#64 render_playfield::l#2 render_playfield::l#1 play_movement::return#2 play_movement::render#1 play_movement::return#0 play_movement::render#2 ] ] with [ zp ZP_BYTE:70 [ play_remove_lines::removed#11 play_remove_lines::removed#7 play_remove_lines::removed#1 ] ] -Coalescing zero page register [ zp ZP_BYTE:16 [ render_screen_render#30 render_screen_render#64 render_playfield::l#2 render_playfield::l#1 play_movement::return#2 play_movement::render#1 play_movement::return#0 play_movement::render#2 play_remove_lines::removed#11 play_remove_lines::removed#7 play_remove_lines::removed#1 ] ] with [ zp ZP_BYTE:77 [ play_lock_current::i#2 play_lock_current::i#3 play_lock_current::i#7 play_lock_current::i#9 ] ] -Coalescing zero page register [ zp ZP_BYTE:16 [ render_screen_render#30 render_screen_render#64 render_playfield::l#2 render_playfield::l#1 play_movement::return#2 play_movement::render#1 play_movement::return#0 play_movement::render#2 play_remove_lines::removed#11 play_remove_lines::removed#7 play_remove_lines::removed#1 play_lock_current::i#2 play_lock_current::i#3 play_lock_current::i#7 play_lock_current::i#9 ] ] with [ zp ZP_BYTE:80 [ keyboard_event_pressed::keycode#5 ] ] -Coalescing zero page register [ zp ZP_BYTE:16 [ render_screen_render#30 render_screen_render#64 render_playfield::l#2 render_playfield::l#1 play_movement::return#2 play_movement::render#1 play_movement::return#0 play_movement::render#2 play_remove_lines::removed#11 play_remove_lines::removed#7 play_remove_lines::removed#1 play_lock_current::i#2 play_lock_current::i#3 play_lock_current::i#7 play_lock_current::i#9 keyboard_event_pressed::keycode#5 ] ] with [ zp ZP_BYTE:82 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] ] -Coalescing zero page register [ zp ZP_BYTE:17 [ current_xpos#57 current_xpos#124 current_xpos#125 ] ] with [ zp ZP_BYTE:28 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] ] -Coalescing zero page register [ zp ZP_BYTE:17 [ current_xpos#57 current_xpos#124 current_xpos#125 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] ] with [ zp ZP_BYTE:34 [ play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] ] -Coalescing zero page register [ zp ZP_BYTE:17 [ current_xpos#57 current_xpos#124 current_xpos#125 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] ] with [ zp ZP_BYTE:72 [ play_remove_lines::x#2 play_remove_lines::x#1 ] ] -Coalescing zero page register [ zp ZP_BYTE:17 [ current_xpos#57 current_xpos#124 current_xpos#125 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 play_remove_lines::x#2 play_remove_lines::x#1 ] ] with [ zp ZP_BYTE:78 [ play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 ] ] -Coalescing zero page register [ zp ZP_BYTE:17 [ current_xpos#57 current_xpos#124 current_xpos#125 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 play_remove_lines::x#2 play_remove_lines::x#1 play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 ] ] with [ zp ZP_BYTE:85 [ keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 keyboard_event_scan::keycode#15 ] ] -Coalescing zero page register [ zp ZP_BYTE:17 [ current_xpos#57 current_xpos#124 current_xpos#125 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 play_remove_lines::x#2 play_remove_lines::x#1 play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 keyboard_event_scan::keycode#15 ] ] with [ zp ZP_BYTE:186 [ keyboard_event_pressed::row_bits#0 ] ] -Coalescing zero page register [ zp ZP_BYTE:21 [ render_moving::ypos2#2 render_moving::ypos2#0 render_moving::ypos2#1 ] ] with [ zp ZP_BYTE:31 [ render_playfield::c#2 render_playfield::c#1 ] ] -Coalescing zero page register [ zp ZP_BYTE:21 [ render_moving::ypos2#2 render_moving::ypos2#0 render_moving::ypos2#1 render_playfield::c#2 render_playfield::c#1 ] ] with [ zp ZP_BYTE:38 [ play_collision::ypos#5 play_collision::ypos#0 play_collision::ypos#1 play_collision::ypos#2 play_collision::ypos#3 play_collision::ypos#4 play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 ] ] -Coalescing zero page register [ zp ZP_BYTE:21 [ render_moving::ypos2#2 render_moving::ypos2#0 render_moving::ypos2#1 render_playfield::c#2 render_playfield::c#1 play_collision::ypos#5 play_collision::ypos#0 play_collision::ypos#1 play_collision::ypos#2 play_collision::ypos#3 play_collision::ypos#4 play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 ] ] with [ zp ZP_BYTE:73 [ play_remove_lines::full#4 play_remove_lines::full#2 ] ] -Coalescing zero page register [ zp ZP_BYTE:21 [ render_moving::ypos2#2 render_moving::ypos2#0 render_moving::ypos2#1 render_playfield::c#2 render_playfield::c#1 play_collision::ypos#5 play_collision::ypos#0 play_collision::ypos#1 play_collision::ypos#2 play_collision::ypos#3 play_collision::ypos#4 play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 play_remove_lines::full#4 play_remove_lines::full#2 ] ] with [ zp ZP_BYTE:184 [ play_lock_current::i#1 ] ] -Coalescing zero page register [ zp ZP_BYTE:21 [ render_moving::ypos2#2 render_moving::ypos2#0 render_moving::ypos2#1 render_playfield::c#2 render_playfield::c#1 play_collision::ypos#5 play_collision::ypos#0 play_collision::ypos#1 play_collision::ypos#2 play_collision::ypos#3 play_collision::ypos#4 play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 play_remove_lines::full#4 play_remove_lines::full#2 play_lock_current::i#1 ] ] with [ zp ZP_BYTE:191 [ keyboard_event_scan::row_scan#0 ] ] -Coalescing zero page register [ zp ZP_BYTE:22 [ render_moving::l#4 render_moving::l#1 ] ] with [ zp ZP_BYTE:39 [ play_collision::xpos#6 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 play_collision::xpos#4 ] ] -Coalescing zero page register [ zp ZP_BYTE:22 [ render_moving::l#4 render_moving::l#1 play_collision::xpos#6 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 play_collision::xpos#4 ] ] with [ zp ZP_BYTE:181 [ play_remove_lines::c#0 ] ] -Coalescing zero page register [ zp ZP_BYTE:23 [ render_moving::i#4 render_moving::i#3 render_moving::i#8 render_moving::i#2 render_moving::i#1 ] ] with [ zp ZP_BYTE:41 [ play_collision::l#6 play_collision::l#1 ] ] -Coalescing zero page register [ zp ZP_BYTE:24 [ render_moving::xpos#2 render_moving::xpos#0 render_moving::xpos#1 ] ] with [ zp ZP_BYTE:42 [ play_collision::i#2 play_collision::i#3 play_collision::i#11 play_collision::i#13 ] ] -Coalescing zero page register [ zp ZP_BYTE:25 [ render_moving::c#2 render_moving::c#1 ] ] with [ zp ZP_BYTE:43 [ play_collision::col#2 play_collision::col#9 play_collision::col#1 ] ] -Coalescing zero page register [ zp ZP_WORD:49 [ lines_bcd#27 lines_bcd#17 lines_bcd#19 lines_bcd#15 lines_bcd#30 ] ] with [ zp ZP_WORD:105 [ render_screen_original::screen#7 render_screen_original::screen#6 render_screen_original::screen#5 render_screen_original::screen#8 render_screen_original::screen#9 render_screen_original::screen#10 render_screen_original::screen#2 render_screen_original::screen#3 ] ] -Coalescing zero page register [ zp ZP_WORD:58 [ current_piece#27 current_piece#95 current_piece#20 current_piece#14 current_piece#88 ] ] with [ zp ZP_WORD:107 [ render_screen_original::cols#6 render_screen_original::cols#5 render_screen_original::cols#4 render_screen_original::cols#7 render_screen_original::cols#3 render_screen_original::cols#1 render_screen_original::cols#2 ] ] -Coalescing zero page register [ zp ZP_BYTE:111 [ render_screen_showing#0 ] ] with [ zp ZP_BYTE:206 [ render_screen_showing#1 ] ] -Coalescing zero page register [ zp ZP_BYTE:113 [ irq_sprite_ypos#0 irq_sprite_ypos#3 irq_sprite_ypos#2 ] ] with [ zp ZP_BYTE:224 [ irq_sprite_ypos#1 ] ] -Coalescing zero page register [ zp ZP_BYTE:114 [ irq_sprite_ptr#0 irq_sprite_ptr#3 irq_sprite_ptr#2 ] ] with [ zp ZP_BYTE:225 [ irq_sprite_ptr#1 ] ] -Coalescing zero page register [ zp ZP_BYTE:115 [ irq_cnt#0 irq_cnt#1 ] ] with [ zp ZP_BYTE:221 [ irq_cnt#2 ] ] -Allocated (was zp ZP_WORD:9) zp ZP_WORD:7 [ render_bcd::offset#6 render_bcd::screen_pos#3 render_bcd::screen_pos#0 render_bcd::screen_pos#2 render_bcd::screen_pos#1 render_init::li_2#2 render_init::li_2#1 render_screen_original::ocols#2 render_screen_original::ocols#4 render_screen_original::ocols#1 render_moving::screen_line#0 play_collision::playfield_line#0 ] -Allocated (was zp ZP_BYTE:16) zp ZP_BYTE:9 [ render_screen_render#30 render_screen_render#64 render_playfield::l#2 render_playfield::l#1 play_movement::return#2 play_movement::render#1 play_movement::return#0 play_movement::render#2 play_remove_lines::removed#11 play_remove_lines::removed#7 play_remove_lines::removed#1 play_lock_current::i#2 play_lock_current::i#3 play_lock_current::i#7 play_lock_current::i#9 keyboard_event_pressed::keycode#5 keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] -Allocated (was zp ZP_BYTE:17) zp ZP_BYTE:10 [ current_xpos#57 current_xpos#124 current_xpos#125 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 play_remove_lines::x#2 play_remove_lines::x#1 play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 keyboard_event_scan::keycode#15 keyboard_event_pressed::row_bits#0 ] -Allocated (was zp ZP_BYTE:21) zp ZP_BYTE:11 [ render_moving::ypos2#2 render_moving::ypos2#0 render_moving::ypos2#1 render_playfield::c#2 render_playfield::c#1 play_collision::ypos#5 play_collision::ypos#0 play_collision::ypos#1 play_collision::ypos#2 play_collision::ypos#3 play_collision::ypos#4 play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 play_remove_lines::full#4 play_remove_lines::full#2 play_lock_current::i#1 keyboard_event_scan::row_scan#0 ] -Allocated (was zp ZP_BYTE:22) zp ZP_BYTE:12 [ render_moving::l#4 render_moving::l#1 play_collision::xpos#6 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 play_collision::xpos#4 play_remove_lines::c#0 ] -Allocated (was zp ZP_BYTE:23) zp ZP_BYTE:13 [ render_moving::i#4 render_moving::i#3 render_moving::i#8 render_moving::i#2 render_moving::i#1 play_collision::l#6 play_collision::l#1 ] -Allocated (was zp ZP_BYTE:24) zp ZP_BYTE:14 [ render_moving::xpos#2 render_moving::xpos#0 render_moving::xpos#1 play_collision::i#2 play_collision::i#3 play_collision::i#11 play_collision::i#13 ] -Allocated (was zp ZP_BYTE:25) zp ZP_BYTE:15 [ render_moving::c#2 render_moving::c#1 play_collision::col#2 play_collision::col#9 play_collision::col#1 ] -Allocated (was zp ZP_BYTE:48) zp ZP_BYTE:16 [ current_ypos#36 current_ypos#25 current_ypos#17 current_ypos#22 current_ypos#2 play_lock_current::ypos2#2 play_lock_current::ypos2#0 play_lock_current::ypos2#1 ] -Allocated (was zp ZP_WORD:49) zp ZP_WORD:17 [ lines_bcd#27 lines_bcd#17 lines_bcd#19 lines_bcd#15 lines_bcd#30 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:51) zp ZP_DWORD:19 [ score_bcd#27 score_bcd#16 score_bcd#18 score_bcd#14 score_bcd#30 ] -Allocated (was zp ZP_BYTE:55) zp ZP_BYTE:23 [ level#31 level#18 level#10 level#16 level#20 ] -Allocated (was zp ZP_BYTE:56) zp ZP_BYTE:24 [ current_movedown_slow#38 current_movedown_slow#23 current_movedown_slow#14 current_movedown_slow#21 current_movedown_slow#1 current_movedown_slow#69 current_movedown_slow#10 ] -Allocated (was zp ZP_BYTE:57) zp ZP_BYTE:25 [ level_bcd#32 level_bcd#19 level_bcd#11 level_bcd#17 level_bcd#64 level_bcd#21 level_bcd#8 ] -Allocated (was zp ZP_WORD:58) zp ZP_WORD:26 [ current_piece#27 current_piece#95 current_piece#20 current_piece#14 current_piece#88 render_screen_original::cols#6 render_screen_original::cols#5 render_screen_original::cols#4 render_screen_original::cols#7 render_screen_original::cols#3 render_screen_original::cols#1 render_screen_original::cols#2 ] -Allocated (was zp ZP_BYTE:60) zp ZP_BYTE:28 [ current_piece_char#27 current_piece_char#19 current_piece_char#14 current_piece_char#16 ] -Allocated (was zp ZP_BYTE:61) zp ZP_BYTE:29 [ current_orientation#36 current_orientation#12 current_orientation#16 current_orientation#19 current_orientation#24 current_orientation#7 ] -Allocated (was zp ZP_WORD:62) zp ZP_WORD:30 [ current_piece_gfx#33 current_piece_gfx#103 current_piece_gfx#16 current_piece_gfx#21 current_piece_gfx#18 current_piece_gfx#19 current_piece_gfx#6 ] -Allocated (was zp ZP_BYTE:64) zp ZP_BYTE:32 [ current_xpos#41 current_xpos#113 current_xpos#17 current_xpos#28 current_xpos#20 current_xpos#24 current_xpos#7 current_xpos#5 ] -Allocated (was zp ZP_BYTE:66) zp ZP_BYTE:33 [ game_over#70 game_over#26 game_over#19 game_over#14 game_over#15 ] -Allocated (was zp ZP_BYTE:86) zp ZP_BYTE:34 [ keyboard_events_size#10 keyboard_events_size#29 keyboard_events_size#19 keyboard_events_size#16 keyboard_events_size#13 keyboard_events_size#4 keyboard_events_size#30 keyboard_events_size#2 keyboard_events_size#1 ] -Allocated (was zp ZP_BYTE:110) zp ZP_BYTE:35 [ irq_raster_next#4 irq_raster_next#3 irq_raster_next#1 irq_raster_next#2 irq_raster_next#0 ] -Allocated (was zp ZP_BYTE:111) zp ZP_BYTE:36 [ render_screen_showing#0 render_screen_showing#1 ] -Allocated (was zp ZP_BYTE:113) zp ZP_BYTE:37 [ irq_sprite_ypos#0 irq_sprite_ypos#3 irq_sprite_ypos#2 irq_sprite_ypos#1 ] -Allocated (was zp ZP_BYTE:114) zp ZP_BYTE:38 [ irq_sprite_ptr#0 irq_sprite_ptr#3 irq_sprite_ptr#2 irq_sprite_ptr#1 ] -Allocated (was zp ZP_BYTE:115) zp ZP_BYTE:39 [ irq_cnt#0 irq_cnt#1 irq_cnt#2 ] -Allocated (was zp ZP_BYTE:118) zp ZP_BYTE:40 [ play_movement::key_event#0 ] -Allocated (was zp ZP_BYTE:151) zp ZP_BYTE:41 [ play_collision::i#1 ] -Allocated (was zp ZP_DWORD:173) zp ZP_DWORD:42 [ play_update_score::add_bcd#0 ] -Allocated (was zp ZP_BYTE:214) zp ZP_BYTE:46 [ sprites_irq::raster_sprite_gfx_modify#0 ] +Coalescing zero page register with common assignment [ zp ZP_WORD:43 [ current_piece#17 current_piece#98 current_piece#99 current_piece#100 current_piece#101 current_piece#102 ] ] with [ zp ZP_WORD:158 [ play_collision::piece_gfx#0 ] ] - score: 1 +Coalescing zero page register with common assignment [ zp ZP_BYTE:46 [ play_collision::ypos#5 play_collision::ypos#0 play_collision::ypos#1 play_collision::ypos#2 play_collision::ypos#3 play_collision::ypos#4 ] ] with [ zp ZP_BYTE:48 [ play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 ] ] - score: 1 +Coalescing zero page register with common assignment [ zp ZP_BYTE:56 [ current_ypos#38 current_ypos#10 current_ypos#18 current_ypos#5 current_ypos#2 ] ] with [ zp ZP_BYTE:83 [ 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:121 [ irq_sprite_ypos#0 ] ] with [ zp ZP_BYTE:231 [ irq_sprite_ypos#3 ] ] - score: 1 +Coalescing zero page register with common assignment [ zp ZP_BYTE:121 [ irq_sprite_ypos#0 irq_sprite_ypos#3 ] ] with [ zp ZP_BYTE:234 [ irq_sprite_ypos#2 ] ] - score: 1 +Coalescing zero page register with common assignment [ zp ZP_BYTE:122 [ irq_sprite_ptr#0 ] ] with [ zp ZP_BYTE:232 [ irq_sprite_ptr#3 ] ] - score: 1 +Coalescing zero page register with common assignment [ zp ZP_BYTE:122 [ irq_sprite_ptr#0 irq_sprite_ptr#3 ] ] with [ zp ZP_BYTE:235 [ irq_sprite_ptr#2 ] ] - score: 1 +Coalescing zero page register with common assignment [ zp ZP_BYTE:123 [ irq_cnt#0 ] ] with [ zp ZP_BYTE:230 [ irq_cnt#1 ] ] - 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:133 [ 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:99 [ 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:102 [ 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:108 [ render_screen_original::y#6 render_screen_original::y#1 ] ] +Coalescing zero page register [ zp ZP_BYTE:4 [ current_movedown_counter#16 current_movedown_counter#14 current_movedown_counter#12 ] ] with [ zp ZP_BYTE:77 [ play_remove_lines::y#8 play_remove_lines::y#1 ] ] +Coalescing zero page register [ zp ZP_BYTE:4 [ current_movedown_counter#16 current_movedown_counter#14 current_movedown_counter#12 play_remove_lines::y#8 play_remove_lines::y#1 ] ] with [ zp ZP_BYTE:84 [ play_lock_current::l#6 play_lock_current::l#1 ] ] +Coalescing zero page register [ zp ZP_BYTE:4 [ current_movedown_counter#16 current_movedown_counter#14 current_movedown_counter#12 play_remove_lines::y#8 play_remove_lines::y#1 play_lock_current::l#6 play_lock_current::l#1 ] ] with [ zp ZP_BYTE:176 [ play_spawn_current::$0 ] ] +Coalescing zero page register [ zp ZP_BYTE:4 [ current_movedown_counter#16 current_movedown_counter#14 current_movedown_counter#12 play_remove_lines::y#8 play_remove_lines::y#1 play_lock_current::l#6 play_lock_current::l#1 play_spawn_current::$0 ] ] with [ zp ZP_BYTE:183 [ 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 [ render_next::next_piece_gfx#2 render_next::next_piece_gfx#3 render_next::next_piece_gfx#1 render_next::next_piece_gfx#9 ] ] +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 render_next::next_piece_gfx#2 render_next::next_piece_gfx#3 render_next::next_piece_gfx#1 render_next::next_piece_gfx#9 ] ] with [ zp ZP_WORD:26 [ current_piece_gfx#63 current_piece_gfx#122 current_piece_gfx#123 ] ] +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 render_next::next_piece_gfx#2 render_next::next_piece_gfx#3 render_next::next_piece_gfx#1 render_next::next_piece_gfx#9 current_piece_gfx#63 current_piece_gfx#122 current_piece_gfx#123 ] ] with [ zp ZP_WORD:37 [ 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 render_next::next_piece_gfx#2 render_next::next_piece_gfx#3 render_next::next_piece_gfx#1 render_next::next_piece_gfx#9 current_piece_gfx#63 current_piece_gfx#122 current_piece_gfx#123 render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 ] ] with [ zp ZP_WORD:43 [ current_piece#17 current_piece#98 current_piece#99 current_piece#100 current_piece#101 current_piece#102 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 render_next::next_piece_gfx#2 render_next::next_piece_gfx#3 render_next::next_piece_gfx#1 render_next::next_piece_gfx#9 current_piece_gfx#63 current_piece_gfx#122 current_piece_gfx#123 render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 current_piece#17 current_piece#98 current_piece#99 current_piece#100 current_piece#101 current_piece#102 play_collision::piece_gfx#0 ] ] with [ zp ZP_WORD:97 [ 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 render_next::next_piece_gfx#2 render_next::next_piece_gfx#3 render_next::next_piece_gfx#1 render_next::next_piece_gfx#9 current_piece_gfx#63 current_piece_gfx#122 current_piece_gfx#123 render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 current_piece#17 current_piece#98 current_piece#99 current_piece#100 current_piece#101 current_piece#102 play_collision::piece_gfx#0 play_init::pli#2 play_init::pli#1 ] ] with [ zp ZP_WORD:104 [ 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 render_next::next_piece_gfx#2 render_next::next_piece_gfx#3 render_next::next_piece_gfx#1 render_next::next_piece_gfx#9 current_piece_gfx#63 current_piece_gfx#122 current_piece_gfx#123 render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 current_piece#17 current_piece#98 current_piece#99 current_piece#100 current_piece#101 current_piece#102 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:109 [ 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 render_next::next_piece_gfx#2 render_next::next_piece_gfx#3 render_next::next_piece_gfx#1 render_next::next_piece_gfx#9 current_piece_gfx#63 current_piece_gfx#122 current_piece_gfx#123 render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 current_piece#17 current_piece#98 current_piece#99 current_piece#100 current_piece#101 current_piece#102 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:194 [ 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:20 [ render_next::screen_next_area#4 render_next::screen_next_area#9 render_next::screen_next_area#3 render_next::screen_next_area#10 render_next::screen_next_area#2 ] ] +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_next::screen_next_area#4 render_next::screen_next_area#9 render_next::screen_next_area#3 render_next::screen_next_area#10 render_next::screen_next_area#2 ] ] with [ zp ZP_WORD:106 [ 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_next::screen_next_area#4 render_next::screen_next_area#9 render_next::screen_next_area#3 render_next::screen_next_area#10 render_next::screen_next_area#2 render_init::li_2#2 render_init::li_2#1 ] ] with [ zp ZP_WORD:111 [ 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_next::screen_next_area#4 render_next::screen_next_area#9 render_next::screen_next_area#3 render_next::screen_next_area#10 render_next::screen_next_area#2 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:139 [ render_moving::screen_line#0 ] ] +Coalescing zero page register [ zp ZP_WORD:9 [ render_bcd::offset#6 render_bcd::screen_pos#3 render_bcd::screen_pos#0 render_bcd::screen_pos#2 render_bcd::screen_pos#1 render_next::screen_next_area#4 render_next::screen_next_area#9 render_next::screen_next_area#3 render_next::screen_next_area#10 render_next::screen_next_area#2 render_init::li_2#2 render_init::li_2#1 render_screen_original::ocols#2 render_screen_original::ocols#4 render_screen_original::ocols#1 render_moving::screen_line#0 ] ] with [ zp ZP_WORD:160 [ play_collision::playfield_line#0 ] ] +Coalescing zero page register [ zp ZP_BYTE:17 [ render_next::l#7 render_next::l#1 ] ] with [ zp ZP_BYTE:24 [ render_screen_render#33 render_screen_render#69 ] ] +Coalescing zero page register [ zp ZP_BYTE:17 [ render_next::l#7 render_next::l#1 render_screen_render#33 render_screen_render#69 ] ] with [ zp ZP_BYTE:35 [ render_playfield::l#2 render_playfield::l#1 ] ] +Coalescing zero page register [ zp ZP_BYTE:17 [ render_next::l#7 render_next::l#1 render_screen_render#33 render_screen_render#69 render_playfield::l#2 render_playfield::l#1 ] ] with [ zp ZP_BYTE:40 [ play_movement::return#2 play_movement::render#1 play_movement::return#0 play_movement::render#2 ] ] +Coalescing zero page register [ zp ZP_BYTE:17 [ render_next::l#7 render_next::l#1 render_screen_render#33 render_screen_render#69 render_playfield::l#2 render_playfield::l#1 play_movement::return#2 play_movement::render#1 play_movement::return#0 play_movement::render#2 ] ] with [ zp ZP_BYTE:78 [ play_remove_lines::removed#11 play_remove_lines::removed#7 play_remove_lines::removed#1 ] ] +Coalescing zero page register [ zp ZP_BYTE:17 [ render_next::l#7 render_next::l#1 render_screen_render#33 render_screen_render#69 render_playfield::l#2 render_playfield::l#1 play_movement::return#2 play_movement::render#1 play_movement::return#0 play_movement::render#2 play_remove_lines::removed#11 play_remove_lines::removed#7 play_remove_lines::removed#1 ] ] with [ zp ZP_BYTE:85 [ 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:17 [ render_next::l#7 render_next::l#1 render_screen_render#33 render_screen_render#69 render_playfield::l#2 render_playfield::l#1 play_movement::return#2 play_movement::render#1 play_movement::return#0 play_movement::render#2 play_remove_lines::removed#11 play_remove_lines::removed#7 play_remove_lines::removed#1 play_lock_current::i#2 play_lock_current::i#3 play_lock_current::i#7 play_lock_current::i#9 ] ] with [ zp ZP_BYTE:88 [ keyboard_event_pressed::keycode#5 ] ] +Coalescing zero page register [ zp ZP_BYTE:17 [ render_next::l#7 render_next::l#1 render_screen_render#33 render_screen_render#69 render_playfield::l#2 render_playfield::l#1 play_movement::return#2 play_movement::render#1 play_movement::return#0 play_movement::render#2 play_remove_lines::removed#11 play_remove_lines::removed#7 play_remove_lines::removed#1 play_lock_current::i#2 play_lock_current::i#3 play_lock_current::i#7 play_lock_current::i#9 keyboard_event_pressed::keycode#5 ] ] with [ zp ZP_BYTE:90 [ keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] ] +Coalescing zero page register [ zp ZP_BYTE:25 [ current_xpos#58 current_xpos#132 current_xpos#133 ] ] with [ zp ZP_BYTE:36 [ render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] ] +Coalescing zero page register [ zp ZP_BYTE:25 [ current_xpos#58 current_xpos#132 current_xpos#133 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ] ] with [ zp ZP_BYTE:42 [ play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] ] +Coalescing zero page register [ zp ZP_BYTE:25 [ current_xpos#58 current_xpos#132 current_xpos#133 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 ] ] with [ zp ZP_BYTE:80 [ play_remove_lines::x#2 play_remove_lines::x#1 ] ] +Coalescing zero page register [ zp ZP_BYTE:25 [ current_xpos#58 current_xpos#132 current_xpos#133 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 play_remove_lines::x#2 play_remove_lines::x#1 ] ] with [ zp ZP_BYTE:86 [ play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 ] ] +Coalescing zero page register [ zp ZP_BYTE:25 [ current_xpos#58 current_xpos#132 current_xpos#133 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 play_remove_lines::x#2 play_remove_lines::x#1 play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 ] ] with [ zp ZP_BYTE:93 [ 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:25 [ current_xpos#58 current_xpos#132 current_xpos#133 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 play_remove_lines::x#2 play_remove_lines::x#1 play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 keyboard_event_scan::keycode#15 ] ] with [ zp ZP_BYTE:136 [ render_next::next_piece_char#0 ] ] +Coalescing zero page register [ zp ZP_BYTE:25 [ current_xpos#58 current_xpos#132 current_xpos#133 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 play_remove_lines::x#2 play_remove_lines::x#1 play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 keyboard_event_scan::keycode#15 render_next::next_piece_char#0 ] ] with [ zp ZP_BYTE:198 [ keyboard_event_pressed::row_bits#0 ] ] +Coalescing zero page register [ zp ZP_BYTE:29 [ render_moving::ypos2#2 render_moving::ypos2#0 render_moving::ypos2#1 ] ] with [ zp ZP_BYTE:39 [ render_playfield::c#2 render_playfield::c#1 ] ] +Coalescing zero page register [ zp ZP_BYTE:29 [ render_moving::ypos2#2 render_moving::ypos2#0 render_moving::ypos2#1 render_playfield::c#2 render_playfield::c#1 ] ] with [ zp ZP_BYTE:46 [ play_collision::ypos#5 play_collision::ypos#0 play_collision::ypos#1 play_collision::ypos#2 play_collision::ypos#3 play_collision::ypos#4 play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 ] ] +Coalescing zero page register [ zp ZP_BYTE:29 [ render_moving::ypos2#2 render_moving::ypos2#0 render_moving::ypos2#1 render_playfield::c#2 render_playfield::c#1 play_collision::ypos#5 play_collision::ypos#0 play_collision::ypos#1 play_collision::ypos#2 play_collision::ypos#3 play_collision::ypos#4 play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 ] ] with [ zp ZP_BYTE:81 [ play_remove_lines::full#4 play_remove_lines::full#2 ] ] +Coalescing zero page register [ zp ZP_BYTE:29 [ render_moving::ypos2#2 render_moving::ypos2#0 render_moving::ypos2#1 render_playfield::c#2 render_playfield::c#1 play_collision::ypos#5 play_collision::ypos#0 play_collision::ypos#1 play_collision::ypos#2 play_collision::ypos#3 play_collision::ypos#4 play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 play_remove_lines::full#4 play_remove_lines::full#2 ] ] with [ zp ZP_BYTE:196 [ play_lock_current::i#1 ] ] +Coalescing zero page register [ zp ZP_BYTE:29 [ render_moving::ypos2#2 render_moving::ypos2#0 render_moving::ypos2#1 render_playfield::c#2 render_playfield::c#1 play_collision::ypos#5 play_collision::ypos#0 play_collision::ypos#1 play_collision::ypos#2 play_collision::ypos#3 play_collision::ypos#4 play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 play_remove_lines::full#4 play_remove_lines::full#2 play_lock_current::i#1 ] ] with [ zp ZP_BYTE:203 [ keyboard_event_scan::row_scan#0 ] ] +Coalescing zero page register [ zp ZP_BYTE:30 [ render_moving::l#4 render_moving::l#1 ] ] with [ zp ZP_BYTE:47 [ play_collision::xpos#6 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 play_collision::xpos#4 ] ] +Coalescing zero page register [ zp ZP_BYTE:30 [ render_moving::l#4 render_moving::l#1 play_collision::xpos#6 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 play_collision::xpos#4 ] ] with [ zp ZP_BYTE:193 [ play_remove_lines::c#0 ] ] +Coalescing zero page register [ zp ZP_BYTE:31 [ render_moving::i#4 render_moving::i#3 render_moving::i#8 render_moving::i#2 render_moving::i#1 ] ] with [ zp ZP_BYTE:49 [ play_collision::l#6 play_collision::l#1 ] ] +Coalescing zero page register [ zp ZP_BYTE:32 [ render_moving::xpos#2 render_moving::xpos#0 render_moving::xpos#1 ] ] with [ zp ZP_BYTE:50 [ play_collision::i#2 play_collision::i#3 play_collision::i#11 play_collision::i#13 ] ] +Coalescing zero page register [ zp ZP_BYTE:33 [ render_moving::c#2 render_moving::c#1 ] ] with [ zp ZP_BYTE:51 [ play_collision::col#2 play_collision::col#9 play_collision::col#1 ] ] +Coalescing zero page register [ zp ZP_WORD:57 [ lines_bcd#27 lines_bcd#17 lines_bcd#19 lines_bcd#15 lines_bcd#30 ] ] with [ zp ZP_WORD:113 [ 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:66 [ current_piece#29 current_piece#103 current_piece#10 current_piece#15 current_piece#96 ] ] with [ zp ZP_WORD:115 [ 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:119 [ render_screen_showing#0 ] ] with [ zp ZP_BYTE:218 [ render_screen_showing#1 ] ] +Coalescing zero page register [ zp ZP_BYTE:121 [ irq_sprite_ypos#0 irq_sprite_ypos#3 irq_sprite_ypos#2 ] ] with [ zp ZP_BYTE:236 [ irq_sprite_ypos#1 ] ] +Coalescing zero page register [ zp ZP_BYTE:122 [ irq_sprite_ptr#0 irq_sprite_ptr#3 irq_sprite_ptr#2 ] ] with [ zp ZP_BYTE:237 [ irq_sprite_ptr#1 ] ] +Coalescing zero page register [ zp ZP_BYTE:123 [ irq_cnt#0 irq_cnt#1 ] ] with [ zp ZP_BYTE:233 [ irq_cnt#2 ] ] +Allocated (was zp ZP_WORD:9) zp ZP_WORD:7 [ render_bcd::offset#6 render_bcd::screen_pos#3 render_bcd::screen_pos#0 render_bcd::screen_pos#2 render_bcd::screen_pos#1 render_next::screen_next_area#4 render_next::screen_next_area#9 render_next::screen_next_area#3 render_next::screen_next_area#10 render_next::screen_next_area#2 render_init::li_2#2 render_init::li_2#1 render_screen_original::ocols#2 render_screen_original::ocols#4 render_screen_original::ocols#1 render_moving::screen_line#0 play_collision::playfield_line#0 ] +Allocated (was zp ZP_BYTE:17) zp ZP_BYTE:9 [ render_next::l#7 render_next::l#1 render_screen_render#33 render_screen_render#69 render_playfield::l#2 render_playfield::l#1 play_movement::return#2 play_movement::render#1 play_movement::return#0 play_movement::render#2 play_remove_lines::removed#11 play_remove_lines::removed#7 play_remove_lines::removed#1 play_lock_current::i#2 play_lock_current::i#3 play_lock_current::i#7 play_lock_current::i#9 keyboard_event_pressed::keycode#5 keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] +Allocated (was zp ZP_BYTE:25) zp ZP_BYTE:10 [ current_xpos#58 current_xpos#132 current_xpos#133 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 play_remove_lines::x#2 play_remove_lines::x#1 play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 keyboard_event_scan::keycode#15 render_next::next_piece_char#0 keyboard_event_pressed::row_bits#0 ] +Allocated (was zp ZP_BYTE:29) zp ZP_BYTE:11 [ render_moving::ypos2#2 render_moving::ypos2#0 render_moving::ypos2#1 render_playfield::c#2 render_playfield::c#1 play_collision::ypos#5 play_collision::ypos#0 play_collision::ypos#1 play_collision::ypos#2 play_collision::ypos#3 play_collision::ypos#4 play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 play_remove_lines::full#4 play_remove_lines::full#2 play_lock_current::i#1 keyboard_event_scan::row_scan#0 ] +Allocated (was zp ZP_BYTE:30) zp ZP_BYTE:12 [ render_moving::l#4 render_moving::l#1 play_collision::xpos#6 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 play_collision::xpos#4 play_remove_lines::c#0 ] +Allocated (was zp ZP_BYTE:31) zp ZP_BYTE:13 [ render_moving::i#4 render_moving::i#3 render_moving::i#8 render_moving::i#2 render_moving::i#1 play_collision::l#6 play_collision::l#1 ] +Allocated (was zp ZP_BYTE:32) zp ZP_BYTE:14 [ render_moving::xpos#2 render_moving::xpos#0 render_moving::xpos#1 play_collision::i#2 play_collision::i#3 play_collision::i#11 play_collision::i#13 ] +Allocated (was zp ZP_BYTE:33) zp ZP_BYTE:15 [ render_moving::c#2 render_moving::c#1 play_collision::col#2 play_collision::col#9 play_collision::col#1 ] +Allocated (was zp ZP_BYTE:56) zp ZP_BYTE:16 [ current_ypos#38 current_ypos#10 current_ypos#18 current_ypos#5 current_ypos#2 play_lock_current::ypos2#2 play_lock_current::ypos2#0 play_lock_current::ypos2#1 ] +Allocated (was zp ZP_WORD:57) zp ZP_WORD:17 [ lines_bcd#27 lines_bcd#17 lines_bcd#19 lines_bcd#15 lines_bcd#30 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:59) zp ZP_DWORD:19 [ score_bcd#27 score_bcd#16 score_bcd#18 score_bcd#14 score_bcd#30 ] +Allocated (was zp ZP_BYTE:63) zp ZP_BYTE:23 [ level#31 level#18 level#10 level#16 level#20 ] +Allocated (was zp ZP_BYTE:64) zp ZP_BYTE:24 [ current_movedown_slow#38 current_movedown_slow#23 current_movedown_slow#14 current_movedown_slow#21 current_movedown_slow#1 current_movedown_slow#69 current_movedown_slow#10 ] +Allocated (was zp ZP_BYTE:65) zp ZP_BYTE:25 [ level_bcd#32 level_bcd#19 level_bcd#11 level_bcd#17 level_bcd#64 level_bcd#21 level_bcd#8 ] +Allocated (was zp ZP_WORD:66) zp ZP_WORD:26 [ current_piece#29 current_piece#103 current_piece#10 current_piece#15 current_piece#96 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:68) zp ZP_BYTE:28 [ current_piece_char#29 current_piece_char#21 current_piece_char#15 current_piece_char#4 ] +Allocated (was zp ZP_BYTE:69) zp ZP_BYTE:29 [ current_orientation#38 current_orientation#13 current_orientation#17 current_orientation#20 current_orientation#25 current_orientation#7 ] +Allocated (was zp ZP_WORD:70) zp ZP_WORD:30 [ current_piece_gfx#35 current_piece_gfx#111 current_piece_gfx#17 current_piece_gfx#7 current_piece_gfx#19 current_piece_gfx#20 current_piece_gfx#6 ] +Allocated (was zp ZP_BYTE:72) zp ZP_BYTE:32 [ current_xpos#43 current_xpos#121 current_xpos#18 current_xpos#102 current_xpos#21 current_xpos#25 current_xpos#7 current_xpos#5 ] +Allocated (was zp ZP_BYTE:74) zp ZP_BYTE:33 [ next_piece_idx#17 next_piece_idx#31 next_piece_idx#10 next_piece_idx#16 play_spawn_current::piece_idx#2 play_spawn_current::piece_idx#1 ] +Allocated (was zp ZP_BYTE:75) zp ZP_BYTE:34 [ game_over#65 game_over#28 game_over#10 game_over#15 game_over#52 ] +Allocated (was zp ZP_BYTE:94) zp ZP_BYTE:35 [ 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:118) zp ZP_BYTE:36 [ irq_raster_next#4 irq_raster_next#3 irq_raster_next#1 irq_raster_next#2 irq_raster_next#0 ] +Allocated (was zp ZP_BYTE:119) zp ZP_BYTE:37 [ render_screen_showing#0 render_screen_showing#1 ] +Allocated (was zp ZP_BYTE:121) zp ZP_BYTE:38 [ irq_sprite_ypos#0 irq_sprite_ypos#3 irq_sprite_ypos#2 irq_sprite_ypos#1 ] +Allocated (was zp ZP_BYTE:122) zp ZP_BYTE:39 [ irq_sprite_ptr#0 irq_sprite_ptr#3 irq_sprite_ptr#2 irq_sprite_ptr#1 ] +Allocated (was zp ZP_BYTE:123) zp ZP_BYTE:40 [ irq_cnt#0 irq_cnt#1 irq_cnt#2 ] +Allocated (was zp ZP_BYTE:126) zp ZP_BYTE:41 [ play_movement::key_event#0 ] +Allocated (was zp ZP_BYTE:162) zp ZP_BYTE:42 [ play_collision::i#1 ] +Allocated (was zp ZP_DWORD:185) zp ZP_DWORD:43 [ play_update_score::add_bcd#0 ] +Allocated (was zp ZP_BYTE:226) zp ZP_BYTE:47 [ sprites_irq::raster_sprite_gfx_modify#0 ] Interrupt procedure sprites_irq clobbers AXCNZV -Removing interrupt register storage sty regy+1 in SEG1138 entry interrupt(HARDWARE_CLOBBER) -Removing interrupt register storage regy: in SEG1174 [550] return - exit interrupt(HARDWARE_CLOBBER) -Removing interrupt register storage ldy #00 in SEG1174 [550] return - exit interrupt(HARDWARE_CLOBBER) +Removing interrupt register storage sty regy+1 in SEG1214 entry interrupt(HARDWARE_CLOBBER) +Removing interrupt register storage regy: in SEG1250 [579] return - exit interrupt(HARDWARE_CLOBBER) +Removing interrupt register storage ldy #00 in SEG1250 [579] return - exit interrupt(HARDWARE_CLOBBER) ASSEMBLER BEFORE OPTIMIZATION //SEG0 Basic Upstart @@ -16712,41 +17934,42 @@ ASSEMBLER BEFORE OPTIMIZATION .label PLAYFIELD_SPRITE_PTRS_2 = PLAYFIELD_SCREEN_2+SPRITE_PTRS .const IRQ_RASTER_FIRST = SPRITES_FIRST_YPOS+$13 .const toSpritePtr1_return = PLAYFIELD_SPRITES>>6 - .label keyboard_events_size = $22 - .label render_screen_showing = $24 - .label irq_raster_next = $23 - .label irq_sprite_ypos = $25 - .label irq_sprite_ptr = $26 - .label irq_cnt = $27 + .label keyboard_events_size = $23 + .label render_screen_showing = $25 + .label irq_raster_next = $24 + .label irq_sprite_ypos = $26 + .label irq_sprite_ptr = $27 + .label irq_cnt = $28 .label current_movedown_slow = $18 .label current_ypos = $10 .label current_xpos = $20 .label current_orientation = $1d .label current_piece_gfx = $1e + .label current_piece_char = $1c .label level_bcd = $19 + .label current_piece = $1a + .label game_over = $22 + .label next_piece_idx = $21 .label level = $17 .label render_screen_render = 3 .label render_screen_show = 2 .label current_movedown_counter = 4 .label lines_bcd = $11 .label score_bcd = $13 - .label current_piece = $1a - .label current_piece_char = $1c - .label game_over = $21 - .label current_piece_16 = 5 - .label render_screen_render_30 = 9 - .label current_xpos_57 = $a - .label current_piece_gfx_62 = 5 - .label render_screen_render_64 = 9 - .label current_xpos_124 = $a - .label current_xpos_125 = $a - .label current_piece_gfx_114 = 5 - .label current_piece_gfx_115 = 5 - .label current_piece_90 = 5 - .label current_piece_91 = 5 - .label current_piece_92 = 5 - .label current_piece_93 = 5 - .label current_piece_94 = 5 + .label current_piece_17 = 5 + .label render_screen_render_33 = 9 + .label current_xpos_58 = $a + .label current_piece_gfx_63 = 5 + .label render_screen_render_69 = 9 + .label current_xpos_132 = $a + .label current_xpos_133 = $a + .label current_piece_gfx_122 = 5 + .label current_piece_gfx_123 = 5 + .label current_piece_98 = 5 + .label current_piece_99 = 5 + .label current_piece_100 = 5 + .label current_piece_101 = 5 + .label current_piece_102 = 5 //SEG2 @begin bbegin: jmp b14 @@ -16758,44 +17981,44 @@ 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 b22 -//SEG8 @22 -b22: -//SEG9 kickasm(location (const byte*) PLAYFIELD_SPRITES#0) {{ .var sprites = LoadPicture("playfield-sprites.png", List().add($010101, $000000)) // Put the sprites into memory .for(var sy=0;sy<10;sy++) { .var sprite_gfx_y = sy*20 .for(var sx=0;sx<3;sx++) { .for (var y=0;y<21; y++) { .var gfx_y = sprite_gfx_y + mod(2100+y-sprite_gfx_y,21) .for (var c=0; c<3; c++) { .byte sprites.getSinglecolorByte(sx*3+c,gfx_y) } } .byte 0 } } }} jmp b23 -//SEG10 @23 +//SEG8 @23 b23: +//SEG9 kickasm(location (const byte*) PLAYFIELD_SPRITES#0) {{ .var sprites = LoadPicture("playfield-sprites.png", List().add($010101, $000000)) // Put the sprites into memory .for(var sy=0;sy<10;sy++) { .var sprite_gfx_y = sy*20 .for(var sx=0;sx<3;sx++) { .for (var y=0;y<21; y++) { .var gfx_y = sprite_gfx_y + mod(2100+y-sprite_gfx_y,21) .for (var c=0; c<3; c++) { .byte sprites.getSinglecolorByte(sx*3+c,gfx_y) } } .byte 0 } } }} + jmp b24 +//SEG10 @24 +b24: //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 ← (const byte) SPRITES_FIRST_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuz1=vbuc1 lda #SPRITES_FIRST_YPOS+$15 sta irq_sprite_ypos -//SEG13 [8] phi from @23 to toSpritePtr1 [phi:@23->toSpritePtr1] -toSpritePtr1_from_b23: +//SEG13 [8] phi from @24 to toSpritePtr1 [phi:@24->toSpritePtr1] +toSpritePtr1_from_b24: jmp toSpritePtr1 //SEG14 toSpritePtr1 toSpritePtr1: - jmp b38 -//SEG15 @38 -b38: + jmp b39 +//SEG15 @39 +b39: //SEG16 [9] (byte) irq_sprite_ptr#0 ← (const byte) toSpritePtr1_return#0+(byte/signed byte/word/signed word/dword/signed dword) 3 -- vbuz1=vbuc1 lda #toSpritePtr1_return+3 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 @38 to @37 [phi:@38->@37] -b37_from_b38: - jmp b37 -//SEG19 @37 -b37: +//SEG18 [11] phi from @39 to @38 [phi:@39->@38] +b38_from_b39: + jmp b38 +//SEG19 @38 +b38: //SEG20 [12] call main -//SEG21 [14] phi from @37 to main [phi:@37->main] -main_from_b37: +//SEG21 [14] phi from @38 to main [phi:@38->main] +main_from_b38: jsr main -//SEG22 [13] phi from @37 to @end [phi:@37->@end] -bend_from_b37: +//SEG22 [13] phi from @38 to @end [phi:@38->@end] +bend_from_b38: jmp bend //SEG23 @end bend: @@ -16809,7 +18032,7 @@ main: { //SEG27 asm { sei } sei //SEG28 [17] call render_init - //SEG29 [470] phi from main::@25 to render_init [phi:main::@25->render_init] + //SEG29 [499] phi from main::@25 to render_init [phi:main::@25->render_init] render_init_from_b25: jsr render_init //SEG30 [18] phi from main::@25 to main::@26 [phi:main::@25->main::@26] @@ -16832,7 +18055,7 @@ main: { //SEG37 main::@28 b28: //SEG38 [23] call play_init - //SEG39 [429] phi from main::@28 to play_init [phi:main::@28->play_init] + //SEG39 [458] phi from main::@28 to play_init [phi:main::@28->play_init] play_init_from_b28: jsr play_init //SEG40 [24] phi from main::@28 to main::@29 [phi:main::@28->main::@29] @@ -16841,436 +18064,478 @@ main: { //SEG41 main::@29 b29: //SEG42 [25] call play_spawn_current - //SEG43 [257] phi from main::@29 to play_spawn_current [phi:main::@29->play_spawn_current] + //SEG43 [285] phi from main::@29 to play_spawn_current [phi:main::@29->play_spawn_current] play_spawn_current_from_b29: - //SEG44 [257] phi (byte) game_over#70 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@29->play_spawn_current#0] -- vbuz1=vbuc1 + //SEG44 [285] phi (byte) game_over#65 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@29->play_spawn_current#0] -- vbuz1=vbuc1 lda #0 sta game_over + //SEG45 [285] phi (byte) next_piece_idx#17 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@29->play_spawn_current#1] -- vbuz1=vbuc1 + lda #0 + sta next_piece_idx jsr play_spawn_current - //SEG45 [26] phi from main::@29 to main::@30 [phi:main::@29->main::@30] + //SEG46 [26] phi from main::@29 to main::@30 [phi:main::@29->main::@30] b30_from_b29: jmp b30 - //SEG46 main::@30 + //SEG47 main::@30 b30: - //SEG47 [27] call render_playfield - //SEG48 [122] phi from main::@30 to render_playfield [phi:main::@30->render_playfield] - render_playfield_from_b30: - //SEG49 [122] phi (byte) render_screen_render#21 = (byte/signed byte/word/signed word/dword/signed dword) 64 [phi:main::@30->render_playfield#0] -- vbuxx=vbuc1 + //SEG48 [27] call play_spawn_current + //SEG49 [285] phi from main::@30 to play_spawn_current [phi:main::@30->play_spawn_current] + play_spawn_current_from_b30: + //SEG50 [285] phi (byte) game_over#65 = (byte) game_over#52 [phi:main::@30->play_spawn_current#0] -- register_copy + //SEG51 [285] phi (byte) next_piece_idx#17 = (byte) play_spawn_current::piece_idx#2 [phi:main::@30->play_spawn_current#1] -- register_copy + jsr play_spawn_current + //SEG52 [28] phi from main::@30 to main::@31 [phi:main::@30->main::@31] + b31_from_b30: + jmp b31 + //SEG53 main::@31 + b31: + //SEG54 [29] call render_playfield + //SEG55 [150] phi from main::@31 to render_playfield [phi:main::@31->render_playfield] + render_playfield_from_b31: + //SEG56 [150] phi (byte) render_screen_render#22 = (byte/signed byte/word/signed word/dword/signed dword) 64 [phi:main::@31->render_playfield#0] -- vbuxx=vbuc1 ldx #$40 jsr render_playfield - jmp b31 - //SEG50 main::@31 - b31: - //SEG51 [28] (byte~) current_ypos#100 ← (byte) current_ypos#22 -- vbuyy=vbuz1 + jmp b32 + //SEG57 main::@32 + b32: + //SEG58 [30] (byte~) current_ypos#108 ← (byte) current_ypos#5 -- vbuyy=vbuz1 ldy current_ypos - //SEG52 [29] (byte~) current_xpos#124 ← (byte) current_xpos#28 -- vbuz1=vbuz2 + //SEG59 [31] (byte~) current_xpos#132 ← (byte) current_xpos#102 -- vbuz1=vbuz2 lda current_xpos - sta current_xpos_124 - //SEG53 [30] (byte*~) current_piece_gfx#114 ← (byte*) current_piece_gfx#21 -- pbuz1=pbuz2 + sta current_xpos_132 + //SEG60 [32] (byte*~) current_piece_gfx#122 ← (byte*) current_piece_gfx#7 -- pbuz1=pbuz2 lda current_piece_gfx - sta current_piece_gfx_114 + sta current_piece_gfx_122 lda current_piece_gfx+1 - sta current_piece_gfx_114+1 - //SEG54 [31] (byte~) current_piece_char#102 ← (byte) current_piece_char#16 -- vbuxx=vbuz1 + sta current_piece_gfx_122+1 + //SEG61 [33] (byte~) current_piece_char#110 ← (byte) current_piece_char#4 -- vbuxx=vbuz1 ldx current_piece_char - //SEG55 [32] call render_moving - //SEG56 [101] phi from main::@31 to render_moving [phi:main::@31->render_moving] - render_moving_from_b31: - //SEG57 [101] phi (byte) current_piece_char#64 = (byte~) current_piece_char#102 [phi:main::@31->render_moving#0] -- register_copy - //SEG58 [101] phi (byte*) current_piece_gfx#62 = (byte*~) current_piece_gfx#114 [phi:main::@31->render_moving#1] -- register_copy - //SEG59 [101] phi (byte) current_xpos#57 = (byte~) current_xpos#124 [phi:main::@31->render_moving#2] -- register_copy - //SEG60 [101] phi (byte) render_screen_render#30 = (byte/signed byte/word/signed word/dword/signed dword) 64 [phi:main::@31->render_moving#3] -- vbuz1=vbuc1 + //SEG62 [34] call render_moving + //SEG63 [129] phi from main::@32 to render_moving [phi:main::@32->render_moving] + render_moving_from_b32: + //SEG64 [129] phi (byte) current_piece_char#67 = (byte~) current_piece_char#110 [phi:main::@32->render_moving#0] -- register_copy + //SEG65 [129] phi (byte*) current_piece_gfx#63 = (byte*~) current_piece_gfx#122 [phi:main::@32->render_moving#1] -- register_copy + //SEG66 [129] phi (byte) current_xpos#58 = (byte~) current_xpos#132 [phi:main::@32->render_moving#2] -- register_copy + //SEG67 [129] phi (byte) render_screen_render#33 = (byte/signed byte/word/signed word/dword/signed dword) 64 [phi:main::@32->render_moving#3] -- vbuz1=vbuc1 lda #$40 - sta render_screen_render_30 - //SEG61 [101] phi (byte) current_ypos#11 = (byte~) current_ypos#100 [phi:main::@31->render_moving#4] -- register_copy + sta render_screen_render_33 + //SEG68 [129] phi (byte) current_ypos#12 = (byte~) current_ypos#108 [phi:main::@32->render_moving#4] -- register_copy jsr render_moving - //SEG62 [33] (byte*~) current_piece#88 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) -- pbuz1=pptc1_derefidx_vbuz2 - ldy play_spawn_current._3 + jmp b33 + //SEG69 main::@33 + b33: + //SEG70 [35] (byte~) next_piece_idx#84 ← (byte) play_spawn_current::piece_idx#2 -- vbuyy=vbuz1 + ldy play_spawn_current.piece_idx + //SEG71 [36] call render_next + //SEG72 [108] phi from main::@33 to render_next [phi:main::@33->render_next] + render_next_from_b33: + //SEG73 [108] phi (byte) next_piece_idx#12 = (byte~) next_piece_idx#84 [phi:main::@33->render_next#0] -- register_copy + //SEG74 [108] phi (byte) render_screen_render#15 = (byte/signed byte/word/signed word/dword/signed dword) 64 [phi:main::@33->render_next#1] -- vbuaa=vbuc1 + lda #$40 + jsr render_next + //SEG75 [37] (byte*~) current_piece#96 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$0) -- pbuz1=pptc1_derefidx_vbuz2 + ldy play_spawn_current._0 lda PIECES,y sta current_piece lda PIECES+1,y sta current_piece+1 - //SEG63 [34] phi from main::@31 to main::@1 [phi:main::@31->main::@1] - b1_from_b31: - //SEG64 [34] phi (byte) level_bcd#11 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@31->main::@1#0] -- vbuz1=vbuc1 + //SEG76 [38] phi from main::@33 to main::@1 [phi:main::@33->main::@1] + b1_from_b33: + //SEG77 [38] phi (byte) level_bcd#11 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@33->main::@1#0] -- vbuz1=vbuc1 lda #0 sta level_bcd - //SEG65 [34] phi (byte) level#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@31->main::@1#1] -- vbuz1=vbuc1 + //SEG78 [38] phi (byte) level#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@33->main::@1#1] -- vbuz1=vbuc1 lda #0 sta level - //SEG66 [34] phi (dword) score_bcd#18 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@31->main::@1#2] -- vduz1=vbuc1 + //SEG79 [38] phi (dword) score_bcd#18 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@33->main::@1#2] -- vduz1=vbuc1 lda #0 sta score_bcd lda #0 sta score_bcd+1 sta score_bcd+2 sta score_bcd+3 - //SEG67 [34] phi (word) lines_bcd#19 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@31->main::@1#3] -- vwuz1=vbuc1 + //SEG80 [38] phi (word) lines_bcd#19 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@33->main::@1#3] -- vwuz1=vbuc1 lda #<0 sta lines_bcd lda #>0 sta lines_bcd+1 - //SEG68 [34] phi (byte) current_movedown_counter#16 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@31->main::@1#4] -- vbuz1=vbuc1 + //SEG81 [38] phi (byte) current_movedown_counter#16 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@33->main::@1#4] -- vbuz1=vbuc1 lda #0 sta current_movedown_counter - //SEG69 [34] phi (byte) keyboard_events_size#19 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@31->main::@1#5] -- vbuz1=vbuc1 + //SEG82 [38] phi (byte) keyboard_events_size#19 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@33->main::@1#5] -- vbuz1=vbuc1 lda #0 sta keyboard_events_size - //SEG70 [34] phi (byte) game_over#19 = (byte) game_over#15 [phi:main::@31->main::@1#6] -- register_copy - //SEG71 [34] phi (byte) current_ypos#25 = (byte) current_ypos#22 [phi:main::@31->main::@1#7] -- register_copy - //SEG72 [34] phi (byte) current_xpos#113 = (byte) current_xpos#28 [phi:main::@31->main::@1#8] -- register_copy - //SEG73 [34] phi (byte*) current_piece_gfx#103 = (byte*) current_piece_gfx#21 [phi:main::@31->main::@1#9] -- register_copy - //SEG74 [34] phi (byte) current_orientation#12 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@31->main::@1#10] -- vbuz1=vbuc1 + //SEG83 [38] phi (byte) next_piece_idx#10 = (byte) play_spawn_current::piece_idx#2 [phi:main::@33->main::@1#6] -- register_copy + //SEG84 [38] phi (byte) game_over#10 = (byte) game_over#52 [phi:main::@33->main::@1#7] -- register_copy + //SEG85 [38] phi (byte) current_ypos#10 = (byte) current_ypos#5 [phi:main::@33->main::@1#8] -- register_copy + //SEG86 [38] phi (byte) current_xpos#121 = (byte) current_xpos#102 [phi:main::@33->main::@1#9] -- register_copy + //SEG87 [38] phi (byte*) current_piece_gfx#111 = (byte*) current_piece_gfx#7 [phi:main::@33->main::@1#10] -- register_copy + //SEG88 [38] phi (byte) current_orientation#13 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@33->main::@1#11] -- vbuz1=vbuc1 lda #0 sta current_orientation - //SEG75 [34] phi (byte) current_piece_char#19 = (byte) current_piece_char#16 [phi:main::@31->main::@1#11] -- register_copy - //SEG76 [34] phi (byte*) current_piece#20 = (byte*~) current_piece#88 [phi:main::@31->main::@1#12] -- register_copy - //SEG77 [34] phi (byte) current_movedown_slow#14 = (byte) current_movedown_slow#1 [phi:main::@31->main::@1#13] -- register_copy - //SEG78 [34] phi (byte) render_screen_render#17 = (byte/signed byte/word/signed word/dword/signed dword) 64 [phi:main::@31->main::@1#14] -- vbuz1=vbuc1 + //SEG89 [38] phi (byte) current_piece_char#21 = (byte) current_piece_char#4 [phi:main::@33->main::@1#12] -- register_copy + //SEG90 [38] phi (byte*) current_piece#10 = (byte*~) current_piece#96 [phi:main::@33->main::@1#13] -- register_copy + //SEG91 [38] phi (byte) current_movedown_slow#14 = (byte) current_movedown_slow#1 [phi:main::@33->main::@1#14] -- register_copy + //SEG92 [38] phi (byte) render_screen_render#18 = (byte/signed byte/word/signed word/dword/signed dword) 64 [phi:main::@33->main::@1#15] -- vbuz1=vbuc1 lda #$40 sta render_screen_render - //SEG79 [34] phi (byte) render_screen_show#16 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@31->main::@1#15] -- vbuz1=vbuc1 + //SEG93 [38] phi (byte) render_screen_show#16 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@33->main::@1#16] -- vbuz1=vbuc1 lda #0 sta render_screen_show jmp b1 - //SEG80 [34] phi from main::@11 to main::@1 [phi:main::@11->main::@1] + //SEG94 [38] phi from main::@11 to main::@1 [phi:main::@11->main::@1] b1_from_b11: - //SEG81 [34] phi (byte) level_bcd#11 = (byte) level_bcd#17 [phi:main::@11->main::@1#0] -- register_copy - //SEG82 [34] phi (byte) level#10 = (byte) level#16 [phi:main::@11->main::@1#1] -- register_copy - //SEG83 [34] phi (dword) score_bcd#18 = (dword) score_bcd#14 [phi:main::@11->main::@1#2] -- register_copy - //SEG84 [34] phi (word) lines_bcd#19 = (word) lines_bcd#15 [phi:main::@11->main::@1#3] -- register_copy - //SEG85 [34] phi (byte) current_movedown_counter#16 = (byte) current_movedown_counter#14 [phi:main::@11->main::@1#4] -- register_copy - //SEG86 [34] phi (byte) keyboard_events_size#19 = (byte) keyboard_events_size#16 [phi:main::@11->main::@1#5] -- register_copy - //SEG87 [34] phi (byte) game_over#19 = (byte) game_over#14 [phi:main::@11->main::@1#6] -- register_copy - //SEG88 [34] phi (byte) current_ypos#25 = (byte) current_ypos#17 [phi:main::@11->main::@1#7] -- register_copy - //SEG89 [34] phi (byte) current_xpos#113 = (byte) current_xpos#17 [phi:main::@11->main::@1#8] -- register_copy - //SEG90 [34] phi (byte*) current_piece_gfx#103 = (byte*) current_piece_gfx#16 [phi:main::@11->main::@1#9] -- register_copy - //SEG91 [34] phi (byte) current_orientation#12 = (byte) current_orientation#16 [phi:main::@11->main::@1#10] -- register_copy - //SEG92 [34] phi (byte) current_piece_char#19 = (byte) current_piece_char#14 [phi:main::@11->main::@1#11] -- register_copy - //SEG93 [34] phi (byte*) current_piece#20 = (byte*) current_piece#14 [phi:main::@11->main::@1#12] -- register_copy - //SEG94 [34] phi (byte) current_movedown_slow#14 = (byte) current_movedown_slow#21 [phi:main::@11->main::@1#13] -- register_copy + //SEG95 [38] phi (byte) level_bcd#11 = (byte) level_bcd#17 [phi:main::@11->main::@1#0] -- register_copy + //SEG96 [38] phi (byte) level#10 = (byte) level#16 [phi:main::@11->main::@1#1] -- register_copy + //SEG97 [38] phi (dword) score_bcd#18 = (dword) score_bcd#14 [phi:main::@11->main::@1#2] -- register_copy + //SEG98 [38] phi (word) lines_bcd#19 = (word) lines_bcd#15 [phi:main::@11->main::@1#3] -- register_copy + //SEG99 [38] phi (byte) current_movedown_counter#16 = (byte) current_movedown_counter#14 [phi:main::@11->main::@1#4] -- register_copy + //SEG100 [38] phi (byte) keyboard_events_size#19 = (byte) keyboard_events_size#16 [phi:main::@11->main::@1#5] -- register_copy + //SEG101 [38] phi (byte) next_piece_idx#10 = (byte) next_piece_idx#16 [phi:main::@11->main::@1#6] -- register_copy + //SEG102 [38] phi (byte) game_over#10 = (byte) game_over#15 [phi:main::@11->main::@1#7] -- register_copy + //SEG103 [38] phi (byte) current_ypos#10 = (byte) current_ypos#18 [phi:main::@11->main::@1#8] -- register_copy + //SEG104 [38] phi (byte) current_xpos#121 = (byte) current_xpos#18 [phi:main::@11->main::@1#9] -- register_copy + //SEG105 [38] phi (byte*) current_piece_gfx#111 = (byte*) current_piece_gfx#17 [phi:main::@11->main::@1#10] -- register_copy + //SEG106 [38] phi (byte) current_orientation#13 = (byte) current_orientation#17 [phi:main::@11->main::@1#11] -- register_copy + //SEG107 [38] phi (byte) current_piece_char#21 = (byte) current_piece_char#15 [phi:main::@11->main::@1#12] -- register_copy + //SEG108 [38] phi (byte*) current_piece#10 = (byte*) current_piece#15 [phi:main::@11->main::@1#13] -- register_copy + //SEG109 [38] phi (byte) current_movedown_slow#14 = (byte) current_movedown_slow#21 [phi:main::@11->main::@1#14] -- register_copy jmp b1 - //SEG95 main::@1 + //SEG110 main::@1 b1: jmp b4 - //SEG96 main::@4 + //SEG111 main::@4 b4: - //SEG97 [35] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG112 [39] 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 - //SEG98 [36] phi from main::@4 to main::@6 [phi:main::@4->main::@6] + //SEG113 [40] phi from main::@4 to main::@6 [phi:main::@4->main::@6] b6_from_b4: jmp b6 - //SEG99 main::@6 + //SEG114 main::@6 b6: - //SEG100 [37] call render_show + //SEG115 [41] call render_show jsr render_show - //SEG101 [38] phi from main::@6 to main::@33 [phi:main::@6->main::@33] - b33_from_b6: - jmp b33 - //SEG102 main::@33 - b33: - //SEG103 [39] call keyboard_event_scan - //SEG104 [366] phi from main::@33 to keyboard_event_scan [phi:main::@33->keyboard_event_scan] - keyboard_event_scan_from_b33: - jsr keyboard_event_scan - //SEG105 [40] phi from main::@33 to main::@34 [phi:main::@33->main::@34] - b34_from_b33: - jmp b34 - //SEG106 main::@34 - b34: - //SEG107 [41] call keyboard_event_get - jsr keyboard_event_get - //SEG108 [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 x + //SEG116 [42] phi from main::@6 to main::@35 [phi:main::@6->main::@35] + b35_from_b6: jmp b35 - //SEG109 main::@35 + //SEG117 main::@35 b35: - //SEG110 [43] (byte) main::key_event#0 ← (byte) keyboard_event_get::return#3 + //SEG118 [43] call keyboard_event_scan + //SEG119 [395] phi from main::@35 to keyboard_event_scan [phi:main::@35->keyboard_event_scan] + keyboard_event_scan_from_b35: + jsr keyboard_event_scan + //SEG120 [44] phi from main::@35 to main::@36 [phi:main::@35->main::@36] + b36_from_b35: + jmp b36 + //SEG121 main::@36 + b36: + //SEG122 [45] call keyboard_event_get + jsr keyboard_event_get + //SEG123 [46] (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 x + jmp b37 + //SEG124 main::@37 + b37: + //SEG125 [47] (byte) main::key_event#0 ← (byte) keyboard_event_get::return#3 // (byte) main::key_event#0 = (byte) keyboard_event_get::return#3 // register copy reg byte x - //SEG111 [44] if((byte) game_over#19==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@7 -- vbuz1_eq_0_then_la1 + //SEG126 [48] if((byte) game_over#10==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@7 -- vbuz1_eq_0_then_la1 lda game_over cmp #0 beq b7 jmp b9 - //SEG112 main::@9 + //SEG127 main::@9 b9: - //SEG113 [45] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) -- _deref_pbuc1=_inc__deref_pbuc1 + //SEG128 [49] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) -- _deref_pbuc1=_inc__deref_pbuc1 inc BORDERCOL jmp b9 - //SEG114 main::@7 + //SEG129 main::@7 b7: - //SEG115 [46] (byte) play_movement::key_event#0 ← (byte) main::key_event#0 -- vbuz1=vbuxx + //SEG130 [50] (byte) play_movement::key_event#0 ← (byte) main::key_event#0 -- vbuz1=vbuxx stx play_movement.key_event - //SEG116 [47] call play_movement + //SEG131 [51] call play_movement jsr play_movement - //SEG117 [48] (byte) play_movement::return#3 ← (byte) play_movement::return#2 -- vbuaa=vbuz1 + //SEG132 [52] (byte) play_movement::return#3 ← (byte) play_movement::return#2 -- vbuaa=vbuz1 lda play_movement.return - jmp b36 - //SEG118 main::@36 - b36: - //SEG119 [49] (byte) main::render#1 ← (byte) play_movement::return#3 + jmp b38 + //SEG133 main::@38 + b38: + //SEG134 [53] (byte) main::render#1 ← (byte) play_movement::return#3 // (byte) main::render#1 = (byte) play_movement::return#3 // register copy reg byte a jmp b11 - //SEG120 main::@11 + //SEG135 main::@11 b11: - //SEG121 [50] if((byte) main::render#1==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@1 -- vbuaa_eq_0_then_la1 + //SEG136 [54] if((byte) main::render#1==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@1 -- vbuaa_eq_0_then_la1 cmp #0 beq b1_from_b11 jmp b23 - //SEG122 main::@23 + //SEG137 main::@23 b23: - //SEG123 [51] (byte~) render_screen_render#65 ← (byte) render_screen_render#17 -- vbuxx=vbuz1 + //SEG138 [55] (byte~) render_screen_render#70 ← (byte) render_screen_render#18 -- vbuxx=vbuz1 ldx render_screen_render - //SEG124 [52] call render_playfield - //SEG125 [122] phi from main::@23 to render_playfield [phi:main::@23->render_playfield] + //SEG139 [56] call render_playfield + //SEG140 [150] phi from main::@23 to render_playfield [phi:main::@23->render_playfield] render_playfield_from_b23: - //SEG126 [122] phi (byte) render_screen_render#21 = (byte~) render_screen_render#65 [phi:main::@23->render_playfield#0] -- register_copy + //SEG141 [150] phi (byte) render_screen_render#22 = (byte~) render_screen_render#70 [phi:main::@23->render_playfield#0] -- register_copy jsr render_playfield - jmp b37 - //SEG127 main::@37 - b37: - //SEG128 [53] (byte~) current_ypos#101 ← (byte) current_ypos#17 -- vbuyy=vbuz1 - ldy current_ypos - //SEG129 [54] (byte~) render_screen_render#64 ← (byte) render_screen_render#17 -- vbuz1=vbuz2 - lda render_screen_render - sta render_screen_render_64 - //SEG130 [55] (byte~) current_xpos#125 ← (byte) current_xpos#17 -- vbuz1=vbuz2 - lda current_xpos - sta current_xpos_125 - //SEG131 [56] (byte*~) current_piece_gfx#115 ← (byte*) current_piece_gfx#16 -- pbuz1=pbuz2 - lda current_piece_gfx - sta current_piece_gfx_115 - lda current_piece_gfx+1 - sta current_piece_gfx_115+1 - //SEG132 [57] (byte~) current_piece_char#103 ← (byte) current_piece_char#14 -- vbuxx=vbuz1 - ldx current_piece_char - //SEG133 [58] call render_moving - //SEG134 [101] phi from main::@37 to render_moving [phi:main::@37->render_moving] - render_moving_from_b37: - //SEG135 [101] phi (byte) current_piece_char#64 = (byte~) current_piece_char#103 [phi:main::@37->render_moving#0] -- register_copy - //SEG136 [101] phi (byte*) current_piece_gfx#62 = (byte*~) current_piece_gfx#115 [phi:main::@37->render_moving#1] -- register_copy - //SEG137 [101] phi (byte) current_xpos#57 = (byte~) current_xpos#125 [phi:main::@37->render_moving#2] -- register_copy - //SEG138 [101] phi (byte) render_screen_render#30 = (byte~) render_screen_render#64 [phi:main::@37->render_moving#3] -- register_copy - //SEG139 [101] phi (byte) current_ypos#11 = (byte~) current_ypos#101 [phi:main::@37->render_moving#4] -- register_copy - jsr render_moving - //SEG140 [59] phi from main::@37 to main::@38 [phi:main::@37->main::@38] - b38_from_b37: - jmp b38 - //SEG141 main::@38 - b38: - //SEG142 [60] call render_score - jsr render_score - //SEG143 [61] phi from main::@38 to main::@39 [phi:main::@38->main::@39] - b39_from_b38: jmp b39 - //SEG144 main::@39 + //SEG142 main::@39 b39: - //SEG145 [62] call render_screen_swap + //SEG143 [57] (byte~) current_ypos#109 ← (byte) current_ypos#18 -- vbuyy=vbuz1 + ldy current_ypos + //SEG144 [58] (byte~) render_screen_render#69 ← (byte) render_screen_render#18 -- vbuz1=vbuz2 + lda render_screen_render + sta render_screen_render_69 + //SEG145 [59] (byte~) current_xpos#133 ← (byte) current_xpos#18 -- vbuz1=vbuz2 + lda current_xpos + sta current_xpos_133 + //SEG146 [60] (byte*~) current_piece_gfx#123 ← (byte*) current_piece_gfx#17 -- pbuz1=pbuz2 + lda current_piece_gfx + sta current_piece_gfx_123 + lda current_piece_gfx+1 + sta current_piece_gfx_123+1 + //SEG147 [61] (byte~) current_piece_char#111 ← (byte) current_piece_char#15 -- vbuxx=vbuz1 + ldx current_piece_char + //SEG148 [62] call render_moving + //SEG149 [129] phi from main::@39 to render_moving [phi:main::@39->render_moving] + render_moving_from_b39: + //SEG150 [129] phi (byte) current_piece_char#67 = (byte~) current_piece_char#111 [phi:main::@39->render_moving#0] -- register_copy + //SEG151 [129] phi (byte*) current_piece_gfx#63 = (byte*~) current_piece_gfx#123 [phi:main::@39->render_moving#1] -- register_copy + //SEG152 [129] phi (byte) current_xpos#58 = (byte~) current_xpos#133 [phi:main::@39->render_moving#2] -- register_copy + //SEG153 [129] phi (byte) render_screen_render#33 = (byte~) render_screen_render#69 [phi:main::@39->render_moving#3] -- register_copy + //SEG154 [129] phi (byte) current_ypos#12 = (byte~) current_ypos#109 [phi:main::@39->render_moving#4] -- register_copy + jsr render_moving + jmp b40 + //SEG155 main::@40 + b40: + //SEG156 [63] (byte~) render_screen_render#68 ← (byte) render_screen_render#18 -- vbuaa=vbuz1 + lda render_screen_render + //SEG157 [64] (byte~) next_piece_idx#85 ← (byte) next_piece_idx#16 -- vbuyy=vbuz1 + ldy next_piece_idx + //SEG158 [65] call render_next + //SEG159 [108] phi from main::@40 to render_next [phi:main::@40->render_next] + render_next_from_b40: + //SEG160 [108] phi (byte) next_piece_idx#12 = (byte~) next_piece_idx#85 [phi:main::@40->render_next#0] -- register_copy + //SEG161 [108] phi (byte) render_screen_render#15 = (byte~) render_screen_render#68 [phi:main::@40->render_next#1] -- register_copy + jsr render_next + //SEG162 [66] phi from main::@40 to main::@41 [phi:main::@40->main::@41] + b41_from_b40: + jmp b41 + //SEG163 main::@41 + b41: + //SEG164 [67] call render_score + jsr render_score + //SEG165 [68] phi from main::@41 to main::@42 [phi:main::@41->main::@42] + b42_from_b41: + jmp b42 + //SEG166 main::@42 + b42: + //SEG167 [69] call render_screen_swap jsr render_screen_swap - //SEG146 [34] phi from main::@39 to main::@1 [phi:main::@39->main::@1] - b1_from_b39: - //SEG147 [34] phi (byte) level_bcd#11 = (byte) level_bcd#17 [phi:main::@39->main::@1#0] -- register_copy - //SEG148 [34] phi (byte) level#10 = (byte) level#16 [phi:main::@39->main::@1#1] -- register_copy - //SEG149 [34] phi (dword) score_bcd#18 = (dword) score_bcd#14 [phi:main::@39->main::@1#2] -- register_copy - //SEG150 [34] phi (word) lines_bcd#19 = (word) lines_bcd#15 [phi:main::@39->main::@1#3] -- register_copy - //SEG151 [34] phi (byte) current_movedown_counter#16 = (byte) current_movedown_counter#14 [phi:main::@39->main::@1#4] -- register_copy - //SEG152 [34] phi (byte) keyboard_events_size#19 = (byte) keyboard_events_size#16 [phi:main::@39->main::@1#5] -- register_copy - //SEG153 [34] phi (byte) game_over#19 = (byte) game_over#14 [phi:main::@39->main::@1#6] -- register_copy - //SEG154 [34] phi (byte) current_ypos#25 = (byte) current_ypos#17 [phi:main::@39->main::@1#7] -- register_copy - //SEG155 [34] phi (byte) current_xpos#113 = (byte) current_xpos#17 [phi:main::@39->main::@1#8] -- register_copy - //SEG156 [34] phi (byte*) current_piece_gfx#103 = (byte*) current_piece_gfx#16 [phi:main::@39->main::@1#9] -- register_copy - //SEG157 [34] phi (byte) current_orientation#12 = (byte) current_orientation#16 [phi:main::@39->main::@1#10] -- register_copy - //SEG158 [34] phi (byte) current_piece_char#19 = (byte) current_piece_char#14 [phi:main::@39->main::@1#11] -- register_copy - //SEG159 [34] phi (byte*) current_piece#20 = (byte*) current_piece#14 [phi:main::@39->main::@1#12] -- register_copy - //SEG160 [34] phi (byte) current_movedown_slow#14 = (byte) current_movedown_slow#21 [phi:main::@39->main::@1#13] -- register_copy - //SEG161 [34] phi (byte) render_screen_render#17 = (byte) render_screen_render#11 [phi:main::@39->main::@1#14] -- register_copy - //SEG162 [34] phi (byte) render_screen_show#16 = (byte) render_screen_show#13 [phi:main::@39->main::@1#15] -- register_copy + //SEG168 [38] phi from main::@42 to main::@1 [phi:main::@42->main::@1] + b1_from_b42: + //SEG169 [38] phi (byte) level_bcd#11 = (byte) level_bcd#17 [phi:main::@42->main::@1#0] -- register_copy + //SEG170 [38] phi (byte) level#10 = (byte) level#16 [phi:main::@42->main::@1#1] -- register_copy + //SEG171 [38] phi (dword) score_bcd#18 = (dword) score_bcd#14 [phi:main::@42->main::@1#2] -- register_copy + //SEG172 [38] phi (word) lines_bcd#19 = (word) lines_bcd#15 [phi:main::@42->main::@1#3] -- register_copy + //SEG173 [38] phi (byte) current_movedown_counter#16 = (byte) current_movedown_counter#14 [phi:main::@42->main::@1#4] -- register_copy + //SEG174 [38] phi (byte) keyboard_events_size#19 = (byte) keyboard_events_size#16 [phi:main::@42->main::@1#5] -- register_copy + //SEG175 [38] phi (byte) next_piece_idx#10 = (byte) next_piece_idx#16 [phi:main::@42->main::@1#6] -- register_copy + //SEG176 [38] phi (byte) game_over#10 = (byte) game_over#15 [phi:main::@42->main::@1#7] -- register_copy + //SEG177 [38] phi (byte) current_ypos#10 = (byte) current_ypos#18 [phi:main::@42->main::@1#8] -- register_copy + //SEG178 [38] phi (byte) current_xpos#121 = (byte) current_xpos#18 [phi:main::@42->main::@1#9] -- register_copy + //SEG179 [38] phi (byte*) current_piece_gfx#111 = (byte*) current_piece_gfx#17 [phi:main::@42->main::@1#10] -- register_copy + //SEG180 [38] phi (byte) current_orientation#13 = (byte) current_orientation#17 [phi:main::@42->main::@1#11] -- register_copy + //SEG181 [38] phi (byte) current_piece_char#21 = (byte) current_piece_char#15 [phi:main::@42->main::@1#12] -- register_copy + //SEG182 [38] phi (byte*) current_piece#10 = (byte*) current_piece#15 [phi:main::@42->main::@1#13] -- register_copy + //SEG183 [38] phi (byte) current_movedown_slow#14 = (byte) current_movedown_slow#21 [phi:main::@42->main::@1#14] -- register_copy + //SEG184 [38] phi (byte) render_screen_render#18 = (byte) render_screen_render#11 [phi:main::@42->main::@1#15] -- register_copy + //SEG185 [38] phi (byte) render_screen_show#16 = (byte) render_screen_show#13 [phi:main::@42->main::@1#16] -- register_copy jmp b1 } -//SEG163 render_screen_swap +//SEG186 render_screen_swap render_screen_swap: { - //SEG164 [63] (byte) render_screen_render#11 ← (byte) render_screen_render#17 ^ (byte/signed byte/word/signed word/dword/signed dword) 64 -- vbuz1=vbuz1_bxor_vbuc1 + //SEG187 [70] (byte) render_screen_render#11 ← (byte) render_screen_render#18 ^ (byte/signed byte/word/signed word/dword/signed dword) 64 -- vbuz1=vbuz1_bxor_vbuc1 lda render_screen_render eor #$40 sta render_screen_render - //SEG165 [64] (byte) render_screen_show#13 ← (byte) render_screen_show#16 ^ (byte/signed byte/word/signed word/dword/signed dword) 64 -- vbuz1=vbuz1_bxor_vbuc1 + //SEG188 [71] (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 - //SEG166 render_screen_swap::@return + //SEG189 render_screen_swap::@return breturn: - //SEG167 [65] return + //SEG190 [72] return rts } -//SEG168 render_score +//SEG191 render_score render_score: { .label score_bytes = score_bcd .const score_offset = $28*5+$1c .const lines_offset = $28*1+$16 .const level_offset = $28*$13+$1f .label screen = 5 - //SEG169 [66] 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 + //SEG192 [73] if((byte) render_screen_render#18==(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 - //SEG170 [67] phi from render_score to render_score::@3 [phi:render_score->render_score::@3] + //SEG193 [74] phi from render_score to render_score::@3 [phi:render_score->render_score::@3] b3_from_render_score: jmp b3 - //SEG171 render_score::@3 + //SEG194 render_score::@3 b3: - //SEG172 [68] phi from render_score::@3 to render_score::@2 [phi:render_score::@3->render_score::@2] + //SEG195 [75] phi from render_score::@3 to render_score::@2 [phi:render_score::@3->render_score::@2] b2_from_b3: - //SEG173 [68] phi (byte*) render_score::screen#2 = (const byte*) PLAYFIELD_SCREEN_2#0 [phi:render_score::@3->render_score::@2#0] -- pbuz1=pbuc1 + //SEG196 [75] 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 - //SEG174 [68] phi from render_score to render_score::@2 [phi:render_score->render_score::@2] + //SEG197 [75] phi from render_score to render_score::@2 [phi:render_score->render_score::@2] b2_from_render_score: - //SEG175 [68] phi (byte*) render_score::screen#2 = (const byte*) PLAYFIELD_SCREEN_1#0 [phi:render_score->render_score::@2#0] -- pbuz1=pbuc1 + //SEG198 [75] 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 - //SEG176 render_score::@2 + //SEG199 render_score::@2 b2: - //SEG177 [69] (byte*) render_bcd::screen#0 ← (byte*) render_score::screen#2 + //SEG200 [76] (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 - //SEG178 [70] (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 + //SEG201 [77] (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 - //SEG179 [71] call render_bcd - //SEG180 [88] phi from render_score::@2 to render_bcd [phi:render_score::@2->render_bcd] + //SEG202 [78] call render_bcd + //SEG203 [95] phi from render_score::@2 to render_bcd [phi:render_score::@2->render_bcd] render_bcd_from_b2: - //SEG181 [88] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#0 [phi:render_score::@2->render_bcd#0] -- register_copy - //SEG182 [88] 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 + //SEG204 [95] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#0 [phi:render_score::@2->render_bcd#0] -- register_copy + //SEG205 [95] 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 - //SEG183 [88] phi (word) render_bcd::offset#6 = (const word) render_score::score_offset#0 [phi:render_score::@2->render_bcd#2] -- vwuz1=vwuc1 + //SEG206 [95] 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 - //SEG184 [88] phi (byte*) render_bcd::screen#6 = (byte*) render_bcd::screen#0 [phi:render_score::@2->render_bcd#3] -- register_copy + //SEG207 [95] 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 - //SEG185 render_score::@5 + //SEG208 render_score::@5 b5: - //SEG186 [72] (byte*) render_bcd::screen#1 ← (byte*) render_score::screen#2 + //SEG209 [79] (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 - //SEG187 [73] (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 + //SEG210 [80] (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 - //SEG188 [74] call render_bcd - //SEG189 [88] phi from render_score::@5 to render_bcd [phi:render_score::@5->render_bcd] + //SEG211 [81] call render_bcd + //SEG212 [95] phi from render_score::@5 to render_bcd [phi:render_score::@5->render_bcd] render_bcd_from_b5: - //SEG190 [88] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#1 [phi:render_score::@5->render_bcd#0] -- register_copy - //SEG191 [88] 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 + //SEG213 [95] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#1 [phi:render_score::@5->render_bcd#0] -- register_copy + //SEG214 [95] 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 - //SEG192 [88] 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 + //SEG215 [95] 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 - //SEG193 [88] phi (byte*) render_bcd::screen#6 = (byte*) render_bcd::screen#1 [phi:render_score::@5->render_bcd#3] -- register_copy + //SEG216 [95] 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 - //SEG194 render_score::@6 + //SEG217 render_score::@6 b6: - //SEG195 [75] (byte*) render_bcd::screen#2 ← (byte*) render_score::screen#2 + //SEG218 [82] (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 - //SEG196 [76] (byte) render_bcd::bcd#2 ← *((const byte*) render_score::score_bytes#0) -- vbuxx=_deref_pbuc1 + //SEG219 [83] (byte) render_bcd::bcd#2 ← *((const byte*) render_score::score_bytes#0) -- vbuxx=_deref_pbuc1 ldx score_bytes - //SEG197 [77] call render_bcd - //SEG198 [88] phi from render_score::@6 to render_bcd [phi:render_score::@6->render_bcd] + //SEG220 [84] call render_bcd + //SEG221 [95] phi from render_score::@6 to render_bcd [phi:render_score::@6->render_bcd] render_bcd_from_b6: - //SEG199 [88] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#2 [phi:render_score::@6->render_bcd#0] -- register_copy - //SEG200 [88] 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 + //SEG222 [95] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#2 [phi:render_score::@6->render_bcd#0] -- register_copy + //SEG223 [95] 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 - //SEG201 [88] 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 + //SEG224 [95] 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 - //SEG202 [88] phi (byte*) render_bcd::screen#6 = (byte*) render_bcd::screen#2 [phi:render_score::@6->render_bcd#3] -- register_copy + //SEG225 [95] 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 - //SEG203 render_score::@7 + //SEG226 render_score::@7 b7: - //SEG204 [78] (byte) render_bcd::bcd#3 ← > (word) lines_bcd#15 -- vbuxx=_hi_vwuz1 + //SEG227 [85] (byte) render_bcd::bcd#3 ← > (word) lines_bcd#15 -- vbuxx=_hi_vwuz1 lda lines_bcd+1 tax - //SEG205 [79] (byte*) render_bcd::screen#3 ← (byte*) render_score::screen#2 + //SEG228 [86] (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 - //SEG206 [80] call render_bcd - //SEG207 [88] phi from render_score::@7 to render_bcd [phi:render_score::@7->render_bcd] + //SEG229 [87] call render_bcd + //SEG230 [95] phi from render_score::@7 to render_bcd [phi:render_score::@7->render_bcd] render_bcd_from_b7: - //SEG208 [88] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#3 [phi:render_score::@7->render_bcd#0] -- register_copy - //SEG209 [88] 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 + //SEG231 [95] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#3 [phi:render_score::@7->render_bcd#0] -- register_copy + //SEG232 [95] 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 - //SEG210 [88] phi (word) render_bcd::offset#6 = (const word) render_score::lines_offset#0 [phi:render_score::@7->render_bcd#2] -- vwuz1=vwuc1 + //SEG233 [95] 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 - //SEG211 [88] phi (byte*) render_bcd::screen#6 = (byte*) render_bcd::screen#3 [phi:render_score::@7->render_bcd#3] -- register_copy + //SEG234 [95] 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 - //SEG212 render_score::@8 + //SEG235 render_score::@8 b8: - //SEG213 [81] (byte) render_bcd::bcd#4 ← < (word) lines_bcd#15 -- vbuxx=_lo_vwuz1 + //SEG236 [88] (byte) render_bcd::bcd#4 ← < (word) lines_bcd#15 -- vbuxx=_lo_vwuz1 lda lines_bcd tax - //SEG214 [82] (byte*) render_bcd::screen#4 ← (byte*) render_score::screen#2 + //SEG237 [89] (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 - //SEG215 [83] call render_bcd - //SEG216 [88] phi from render_score::@8 to render_bcd [phi:render_score::@8->render_bcd] + //SEG238 [90] call render_bcd + //SEG239 [95] phi from render_score::@8 to render_bcd [phi:render_score::@8->render_bcd] render_bcd_from_b8: - //SEG217 [88] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#4 [phi:render_score::@8->render_bcd#0] -- register_copy - //SEG218 [88] 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 + //SEG240 [95] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#4 [phi:render_score::@8->render_bcd#0] -- register_copy + //SEG241 [95] 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 - //SEG219 [88] 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 + //SEG242 [95] 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 - //SEG220 [88] phi (byte*) render_bcd::screen#6 = (byte*) render_bcd::screen#4 [phi:render_score::@8->render_bcd#3] -- register_copy + //SEG243 [95] 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 - //SEG221 render_score::@9 + //SEG244 render_score::@9 b9: - //SEG222 [84] (byte*) render_bcd::screen#5 ← (byte*) render_score::screen#2 + //SEG245 [91] (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 - //SEG223 [85] (byte) render_bcd::bcd#5 ← (byte) level_bcd#17 -- vbuxx=vbuz1 + //SEG246 [92] (byte) render_bcd::bcd#5 ← (byte) level_bcd#17 -- vbuxx=vbuz1 ldx level_bcd - //SEG224 [86] call render_bcd - //SEG225 [88] phi from render_score::@9 to render_bcd [phi:render_score::@9->render_bcd] + //SEG247 [93] call render_bcd + //SEG248 [95] phi from render_score::@9 to render_bcd [phi:render_score::@9->render_bcd] render_bcd_from_b9: - //SEG226 [88] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#5 [phi:render_score::@9->render_bcd#0] -- register_copy - //SEG227 [88] 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 + //SEG249 [95] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#5 [phi:render_score::@9->render_bcd#0] -- register_copy + //SEG250 [95] 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 - //SEG228 [88] phi (word) render_bcd::offset#6 = (const word) render_score::level_offset#0 [phi:render_score::@9->render_bcd#2] -- vwuz1=vwuc1 + //SEG251 [95] 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 - //SEG229 [88] phi (byte*) render_bcd::screen#6 = (byte*) render_bcd::screen#5 [phi:render_score::@9->render_bcd#3] -- register_copy + //SEG252 [95] 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 - //SEG230 render_score::@return + //SEG253 render_score::@return breturn: - //SEG231 [87] return + //SEG254 [94] return rts } -//SEG232 render_bcd +//SEG255 render_bcd render_bcd: { .const ZERO_CHAR = $35 .label screen = 5 .label screen_pos = 7 .label offset = 7 - //SEG233 [89] (byte*) render_bcd::screen_pos#0 ← (byte*) render_bcd::screen#6 + (word) render_bcd::offset#6 -- pbuz1=pbuz2_plus_vwuz1 + //SEG256 [96] (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 @@ -17278,57 +18543,194 @@ render_bcd: { lda screen_pos+1 adc screen+1 sta screen_pos+1 - //SEG234 [90] 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 + //SEG257 [97] 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 - //SEG235 render_bcd::@2 + //SEG258 render_bcd::@2 b2: - //SEG236 [91] (byte~) render_bcd::$3 ← (byte) render_bcd::bcd#6 >> (byte/signed byte/word/signed word/dword/signed dword) 4 -- vbuaa=vbuxx_ror_4 + //SEG259 [98] (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 - //SEG237 [92] (byte~) render_bcd::$4 ← (const byte) render_bcd::ZERO_CHAR#0 + (byte~) render_bcd::$3 -- vbuaa=vbuc1_plus_vbuaa + //SEG260 [99] (byte~) render_bcd::$4 ← (const byte) render_bcd::ZERO_CHAR#0 + (byte~) render_bcd::$3 -- vbuaa=vbuc1_plus_vbuaa clc adc #ZERO_CHAR - //SEG238 [93] *((byte*) render_bcd::screen_pos#0) ← (byte~) render_bcd::$4 -- _deref_pbuz1=vbuaa + //SEG261 [100] *((byte*) render_bcd::screen_pos#0) ← (byte~) render_bcd::$4 -- _deref_pbuz1=vbuaa ldy #0 sta (screen_pos),y - //SEG239 [94] (byte*) render_bcd::screen_pos#2 ← ++ (byte*) render_bcd::screen_pos#0 -- pbuz1=_inc_pbuz1 + //SEG262 [101] (byte*) render_bcd::screen_pos#2 ← ++ (byte*) render_bcd::screen_pos#0 -- pbuz1=_inc_pbuz1 inc screen_pos bne !+ inc screen_pos+1 !: - //SEG240 [95] phi from render_bcd render_bcd::@2 to render_bcd::@1 [phi:render_bcd/render_bcd::@2->render_bcd::@1] + //SEG263 [102] 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: - //SEG241 [95] 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 + //SEG264 [102] 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 - //SEG242 render_bcd::@1 + //SEG265 render_bcd::@1 b1: - //SEG243 [96] (byte~) render_bcd::$5 ← (byte) render_bcd::bcd#6 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuxx_band_vbuc1 + //SEG266 [103] (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 - //SEG244 [97] (byte~) render_bcd::$6 ← (const byte) render_bcd::ZERO_CHAR#0 + (byte~) render_bcd::$5 -- vbuaa=vbuc1_plus_vbuaa + //SEG267 [104] (byte~) render_bcd::$6 ← (const byte) render_bcd::ZERO_CHAR#0 + (byte~) render_bcd::$5 -- vbuaa=vbuc1_plus_vbuaa clc adc #ZERO_CHAR - //SEG245 [98] *((byte*) render_bcd::screen_pos#3) ← (byte~) render_bcd::$6 -- _deref_pbuz1=vbuaa + //SEG268 [105] *((byte*) render_bcd::screen_pos#3) ← (byte~) render_bcd::$6 -- _deref_pbuz1=vbuaa ldy #0 sta (screen_pos),y - //SEG246 [99] (byte*) render_bcd::screen_pos#1 ← ++ (byte*) render_bcd::screen_pos#3 -- pbuz1=_inc_pbuz1 + //SEG269 [106] (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 - //SEG247 render_bcd::@return + //SEG270 render_bcd::@return breturn: - //SEG248 [100] return + //SEG271 [107] return rts } -//SEG249 render_moving +//SEG272 render_next +render_next: { + .const next_area_offset = $28*$c+$18+4 + .label next_piece_char = $a + .label next_piece_gfx = 5 + .label screen_next_area = 7 + .label l = 9 + //SEG273 [109] if((byte) render_screen_render#15==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_next::@2 -- vbuaa_eq_0_then_la1 + cmp #0 + beq b2_from_render_next + //SEG274 [110] phi from render_next to render_next::@7 [phi:render_next->render_next::@7] + b7_from_render_next: + jmp b7 + //SEG275 render_next::@7 + b7: + //SEG276 [111] phi from render_next::@7 to render_next::@2 [phi:render_next::@7->render_next::@2] + b2_from_b7: + //SEG277 [111] phi (byte*) render_next::screen_next_area#10 = (const byte*) PLAYFIELD_SCREEN_2#0+(const word) render_next::next_area_offset#0 [phi:render_next::@7->render_next::@2#0] -- pbuz1=pbuc1 + lda #PLAYFIELD_SCREEN_2+next_area_offset + sta screen_next_area+1 + jmp b2 + //SEG278 [111] phi from render_next to render_next::@2 [phi:render_next->render_next::@2] + b2_from_render_next: + //SEG279 [111] phi (byte*) render_next::screen_next_area#10 = (const byte*) PLAYFIELD_SCREEN_1#0+(const word) render_next::next_area_offset#0 [phi:render_next->render_next::@2#0] -- pbuz1=pbuc1 + lda #PLAYFIELD_SCREEN_1+next_area_offset + sta screen_next_area+1 + jmp b2 + //SEG280 render_next::@2 + b2: + //SEG281 [112] (byte~) render_next::$6 ← (byte) next_piece_idx#12 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuxx=vbuyy_rol_1 + tya + asl + tax + //SEG282 [113] (byte) render_next::next_piece_char#0 ← *((const byte[]) PIECES_NEXT_CHARS#0 + (byte) next_piece_idx#12) -- vbuz1=pbuc1_derefidx_vbuyy + lda PIECES_NEXT_CHARS,y + sta next_piece_char + //SEG283 [114] (byte*~) render_next::next_piece_gfx#9 ← (byte*)*((const word[]) PIECES#0 + (byte~) render_next::$6) -- pbuz1=pptc1_derefidx_vbuxx + lda PIECES,x + sta next_piece_gfx + lda PIECES+1,x + sta next_piece_gfx+1 + //SEG284 [115] phi from render_next::@2 to render_next::@3 [phi:render_next::@2->render_next::@3] + b3_from_b2: + //SEG285 [115] phi (byte) render_next::l#7 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_next::@2->render_next::@3#0] -- vbuz1=vbuc1 + lda #0 + sta l + //SEG286 [115] phi (byte*) render_next::screen_next_area#9 = (byte*) render_next::screen_next_area#10 [phi:render_next::@2->render_next::@3#1] -- register_copy + //SEG287 [115] phi (byte*) render_next::next_piece_gfx#3 = (byte*~) render_next::next_piece_gfx#9 [phi:render_next::@2->render_next::@3#2] -- register_copy + jmp b3 + //SEG288 [115] phi from render_next::@11 to render_next::@3 [phi:render_next::@11->render_next::@3] + b3_from_b11: + //SEG289 [115] phi (byte) render_next::l#7 = (byte) render_next::l#1 [phi:render_next::@11->render_next::@3#0] -- register_copy + //SEG290 [115] phi (byte*) render_next::screen_next_area#9 = (byte*) render_next::screen_next_area#3 [phi:render_next::@11->render_next::@3#1] -- register_copy + //SEG291 [115] phi (byte*) render_next::next_piece_gfx#3 = (byte*) render_next::next_piece_gfx#1 [phi:render_next::@11->render_next::@3#2] -- register_copy + jmp b3 + //SEG292 render_next::@3 + b3: + //SEG293 [116] phi from render_next::@3 to render_next::@4 [phi:render_next::@3->render_next::@4] + b4_from_b3: + //SEG294 [116] phi (byte) render_next::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_next::@3->render_next::@4#0] -- vbuxx=vbuc1 + ldx #0 + //SEG295 [116] phi (byte*) render_next::screen_next_area#4 = (byte*) render_next::screen_next_area#9 [phi:render_next::@3->render_next::@4#1] -- register_copy + //SEG296 [116] phi (byte*) render_next::next_piece_gfx#2 = (byte*) render_next::next_piece_gfx#3 [phi:render_next::@3->render_next::@4#2] -- register_copy + jmp b4 + //SEG297 [116] phi from render_next::@6 to render_next::@4 [phi:render_next::@6->render_next::@4] + b4_from_b6: + //SEG298 [116] phi (byte) render_next::c#2 = (byte) render_next::c#1 [phi:render_next::@6->render_next::@4#0] -- register_copy + //SEG299 [116] phi (byte*) render_next::screen_next_area#4 = (byte*) render_next::screen_next_area#2 [phi:render_next::@6->render_next::@4#1] -- register_copy + //SEG300 [116] phi (byte*) render_next::next_piece_gfx#2 = (byte*) render_next::next_piece_gfx#1 [phi:render_next::@6->render_next::@4#2] -- register_copy + jmp b4 + //SEG301 render_next::@4 + b4: + //SEG302 [117] (byte) render_next::cell#0 ← *((byte*) render_next::next_piece_gfx#2) -- vbuaa=_deref_pbuz1 + ldy #0 + lda (next_piece_gfx),y + //SEG303 [118] (byte*) render_next::next_piece_gfx#1 ← ++ (byte*) render_next::next_piece_gfx#2 -- pbuz1=_inc_pbuz1 + inc next_piece_gfx + bne !+ + inc next_piece_gfx+1 + !: + //SEG304 [119] if((byte) render_next::cell#0!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_next::@5 -- vbuaa_neq_0_then_la1 + cmp #0 + bne b5 + jmp b9 + //SEG305 render_next::@9 + b9: + //SEG306 [120] *((byte*) render_next::screen_next_area#4) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuz1=vbuc1 + lda #0 + ldy #0 + sta (screen_next_area),y + jmp b6 + //SEG307 render_next::@6 + b6: + //SEG308 [121] (byte*) render_next::screen_next_area#2 ← ++ (byte*) render_next::screen_next_area#4 -- pbuz1=_inc_pbuz1 + inc screen_next_area + bne !+ + inc screen_next_area+1 + !: + //SEG309 [122] (byte) render_next::c#1 ← ++ (byte) render_next::c#2 -- vbuxx=_inc_vbuxx + inx + //SEG310 [123] if((byte) render_next::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_next::@4 -- vbuxx_neq_vbuc1_then_la1 + cpx #4 + bne b4_from_b6 + jmp b11 + //SEG311 render_next::@11 + b11: + //SEG312 [124] (byte*) render_next::screen_next_area#3 ← (byte*) render_next::screen_next_area#2 + (byte/signed byte/word/signed word/dword/signed dword) 36 -- pbuz1=pbuz1_plus_vbuc1 + lda screen_next_area + clc + adc #$24 + sta screen_next_area + bcc !+ + inc screen_next_area+1 + !: + //SEG313 [125] (byte) render_next::l#1 ← ++ (byte) render_next::l#7 -- vbuz1=_inc_vbuz1 + inc l + //SEG314 [126] if((byte) render_next::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_next::@3 -- vbuz1_neq_vbuc1_then_la1 + lda l + cmp #4 + bne b3_from_b11 + jmp breturn + //SEG315 render_next::@return + breturn: + //SEG316 [127] return + rts + //SEG317 render_next::@5 + b5: + //SEG318 [128] *((byte*) render_next::screen_next_area#4) ← (byte) render_next::next_piece_char#0 -- _deref_pbuz1=vbuz2 + lda next_piece_char + ldy #0 + sta (screen_next_area),y + jmp b6 +} +//SEG319 render_moving render_moving: { .label ypos2 = $b .label screen_line = 7 @@ -17336,356 +18738,356 @@ render_moving: { .label i = $d .label l = $c .label c = $f - //SEG250 [102] (byte) render_moving::ypos2#0 ← (byte) current_ypos#11 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuyy_rol_1 + //SEG320 [130] (byte) render_moving::ypos2#0 ← (byte) current_ypos#12 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuyy_rol_1 tya asl sta ypos2 - //SEG251 [103] phi from render_moving to render_moving::@1 [phi:render_moving->render_moving::@1] + //SEG321 [131] phi from render_moving to render_moving::@1 [phi:render_moving->render_moving::@1] b1_from_render_moving: - //SEG252 [103] phi (byte) render_moving::l#4 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_moving->render_moving::@1#0] -- vbuz1=vbuc1 + //SEG322 [131] phi (byte) render_moving::l#4 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_moving->render_moving::@1#0] -- vbuz1=vbuc1 lda #0 sta l - //SEG253 [103] phi (byte) render_moving::i#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_moving->render_moving::@1#1] -- vbuz1=vbuc1 + //SEG323 [131] phi (byte) render_moving::i#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_moving->render_moving::@1#1] -- vbuz1=vbuc1 lda #0 sta i - //SEG254 [103] phi (byte) render_moving::ypos2#2 = (byte) render_moving::ypos2#0 [phi:render_moving->render_moving::@1#2] -- register_copy + //SEG324 [131] phi (byte) render_moving::ypos2#2 = (byte) render_moving::ypos2#0 [phi:render_moving->render_moving::@1#2] -- register_copy jmp b1 - //SEG255 [103] phi from render_moving::@3 to render_moving::@1 [phi:render_moving::@3->render_moving::@1] + //SEG325 [131] phi from render_moving::@3 to render_moving::@1 [phi:render_moving::@3->render_moving::@1] b1_from_b3: - //SEG256 [103] phi (byte) render_moving::l#4 = (byte) render_moving::l#1 [phi:render_moving::@3->render_moving::@1#0] -- register_copy - //SEG257 [103] phi (byte) render_moving::i#3 = (byte) render_moving::i#8 [phi:render_moving::@3->render_moving::@1#1] -- register_copy - //SEG258 [103] phi (byte) render_moving::ypos2#2 = (byte) render_moving::ypos2#1 [phi:render_moving::@3->render_moving::@1#2] -- register_copy + //SEG326 [131] phi (byte) render_moving::l#4 = (byte) render_moving::l#1 [phi:render_moving::@3->render_moving::@1#0] -- register_copy + //SEG327 [131] phi (byte) render_moving::i#3 = (byte) render_moving::i#8 [phi:render_moving::@3->render_moving::@1#1] -- register_copy + //SEG328 [131] phi (byte) render_moving::ypos2#2 = (byte) render_moving::ypos2#1 [phi:render_moving::@3->render_moving::@1#2] -- register_copy jmp b1 - //SEG259 render_moving::@1 + //SEG329 render_moving::@1 b1: - //SEG260 [104] if((byte) render_moving::ypos2#2>(byte/signed byte/word/signed word/dword/signed dword) 2) goto render_moving::@2 -- vbuz1_gt_vbuc1_then_la1 + //SEG330 [132] if((byte) render_moving::ypos2#2>(byte/signed byte/word/signed word/dword/signed dword) 2) goto render_moving::@2 -- vbuz1_gt_vbuc1_then_la1 lda ypos2 cmp #2 beq !+ bcs b2 !: jmp b6 - //SEG261 render_moving::@6 + //SEG331 render_moving::@6 b6: - //SEG262 [105] (byte) render_moving::i#1 ← (byte) render_moving::i#3 + (byte/signed byte/word/signed word/dword/signed dword) 4 -- vbuz1=vbuz1_plus_vbuc1 + //SEG332 [133] (byte) render_moving::i#1 ← (byte) render_moving::i#3 + (byte/signed byte/word/signed word/dword/signed dword) 4 -- vbuz1=vbuz1_plus_vbuc1 lda #4 clc adc i sta i - //SEG263 [106] phi from render_moving::@5 render_moving::@6 to render_moving::@3 [phi:render_moving::@5/render_moving::@6->render_moving::@3] + //SEG333 [134] phi from render_moving::@5 render_moving::@6 to render_moving::@3 [phi:render_moving::@5/render_moving::@6->render_moving::@3] b3_from_b5: b3_from_b6: - //SEG264 [106] phi (byte) render_moving::i#8 = (byte) render_moving::i#2 [phi:render_moving::@5/render_moving::@6->render_moving::@3#0] -- register_copy + //SEG334 [134] phi (byte) render_moving::i#8 = (byte) render_moving::i#2 [phi:render_moving::@5/render_moving::@6->render_moving::@3#0] -- register_copy jmp b3 - //SEG265 render_moving::@3 + //SEG335 render_moving::@3 b3: - //SEG266 [107] (byte) render_moving::ypos2#1 ← (byte) render_moving::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz1_plus_2 + //SEG336 [135] (byte) render_moving::ypos2#1 ← (byte) render_moving::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz1_plus_2 lda ypos2 clc adc #2 sta ypos2 - //SEG267 [108] (byte) render_moving::l#1 ← ++ (byte) render_moving::l#4 -- vbuz1=_inc_vbuz1 + //SEG337 [136] (byte) render_moving::l#1 ← ++ (byte) render_moving::l#4 -- vbuz1=_inc_vbuz1 inc l - //SEG268 [109] if((byte) render_moving::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_moving::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG338 [137] if((byte) render_moving::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_moving::@1 -- vbuz1_neq_vbuc1_then_la1 lda l cmp #4 bne b1_from_b3 jmp breturn - //SEG269 render_moving::@return + //SEG339 render_moving::@return breturn: - //SEG270 [110] return + //SEG340 [138] return rts - //SEG271 render_moving::@2 + //SEG341 render_moving::@2 b2: - //SEG272 [111] (byte~) render_moving::$2 ← (byte) render_screen_render#30 + (byte) render_moving::ypos2#2 -- vbuaa=vbuz1_plus_vbuz2 - lda render_screen_render_30 + //SEG342 [139] (byte~) render_moving::$2 ← (byte) render_screen_render#33 + (byte) render_moving::ypos2#2 -- vbuaa=vbuz1_plus_vbuz2 + lda render_screen_render_33 clc adc ypos2 - //SEG273 [112] (byte*) render_moving::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_moving::$2) -- pbuz1=pptc1_derefidx_vbuaa + //SEG343 [140] (byte*) render_moving::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_moving::$2) -- pbuz1=pptc1_derefidx_vbuaa tay lda screen_lines_1,y sta screen_line lda screen_lines_1+1,y sta screen_line+1 - //SEG274 [113] (byte) render_moving::xpos#0 ← (byte) current_xpos#57 -- vbuz1=vbuz2 - lda current_xpos_57 + //SEG344 [141] (byte) render_moving::xpos#0 ← (byte) current_xpos#58 -- vbuz1=vbuz2 + lda current_xpos_58 sta xpos - //SEG275 [114] phi from render_moving::@2 to render_moving::@4 [phi:render_moving::@2->render_moving::@4] + //SEG345 [142] phi from render_moving::@2 to render_moving::@4 [phi:render_moving::@2->render_moving::@4] b4_from_b2: - //SEG276 [114] phi (byte) render_moving::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_moving::@2->render_moving::@4#0] -- vbuz1=vbuc1 + //SEG346 [142] phi (byte) render_moving::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_moving::@2->render_moving::@4#0] -- vbuz1=vbuc1 lda #0 sta c - //SEG277 [114] phi (byte) render_moving::xpos#2 = (byte) render_moving::xpos#0 [phi:render_moving::@2->render_moving::@4#1] -- register_copy - //SEG278 [114] phi (byte) render_moving::i#4 = (byte) render_moving::i#3 [phi:render_moving::@2->render_moving::@4#2] -- register_copy + //SEG347 [142] phi (byte) render_moving::xpos#2 = (byte) render_moving::xpos#0 [phi:render_moving::@2->render_moving::@4#1] -- register_copy + //SEG348 [142] phi (byte) render_moving::i#4 = (byte) render_moving::i#3 [phi:render_moving::@2->render_moving::@4#2] -- register_copy jmp b4 - //SEG279 [114] phi from render_moving::@5 to render_moving::@4 [phi:render_moving::@5->render_moving::@4] + //SEG349 [142] phi from render_moving::@5 to render_moving::@4 [phi:render_moving::@5->render_moving::@4] b4_from_b5: - //SEG280 [114] phi (byte) render_moving::c#2 = (byte) render_moving::c#1 [phi:render_moving::@5->render_moving::@4#0] -- register_copy - //SEG281 [114] phi (byte) render_moving::xpos#2 = (byte) render_moving::xpos#1 [phi:render_moving::@5->render_moving::@4#1] -- register_copy - //SEG282 [114] phi (byte) render_moving::i#4 = (byte) render_moving::i#2 [phi:render_moving::@5->render_moving::@4#2] -- register_copy + //SEG350 [142] phi (byte) render_moving::c#2 = (byte) render_moving::c#1 [phi:render_moving::@5->render_moving::@4#0] -- register_copy + //SEG351 [142] phi (byte) render_moving::xpos#2 = (byte) render_moving::xpos#1 [phi:render_moving::@5->render_moving::@4#1] -- register_copy + //SEG352 [142] phi (byte) render_moving::i#4 = (byte) render_moving::i#2 [phi:render_moving::@5->render_moving::@4#2] -- register_copy jmp b4 - //SEG283 render_moving::@4 + //SEG353 render_moving::@4 b4: - //SEG284 [115] (byte) render_moving::current_cell#0 ← *((byte*) current_piece_gfx#62 + (byte) render_moving::i#4) -- vbuaa=pbuz1_derefidx_vbuz2 + //SEG354 [143] (byte) render_moving::current_cell#0 ← *((byte*) current_piece_gfx#63 + (byte) render_moving::i#4) -- vbuaa=pbuz1_derefidx_vbuz2 ldy i - lda (current_piece_gfx_62),y - //SEG285 [116] (byte) render_moving::i#2 ← ++ (byte) render_moving::i#4 -- vbuz1=_inc_vbuz1 + lda (current_piece_gfx_63),y + //SEG355 [144] (byte) render_moving::i#2 ← ++ (byte) render_moving::i#4 -- vbuz1=_inc_vbuz1 inc i - //SEG286 [117] if((byte) render_moving::current_cell#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_moving::@5 -- vbuaa_eq_0_then_la1 + //SEG356 [145] if((byte) render_moving::current_cell#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_moving::@5 -- vbuaa_eq_0_then_la1 cmp #0 beq b5 jmp b8 - //SEG287 render_moving::@8 + //SEG357 render_moving::@8 b8: - //SEG288 [118] *((byte*) render_moving::screen_line#0 + (byte) render_moving::xpos#2) ← (byte) current_piece_char#64 -- pbuz1_derefidx_vbuz2=vbuxx + //SEG358 [146] *((byte*) render_moving::screen_line#0 + (byte) render_moving::xpos#2) ← (byte) current_piece_char#67 -- pbuz1_derefidx_vbuz2=vbuxx ldy xpos txa sta (screen_line),y jmp b5 - //SEG289 render_moving::@5 + //SEG359 render_moving::@5 b5: - //SEG290 [119] (byte) render_moving::xpos#1 ← ++ (byte) render_moving::xpos#2 -- vbuz1=_inc_vbuz1 + //SEG360 [147] (byte) render_moving::xpos#1 ← ++ (byte) render_moving::xpos#2 -- vbuz1=_inc_vbuz1 inc xpos - //SEG291 [120] (byte) render_moving::c#1 ← ++ (byte) render_moving::c#2 -- vbuz1=_inc_vbuz1 + //SEG361 [148] (byte) render_moving::c#1 ← ++ (byte) render_moving::c#2 -- vbuz1=_inc_vbuz1 inc c - //SEG292 [121] if((byte) render_moving::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_moving::@4 -- vbuz1_neq_vbuc1_then_la1 + //SEG362 [149] if((byte) render_moving::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_moving::@4 -- vbuz1_neq_vbuc1_then_la1 lda c cmp #4 bne b4_from_b5 jmp b3_from_b5 } -//SEG293 render_playfield +//SEG363 render_playfield render_playfield: { .label screen_line = 5 .label i = $a .label c = $b .label l = 9 - //SEG294 [123] phi from render_playfield to render_playfield::@1 [phi:render_playfield->render_playfield::@1] + //SEG364 [151] phi from render_playfield to render_playfield::@1 [phi:render_playfield->render_playfield::@1] b1_from_render_playfield: - //SEG295 [123] phi (byte) render_playfield::i#3 = (const byte) PLAYFIELD_COLS#0*(byte/signed byte/word/signed word/dword/signed dword) 2 [phi:render_playfield->render_playfield::@1#0] -- vbuz1=vbuc1 + //SEG365 [151] 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 - //SEG296 [123] phi (byte) render_playfield::l#2 = (byte/signed byte/word/signed word/dword/signed dword) 2 [phi:render_playfield->render_playfield::@1#1] -- vbuz1=vbuc1 + //SEG366 [151] 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 - //SEG297 [123] phi from render_playfield::@3 to render_playfield::@1 [phi:render_playfield::@3->render_playfield::@1] + //SEG367 [151] phi from render_playfield::@3 to render_playfield::@1 [phi:render_playfield::@3->render_playfield::@1] b1_from_b3: - //SEG298 [123] phi (byte) render_playfield::i#3 = (byte) render_playfield::i#1 [phi:render_playfield::@3->render_playfield::@1#0] -- register_copy - //SEG299 [123] phi (byte) render_playfield::l#2 = (byte) render_playfield::l#1 [phi:render_playfield::@3->render_playfield::@1#1] -- register_copy + //SEG368 [151] phi (byte) render_playfield::i#3 = (byte) render_playfield::i#1 [phi:render_playfield::@3->render_playfield::@1#0] -- register_copy + //SEG369 [151] phi (byte) render_playfield::l#2 = (byte) render_playfield::l#1 [phi:render_playfield::@3->render_playfield::@1#1] -- register_copy jmp b1 - //SEG300 render_playfield::@1 + //SEG370 render_playfield::@1 b1: - //SEG301 [124] (byte~) render_playfield::$2 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuz1_rol_1 + //SEG371 [152] (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 - //SEG302 [125] (byte~) render_playfield::$3 ← (byte) render_screen_render#21 + (byte~) render_playfield::$2 -- vbuaa=vbuxx_plus_vbuaa + //SEG372 [153] (byte~) render_playfield::$3 ← (byte) render_screen_render#22 + (byte~) render_playfield::$2 -- vbuaa=vbuxx_plus_vbuaa stx $ff clc adc $ff - //SEG303 [126] (byte*) render_playfield::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_playfield::$3) -- pbuz1=pptc1_derefidx_vbuaa + //SEG373 [154] (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 - //SEG304 [127] phi from render_playfield::@1 to render_playfield::@2 [phi:render_playfield::@1->render_playfield::@2] + //SEG374 [155] phi from render_playfield::@1 to render_playfield::@2 [phi:render_playfield::@1->render_playfield::@2] b2_from_b1: - //SEG305 [127] phi (byte) render_playfield::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_playfield::@1->render_playfield::@2#0] -- vbuz1=vbuc1 + //SEG375 [155] 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 - //SEG306 [127] phi (byte*) render_playfield::screen_line#2 = (byte*) render_playfield::screen_line#0 [phi:render_playfield::@1->render_playfield::@2#1] -- register_copy - //SEG307 [127] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#3 [phi:render_playfield::@1->render_playfield::@2#2] -- register_copy + //SEG376 [155] phi (byte*) render_playfield::screen_line#2 = (byte*) render_playfield::screen_line#0 [phi:render_playfield::@1->render_playfield::@2#1] -- register_copy + //SEG377 [155] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#3 [phi:render_playfield::@1->render_playfield::@2#2] -- register_copy jmp b2 - //SEG308 [127] phi from render_playfield::@2 to render_playfield::@2 [phi:render_playfield::@2->render_playfield::@2] + //SEG378 [155] phi from render_playfield::@2 to render_playfield::@2 [phi:render_playfield::@2->render_playfield::@2] b2_from_b2: - //SEG309 [127] phi (byte) render_playfield::c#2 = (byte) render_playfield::c#1 [phi:render_playfield::@2->render_playfield::@2#0] -- register_copy - //SEG310 [127] phi (byte*) render_playfield::screen_line#2 = (byte*) render_playfield::screen_line#1 [phi:render_playfield::@2->render_playfield::@2#1] -- register_copy - //SEG311 [127] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#1 [phi:render_playfield::@2->render_playfield::@2#2] -- register_copy + //SEG379 [155] phi (byte) render_playfield::c#2 = (byte) render_playfield::c#1 [phi:render_playfield::@2->render_playfield::@2#0] -- register_copy + //SEG380 [155] phi (byte*) render_playfield::screen_line#2 = (byte*) render_playfield::screen_line#1 [phi:render_playfield::@2->render_playfield::@2#1] -- register_copy + //SEG381 [155] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#1 [phi:render_playfield::@2->render_playfield::@2#2] -- register_copy jmp b2 - //SEG312 render_playfield::@2 + //SEG382 render_playfield::@2 b2: - //SEG313 [128] *((byte*) render_playfield::screen_line#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2) -- _deref_pbuz1=pbuc1_derefidx_vbuz2 + //SEG383 [156] *((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 - //SEG314 [129] (byte*) render_playfield::screen_line#1 ← ++ (byte*) render_playfield::screen_line#2 -- pbuz1=_inc_pbuz1 + //SEG384 [157] (byte*) render_playfield::screen_line#1 ← ++ (byte*) render_playfield::screen_line#2 -- pbuz1=_inc_pbuz1 inc screen_line bne !+ inc screen_line+1 !: - //SEG315 [130] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2 -- vbuz1=_inc_vbuz1 + //SEG385 [158] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG316 [131] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2 -- vbuz1=_inc_vbuz1 + //SEG386 [159] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2 -- vbuz1=_inc_vbuz1 inc c - //SEG317 [132] if((byte) render_playfield::c#1!=(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_playfield::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG387 [160] 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 - //SEG318 render_playfield::@3 + //SEG388 render_playfield::@3 b3: - //SEG319 [133] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2 -- vbuz1=_inc_vbuz1 + //SEG389 [161] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2 -- vbuz1=_inc_vbuz1 inc l - //SEG320 [134] if((byte) render_playfield::l#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_playfield::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG390 [162] 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 - //SEG321 render_playfield::@return + //SEG391 render_playfield::@return breturn: - //SEG322 [135] return + //SEG392 [163] return rts } -//SEG323 play_movement +//SEG393 play_movement play_movement: { .label render = 9 .label return = 9 - .label key_event = $28 - //SEG324 [136] (byte) play_move_down::key_event#0 ← (byte) play_movement::key_event#0 -- vbuaa=vbuz1 + .label key_event = $29 + //SEG394 [164] (byte) play_move_down::key_event#0 ← (byte) play_movement::key_event#0 -- vbuaa=vbuz1 lda key_event - //SEG325 [137] call play_move_down + //SEG395 [165] call play_move_down jsr play_move_down - //SEG326 [138] (byte) play_move_down::return#0 ← (byte) play_move_down::return#3 -- vbuaa=vbuxx + //SEG396 [166] (byte) play_move_down::return#0 ← (byte) play_move_down::return#3 -- vbuaa=vbuxx txa jmp b5 - //SEG327 play_movement::@5 + //SEG397 play_movement::@5 b5: - //SEG328 [139] (byte~) play_movement::$0 ← (byte) play_move_down::return#0 + //SEG398 [167] (byte~) play_movement::$0 ← (byte) play_move_down::return#0 // (byte~) play_movement::$0 = (byte) play_move_down::return#0 // register copy reg byte a - //SEG329 [140] (byte) play_movement::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) play_movement::$0 -- vbuz1=vbuc1_plus_vbuaa + //SEG399 [168] (byte) play_movement::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) play_movement::$0 -- vbuz1=vbuc1_plus_vbuaa clc adc #0 sta render - //SEG330 [141] if((byte) game_over#14==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_movement::@1 -- vbuz1_eq_0_then_la1 + //SEG400 [169] if((byte) game_over#15==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_movement::@1 -- vbuz1_eq_0_then_la1 lda game_over cmp #0 beq b1 - //SEG331 [142] phi from play_movement::@5 play_movement::@7 to play_movement::@return [phi:play_movement::@5/play_movement::@7->play_movement::@return] + //SEG401 [170] phi from play_movement::@5 play_movement::@7 to play_movement::@return [phi:play_movement::@5/play_movement::@7->play_movement::@return] breturn_from_b5: breturn_from_b7: - //SEG332 [142] phi (byte) current_xpos#17 = (byte) current_xpos#20 [phi:play_movement::@5/play_movement::@7->play_movement::@return#0] -- register_copy - //SEG333 [142] phi (byte*) current_piece_gfx#16 = (byte*) current_piece_gfx#18 [phi:play_movement::@5/play_movement::@7->play_movement::@return#1] -- register_copy - //SEG334 [142] phi (byte) current_orientation#16 = (byte) current_orientation#19 [phi:play_movement::@5/play_movement::@7->play_movement::@return#2] -- register_copy - //SEG335 [142] phi (byte) play_movement::return#2 = (byte) play_movement::render#1 [phi:play_movement::@5/play_movement::@7->play_movement::@return#3] -- register_copy + //SEG402 [170] phi (byte) current_xpos#18 = (byte) current_xpos#21 [phi:play_movement::@5/play_movement::@7->play_movement::@return#0] -- register_copy + //SEG403 [170] phi (byte*) current_piece_gfx#17 = (byte*) current_piece_gfx#19 [phi:play_movement::@5/play_movement::@7->play_movement::@return#1] -- register_copy + //SEG404 [170] phi (byte) current_orientation#17 = (byte) current_orientation#20 [phi:play_movement::@5/play_movement::@7->play_movement::@return#2] -- register_copy + //SEG405 [170] phi (byte) play_movement::return#2 = (byte) play_movement::render#1 [phi:play_movement::@5/play_movement::@7->play_movement::@return#3] -- register_copy jmp breturn - //SEG336 play_movement::@return + //SEG406 play_movement::@return breturn: - //SEG337 [143] return + //SEG407 [171] return rts - //SEG338 play_movement::@1 + //SEG408 play_movement::@1 b1: - //SEG339 [144] (byte) play_move_leftright::key_event#0 ← (byte) play_movement::key_event#0 -- vbuaa=vbuz1 + //SEG409 [172] (byte) play_move_leftright::key_event#0 ← (byte) play_movement::key_event#0 -- vbuaa=vbuz1 lda key_event - //SEG340 [145] call play_move_leftright + //SEG410 [173] call play_move_leftright jsr play_move_leftright - //SEG341 [146] (byte) play_move_leftright::return#0 ← (byte) play_move_leftright::return#2 + //SEG411 [174] (byte) play_move_leftright::return#0 ← (byte) play_move_leftright::return#2 // (byte) play_move_leftright::return#0 = (byte) play_move_leftright::return#2 // register copy reg byte a jmp b6 - //SEG342 play_movement::@6 + //SEG412 play_movement::@6 b6: - //SEG343 [147] (byte~) play_movement::$3 ← (byte) play_move_leftright::return#0 + //SEG413 [175] (byte~) play_movement::$3 ← (byte) play_move_leftright::return#0 // (byte~) play_movement::$3 = (byte) play_move_leftright::return#0 // register copy reg byte a - //SEG344 [148] (byte) play_movement::render#2 ← (byte) play_movement::render#1 + (byte~) play_movement::$3 -- vbuz1=vbuz1_plus_vbuaa + //SEG414 [176] (byte) play_movement::render#2 ← (byte) play_movement::render#1 + (byte~) play_movement::$3 -- vbuz1=vbuz1_plus_vbuaa clc adc render sta render - //SEG345 [149] (byte) play_move_rotate::key_event#0 ← (byte) play_movement::key_event#0 -- vbuaa=vbuz1 + //SEG415 [177] (byte) play_move_rotate::key_event#0 ← (byte) play_movement::key_event#0 -- vbuaa=vbuz1 lda key_event - //SEG346 [150] call play_move_rotate + //SEG416 [178] call play_move_rotate jsr play_move_rotate - //SEG347 [151] (byte) play_move_rotate::return#0 ← (byte) play_move_rotate::return#2 + //SEG417 [179] (byte) play_move_rotate::return#0 ← (byte) play_move_rotate::return#2 // (byte) play_move_rotate::return#0 = (byte) play_move_rotate::return#2 // register copy reg byte a jmp b7 - //SEG348 play_movement::@7 + //SEG418 play_movement::@7 b7: - //SEG349 [152] (byte~) play_movement::$4 ← (byte) play_move_rotate::return#0 + //SEG419 [180] (byte~) play_movement::$4 ← (byte) play_move_rotate::return#0 // (byte~) play_movement::$4 = (byte) play_move_rotate::return#0 // register copy reg byte a - //SEG350 [153] (byte) play_movement::return#0 ← (byte) play_movement::render#2 + (byte~) play_movement::$4 -- vbuz1=vbuz1_plus_vbuaa + //SEG420 [181] (byte) play_movement::return#0 ← (byte) play_movement::render#2 + (byte~) play_movement::$4 -- vbuz1=vbuz1_plus_vbuaa clc adc return sta return jmp breturn_from_b7 } -//SEG351 play_move_rotate +//SEG421 play_move_rotate play_move_rotate: { .label orientation = $a - //SEG352 [154] if((byte) play_move_rotate::key_event#0==(const byte) KEY_Z#0) goto play_move_rotate::@1 -- vbuaa_eq_vbuc1_then_la1 + //SEG422 [182] 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 - //SEG353 play_move_rotate::@6 + //SEG423 play_move_rotate::@6 b6: - //SEG354 [155] if((byte) play_move_rotate::key_event#0==(const byte) KEY_X#0) goto play_move_rotate::@2 -- vbuaa_eq_vbuc1_then_la1 + //SEG424 [183] 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 - //SEG355 [156] phi from play_move_rotate::@14 play_move_rotate::@6 to play_move_rotate::@return [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return] + //SEG425 [184] 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: - //SEG356 [156] phi (byte*) current_piece_gfx#19 = (byte*) current_piece_gfx#18 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#0] -- register_copy - //SEG357 [156] phi (byte) current_orientation#24 = (byte) current_orientation#19 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#1] -- register_copy - //SEG358 [156] phi (byte) play_move_rotate::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#2] -- vbuaa=vbuc1 + //SEG426 [184] phi (byte*) current_piece_gfx#20 = (byte*) current_piece_gfx#19 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#0] -- register_copy + //SEG427 [184] phi (byte) current_orientation#25 = (byte) current_orientation#20 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#1] -- register_copy + //SEG428 [184] phi (byte) play_move_rotate::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#2] -- vbuaa=vbuc1 lda #0 jmp breturn - //SEG359 play_move_rotate::@return + //SEG429 play_move_rotate::@return breturn: - //SEG360 [157] return + //SEG430 [185] return rts - //SEG361 play_move_rotate::@2 + //SEG431 play_move_rotate::@2 b2: - //SEG362 [158] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#19 + (byte/signed byte/word/signed word/dword/signed dword) 16 -- vbuaa=vbuz1_plus_vbuc1 + //SEG432 [186] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#20 + (byte/signed byte/word/signed word/dword/signed dword) 16 -- vbuaa=vbuz1_plus_vbuc1 lda #$10 clc adc current_orientation - //SEG363 [159] (byte) play_move_rotate::orientation#2 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 & (byte/signed byte/word/signed word/dword/signed dword) 63 -- vbuz1=vbuaa_band_vbuc1 + //SEG433 [187] (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 - //SEG364 [160] phi from play_move_rotate::@1 play_move_rotate::@2 to play_move_rotate::@4 [phi:play_move_rotate::@1/play_move_rotate::@2->play_move_rotate::@4] + //SEG434 [188] 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: - //SEG365 [160] phi (byte) play_move_rotate::orientation#3 = (byte) play_move_rotate::orientation#1 [phi:play_move_rotate::@1/play_move_rotate::@2->play_move_rotate::@4#0] -- register_copy + //SEG435 [188] 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 - //SEG366 play_move_rotate::@4 + //SEG436 play_move_rotate::@4 b4: - //SEG367 [161] (byte) play_collision::xpos#3 ← (byte) current_xpos#24 -- vbuz1=vbuz2 + //SEG437 [189] (byte) play_collision::xpos#3 ← (byte) current_xpos#25 -- vbuz1=vbuz2 lda current_xpos sta play_collision.xpos - //SEG368 [162] (byte) play_collision::ypos#3 ← (byte) current_ypos#17 -- vbuz1=vbuz2 + //SEG438 [190] (byte) play_collision::ypos#3 ← (byte) current_ypos#18 -- vbuz1=vbuz2 lda current_ypos sta play_collision.ypos - //SEG369 [163] (byte) play_collision::orientation#3 ← (byte) play_move_rotate::orientation#3 -- vbuxx=vbuz1 + //SEG439 [191] (byte) play_collision::orientation#3 ← (byte) play_move_rotate::orientation#3 -- vbuxx=vbuz1 ldx orientation - //SEG370 [164] (byte*~) current_piece#93 ← (byte*) current_piece#14 -- pbuz1=pbuz2 + //SEG440 [192] (byte*~) current_piece#101 ← (byte*) current_piece#15 -- pbuz1=pbuz2 lda current_piece - sta current_piece_93 + sta current_piece_101 lda current_piece+1 - sta current_piece_93+1 - //SEG371 [165] call play_collision - //SEG372 [173] phi from play_move_rotate::@4 to play_collision [phi:play_move_rotate::@4->play_collision] + sta current_piece_101+1 + //SEG441 [193] call play_collision + //SEG442 [201] phi from play_move_rotate::@4 to play_collision [phi:play_move_rotate::@4->play_collision] play_collision_from_b4: - //SEG373 [173] phi (byte) play_collision::xpos#6 = (byte) play_collision::xpos#3 [phi:play_move_rotate::@4->play_collision#0] -- register_copy - //SEG374 [173] phi (byte) play_collision::ypos#5 = (byte) play_collision::ypos#3 [phi:play_move_rotate::@4->play_collision#1] -- register_copy - //SEG375 [173] phi (byte) play_collision::orientation#5 = (byte) play_collision::orientation#3 [phi:play_move_rotate::@4->play_collision#2] -- register_copy - //SEG376 [173] phi (byte*) current_piece#16 = (byte*~) current_piece#93 [phi:play_move_rotate::@4->play_collision#3] -- register_copy + //SEG443 [201] phi (byte) play_collision::xpos#6 = (byte) play_collision::xpos#3 [phi:play_move_rotate::@4->play_collision#0] -- register_copy + //SEG444 [201] phi (byte) play_collision::ypos#5 = (byte) play_collision::ypos#3 [phi:play_move_rotate::@4->play_collision#1] -- register_copy + //SEG445 [201] phi (byte) play_collision::orientation#5 = (byte) play_collision::orientation#3 [phi:play_move_rotate::@4->play_collision#2] -- register_copy + //SEG446 [201] phi (byte*) current_piece#17 = (byte*~) current_piece#101 [phi:play_move_rotate::@4->play_collision#3] -- register_copy jsr play_collision - //SEG377 [166] (byte) play_collision::return#14 ← (byte) play_collision::return#15 + //SEG447 [194] (byte) play_collision::return#14 ← (byte) play_collision::return#15 // (byte) play_collision::return#14 = (byte) play_collision::return#15 // register copy reg byte a jmp b14 - //SEG378 play_move_rotate::@14 + //SEG448 play_move_rotate::@14 b14: - //SEG379 [167] (byte~) play_move_rotate::$6 ← (byte) play_collision::return#14 + //SEG449 [195] (byte~) play_move_rotate::$6 ← (byte) play_collision::return#14 // (byte~) play_move_rotate::$6 = (byte) play_collision::return#14 // register copy reg byte a - //SEG380 [168] if((byte~) play_move_rotate::$6!=(const byte) COLLISION_NONE#0) goto play_move_rotate::@return -- vbuaa_neq_vbuc1_then_la1 + //SEG450 [196] 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 - //SEG381 play_move_rotate::@11 + //SEG451 play_move_rotate::@11 b11: - //SEG382 [169] (byte) current_orientation#7 ← (byte) play_move_rotate::orientation#3 -- vbuz1=vbuz2 + //SEG452 [197] (byte) current_orientation#7 ← (byte) play_move_rotate::orientation#3 -- vbuz1=vbuz2 lda orientation sta current_orientation - //SEG383 [170] (byte*) current_piece_gfx#6 ← (byte*) current_piece#14 + (byte) current_orientation#7 -- pbuz1=pbuz2_plus_vbuz3 + //SEG453 [198] (byte*) current_piece_gfx#6 ← (byte*) current_piece#15 + (byte) current_orientation#7 -- pbuz1=pbuz2_plus_vbuz3 lda current_orientation clc adc current_piece @@ -17693,39 +19095,39 @@ play_move_rotate: { lda #0 adc current_piece+1 sta current_piece_gfx+1 - //SEG384 [156] phi from play_move_rotate::@11 to play_move_rotate::@return [phi:play_move_rotate::@11->play_move_rotate::@return] + //SEG454 [184] phi from play_move_rotate::@11 to play_move_rotate::@return [phi:play_move_rotate::@11->play_move_rotate::@return] breturn_from_b11: - //SEG385 [156] phi (byte*) current_piece_gfx#19 = (byte*) current_piece_gfx#6 [phi:play_move_rotate::@11->play_move_rotate::@return#0] -- register_copy - //SEG386 [156] phi (byte) current_orientation#24 = (byte) current_orientation#7 [phi:play_move_rotate::@11->play_move_rotate::@return#1] -- register_copy - //SEG387 [156] phi (byte) play_move_rotate::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_rotate::@11->play_move_rotate::@return#2] -- vbuaa=vbuc1 + //SEG455 [184] phi (byte*) current_piece_gfx#20 = (byte*) current_piece_gfx#6 [phi:play_move_rotate::@11->play_move_rotate::@return#0] -- register_copy + //SEG456 [184] phi (byte) current_orientation#25 = (byte) current_orientation#7 [phi:play_move_rotate::@11->play_move_rotate::@return#1] -- register_copy + //SEG457 [184] phi (byte) play_move_rotate::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_rotate::@11->play_move_rotate::@return#2] -- vbuaa=vbuc1 lda #1 jmp breturn - //SEG388 play_move_rotate::@1 + //SEG458 play_move_rotate::@1 b1: - //SEG389 [171] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#19 - (byte/signed byte/word/signed word/dword/signed dword) 16 -- vbuaa=vbuz1_minus_vbuc1 + //SEG459 [199] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#20 - (byte/signed byte/word/signed word/dword/signed dword) 16 -- vbuaa=vbuz1_minus_vbuc1 lda current_orientation sec sbc #$10 - //SEG390 [172] (byte) play_move_rotate::orientation#1 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 & (byte/signed byte/word/signed word/dword/signed dword) 63 -- vbuz1=vbuaa_band_vbuc1 + //SEG460 [200] (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 } -//SEG391 play_collision +//SEG461 play_collision play_collision: { .label xpos = $c .label ypos = $b .label piece_gfx = 5 .label ypos2 = $b .label playfield_line = 7 - .label i = $29 + .label i = $2a .label col = $f .label l = $d .label i_2 = $e .label i_3 = $e .label i_11 = $e .label i_13 = $e - //SEG392 [174] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#16 + (byte) play_collision::orientation#5 -- pbuz1=pbuz1_plus_vbuxx + //SEG462 [202] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#17 + (byte) play_collision::orientation#5 -- pbuz1=pbuz1_plus_vbuxx txa clc adc piece_gfx @@ -17733,637 +19135,647 @@ play_collision: { lda #0 adc piece_gfx+1 sta piece_gfx+1 - //SEG393 [175] (byte) play_collision::ypos2#0 ← (byte) play_collision::ypos#5 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz1_rol_1 + //SEG463 [203] (byte) play_collision::ypos2#0 ← (byte) play_collision::ypos#5 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz1_rol_1 asl ypos2 - //SEG394 [176] phi from play_collision to play_collision::@1 [phi:play_collision->play_collision::@1] + //SEG464 [204] phi from play_collision to play_collision::@1 [phi:play_collision->play_collision::@1] b1_from_play_collision: - //SEG395 [176] phi (byte) play_collision::l#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_collision->play_collision::@1#0] -- vbuz1=vbuc1 + //SEG465 [204] 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 - //SEG396 [176] phi (byte) play_collision::i#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_collision->play_collision::@1#1] -- vbuz1=vbuc1 + //SEG466 [204] 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 - //SEG397 [176] phi (byte) play_collision::ypos2#2 = (byte) play_collision::ypos2#0 [phi:play_collision->play_collision::@1#2] -- register_copy + //SEG467 [204] phi (byte) play_collision::ypos2#2 = (byte) play_collision::ypos2#0 [phi:play_collision->play_collision::@1#2] -- register_copy jmp b1 - //SEG398 play_collision::@1 + //SEG468 play_collision::@1 b1: - //SEG399 [177] (byte*) play_collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_collision::ypos2#2) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG469 [205] (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 - //SEG400 [178] (byte~) play_collision::col#9 ← (byte) play_collision::xpos#6 -- vbuz1=vbuz2 + //SEG470 [206] (byte~) play_collision::col#9 ← (byte) play_collision::xpos#6 -- vbuz1=vbuz2 lda xpos sta col - //SEG401 [179] phi from play_collision::@1 to play_collision::@2 [phi:play_collision::@1->play_collision::@2] + //SEG471 [207] phi from play_collision::@1 to play_collision::@2 [phi:play_collision::@1->play_collision::@2] b2_from_b1: - //SEG402 [179] phi (byte) play_collision::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_collision::@1->play_collision::@2#0] -- vbuxx=vbuc1 + //SEG472 [207] 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 - //SEG403 [179] phi (byte) play_collision::col#2 = (byte~) play_collision::col#9 [phi:play_collision::@1->play_collision::@2#1] -- register_copy - //SEG404 [179] phi (byte) play_collision::i#2 = (byte) play_collision::i#3 [phi:play_collision::@1->play_collision::@2#2] -- register_copy + //SEG473 [207] phi (byte) play_collision::col#2 = (byte~) play_collision::col#9 [phi:play_collision::@1->play_collision::@2#1] -- register_copy + //SEG474 [207] phi (byte) play_collision::i#2 = (byte) play_collision::i#3 [phi:play_collision::@1->play_collision::@2#2] -- register_copy jmp b2 - //SEG405 play_collision::@2 + //SEG475 play_collision::@2 b2: - //SEG406 [180] (byte) play_collision::i#1 ← ++ (byte) play_collision::i#2 -- vbuz1=_inc_vbuz2 + //SEG476 [208] (byte) play_collision::i#1 ← ++ (byte) play_collision::i#2 -- vbuz1=_inc_vbuz2 ldy i_2 iny sty i - //SEG407 [181] if(*((byte*) play_collision::piece_gfx#0 + (byte) play_collision::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 + //SEG477 [209] 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 - //SEG408 play_collision::@8 + //SEG478 play_collision::@8 b8: - //SEG409 [182] if((byte) play_collision::ypos2#2<(byte/signed byte/word/signed word/dword/signed dword) 2*(const byte) PLAYFIELD_LINES#0) goto play_collision::@4 -- vbuz1_lt_vbuc1_then_la1 + //SEG479 [210] 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 - //SEG410 [183] phi from play_collision::@8 to play_collision::@return [phi:play_collision::@8->play_collision::@return] + //SEG480 [211] phi from play_collision::@8 to play_collision::@return [phi:play_collision::@8->play_collision::@return] breturn_from_b8: - //SEG411 [183] phi (byte) play_collision::return#15 = (const byte) COLLISION_BOTTOM#0 [phi:play_collision::@8->play_collision::@return#0] -- vbuaa=vbuc1 + //SEG481 [211] phi (byte) play_collision::return#15 = (const byte) COLLISION_BOTTOM#0 [phi:play_collision::@8->play_collision::@return#0] -- vbuaa=vbuc1 lda #COLLISION_BOTTOM jmp breturn - //SEG412 play_collision::@return + //SEG482 play_collision::@return breturn: - //SEG413 [184] return + //SEG483 [212] return rts - //SEG414 play_collision::@4 + //SEG484 play_collision::@4 b4: - //SEG415 [185] (byte~) play_collision::$7 ← (byte) play_collision::col#2 & (byte/word/signed word/dword/signed dword) 128 -- vbuaa=vbuz1_band_vbuc1 + //SEG485 [213] (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 - //SEG416 [186] if((byte~) play_collision::$7==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@5 -- vbuaa_eq_0_then_la1 + //SEG486 [214] 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 - //SEG417 [183] phi from play_collision::@4 to play_collision::@return [phi:play_collision::@4->play_collision::@return] + //SEG487 [211] phi from play_collision::@4 to play_collision::@return [phi:play_collision::@4->play_collision::@return] breturn_from_b4: - //SEG418 [183] phi (byte) play_collision::return#15 = (const byte) COLLISION_LEFT#0 [phi:play_collision::@4->play_collision::@return#0] -- vbuaa=vbuc1 + //SEG488 [211] phi (byte) play_collision::return#15 = (const byte) COLLISION_LEFT#0 [phi:play_collision::@4->play_collision::@return#0] -- vbuaa=vbuc1 lda #COLLISION_LEFT jmp breturn - //SEG419 play_collision::@5 + //SEG489 play_collision::@5 b5: - //SEG420 [187] if((byte) play_collision::col#2<(const byte) PLAYFIELD_COLS#0) goto play_collision::@6 -- vbuz1_lt_vbuc1_then_la1 + //SEG490 [215] 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 - //SEG421 [183] phi from play_collision::@5 to play_collision::@return [phi:play_collision::@5->play_collision::@return] + //SEG491 [211] phi from play_collision::@5 to play_collision::@return [phi:play_collision::@5->play_collision::@return] breturn_from_b5: - //SEG422 [183] phi (byte) play_collision::return#15 = (const byte) COLLISION_RIGHT#0 [phi:play_collision::@5->play_collision::@return#0] -- vbuaa=vbuc1 + //SEG492 [211] phi (byte) play_collision::return#15 = (const byte) COLLISION_RIGHT#0 [phi:play_collision::@5->play_collision::@return#0] -- vbuaa=vbuc1 lda #COLLISION_RIGHT jmp breturn - //SEG423 play_collision::@6 + //SEG493 play_collision::@6 b6: - //SEG424 [188] if(*((byte*) play_collision::playfield_line#0 + (byte) play_collision::col#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 + //SEG494 [216] 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 - //SEG425 [183] phi from play_collision::@6 to play_collision::@return [phi:play_collision::@6->play_collision::@return] + //SEG495 [211] phi from play_collision::@6 to play_collision::@return [phi:play_collision::@6->play_collision::@return] breturn_from_b6: - //SEG426 [183] phi (byte) play_collision::return#15 = (const byte) COLLISION_PLAYFIELD#0 [phi:play_collision::@6->play_collision::@return#0] -- vbuaa=vbuc1 + //SEG496 [211] phi (byte) play_collision::return#15 = (const byte) COLLISION_PLAYFIELD#0 [phi:play_collision::@6->play_collision::@return#0] -- vbuaa=vbuc1 lda #COLLISION_PLAYFIELD jmp breturn - //SEG427 play_collision::@3 + //SEG497 play_collision::@3 b3: - //SEG428 [189] (byte) play_collision::col#1 ← ++ (byte) play_collision::col#2 -- vbuz1=_inc_vbuz1 + //SEG498 [217] (byte) play_collision::col#1 ← ++ (byte) play_collision::col#2 -- vbuz1=_inc_vbuz1 inc col - //SEG429 [190] (byte) play_collision::c#1 ← ++ (byte) play_collision::c#2 -- vbuxx=_inc_vbuxx + //SEG499 [218] (byte) play_collision::c#1 ← ++ (byte) play_collision::c#2 -- vbuxx=_inc_vbuxx inx - //SEG430 [191] if((byte) play_collision::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_collision::@21 -- vbuxx_neq_vbuc1_then_la1 + //SEG500 [219] 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 - //SEG431 play_collision::@17 + //SEG501 play_collision::@17 b17: - //SEG432 [192] (byte) play_collision::ypos2#1 ← (byte) play_collision::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz1_plus_2 + //SEG502 [220] (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 - //SEG433 [193] (byte) play_collision::l#1 ← ++ (byte) play_collision::l#6 -- vbuz1=_inc_vbuz1 + //SEG503 [221] (byte) play_collision::l#1 ← ++ (byte) play_collision::l#6 -- vbuz1=_inc_vbuz1 inc l - //SEG434 [194] if((byte) play_collision::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_collision::@20 -- vbuz1_neq_vbuc1_then_la1 + //SEG504 [222] 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 - //SEG435 [183] phi from play_collision::@17 to play_collision::@return [phi:play_collision::@17->play_collision::@return] + //SEG505 [211] phi from play_collision::@17 to play_collision::@return [phi:play_collision::@17->play_collision::@return] breturn_from_b17: - //SEG436 [183] phi (byte) play_collision::return#15 = (const byte) COLLISION_NONE#0 [phi:play_collision::@17->play_collision::@return#0] -- vbuaa=vbuc1 + //SEG506 [211] phi (byte) play_collision::return#15 = (const byte) COLLISION_NONE#0 [phi:play_collision::@17->play_collision::@return#0] -- vbuaa=vbuc1 lda #COLLISION_NONE jmp breturn - //SEG437 play_collision::@20 + //SEG507 play_collision::@20 b20: - //SEG438 [195] (byte~) play_collision::i#11 ← (byte) play_collision::i#1 -- vbuz1=vbuz2 + //SEG508 [223] (byte~) play_collision::i#11 ← (byte) play_collision::i#1 -- vbuz1=vbuz2 lda i sta i_11 - //SEG439 [176] phi from play_collision::@20 to play_collision::@1 [phi:play_collision::@20->play_collision::@1] + //SEG509 [204] phi from play_collision::@20 to play_collision::@1 [phi:play_collision::@20->play_collision::@1] b1_from_b20: - //SEG440 [176] phi (byte) play_collision::l#6 = (byte) play_collision::l#1 [phi:play_collision::@20->play_collision::@1#0] -- register_copy - //SEG441 [176] phi (byte) play_collision::i#3 = (byte~) play_collision::i#11 [phi:play_collision::@20->play_collision::@1#1] -- register_copy - //SEG442 [176] phi (byte) play_collision::ypos2#2 = (byte) play_collision::ypos2#1 [phi:play_collision::@20->play_collision::@1#2] -- register_copy + //SEG510 [204] phi (byte) play_collision::l#6 = (byte) play_collision::l#1 [phi:play_collision::@20->play_collision::@1#0] -- register_copy + //SEG511 [204] phi (byte) play_collision::i#3 = (byte~) play_collision::i#11 [phi:play_collision::@20->play_collision::@1#1] -- register_copy + //SEG512 [204] phi (byte) play_collision::ypos2#2 = (byte) play_collision::ypos2#1 [phi:play_collision::@20->play_collision::@1#2] -- register_copy jmp b1 - //SEG443 play_collision::@21 + //SEG513 play_collision::@21 b21: - //SEG444 [196] (byte~) play_collision::i#13 ← (byte) play_collision::i#1 -- vbuz1=vbuz2 + //SEG514 [224] (byte~) play_collision::i#13 ← (byte) play_collision::i#1 -- vbuz1=vbuz2 lda i sta i_13 - //SEG445 [179] phi from play_collision::@21 to play_collision::@2 [phi:play_collision::@21->play_collision::@2] + //SEG515 [207] phi from play_collision::@21 to play_collision::@2 [phi:play_collision::@21->play_collision::@2] b2_from_b21: - //SEG446 [179] phi (byte) play_collision::c#2 = (byte) play_collision::c#1 [phi:play_collision::@21->play_collision::@2#0] -- register_copy - //SEG447 [179] phi (byte) play_collision::col#2 = (byte) play_collision::col#1 [phi:play_collision::@21->play_collision::@2#1] -- register_copy - //SEG448 [179] phi (byte) play_collision::i#2 = (byte~) play_collision::i#13 [phi:play_collision::@21->play_collision::@2#2] -- register_copy + //SEG516 [207] phi (byte) play_collision::c#2 = (byte) play_collision::c#1 [phi:play_collision::@21->play_collision::@2#0] -- register_copy + //SEG517 [207] phi (byte) play_collision::col#2 = (byte) play_collision::col#1 [phi:play_collision::@21->play_collision::@2#1] -- register_copy + //SEG518 [207] phi (byte) play_collision::i#2 = (byte~) play_collision::i#13 [phi:play_collision::@21->play_collision::@2#2] -- register_copy jmp b2 } -//SEG449 play_move_leftright +//SEG519 play_move_leftright play_move_leftright: { - //SEG450 [197] if((byte) play_move_leftright::key_event#0==(const byte) KEY_COMMA#0) goto play_move_leftright::@1 -- vbuaa_eq_vbuc1_then_la1 + //SEG520 [225] 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 - //SEG451 play_move_leftright::@6 + //SEG521 play_move_leftright::@6 b6: - //SEG452 [198] if((byte) play_move_leftright::key_event#0!=(const byte) KEY_DOT#0) goto play_move_leftright::@return -- vbuaa_neq_vbuc1_then_la1 + //SEG522 [226] 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 - //SEG453 play_move_leftright::@7 + //SEG523 play_move_leftright::@7 b7: - //SEG454 [199] (byte) play_collision::xpos#2 ← (byte) current_xpos#20 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_plus_1 + //SEG524 [227] (byte) play_collision::xpos#2 ← (byte) current_xpos#21 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_plus_1 ldy current_xpos iny sty play_collision.xpos - //SEG455 [200] (byte) play_collision::ypos#2 ← (byte) current_ypos#17 -- vbuz1=vbuz2 + //SEG525 [228] (byte) play_collision::ypos#2 ← (byte) current_ypos#18 -- vbuz1=vbuz2 lda current_ypos sta play_collision.ypos - //SEG456 [201] (byte) play_collision::orientation#2 ← (byte) current_orientation#19 -- vbuxx=vbuz1 + //SEG526 [229] (byte) play_collision::orientation#2 ← (byte) current_orientation#20 -- vbuxx=vbuz1 ldx current_orientation - //SEG457 [202] (byte*~) current_piece#92 ← (byte*) current_piece#14 -- pbuz1=pbuz2 + //SEG527 [230] (byte*~) current_piece#100 ← (byte*) current_piece#15 -- pbuz1=pbuz2 lda current_piece - sta current_piece_92 + sta current_piece_100 lda current_piece+1 - sta current_piece_92+1 - //SEG458 [203] call play_collision - //SEG459 [173] phi from play_move_leftright::@7 to play_collision [phi:play_move_leftright::@7->play_collision] + sta current_piece_100+1 + //SEG528 [231] call play_collision + //SEG529 [201] phi from play_move_leftright::@7 to play_collision [phi:play_move_leftright::@7->play_collision] play_collision_from_b7: - //SEG460 [173] phi (byte) play_collision::xpos#6 = (byte) play_collision::xpos#2 [phi:play_move_leftright::@7->play_collision#0] -- register_copy - //SEG461 [173] phi (byte) play_collision::ypos#5 = (byte) play_collision::ypos#2 [phi:play_move_leftright::@7->play_collision#1] -- register_copy - //SEG462 [173] phi (byte) play_collision::orientation#5 = (byte) play_collision::orientation#2 [phi:play_move_leftright::@7->play_collision#2] -- register_copy - //SEG463 [173] phi (byte*) current_piece#16 = (byte*~) current_piece#92 [phi:play_move_leftright::@7->play_collision#3] -- register_copy + //SEG530 [201] phi (byte) play_collision::xpos#6 = (byte) play_collision::xpos#2 [phi:play_move_leftright::@7->play_collision#0] -- register_copy + //SEG531 [201] phi (byte) play_collision::ypos#5 = (byte) play_collision::ypos#2 [phi:play_move_leftright::@7->play_collision#1] -- register_copy + //SEG532 [201] phi (byte) play_collision::orientation#5 = (byte) play_collision::orientation#2 [phi:play_move_leftright::@7->play_collision#2] -- register_copy + //SEG533 [201] phi (byte*) current_piece#17 = (byte*~) current_piece#100 [phi:play_move_leftright::@7->play_collision#3] -- register_copy jsr play_collision - //SEG464 [204] (byte) play_collision::return#13 ← (byte) play_collision::return#15 + //SEG534 [232] (byte) play_collision::return#13 ← (byte) play_collision::return#15 // (byte) play_collision::return#13 = (byte) play_collision::return#15 // register copy reg byte a jmp b15 - //SEG465 play_move_leftright::@15 + //SEG535 play_move_leftright::@15 b15: - //SEG466 [205] (byte~) play_move_leftright::$4 ← (byte) play_collision::return#13 + //SEG536 [233] (byte~) play_move_leftright::$4 ← (byte) play_collision::return#13 // (byte~) play_move_leftright::$4 = (byte) play_collision::return#13 // register copy reg byte a - //SEG467 [206] if((byte~) play_move_leftright::$4!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return -- vbuaa_neq_vbuc1_then_la1 + //SEG537 [234] 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 - //SEG468 play_move_leftright::@8 + //SEG538 play_move_leftright::@8 b8: - //SEG469 [207] (byte) current_xpos#5 ← ++ (byte) current_xpos#20 -- vbuz1=_inc_vbuz1 + //SEG539 [235] (byte) current_xpos#5 ← ++ (byte) current_xpos#21 -- vbuz1=_inc_vbuz1 inc current_xpos - //SEG470 [208] phi from play_move_leftright::@11 play_move_leftright::@8 to play_move_leftright::@return [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return] + //SEG540 [236] 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: - //SEG471 [208] phi (byte) current_xpos#24 = (byte) current_xpos#7 [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return#0] -- register_copy - //SEG472 [208] phi (byte) play_move_leftright::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return#1] -- vbuaa=vbuc1 + //SEG541 [236] phi (byte) current_xpos#25 = (byte) current_xpos#7 [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return#0] -- register_copy + //SEG542 [236] phi (byte) play_move_leftright::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return#1] -- vbuaa=vbuc1 lda #1 jmp breturn - //SEG473 [208] phi from play_move_leftright::@14 play_move_leftright::@15 play_move_leftright::@6 to play_move_leftright::@return [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return] + //SEG543 [236] 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: - //SEG474 [208] phi (byte) current_xpos#24 = (byte) current_xpos#20 [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return#0] -- register_copy - //SEG475 [208] phi (byte) play_move_leftright::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return#1] -- vbuaa=vbuc1 + //SEG544 [236] phi (byte) current_xpos#25 = (byte) current_xpos#21 [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return#0] -- register_copy + //SEG545 [236] phi (byte) play_move_leftright::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return#1] -- vbuaa=vbuc1 lda #0 jmp breturn - //SEG476 play_move_leftright::@return + //SEG546 play_move_leftright::@return breturn: - //SEG477 [209] return + //SEG547 [237] return rts - //SEG478 play_move_leftright::@1 + //SEG548 play_move_leftright::@1 b1: - //SEG479 [210] (byte) play_collision::xpos#1 ← (byte) current_xpos#20 - (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_minus_1 + //SEG549 [238] (byte) play_collision::xpos#1 ← (byte) current_xpos#21 - (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_minus_1 ldx current_xpos dex stx play_collision.xpos - //SEG480 [211] (byte) play_collision::ypos#1 ← (byte) current_ypos#17 -- vbuz1=vbuz2 + //SEG550 [239] (byte) play_collision::ypos#1 ← (byte) current_ypos#18 -- vbuz1=vbuz2 lda current_ypos sta play_collision.ypos - //SEG481 [212] (byte) play_collision::orientation#1 ← (byte) current_orientation#19 -- vbuxx=vbuz1 + //SEG551 [240] (byte) play_collision::orientation#1 ← (byte) current_orientation#20 -- vbuxx=vbuz1 ldx current_orientation - //SEG482 [213] (byte*~) current_piece#91 ← (byte*) current_piece#14 -- pbuz1=pbuz2 + //SEG552 [241] (byte*~) current_piece#99 ← (byte*) current_piece#15 -- pbuz1=pbuz2 lda current_piece - sta current_piece_91 + sta current_piece_99 lda current_piece+1 - sta current_piece_91+1 - //SEG483 [214] call play_collision - //SEG484 [173] phi from play_move_leftright::@1 to play_collision [phi:play_move_leftright::@1->play_collision] + sta current_piece_99+1 + //SEG553 [242] call play_collision + //SEG554 [201] phi from play_move_leftright::@1 to play_collision [phi:play_move_leftright::@1->play_collision] play_collision_from_b1: - //SEG485 [173] phi (byte) play_collision::xpos#6 = (byte) play_collision::xpos#1 [phi:play_move_leftright::@1->play_collision#0] -- register_copy - //SEG486 [173] phi (byte) play_collision::ypos#5 = (byte) play_collision::ypos#1 [phi:play_move_leftright::@1->play_collision#1] -- register_copy - //SEG487 [173] phi (byte) play_collision::orientation#5 = (byte) play_collision::orientation#1 [phi:play_move_leftright::@1->play_collision#2] -- register_copy - //SEG488 [173] phi (byte*) current_piece#16 = (byte*~) current_piece#91 [phi:play_move_leftright::@1->play_collision#3] -- register_copy + //SEG555 [201] phi (byte) play_collision::xpos#6 = (byte) play_collision::xpos#1 [phi:play_move_leftright::@1->play_collision#0] -- register_copy + //SEG556 [201] phi (byte) play_collision::ypos#5 = (byte) play_collision::ypos#1 [phi:play_move_leftright::@1->play_collision#1] -- register_copy + //SEG557 [201] phi (byte) play_collision::orientation#5 = (byte) play_collision::orientation#1 [phi:play_move_leftright::@1->play_collision#2] -- register_copy + //SEG558 [201] phi (byte*) current_piece#17 = (byte*~) current_piece#99 [phi:play_move_leftright::@1->play_collision#3] -- register_copy jsr play_collision - //SEG489 [215] (byte) play_collision::return#1 ← (byte) play_collision::return#15 + //SEG559 [243] (byte) play_collision::return#1 ← (byte) play_collision::return#15 // (byte) play_collision::return#1 = (byte) play_collision::return#15 // register copy reg byte a jmp b14 - //SEG490 play_move_leftright::@14 + //SEG560 play_move_leftright::@14 b14: - //SEG491 [216] (byte~) play_move_leftright::$8 ← (byte) play_collision::return#1 + //SEG561 [244] (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 - //SEG492 [217] if((byte~) play_move_leftright::$8!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return -- vbuaa_neq_vbuc1_then_la1 + //SEG562 [245] 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 - //SEG493 play_move_leftright::@11 + //SEG563 play_move_leftright::@11 b11: - //SEG494 [218] (byte) current_xpos#7 ← -- (byte) current_xpos#20 -- vbuz1=_dec_vbuz1 + //SEG564 [246] (byte) current_xpos#7 ← -- (byte) current_xpos#21 -- vbuz1=_dec_vbuz1 dec current_xpos jmp breturn_from_b11 } -//SEG495 play_move_down +//SEG565 play_move_down play_move_down: { - //SEG496 [219] (byte) current_movedown_counter#12 ← ++ (byte) current_movedown_counter#16 -- vbuz1=_inc_vbuz1 + //SEG566 [247] (byte) current_movedown_counter#12 ← ++ (byte) current_movedown_counter#16 -- vbuz1=_inc_vbuz1 inc current_movedown_counter - //SEG497 [220] if((byte) play_move_down::key_event#0!=(const byte) KEY_SPACE#0) goto play_move_down::@1 -- vbuaa_neq_vbuc1_then_la1 + //SEG567 [248] 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 - //SEG498 [221] phi from play_move_down to play_move_down::@8 [phi:play_move_down->play_move_down::@8] + //SEG568 [249] 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 - //SEG499 play_move_down::@8 + //SEG569 play_move_down::@8 b8: - //SEG500 [222] phi from play_move_down::@8 to play_move_down::@1 [phi:play_move_down::@8->play_move_down::@1] + //SEG570 [250] phi from play_move_down::@8 to play_move_down::@1 [phi:play_move_down::@8->play_move_down::@1] b1_from_b8: - //SEG501 [222] phi (byte) play_move_down::movedown#10 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_down::@8->play_move_down::@1#0] -- vbuxx=vbuc1 + //SEG571 [250] 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 - //SEG502 [222] phi from play_move_down to play_move_down::@1 [phi:play_move_down->play_move_down::@1] + //SEG572 [250] phi from play_move_down to play_move_down::@1 [phi:play_move_down->play_move_down::@1] b1_from_play_move_down: - //SEG503 [222] phi (byte) play_move_down::movedown#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down->play_move_down::@1#0] -- vbuxx=vbuc1 + //SEG573 [250] 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 - //SEG504 play_move_down::@1 + //SEG574 play_move_down::@1 b1: - //SEG505 [223] call keyboard_event_pressed - //SEG506 [355] phi from play_move_down::@1 to keyboard_event_pressed [phi:play_move_down::@1->keyboard_event_pressed] + //SEG575 [251] call keyboard_event_pressed + //SEG576 [384] phi from play_move_down::@1 to keyboard_event_pressed [phi:play_move_down::@1->keyboard_event_pressed] keyboard_event_pressed_from_b1: - //SEG507 [355] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_SPACE#0 [phi:play_move_down::@1->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG577 [384] 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 - //SEG508 [224] (byte) keyboard_event_pressed::return#12 ← (byte) keyboard_event_pressed::return#11 + //SEG578 [252] (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 - //SEG509 play_move_down::@17 + //SEG579 play_move_down::@17 b17: - //SEG510 [225] (byte~) play_move_down::$2 ← (byte) keyboard_event_pressed::return#12 + //SEG580 [253] (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 - //SEG511 [226] if((byte~) play_move_down::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@2 -- vbuaa_eq_0_then_la1 + //SEG581 [254] 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 - //SEG512 play_move_down::@9 + //SEG582 play_move_down::@9 b9: - //SEG513 [227] if((byte) current_movedown_counter#12<(const byte) current_movedown_fast#0) goto play_move_down::@2 -- vbuz1_lt_vbuc1_then_la1 + //SEG583 [255] if((byte) current_movedown_counter#12<(const byte) current_movedown_fast#0) goto play_move_down::@2 -- vbuz1_lt_vbuc1_then_la1 lda current_movedown_counter cmp #current_movedown_fast bcc b2_from_b9 jmp b10 - //SEG514 play_move_down::@10 + //SEG584 play_move_down::@10 b10: - //SEG515 [228] (byte) play_move_down::movedown#2 ← ++ (byte) play_move_down::movedown#10 -- vbuxx=_inc_vbuxx + //SEG585 [256] (byte) play_move_down::movedown#2 ← ++ (byte) play_move_down::movedown#10 -- vbuxx=_inc_vbuxx inx - //SEG516 [229] phi from play_move_down::@10 play_move_down::@17 play_move_down::@9 to play_move_down::@2 [phi:play_move_down::@10/play_move_down::@17/play_move_down::@9->play_move_down::@2] + //SEG586 [257] 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: - //SEG517 [229] phi (byte) play_move_down::movedown#7 = (byte) play_move_down::movedown#2 [phi:play_move_down::@10/play_move_down::@17/play_move_down::@9->play_move_down::@2#0] -- register_copy + //SEG587 [257] 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 - //SEG518 play_move_down::@2 + //SEG588 play_move_down::@2 b2: - //SEG519 [230] if((byte) current_movedown_counter#12<(byte) current_movedown_slow#14) goto play_move_down::@4 -- vbuz1_lt_vbuz2_then_la1 + //SEG589 [258] if((byte) current_movedown_counter#12<(byte) current_movedown_slow#14) goto play_move_down::@4 -- vbuz1_lt_vbuz2_then_la1 lda current_movedown_counter cmp current_movedown_slow bcc b4_from_b2 jmp b11 - //SEG520 play_move_down::@11 + //SEG590 play_move_down::@11 b11: - //SEG521 [231] (byte) play_move_down::movedown#3 ← ++ (byte) play_move_down::movedown#7 -- vbuxx=_inc_vbuxx + //SEG591 [259] (byte) play_move_down::movedown#3 ← ++ (byte) play_move_down::movedown#7 -- vbuxx=_inc_vbuxx inx - //SEG522 [232] phi from play_move_down::@11 play_move_down::@2 to play_move_down::@4 [phi:play_move_down::@11/play_move_down::@2->play_move_down::@4] + //SEG592 [260] 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: - //SEG523 [232] phi (byte) play_move_down::movedown#6 = (byte) play_move_down::movedown#3 [phi:play_move_down::@11/play_move_down::@2->play_move_down::@4#0] -- register_copy + //SEG593 [260] 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 - //SEG524 play_move_down::@4 + //SEG594 play_move_down::@4 b4: - //SEG525 [233] if((byte) play_move_down::movedown#6==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@return -- vbuxx_eq_0_then_la1 + //SEG595 [261] 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 - //SEG526 play_move_down::@12 + //SEG596 play_move_down::@12 b12: - //SEG527 [234] (byte) play_collision::ypos#0 ← (byte) current_ypos#25 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_plus_1 + //SEG597 [262] (byte) play_collision::ypos#0 ← (byte) current_ypos#10 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_plus_1 ldy current_ypos iny sty play_collision.ypos - //SEG528 [235] (byte) play_collision::xpos#0 ← (byte) current_xpos#113 -- vbuz1=vbuz2 + //SEG598 [263] (byte) play_collision::xpos#0 ← (byte) current_xpos#121 -- vbuz1=vbuz2 lda current_xpos sta play_collision.xpos - //SEG529 [236] (byte) play_collision::orientation#0 ← (byte) current_orientation#12 -- vbuxx=vbuz1 + //SEG599 [264] (byte) play_collision::orientation#0 ← (byte) current_orientation#13 -- vbuxx=vbuz1 ldx current_orientation - //SEG530 [237] (byte*~) current_piece#90 ← (byte*) current_piece#20 -- pbuz1=pbuz2 + //SEG600 [265] (byte*~) current_piece#98 ← (byte*) current_piece#10 -- pbuz1=pbuz2 lda current_piece - sta current_piece_90 + sta current_piece_98 lda current_piece+1 - sta current_piece_90+1 - //SEG531 [238] call play_collision - //SEG532 [173] phi from play_move_down::@12 to play_collision [phi:play_move_down::@12->play_collision] + sta current_piece_98+1 + //SEG601 [266] call play_collision + //SEG602 [201] phi from play_move_down::@12 to play_collision [phi:play_move_down::@12->play_collision] play_collision_from_b12: - //SEG533 [173] phi (byte) play_collision::xpos#6 = (byte) play_collision::xpos#0 [phi:play_move_down::@12->play_collision#0] -- register_copy - //SEG534 [173] phi (byte) play_collision::ypos#5 = (byte) play_collision::ypos#0 [phi:play_move_down::@12->play_collision#1] -- register_copy - //SEG535 [173] phi (byte) play_collision::orientation#5 = (byte) play_collision::orientation#0 [phi:play_move_down::@12->play_collision#2] -- register_copy - //SEG536 [173] phi (byte*) current_piece#16 = (byte*~) current_piece#90 [phi:play_move_down::@12->play_collision#3] -- register_copy + //SEG603 [201] phi (byte) play_collision::xpos#6 = (byte) play_collision::xpos#0 [phi:play_move_down::@12->play_collision#0] -- register_copy + //SEG604 [201] phi (byte) play_collision::ypos#5 = (byte) play_collision::ypos#0 [phi:play_move_down::@12->play_collision#1] -- register_copy + //SEG605 [201] phi (byte) play_collision::orientation#5 = (byte) play_collision::orientation#0 [phi:play_move_down::@12->play_collision#2] -- register_copy + //SEG606 [201] phi (byte*) current_piece#17 = (byte*~) current_piece#98 [phi:play_move_down::@12->play_collision#3] -- register_copy jsr play_collision - //SEG537 [239] (byte) play_collision::return#0 ← (byte) play_collision::return#15 + //SEG607 [267] (byte) play_collision::return#0 ← (byte) play_collision::return#15 // (byte) play_collision::return#0 = (byte) play_collision::return#15 // register copy reg byte a jmp b18 - //SEG538 play_move_down::@18 + //SEG608 play_move_down::@18 b18: - //SEG539 [240] (byte~) play_move_down::$12 ← (byte) play_collision::return#0 + //SEG609 [268] (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 - //SEG540 [241] if((byte~) play_move_down::$12==(const byte) COLLISION_NONE#0) goto play_move_down::@6 -- vbuaa_eq_vbuc1_then_la1 + //SEG610 [269] 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 - //SEG541 [242] phi from play_move_down::@18 to play_move_down::@13 [phi:play_move_down::@18->play_move_down::@13] + //SEG611 [270] 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 - //SEG542 play_move_down::@13 + //SEG612 play_move_down::@13 b13: - //SEG543 [243] call play_lock_current + //SEG613 [271] call play_lock_current jsr play_lock_current - //SEG544 [244] phi from play_move_down::@13 to play_move_down::@19 [phi:play_move_down::@13->play_move_down::@19] + //SEG614 [272] 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 - //SEG545 play_move_down::@19 + //SEG615 play_move_down::@19 b19: - //SEG546 [245] call play_remove_lines - //SEG547 [315] phi from play_move_down::@19 to play_remove_lines [phi:play_move_down::@19->play_remove_lines] + //SEG616 [273] call play_remove_lines + //SEG617 [344] 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 - //SEG548 [246] (byte) play_remove_lines::return#0 ← (byte) play_remove_lines::removed#7 -- vbuaa=vbuz1 + //SEG618 [274] (byte) play_remove_lines::return#0 ← (byte) play_remove_lines::removed#7 -- vbuaa=vbuz1 lda play_remove_lines.removed jmp b20 - //SEG549 play_move_down::@20 + //SEG619 play_move_down::@20 b20: - //SEG550 [247] (byte) play_move_down::removed#0 ← (byte) play_remove_lines::return#0 + //SEG620 [275] (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 - //SEG551 [248] (byte) play_update_score::removed#0 ← (byte) play_move_down::removed#0 -- vbuxx=vbuaa + //SEG621 [276] (byte) play_update_score::removed#0 ← (byte) play_move_down::removed#0 -- vbuxx=vbuaa tax - //SEG552 [249] call play_update_score + //SEG622 [277] call play_update_score jsr play_update_score - //SEG553 [250] phi from play_move_down::@20 to play_move_down::@21 [phi:play_move_down::@20->play_move_down::@21] + //SEG623 [278] 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 - //SEG554 play_move_down::@21 + //SEG624 play_move_down::@21 b21: - //SEG555 [251] call play_spawn_current - //SEG556 [257] phi from play_move_down::@21 to play_spawn_current [phi:play_move_down::@21->play_spawn_current] + //SEG625 [279] call play_spawn_current + //SEG626 [285] phi from play_move_down::@21 to play_spawn_current [phi:play_move_down::@21->play_spawn_current] play_spawn_current_from_b21: - //SEG557 [257] phi (byte) game_over#70 = (byte) game_over#19 [phi:play_move_down::@21->play_spawn_current#0] -- register_copy + //SEG627 [285] phi (byte) game_over#65 = (byte) game_over#10 [phi:play_move_down::@21->play_spawn_current#0] -- register_copy + //SEG628 [285] phi (byte) next_piece_idx#17 = (byte) next_piece_idx#10 [phi:play_move_down::@21->play_spawn_current#1] -- register_copy jsr play_spawn_current - //SEG558 [252] (byte*~) current_piece#95 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) -- pbuz1=pptc1_derefidx_vbuz2 - ldy play_spawn_current._3 + //SEG629 [280] (byte*~) current_piece#103 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$0) -- pbuz1=pptc1_derefidx_vbuz2 + ldy play_spawn_current._0 lda PIECES,y sta current_piece lda PIECES+1,y sta current_piece+1 - //SEG559 [253] phi from play_move_down::@21 to play_move_down::@7 [phi:play_move_down::@21->play_move_down::@7] + //SEG630 [281] phi from play_move_down::@21 to play_move_down::@7 [phi:play_move_down::@21->play_move_down::@7] b7_from_b21: - //SEG560 [253] phi (byte) game_over#26 = (byte) game_over#15 [phi:play_move_down::@21->play_move_down::@7#0] -- register_copy - //SEG561 [253] phi (byte) current_xpos#41 = (byte) current_xpos#28 [phi:play_move_down::@21->play_move_down::@7#1] -- register_copy - //SEG562 [253] phi (byte*) current_piece_gfx#33 = (byte*) current_piece_gfx#21 [phi:play_move_down::@21->play_move_down::@7#2] -- register_copy - //SEG563 [253] phi (byte) current_orientation#36 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@21->play_move_down::@7#3] -- vbuz1=vbuc1 + //SEG631 [281] phi (byte) next_piece_idx#31 = (byte) play_spawn_current::piece_idx#2 [phi:play_move_down::@21->play_move_down::@7#0] -- register_copy + //SEG632 [281] phi (byte) game_over#28 = (byte) game_over#52 [phi:play_move_down::@21->play_move_down::@7#1] -- register_copy + //SEG633 [281] phi (byte) current_xpos#43 = (byte) current_xpos#102 [phi:play_move_down::@21->play_move_down::@7#2] -- register_copy + //SEG634 [281] phi (byte*) current_piece_gfx#35 = (byte*) current_piece_gfx#7 [phi:play_move_down::@21->play_move_down::@7#3] -- register_copy + //SEG635 [281] phi (byte) current_orientation#38 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@21->play_move_down::@7#4] -- vbuz1=vbuc1 lda #0 sta current_orientation - //SEG564 [253] phi (byte) current_piece_char#27 = (byte) current_piece_char#16 [phi:play_move_down::@21->play_move_down::@7#4] -- register_copy - //SEG565 [253] phi (byte*) current_piece#27 = (byte*~) current_piece#95 [phi:play_move_down::@21->play_move_down::@7#5] -- register_copy - //SEG566 [253] phi (byte) level_bcd#32 = (byte) level_bcd#19 [phi:play_move_down::@21->play_move_down::@7#6] -- register_copy - //SEG567 [253] phi (byte) current_movedown_slow#38 = (byte) current_movedown_slow#23 [phi:play_move_down::@21->play_move_down::@7#7] -- register_copy - //SEG568 [253] phi (byte) level#31 = (byte) level#18 [phi:play_move_down::@21->play_move_down::@7#8] -- register_copy - //SEG569 [253] phi (dword) score_bcd#27 = (dword) score_bcd#16 [phi:play_move_down::@21->play_move_down::@7#9] -- register_copy - //SEG570 [253] phi (word) lines_bcd#27 = (word) lines_bcd#17 [phi:play_move_down::@21->play_move_down::@7#10] -- register_copy - //SEG571 [253] phi (byte) current_ypos#36 = (byte) current_ypos#22 [phi:play_move_down::@21->play_move_down::@7#11] -- register_copy + //SEG636 [281] phi (byte) current_piece_char#29 = (byte) current_piece_char#4 [phi:play_move_down::@21->play_move_down::@7#5] -- register_copy + //SEG637 [281] phi (byte*) current_piece#29 = (byte*~) current_piece#103 [phi:play_move_down::@21->play_move_down::@7#6] -- register_copy + //SEG638 [281] phi (byte) level_bcd#32 = (byte) level_bcd#19 [phi:play_move_down::@21->play_move_down::@7#7] -- register_copy + //SEG639 [281] phi (byte) current_movedown_slow#38 = (byte) current_movedown_slow#23 [phi:play_move_down::@21->play_move_down::@7#8] -- register_copy + //SEG640 [281] phi (byte) level#31 = (byte) level#18 [phi:play_move_down::@21->play_move_down::@7#9] -- register_copy + //SEG641 [281] phi (dword) score_bcd#27 = (dword) score_bcd#16 [phi:play_move_down::@21->play_move_down::@7#10] -- register_copy + //SEG642 [281] phi (word) lines_bcd#27 = (word) lines_bcd#17 [phi:play_move_down::@21->play_move_down::@7#11] -- register_copy + //SEG643 [281] phi (byte) current_ypos#38 = (byte) current_ypos#5 [phi:play_move_down::@21->play_move_down::@7#12] -- register_copy jmp b7 - //SEG572 play_move_down::@7 + //SEG644 play_move_down::@7 b7: - //SEG573 [254] phi from play_move_down::@7 to play_move_down::@return [phi:play_move_down::@7->play_move_down::@return] + //SEG645 [282] phi from play_move_down::@7 to play_move_down::@return [phi:play_move_down::@7->play_move_down::@return] breturn_from_b7: - //SEG574 [254] phi (byte) game_over#14 = (byte) game_over#26 [phi:play_move_down::@7->play_move_down::@return#0] -- register_copy - //SEG575 [254] phi (byte) current_xpos#20 = (byte) current_xpos#41 [phi:play_move_down::@7->play_move_down::@return#1] -- register_copy - //SEG576 [254] phi (byte*) current_piece_gfx#18 = (byte*) current_piece_gfx#33 [phi:play_move_down::@7->play_move_down::@return#2] -- register_copy - //SEG577 [254] phi (byte) current_orientation#19 = (byte) current_orientation#36 [phi:play_move_down::@7->play_move_down::@return#3] -- register_copy - //SEG578 [254] phi (byte) current_piece_char#14 = (byte) current_piece_char#27 [phi:play_move_down::@7->play_move_down::@return#4] -- register_copy - //SEG579 [254] phi (byte*) current_piece#14 = (byte*) current_piece#27 [phi:play_move_down::@7->play_move_down::@return#5] -- register_copy - //SEG580 [254] phi (byte) level_bcd#17 = (byte) level_bcd#32 [phi:play_move_down::@7->play_move_down::@return#6] -- register_copy - //SEG581 [254] phi (byte) current_movedown_slow#21 = (byte) current_movedown_slow#38 [phi:play_move_down::@7->play_move_down::@return#7] -- register_copy - //SEG582 [254] phi (byte) level#16 = (byte) level#31 [phi:play_move_down::@7->play_move_down::@return#8] -- register_copy - //SEG583 [254] phi (dword) score_bcd#14 = (dword) score_bcd#27 [phi:play_move_down::@7->play_move_down::@return#9] -- register_copy - //SEG584 [254] phi (word) lines_bcd#15 = (word) lines_bcd#27 [phi:play_move_down::@7->play_move_down::@return#10] -- register_copy - //SEG585 [254] phi (byte) current_ypos#17 = (byte) current_ypos#36 [phi:play_move_down::@7->play_move_down::@return#11] -- register_copy - //SEG586 [254] phi (byte) current_movedown_counter#14 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@7->play_move_down::@return#12] -- vbuz1=vbuc1 + //SEG646 [282] phi (byte) next_piece_idx#16 = (byte) next_piece_idx#31 [phi:play_move_down::@7->play_move_down::@return#0] -- register_copy + //SEG647 [282] phi (byte) game_over#15 = (byte) game_over#28 [phi:play_move_down::@7->play_move_down::@return#1] -- register_copy + //SEG648 [282] phi (byte) current_xpos#21 = (byte) current_xpos#43 [phi:play_move_down::@7->play_move_down::@return#2] -- register_copy + //SEG649 [282] phi (byte*) current_piece_gfx#19 = (byte*) current_piece_gfx#35 [phi:play_move_down::@7->play_move_down::@return#3] -- register_copy + //SEG650 [282] phi (byte) current_orientation#20 = (byte) current_orientation#38 [phi:play_move_down::@7->play_move_down::@return#4] -- register_copy + //SEG651 [282] phi (byte) current_piece_char#15 = (byte) current_piece_char#29 [phi:play_move_down::@7->play_move_down::@return#5] -- register_copy + //SEG652 [282] phi (byte*) current_piece#15 = (byte*) current_piece#29 [phi:play_move_down::@7->play_move_down::@return#6] -- register_copy + //SEG653 [282] phi (byte) level_bcd#17 = (byte) level_bcd#32 [phi:play_move_down::@7->play_move_down::@return#7] -- register_copy + //SEG654 [282] phi (byte) current_movedown_slow#21 = (byte) current_movedown_slow#38 [phi:play_move_down::@7->play_move_down::@return#8] -- register_copy + //SEG655 [282] phi (byte) level#16 = (byte) level#31 [phi:play_move_down::@7->play_move_down::@return#9] -- register_copy + //SEG656 [282] phi (dword) score_bcd#14 = (dword) score_bcd#27 [phi:play_move_down::@7->play_move_down::@return#10] -- register_copy + //SEG657 [282] phi (word) lines_bcd#15 = (word) lines_bcd#27 [phi:play_move_down::@7->play_move_down::@return#11] -- register_copy + //SEG658 [282] phi (byte) current_ypos#18 = (byte) current_ypos#38 [phi:play_move_down::@7->play_move_down::@return#12] -- register_copy + //SEG659 [282] phi (byte) current_movedown_counter#14 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@7->play_move_down::@return#13] -- vbuz1=vbuc1 lda #0 sta current_movedown_counter - //SEG587 [254] phi (byte) play_move_down::return#3 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_down::@7->play_move_down::@return#13] -- vbuxx=vbuc1 + //SEG660 [282] phi (byte) play_move_down::return#3 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_down::@7->play_move_down::@return#14] -- vbuxx=vbuc1 ldx #1 jmp breturn - //SEG588 [254] phi from play_move_down::@4 to play_move_down::@return [phi:play_move_down::@4->play_move_down::@return] + //SEG661 [282] phi from play_move_down::@4 to play_move_down::@return [phi:play_move_down::@4->play_move_down::@return] breturn_from_b4: - //SEG589 [254] phi (byte) game_over#14 = (byte) game_over#19 [phi:play_move_down::@4->play_move_down::@return#0] -- register_copy - //SEG590 [254] phi (byte) current_xpos#20 = (byte) current_xpos#113 [phi:play_move_down::@4->play_move_down::@return#1] -- register_copy - //SEG591 [254] phi (byte*) current_piece_gfx#18 = (byte*) current_piece_gfx#103 [phi:play_move_down::@4->play_move_down::@return#2] -- register_copy - //SEG592 [254] phi (byte) current_orientation#19 = (byte) current_orientation#12 [phi:play_move_down::@4->play_move_down::@return#3] -- register_copy - //SEG593 [254] phi (byte) current_piece_char#14 = (byte) current_piece_char#19 [phi:play_move_down::@4->play_move_down::@return#4] -- register_copy - //SEG594 [254] phi (byte*) current_piece#14 = (byte*) current_piece#20 [phi:play_move_down::@4->play_move_down::@return#5] -- register_copy - //SEG595 [254] phi (byte) level_bcd#17 = (byte) level_bcd#11 [phi:play_move_down::@4->play_move_down::@return#6] -- register_copy - //SEG596 [254] phi (byte) current_movedown_slow#21 = (byte) current_movedown_slow#14 [phi:play_move_down::@4->play_move_down::@return#7] -- register_copy - //SEG597 [254] phi (byte) level#16 = (byte) level#10 [phi:play_move_down::@4->play_move_down::@return#8] -- register_copy - //SEG598 [254] phi (dword) score_bcd#14 = (dword) score_bcd#18 [phi:play_move_down::@4->play_move_down::@return#9] -- register_copy - //SEG599 [254] phi (word) lines_bcd#15 = (word) lines_bcd#19 [phi:play_move_down::@4->play_move_down::@return#10] -- register_copy - //SEG600 [254] phi (byte) current_ypos#17 = (byte) current_ypos#25 [phi:play_move_down::@4->play_move_down::@return#11] -- register_copy - //SEG601 [254] phi (byte) current_movedown_counter#14 = (byte) current_movedown_counter#12 [phi:play_move_down::@4->play_move_down::@return#12] -- register_copy - //SEG602 [254] phi (byte) play_move_down::return#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@4->play_move_down::@return#13] -- vbuxx=vbuc1 + //SEG662 [282] phi (byte) next_piece_idx#16 = (byte) next_piece_idx#10 [phi:play_move_down::@4->play_move_down::@return#0] -- register_copy + //SEG663 [282] phi (byte) game_over#15 = (byte) game_over#10 [phi:play_move_down::@4->play_move_down::@return#1] -- register_copy + //SEG664 [282] phi (byte) current_xpos#21 = (byte) current_xpos#121 [phi:play_move_down::@4->play_move_down::@return#2] -- register_copy + //SEG665 [282] phi (byte*) current_piece_gfx#19 = (byte*) current_piece_gfx#111 [phi:play_move_down::@4->play_move_down::@return#3] -- register_copy + //SEG666 [282] phi (byte) current_orientation#20 = (byte) current_orientation#13 [phi:play_move_down::@4->play_move_down::@return#4] -- register_copy + //SEG667 [282] phi (byte) current_piece_char#15 = (byte) current_piece_char#21 [phi:play_move_down::@4->play_move_down::@return#5] -- register_copy + //SEG668 [282] phi (byte*) current_piece#15 = (byte*) current_piece#10 [phi:play_move_down::@4->play_move_down::@return#6] -- register_copy + //SEG669 [282] phi (byte) level_bcd#17 = (byte) level_bcd#11 [phi:play_move_down::@4->play_move_down::@return#7] -- register_copy + //SEG670 [282] phi (byte) current_movedown_slow#21 = (byte) current_movedown_slow#14 [phi:play_move_down::@4->play_move_down::@return#8] -- register_copy + //SEG671 [282] phi (byte) level#16 = (byte) level#10 [phi:play_move_down::@4->play_move_down::@return#9] -- register_copy + //SEG672 [282] phi (dword) score_bcd#14 = (dword) score_bcd#18 [phi:play_move_down::@4->play_move_down::@return#10] -- register_copy + //SEG673 [282] phi (word) lines_bcd#15 = (word) lines_bcd#19 [phi:play_move_down::@4->play_move_down::@return#11] -- register_copy + //SEG674 [282] phi (byte) current_ypos#18 = (byte) current_ypos#10 [phi:play_move_down::@4->play_move_down::@return#12] -- register_copy + //SEG675 [282] phi (byte) current_movedown_counter#14 = (byte) current_movedown_counter#12 [phi:play_move_down::@4->play_move_down::@return#13] -- register_copy + //SEG676 [282] phi (byte) play_move_down::return#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@4->play_move_down::@return#14] -- vbuxx=vbuc1 ldx #0 jmp breturn - //SEG603 play_move_down::@return + //SEG677 play_move_down::@return breturn: - //SEG604 [255] return + //SEG678 [283] return rts - //SEG605 play_move_down::@6 + //SEG679 play_move_down::@6 b6: - //SEG606 [256] (byte) current_ypos#2 ← ++ (byte) current_ypos#25 -- vbuz1=_inc_vbuz1 + //SEG680 [284] (byte) current_ypos#2 ← ++ (byte) current_ypos#10 -- vbuz1=_inc_vbuz1 inc current_ypos - //SEG607 [253] phi from play_move_down::@6 to play_move_down::@7 [phi:play_move_down::@6->play_move_down::@7] + //SEG681 [281] phi from play_move_down::@6 to play_move_down::@7 [phi:play_move_down::@6->play_move_down::@7] b7_from_b6: - //SEG608 [253] phi (byte) game_over#26 = (byte) game_over#19 [phi:play_move_down::@6->play_move_down::@7#0] -- register_copy - //SEG609 [253] phi (byte) current_xpos#41 = (byte) current_xpos#113 [phi:play_move_down::@6->play_move_down::@7#1] -- register_copy - //SEG610 [253] phi (byte*) current_piece_gfx#33 = (byte*) current_piece_gfx#103 [phi:play_move_down::@6->play_move_down::@7#2] -- register_copy - //SEG611 [253] phi (byte) current_orientation#36 = (byte) current_orientation#12 [phi:play_move_down::@6->play_move_down::@7#3] -- register_copy - //SEG612 [253] phi (byte) current_piece_char#27 = (byte) current_piece_char#19 [phi:play_move_down::@6->play_move_down::@7#4] -- register_copy - //SEG613 [253] phi (byte*) current_piece#27 = (byte*) current_piece#20 [phi:play_move_down::@6->play_move_down::@7#5] -- register_copy - //SEG614 [253] phi (byte) level_bcd#32 = (byte) level_bcd#11 [phi:play_move_down::@6->play_move_down::@7#6] -- register_copy - //SEG615 [253] phi (byte) current_movedown_slow#38 = (byte) current_movedown_slow#14 [phi:play_move_down::@6->play_move_down::@7#7] -- register_copy - //SEG616 [253] phi (byte) level#31 = (byte) level#10 [phi:play_move_down::@6->play_move_down::@7#8] -- register_copy - //SEG617 [253] phi (dword) score_bcd#27 = (dword) score_bcd#18 [phi:play_move_down::@6->play_move_down::@7#9] -- register_copy - //SEG618 [253] phi (word) lines_bcd#27 = (word) lines_bcd#19 [phi:play_move_down::@6->play_move_down::@7#10] -- register_copy - //SEG619 [253] phi (byte) current_ypos#36 = (byte) current_ypos#2 [phi:play_move_down::@6->play_move_down::@7#11] -- register_copy + //SEG682 [281] phi (byte) next_piece_idx#31 = (byte) next_piece_idx#10 [phi:play_move_down::@6->play_move_down::@7#0] -- register_copy + //SEG683 [281] phi (byte) game_over#28 = (byte) game_over#10 [phi:play_move_down::@6->play_move_down::@7#1] -- register_copy + //SEG684 [281] phi (byte) current_xpos#43 = (byte) current_xpos#121 [phi:play_move_down::@6->play_move_down::@7#2] -- register_copy + //SEG685 [281] phi (byte*) current_piece_gfx#35 = (byte*) current_piece_gfx#111 [phi:play_move_down::@6->play_move_down::@7#3] -- register_copy + //SEG686 [281] phi (byte) current_orientation#38 = (byte) current_orientation#13 [phi:play_move_down::@6->play_move_down::@7#4] -- register_copy + //SEG687 [281] phi (byte) current_piece_char#29 = (byte) current_piece_char#21 [phi:play_move_down::@6->play_move_down::@7#5] -- register_copy + //SEG688 [281] phi (byte*) current_piece#29 = (byte*) current_piece#10 [phi:play_move_down::@6->play_move_down::@7#6] -- register_copy + //SEG689 [281] phi (byte) level_bcd#32 = (byte) level_bcd#11 [phi:play_move_down::@6->play_move_down::@7#7] -- register_copy + //SEG690 [281] phi (byte) current_movedown_slow#38 = (byte) current_movedown_slow#14 [phi:play_move_down::@6->play_move_down::@7#8] -- register_copy + //SEG691 [281] phi (byte) level#31 = (byte) level#10 [phi:play_move_down::@6->play_move_down::@7#9] -- register_copy + //SEG692 [281] phi (dword) score_bcd#27 = (dword) score_bcd#18 [phi:play_move_down::@6->play_move_down::@7#10] -- register_copy + //SEG693 [281] phi (word) lines_bcd#27 = (word) lines_bcd#19 [phi:play_move_down::@6->play_move_down::@7#11] -- register_copy + //SEG694 [281] phi (byte) current_ypos#38 = (byte) current_ypos#2 [phi:play_move_down::@6->play_move_down::@7#12] -- register_copy jmp b7 } -//SEG620 play_spawn_current +//SEG695 play_spawn_current play_spawn_current: { - .label _3 = 4 - //SEG621 [258] phi from play_spawn_current to play_spawn_current::@1 [phi:play_spawn_current->play_spawn_current::@1] - b1_from_play_spawn_current: - //SEG622 [258] phi (byte) play_spawn_current::piece_idx#2 = (byte/signed byte/word/signed word/dword/signed dword) 7 [phi:play_spawn_current->play_spawn_current::@1#0] -- vbuxx=vbuc1 - ldx #7 - jmp b1 - //SEG623 play_spawn_current::@1 - b1: - //SEG624 [259] if((byte) play_spawn_current::piece_idx#2==(byte/signed byte/word/signed word/dword/signed dword) 7) goto play_spawn_current::@2 -- vbuxx_eq_vbuc1_then_la1 - cpx #7 - beq b2_from_b1 - jmp b3 - //SEG625 play_spawn_current::@3 - b3: - //SEG626 [260] (byte~) play_spawn_current::$3 ← (byte) play_spawn_current::piece_idx#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuxx_rol_1 + .label _0 = 4 + .label piece_idx = $21 + //SEG696 [286] (byte) play_spawn_current::current_piece_idx#0 ← (byte) next_piece_idx#17 -- vbuxx=vbuz1 + ldx next_piece_idx + //SEG697 [287] (byte~) play_spawn_current::$0 ← (byte) play_spawn_current::current_piece_idx#0 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuxx_rol_1 txa asl - sta _3 - //SEG627 [261] (byte) current_piece_char#16 ← *((const byte[]) PIECES_CHARS#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuxx + sta _0 + //SEG698 [288] (byte) current_piece_char#4 ← *((const byte[]) PIECES_CHARS#0 + (byte) play_spawn_current::current_piece_idx#0) -- vbuz1=pbuc1_derefidx_vbuxx lda PIECES_CHARS,x sta current_piece_char - //SEG628 [262] (byte*) current_piece_gfx#21 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) + (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuz1=pptc1_derefidx_vbuz2_plus_0 - ldy _3 + //SEG699 [289] (byte*) current_piece_gfx#7 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$0) + (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuz1=pptc1_derefidx_vbuz2_plus_0 + ldy _0 lda PIECES,y sta current_piece_gfx lda PIECES+1,y sta current_piece_gfx+1 - //SEG629 [263] (byte) current_xpos#28 ← *((const byte[]) PIECES_START_X#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuxx + //SEG700 [290] (byte) current_xpos#102 ← *((const byte[]) PIECES_START_X#0 + (byte) play_spawn_current::current_piece_idx#0) -- vbuz1=pbuc1_derefidx_vbuxx lda PIECES_START_X,x sta current_xpos - //SEG630 [264] (byte) current_ypos#22 ← *((const byte[]) PIECES_START_Y#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuxx + //SEG701 [291] (byte) current_ypos#5 ← *((const byte[]) PIECES_START_Y#0 + (byte) play_spawn_current::current_piece_idx#0) -- vbuz1=pbuc1_derefidx_vbuxx lda PIECES_START_Y,x sta current_ypos - //SEG631 [265] (byte) play_collision::xpos#4 ← (byte) current_xpos#28 -- vbuz1=vbuz2 + //SEG702 [292] (byte) play_collision::xpos#4 ← (byte) current_xpos#102 -- vbuz1=vbuz2 lda current_xpos sta play_collision.xpos - //SEG632 [266] (byte) play_collision::ypos#4 ← (byte) current_ypos#22 -- vbuz1=vbuz2 + //SEG703 [293] (byte) play_collision::ypos#4 ← (byte) current_ypos#5 -- vbuz1=vbuz2 lda current_ypos sta play_collision.ypos - //SEG633 [267] (byte*~) current_piece#94 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) -- pbuz1=pptc1_derefidx_vbuz2 - ldy _3 + //SEG704 [294] (byte*~) current_piece#102 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$0) -- pbuz1=pptc1_derefidx_vbuz2 + ldy _0 lda PIECES,y - sta current_piece_94 + sta current_piece_102 lda PIECES+1,y - sta current_piece_94+1 - //SEG634 [268] call play_collision - //SEG635 [173] phi from play_spawn_current::@3 to play_collision [phi:play_spawn_current::@3->play_collision] - play_collision_from_b3: - //SEG636 [173] phi (byte) play_collision::xpos#6 = (byte) play_collision::xpos#4 [phi:play_spawn_current::@3->play_collision#0] -- register_copy - //SEG637 [173] phi (byte) play_collision::ypos#5 = (byte) play_collision::ypos#4 [phi:play_spawn_current::@3->play_collision#1] -- register_copy - //SEG638 [173] phi (byte) play_collision::orientation#5 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_spawn_current::@3->play_collision#2] -- vbuxx=vbuc1 + sta current_piece_102+1 + //SEG705 [295] call play_collision + //SEG706 [201] phi from play_spawn_current to play_collision [phi:play_spawn_current->play_collision] + play_collision_from_play_spawn_current: + //SEG707 [201] phi (byte) play_collision::xpos#6 = (byte) play_collision::xpos#4 [phi:play_spawn_current->play_collision#0] -- register_copy + //SEG708 [201] phi (byte) play_collision::ypos#5 = (byte) play_collision::ypos#4 [phi:play_spawn_current->play_collision#1] -- register_copy + //SEG709 [201] phi (byte) play_collision::orientation#5 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_spawn_current->play_collision#2] -- vbuxx=vbuc1 ldx #0 - //SEG639 [173] phi (byte*) current_piece#16 = (byte*~) current_piece#94 [phi:play_spawn_current::@3->play_collision#3] -- register_copy + //SEG710 [201] phi (byte*) current_piece#17 = (byte*~) current_piece#102 [phi:play_spawn_current->play_collision#3] -- register_copy jsr play_collision - //SEG640 [269] (byte) play_collision::return#10 ← (byte) play_collision::return#15 + //SEG711 [296] (byte) play_collision::return#10 ← (byte) play_collision::return#15 // (byte) play_collision::return#10 = (byte) play_collision::return#15 // register copy reg byte a - jmp b10 - //SEG641 play_spawn_current::@10 - b10: - //SEG642 [270] (byte~) play_spawn_current::$5 ← (byte) play_collision::return#10 - // (byte~) play_spawn_current::$5 = (byte) play_collision::return#10 // register copy reg byte a - //SEG643 [271] if((byte~) play_spawn_current::$5!=(const byte) COLLISION_PLAYFIELD#0) goto play_spawn_current::@11 -- vbuaa_neq_vbuc1_then_la1 + jmp b9 + //SEG712 play_spawn_current::@9 + b9: + //SEG713 [297] (byte~) play_spawn_current::$2 ← (byte) play_collision::return#10 + // (byte~) play_spawn_current::$2 = (byte) play_collision::return#10 // register copy reg byte a + //SEG714 [298] if((byte~) play_spawn_current::$2!=(const byte) COLLISION_PLAYFIELD#0) goto play_spawn_current::@11 -- vbuaa_neq_vbuc1_then_la1 cmp #COLLISION_PLAYFIELD - bne b11_from_b10 - //SEG644 [272] phi from play_spawn_current::@10 to play_spawn_current::@return [phi:play_spawn_current::@10->play_spawn_current::@return] - breturn_from_b10: - //SEG645 [272] phi (byte) game_over#15 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_spawn_current::@10->play_spawn_current::@return#0] -- vbuz1=vbuc1 + bne b11_from_b9 + //SEG715 [299] phi from play_spawn_current::@9 to play_spawn_current::@1 [phi:play_spawn_current::@9->play_spawn_current::@1] + b1_from_b9: + //SEG716 [299] phi (byte) game_over#52 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_spawn_current::@9->play_spawn_current::@1#0] -- vbuz1=vbuc1 lda #1 sta game_over - jmp breturn - //SEG646 play_spawn_current::@return - breturn: - //SEG647 [273] return - rts - //SEG648 [274] phi from play_spawn_current::@10 to play_spawn_current::@11 [phi:play_spawn_current::@10->play_spawn_current::@11] - b11_from_b10: - jmp b11 - //SEG649 play_spawn_current::@11 - b11: - //SEG650 [272] phi from play_spawn_current::@11 to play_spawn_current::@return [phi:play_spawn_current::@11->play_spawn_current::@return] - breturn_from_b11: - //SEG651 [272] phi (byte) game_over#15 = (byte) game_over#70 [phi:play_spawn_current::@11->play_spawn_current::@return#0] -- register_copy - jmp breturn - //SEG652 [275] phi from play_spawn_current::@1 to play_spawn_current::@2 [phi:play_spawn_current::@1->play_spawn_current::@2] + jmp b1 + //SEG717 play_spawn_current::@1 + b1: + //SEG718 [300] phi from play_spawn_current::@1 to play_spawn_current::@2 [phi:play_spawn_current::@1->play_spawn_current::@2] b2_from_b1: + //SEG719 [300] phi (byte) play_spawn_current::piece_idx#2 = (byte/signed byte/word/signed word/dword/signed dword) 7 [phi:play_spawn_current::@1->play_spawn_current::@2#0] -- vbuz1=vbuc1 + lda #7 + sta piece_idx jmp b2 - //SEG653 play_spawn_current::@2 + //SEG720 play_spawn_current::@2 b2: - //SEG654 [276] call sid_rnd + //SEG721 [301] if((byte) play_spawn_current::piece_idx#2==(byte/signed byte/word/signed word/dword/signed dword) 7) goto play_spawn_current::@3 -- vbuz1_eq_vbuc1_then_la1 + lda piece_idx + cmp #7 + beq b3_from_b2 + jmp breturn + //SEG722 play_spawn_current::@return + breturn: + //SEG723 [302] return + rts + //SEG724 [303] phi from play_spawn_current::@2 to play_spawn_current::@3 [phi:play_spawn_current::@2->play_spawn_current::@3] + b3_from_b2: + jmp b3 + //SEG725 play_spawn_current::@3 + b3: + //SEG726 [304] call sid_rnd jsr sid_rnd - //SEG655 [277] (byte) sid_rnd::return#2 ← (byte) sid_rnd::return#0 + //SEG727 [305] (byte) sid_rnd::return#2 ← (byte) sid_rnd::return#0 // (byte) sid_rnd::return#2 = (byte) sid_rnd::return#0 // register copy reg byte a - jmp b9 - //SEG656 play_spawn_current::@9 - b9: - //SEG657 [278] (byte~) play_spawn_current::$1 ← (byte) sid_rnd::return#2 - // (byte~) play_spawn_current::$1 = (byte) sid_rnd::return#2 // register copy reg byte a - //SEG658 [279] (byte) play_spawn_current::piece_idx#1 ← (byte~) play_spawn_current::$1 & (byte/signed byte/word/signed word/dword/signed dword) 7 -- vbuxx=vbuaa_band_vbuc1 + jmp b10 + //SEG728 play_spawn_current::@10 + b10: + //SEG729 [306] (byte~) play_spawn_current::$6 ← (byte) sid_rnd::return#2 + // (byte~) play_spawn_current::$6 = (byte) sid_rnd::return#2 // register copy reg byte a + //SEG730 [307] (byte) play_spawn_current::piece_idx#1 ← (byte~) play_spawn_current::$6 & (byte/signed byte/word/signed word/dword/signed dword) 7 -- vbuz1=vbuaa_band_vbuc1 and #7 - tax - //SEG659 [258] phi from play_spawn_current::@9 to play_spawn_current::@1 [phi:play_spawn_current::@9->play_spawn_current::@1] - b1_from_b9: - //SEG660 [258] phi (byte) play_spawn_current::piece_idx#2 = (byte) play_spawn_current::piece_idx#1 [phi:play_spawn_current::@9->play_spawn_current::@1#0] -- register_copy + sta piece_idx + //SEG731 [300] phi from play_spawn_current::@10 to play_spawn_current::@2 [phi:play_spawn_current::@10->play_spawn_current::@2] + b2_from_b10: + //SEG732 [300] phi (byte) play_spawn_current::piece_idx#2 = (byte) play_spawn_current::piece_idx#1 [phi:play_spawn_current::@10->play_spawn_current::@2#0] -- register_copy + jmp b2 + //SEG733 [308] phi from play_spawn_current::@9 to play_spawn_current::@11 [phi:play_spawn_current::@9->play_spawn_current::@11] + b11_from_b9: + jmp b11 + //SEG734 play_spawn_current::@11 + b11: + //SEG735 [299] phi from play_spawn_current::@11 to play_spawn_current::@1 [phi:play_spawn_current::@11->play_spawn_current::@1] + b1_from_b11: + //SEG736 [299] phi (byte) game_over#52 = (byte) game_over#65 [phi:play_spawn_current::@11->play_spawn_current::@1#0] -- register_copy jmp b1 } -//SEG661 sid_rnd +//SEG737 sid_rnd sid_rnd: { - //SEG662 [280] (byte) sid_rnd::return#0 ← *((const byte*) SID_VOICE3_OSC#0) -- vbuaa=_deref_pbuc1 + //SEG738 [309] (byte) sid_rnd::return#0 ← *((const byte*) SID_VOICE3_OSC#0) -- vbuaa=_deref_pbuc1 lda SID_VOICE3_OSC jmp breturn - //SEG663 sid_rnd::@return + //SEG739 sid_rnd::@return breturn: - //SEG664 [281] return + //SEG740 [310] return rts } -//SEG665 play_update_score +//SEG741 play_update_score play_update_score: { .label lines_before = 4 - .label add_bcd = $2a - //SEG666 [282] if((byte) play_update_score::removed#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_update_score::@return -- vbuxx_eq_0_then_la1 + .label add_bcd = $2b + //SEG742 [311] if((byte) play_update_score::removed#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_update_score::@return -- vbuxx_eq_0_then_la1 cpx #0 beq breturn_from_play_update_score jmp b3 - //SEG667 play_update_score::@3 + //SEG743 play_update_score::@3 b3: - //SEG668 [283] (byte~) play_update_score::$2 ← < (word) lines_bcd#19 -- vbuaa=_lo_vwuz1 + //SEG744 [312] (byte~) play_update_score::$2 ← < (word) lines_bcd#19 -- vbuaa=_lo_vwuz1 lda lines_bcd - //SEG669 [284] (byte) play_update_score::lines_before#0 ← (byte~) play_update_score::$2 & (byte/word/signed word/dword/signed dword) 240 -- vbuz1=vbuaa_band_vbuc1 + //SEG745 [313] (byte) play_update_score::lines_before#0 ← (byte~) play_update_score::$2 & (byte/word/signed word/dword/signed dword) 240 -- vbuz1=vbuaa_band_vbuc1 and #$f0 sta lines_before - //SEG670 [285] (byte~) play_update_score::$4 ← (byte) play_update_score::removed#0 << (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuaa=vbuxx_rol_2 + //SEG746 [314] (byte~) play_update_score::$4 ← (byte) play_update_score::removed#0 << (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuaa=vbuxx_rol_2 txa asl asl - //SEG671 [286] (dword) play_update_score::add_bcd#0 ← *((const dword[5]) score_add_bcd#0 + (byte~) play_update_score::$4) -- vduz1=pduc1_derefidx_vbuaa + //SEG747 [315] (dword) play_update_score::add_bcd#0 ← *((const dword[5]) score_add_bcd#0 + (byte~) play_update_score::$4) -- vduz1=pduc1_derefidx_vbuaa tay lda score_add_bcd,y sta add_bcd @@ -18373,9 +19785,9 @@ play_update_score: { sta add_bcd+2 lda score_add_bcd+3,y sta add_bcd+3 - //SEG672 asm { sed } + //SEG748 asm { sed } sed - //SEG673 [288] (word) lines_bcd#30 ← (word) lines_bcd#19 + (byte) play_update_score::removed#0 -- vwuz1=vwuz1_plus_vbuxx + //SEG749 [317] (word) lines_bcd#30 ← (word) lines_bcd#19 + (byte) play_update_score::removed#0 -- vwuz1=vwuz1_plus_vbuxx txa clc adc lines_bcd @@ -18383,7 +19795,7 @@ play_update_score: { lda #0 adc lines_bcd+1 sta lines_bcd+1 - //SEG674 [289] (dword) score_bcd#30 ← (dword) score_bcd#18 + (dword) play_update_score::add_bcd#0 -- vduz1=vduz1_plus_vduz2 + //SEG750 [318] (dword) score_bcd#30 ← (dword) score_bcd#18 + (dword) play_update_score::add_bcd#0 -- vduz1=vduz1_plus_vduz2 lda score_bcd clc adc add_bcd @@ -18397,107 +19809,107 @@ play_update_score: { lda score_bcd+3 adc add_bcd+3 sta score_bcd+3 - //SEG675 asm { cld } + //SEG751 asm { cld } cld - //SEG676 [291] (byte~) play_update_score::$5 ← < (word) lines_bcd#30 -- vbuaa=_lo_vwuz1 + //SEG752 [320] (byte~) play_update_score::$5 ← < (word) lines_bcd#30 -- vbuaa=_lo_vwuz1 lda lines_bcd - //SEG677 [292] (byte) play_update_score::lines_after#0 ← (byte~) play_update_score::$5 & (byte/word/signed word/dword/signed dword) 240 -- vbuaa=vbuaa_band_vbuc1 + //SEG753 [321] (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 - //SEG678 [293] if((byte) play_update_score::lines_before#0==(byte) play_update_score::lines_after#0) goto play_update_score::@return -- vbuz1_eq_vbuaa_then_la1 + //SEG754 [322] if((byte) play_update_score::lines_before#0==(byte) play_update_score::lines_after#0) goto play_update_score::@return -- vbuz1_eq_vbuaa_then_la1 cmp lines_before beq breturn_from_b3 - //SEG679 [294] phi from play_update_score::@3 to play_update_score::@4 [phi:play_update_score::@3->play_update_score::@4] + //SEG755 [323] phi from play_update_score::@3 to play_update_score::@4 [phi:play_update_score::@3->play_update_score::@4] b4_from_b3: jmp b4 - //SEG680 play_update_score::@4 + //SEG756 play_update_score::@4 b4: - //SEG681 [295] call play_increase_level + //SEG757 [324] call play_increase_level jsr play_increase_level - //SEG682 [296] phi from play_update_score play_update_score::@3 play_update_score::@4 to play_update_score::@return [phi:play_update_score/play_update_score::@3/play_update_score::@4->play_update_score::@return] + //SEG758 [325] phi from play_update_score play_update_score::@3 play_update_score::@4 to play_update_score::@return [phi:play_update_score/play_update_score::@3/play_update_score::@4->play_update_score::@return] breturn_from_play_update_score: breturn_from_b3: breturn_from_b4: - //SEG683 [296] phi (byte) level_bcd#19 = (byte) level_bcd#11 [phi:play_update_score/play_update_score::@3/play_update_score::@4->play_update_score::@return#0] -- register_copy - //SEG684 [296] phi (byte) current_movedown_slow#23 = (byte) current_movedown_slow#14 [phi:play_update_score/play_update_score::@3/play_update_score::@4->play_update_score::@return#1] -- register_copy - //SEG685 [296] phi (byte) level#18 = (byte) level#10 [phi:play_update_score/play_update_score::@3/play_update_score::@4->play_update_score::@return#2] -- register_copy - //SEG686 [296] phi (dword) score_bcd#16 = (dword) score_bcd#18 [phi:play_update_score/play_update_score::@3/play_update_score::@4->play_update_score::@return#3] -- register_copy - //SEG687 [296] phi (word) lines_bcd#17 = (word) lines_bcd#19 [phi:play_update_score/play_update_score::@3/play_update_score::@4->play_update_score::@return#4] -- register_copy + //SEG759 [325] phi (byte) level_bcd#19 = (byte) level_bcd#11 [phi:play_update_score/play_update_score::@3/play_update_score::@4->play_update_score::@return#0] -- register_copy + //SEG760 [325] phi (byte) current_movedown_slow#23 = (byte) current_movedown_slow#14 [phi:play_update_score/play_update_score::@3/play_update_score::@4->play_update_score::@return#1] -- register_copy + //SEG761 [325] phi (byte) level#18 = (byte) level#10 [phi:play_update_score/play_update_score::@3/play_update_score::@4->play_update_score::@return#2] -- register_copy + //SEG762 [325] phi (dword) score_bcd#16 = (dword) score_bcd#18 [phi:play_update_score/play_update_score::@3/play_update_score::@4->play_update_score::@return#3] -- register_copy + //SEG763 [325] phi (word) lines_bcd#17 = (word) lines_bcd#19 [phi:play_update_score/play_update_score::@3/play_update_score::@4->play_update_score::@return#4] -- register_copy jmp breturn - //SEG688 play_update_score::@return + //SEG764 play_update_score::@return breturn: - //SEG689 [297] return + //SEG765 [326] return rts } -//SEG690 play_increase_level +//SEG766 play_increase_level play_increase_level: { - //SEG691 [298] (byte) level#20 ← ++ (byte) level#10 -- vbuz1=_inc_vbuz1 + //SEG767 [327] (byte) level#20 ← ++ (byte) level#10 -- vbuz1=_inc_vbuz1 inc level - //SEG692 [299] if((byte) level#20>(byte/signed byte/word/signed word/dword/signed dword) 29) goto play_increase_level::@2 -- vbuz1_gt_vbuc1_then_la1 + //SEG768 [328] if((byte) level#20>(byte/signed byte/word/signed word/dword/signed dword) 29) goto play_increase_level::@2 -- vbuz1_gt_vbuc1_then_la1 lda level cmp #$1d beq !+ bcs b2_from_play_increase_level !: jmp b5 - //SEG693 play_increase_level::@5 + //SEG769 play_increase_level::@5 b5: - //SEG694 [300] (byte) current_movedown_slow#10 ← *((const byte[]) MOVEDOWN_SLOW_SPEEDS#0 + (byte) level#20) -- vbuz1=pbuc1_derefidx_vbuz2 + //SEG770 [329] (byte) current_movedown_slow#10 ← *((const byte[]) MOVEDOWN_SLOW_SPEEDS#0 + (byte) level#20) -- vbuz1=pbuc1_derefidx_vbuz2 ldy level lda MOVEDOWN_SLOW_SPEEDS,y sta current_movedown_slow - //SEG695 [301] phi from play_increase_level::@5 to play_increase_level::@2 [phi:play_increase_level::@5->play_increase_level::@2] + //SEG771 [330] phi from play_increase_level::@5 to play_increase_level::@2 [phi:play_increase_level::@5->play_increase_level::@2] b2_from_b5: - //SEG696 [301] phi (byte) current_movedown_slow#69 = (byte) current_movedown_slow#10 [phi:play_increase_level::@5->play_increase_level::@2#0] -- register_copy + //SEG772 [330] phi (byte) current_movedown_slow#69 = (byte) current_movedown_slow#10 [phi:play_increase_level::@5->play_increase_level::@2#0] -- register_copy jmp b2 - //SEG697 [301] phi from play_increase_level to play_increase_level::@2 [phi:play_increase_level->play_increase_level::@2] + //SEG773 [330] phi from play_increase_level to play_increase_level::@2 [phi:play_increase_level->play_increase_level::@2] b2_from_play_increase_level: - //SEG698 [301] phi (byte) current_movedown_slow#69 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_increase_level->play_increase_level::@2#0] -- vbuz1=vbuc1 + //SEG774 [330] phi (byte) current_movedown_slow#69 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_increase_level->play_increase_level::@2#0] -- vbuz1=vbuc1 lda #1 sta current_movedown_slow jmp b2 - //SEG699 play_increase_level::@2 + //SEG775 play_increase_level::@2 b2: - //SEG700 [302] (byte) level_bcd#21 ← ++ (byte) level_bcd#11 -- vbuz1=_inc_vbuz1 + //SEG776 [331] (byte) level_bcd#21 ← ++ (byte) level_bcd#11 -- vbuz1=_inc_vbuz1 inc level_bcd - //SEG701 [303] (byte~) play_increase_level::$1 ← (byte) level_bcd#21 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuz1_band_vbuc1 + //SEG777 [332] (byte~) play_increase_level::$1 ← (byte) level_bcd#21 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuz1_band_vbuc1 lda #$f and level_bcd - //SEG702 [304] if((byte~) play_increase_level::$1!=(byte/signed byte/word/signed word/dword/signed dword) 10) goto play_increase_level::@3 -- vbuaa_neq_vbuc1_then_la1 + //SEG778 [333] if((byte~) play_increase_level::$1!=(byte/signed byte/word/signed word/dword/signed dword) 10) goto play_increase_level::@3 -- vbuaa_neq_vbuc1_then_la1 cmp #$a bne b3_from_b2 jmp b7 - //SEG703 play_increase_level::@7 + //SEG779 play_increase_level::@7 b7: - //SEG704 [305] (byte) level_bcd#8 ← (byte) level_bcd#21 + (byte/signed byte/word/signed word/dword/signed dword) 6 -- vbuz1=vbuz1_plus_vbuc1 + //SEG780 [334] (byte) level_bcd#8 ← (byte) level_bcd#21 + (byte/signed byte/word/signed word/dword/signed dword) 6 -- vbuz1=vbuz1_plus_vbuc1 lda #6 clc adc level_bcd sta level_bcd - //SEG705 [306] phi from play_increase_level::@2 play_increase_level::@7 to play_increase_level::@3 [phi:play_increase_level::@2/play_increase_level::@7->play_increase_level::@3] + //SEG781 [335] phi from play_increase_level::@2 play_increase_level::@7 to play_increase_level::@3 [phi:play_increase_level::@2/play_increase_level::@7->play_increase_level::@3] b3_from_b2: b3_from_b7: - //SEG706 [306] phi (byte) level_bcd#64 = (byte) level_bcd#21 [phi:play_increase_level::@2/play_increase_level::@7->play_increase_level::@3#0] -- register_copy + //SEG782 [335] phi (byte) level_bcd#64 = (byte) level_bcd#21 [phi:play_increase_level::@2/play_increase_level::@7->play_increase_level::@3#0] -- register_copy jmp b3 - //SEG707 play_increase_level::@3 + //SEG783 play_increase_level::@3 b3: - //SEG708 asm { sed } + //SEG784 asm { sed } sed - //SEG709 [308] phi from play_increase_level::@3 to play_increase_level::@4 [phi:play_increase_level::@3->play_increase_level::@4] + //SEG785 [337] phi from play_increase_level::@3 to play_increase_level::@4 [phi:play_increase_level::@3->play_increase_level::@4] b4_from_b3: - //SEG710 [308] phi (byte) play_increase_level::b#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_increase_level::@3->play_increase_level::@4#0] -- vbuxx=vbuc1 + //SEG786 [337] phi (byte) play_increase_level::b#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_increase_level::@3->play_increase_level::@4#0] -- vbuxx=vbuc1 ldx #0 jmp b4 - //SEG711 [308] phi from play_increase_level::@4 to play_increase_level::@4 [phi:play_increase_level::@4->play_increase_level::@4] + //SEG787 [337] phi from play_increase_level::@4 to play_increase_level::@4 [phi:play_increase_level::@4->play_increase_level::@4] b4_from_b4: - //SEG712 [308] phi (byte) play_increase_level::b#2 = (byte) play_increase_level::b#1 [phi:play_increase_level::@4->play_increase_level::@4#0] -- register_copy + //SEG788 [337] phi (byte) play_increase_level::b#2 = (byte) play_increase_level::b#1 [phi:play_increase_level::@4->play_increase_level::@4#0] -- register_copy jmp b4 - //SEG713 play_increase_level::@4 + //SEG789 play_increase_level::@4 b4: - //SEG714 [309] (byte) play_increase_level::b4#0 ← (byte) play_increase_level::b#2 << (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuaa=vbuxx_rol_2 + //SEG790 [338] (byte) play_increase_level::b4#0 ← (byte) play_increase_level::b#2 << (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuaa=vbuxx_rol_2 txa asl asl - //SEG715 [310] *((const dword[5]) score_add_bcd#0 + (byte) play_increase_level::b4#0) ← *((const dword[5]) score_add_bcd#0 + (byte) play_increase_level::b4#0) + *((const dword[]) SCORE_BASE_BCD#0 + (byte) play_increase_level::b4#0) -- pduc1_derefidx_vbuaa=pduc1_derefidx_vbuaa_plus_pduc2_derefidx_vbuaa + //SEG791 [339] *((const dword[5]) score_add_bcd#0 + (byte) play_increase_level::b4#0) ← *((const dword[5]) score_add_bcd#0 + (byte) play_increase_level::b4#0) + *((const dword[]) SCORE_BASE_BCD#0 + (byte) play_increase_level::b4#0) -- pduc1_derefidx_vbuaa=pduc1_derefidx_vbuaa_plus_pduc2_derefidx_vbuaa tay clc lda score_add_bcd,y @@ -18512,164 +19924,164 @@ play_increase_level: { lda score_add_bcd+3,y adc SCORE_BASE_BCD+3,y sta score_add_bcd+3,y - //SEG716 [311] (byte) play_increase_level::b#1 ← ++ (byte) play_increase_level::b#2 -- vbuxx=_inc_vbuxx + //SEG792 [340] (byte) play_increase_level::b#1 ← ++ (byte) play_increase_level::b#2 -- vbuxx=_inc_vbuxx inx - //SEG717 [312] if((byte) play_increase_level::b#1!=(byte/signed byte/word/signed word/dword/signed dword) 5) goto play_increase_level::@4 -- vbuxx_neq_vbuc1_then_la1 + //SEG793 [341] if((byte) play_increase_level::b#1!=(byte/signed byte/word/signed word/dword/signed dword) 5) goto play_increase_level::@4 -- vbuxx_neq_vbuc1_then_la1 cpx #5 bne b4_from_b4 jmp b8 - //SEG718 play_increase_level::@8 + //SEG794 play_increase_level::@8 b8: - //SEG719 asm { cld } + //SEG795 asm { cld } cld jmp breturn - //SEG720 play_increase_level::@return + //SEG796 play_increase_level::@return breturn: - //SEG721 [314] return + //SEG797 [343] return rts } -//SEG722 play_remove_lines +//SEG798 play_remove_lines play_remove_lines: { .label c = $c .label x = $a .label y = 4 .label removed = 9 .label full = $b - //SEG723 [316] phi from play_remove_lines to play_remove_lines::@1 [phi:play_remove_lines->play_remove_lines::@1] + //SEG799 [345] phi from play_remove_lines to play_remove_lines::@1 [phi:play_remove_lines->play_remove_lines::@1] b1_from_play_remove_lines: - //SEG724 [316] phi (byte) play_remove_lines::removed#11 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_remove_lines->play_remove_lines::@1#0] -- vbuz1=vbuc1 + //SEG800 [345] 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 - //SEG725 [316] phi (byte) play_remove_lines::y#8 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_remove_lines->play_remove_lines::@1#1] -- vbuz1=vbuc1 + //SEG801 [345] 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 - //SEG726 [316] phi (byte) play_remove_lines::w#12 = (const byte) PLAYFIELD_LINES#0*(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_remove_lines->play_remove_lines::@1#2] -- vbuxx=vbuc1 + //SEG802 [345] 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 - //SEG727 [316] phi (byte) play_remove_lines::r#3 = (const byte) PLAYFIELD_LINES#0*(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_remove_lines->play_remove_lines::@1#3] -- vbuyy=vbuc1 + //SEG803 [345] 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 - //SEG728 [316] phi from play_remove_lines::@4 to play_remove_lines::@1 [phi:play_remove_lines::@4->play_remove_lines::@1] + //SEG804 [345] phi from play_remove_lines::@4 to play_remove_lines::@1 [phi:play_remove_lines::@4->play_remove_lines::@1] b1_from_b4: - //SEG729 [316] phi (byte) play_remove_lines::removed#11 = (byte) play_remove_lines::removed#7 [phi:play_remove_lines::@4->play_remove_lines::@1#0] -- register_copy - //SEG730 [316] phi (byte) play_remove_lines::y#8 = (byte) play_remove_lines::y#1 [phi:play_remove_lines::@4->play_remove_lines::@1#1] -- register_copy - //SEG731 [316] phi (byte) play_remove_lines::w#12 = (byte) play_remove_lines::w#11 [phi:play_remove_lines::@4->play_remove_lines::@1#2] -- register_copy - //SEG732 [316] phi (byte) play_remove_lines::r#3 = (byte) play_remove_lines::r#1 [phi:play_remove_lines::@4->play_remove_lines::@1#3] -- register_copy + //SEG805 [345] 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 + //SEG806 [345] 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 + //SEG807 [345] 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 + //SEG808 [345] 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 - //SEG733 play_remove_lines::@1 + //SEG809 play_remove_lines::@1 b1: - //SEG734 [317] phi from play_remove_lines::@1 to play_remove_lines::@2 [phi:play_remove_lines::@1->play_remove_lines::@2] + //SEG810 [346] phi from play_remove_lines::@1 to play_remove_lines::@2 [phi:play_remove_lines::@1->play_remove_lines::@2] b2_from_b1: - //SEG735 [317] phi (byte) play_remove_lines::full#4 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_remove_lines::@1->play_remove_lines::@2#0] -- vbuz1=vbuc1 + //SEG811 [346] 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 - //SEG736 [317] phi (byte) play_remove_lines::x#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_remove_lines::@1->play_remove_lines::@2#1] -- vbuz1=vbuc1 + //SEG812 [346] 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 - //SEG737 [317] phi (byte) play_remove_lines::w#4 = (byte) play_remove_lines::w#12 [phi:play_remove_lines::@1->play_remove_lines::@2#2] -- register_copy - //SEG738 [317] phi (byte) play_remove_lines::r#2 = (byte) play_remove_lines::r#3 [phi:play_remove_lines::@1->play_remove_lines::@2#3] -- register_copy + //SEG813 [346] 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 + //SEG814 [346] 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 - //SEG739 [317] phi from play_remove_lines::@3 to play_remove_lines::@2 [phi:play_remove_lines::@3->play_remove_lines::@2] + //SEG815 [346] phi from play_remove_lines::@3 to play_remove_lines::@2 [phi:play_remove_lines::@3->play_remove_lines::@2] b2_from_b3: - //SEG740 [317] phi (byte) play_remove_lines::full#4 = (byte) play_remove_lines::full#2 [phi:play_remove_lines::@3->play_remove_lines::@2#0] -- register_copy - //SEG741 [317] phi (byte) play_remove_lines::x#2 = (byte) play_remove_lines::x#1 [phi:play_remove_lines::@3->play_remove_lines::@2#1] -- register_copy - //SEG742 [317] phi (byte) play_remove_lines::w#4 = (byte) play_remove_lines::w#1 [phi:play_remove_lines::@3->play_remove_lines::@2#2] -- register_copy - //SEG743 [317] phi (byte) play_remove_lines::r#2 = (byte) play_remove_lines::r#1 [phi:play_remove_lines::@3->play_remove_lines::@2#3] -- register_copy + //SEG816 [346] 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 + //SEG817 [346] 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 + //SEG818 [346] 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 + //SEG819 [346] 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 - //SEG744 play_remove_lines::@2 + //SEG820 play_remove_lines::@2 b2: - //SEG745 [318] (byte) play_remove_lines::c#0 ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::r#2) -- vbuz1=pbuc1_derefidx_vbuyy + //SEG821 [347] (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 - //SEG746 [319] (byte) play_remove_lines::r#1 ← -- (byte) play_remove_lines::r#2 -- vbuyy=_dec_vbuyy + //SEG822 [348] (byte) play_remove_lines::r#1 ← -- (byte) play_remove_lines::r#2 -- vbuyy=_dec_vbuyy dey - //SEG747 [320] if((byte) play_remove_lines::c#0!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_remove_lines::@18 -- vbuz1_neq_0_then_la1 + //SEG823 [349] 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 - //SEG748 [321] phi from play_remove_lines::@2 to play_remove_lines::@3 [phi:play_remove_lines::@2->play_remove_lines::@3] + //SEG824 [350] phi from play_remove_lines::@2 to play_remove_lines::@3 [phi:play_remove_lines::@2->play_remove_lines::@3] b3_from_b2: - //SEG749 [321] phi (byte) play_remove_lines::full#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_remove_lines::@2->play_remove_lines::@3#0] -- vbuz1=vbuc1 + //SEG825 [350] 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 - //SEG750 play_remove_lines::@3 + //SEG826 play_remove_lines::@3 b3: - //SEG751 [322] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::w#4) ← (byte) play_remove_lines::c#0 -- pbuc1_derefidx_vbuxx=vbuz1 + //SEG827 [351] *((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 - //SEG752 [323] (byte) play_remove_lines::w#1 ← -- (byte) play_remove_lines::w#4 -- vbuxx=_dec_vbuxx + //SEG828 [352] (byte) play_remove_lines::w#1 ← -- (byte) play_remove_lines::w#4 -- vbuxx=_dec_vbuxx dex - //SEG753 [324] (byte) play_remove_lines::x#1 ← ++ (byte) play_remove_lines::x#2 -- vbuz1=_inc_vbuz1 + //SEG829 [353] (byte) play_remove_lines::x#1 ← ++ (byte) play_remove_lines::x#2 -- vbuz1=_inc_vbuz1 inc x - //SEG754 [325] if((byte) play_remove_lines::x#1!=(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto play_remove_lines::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG830 [354] 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 - //SEG755 play_remove_lines::@9 + //SEG831 play_remove_lines::@9 b9: - //SEG756 [326] if((byte) play_remove_lines::full#2!=(byte/signed byte/word/signed word/dword/signed dword) 1) goto play_remove_lines::@4 -- vbuz1_neq_vbuc1_then_la1 + //SEG832 [355] 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 - //SEG757 play_remove_lines::@10 + //SEG833 play_remove_lines::@10 b10: - //SEG758 [327] (byte) play_remove_lines::w#2 ← (byte) play_remove_lines::w#1 + (const byte) PLAYFIELD_COLS#0 -- vbuxx=vbuxx_plus_vbuc1 + //SEG834 [356] (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 - //SEG759 [328] (byte) play_remove_lines::removed#1 ← ++ (byte) play_remove_lines::removed#11 -- vbuz1=_inc_vbuz1 + //SEG835 [357] (byte) play_remove_lines::removed#1 ← ++ (byte) play_remove_lines::removed#11 -- vbuz1=_inc_vbuz1 inc removed - //SEG760 [329] phi from play_remove_lines::@10 play_remove_lines::@9 to play_remove_lines::@4 [phi:play_remove_lines::@10/play_remove_lines::@9->play_remove_lines::@4] + //SEG836 [358] 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: - //SEG761 [329] phi (byte) play_remove_lines::removed#7 = (byte) play_remove_lines::removed#1 [phi:play_remove_lines::@10/play_remove_lines::@9->play_remove_lines::@4#0] -- register_copy - //SEG762 [329] phi (byte) play_remove_lines::w#11 = (byte) play_remove_lines::w#2 [phi:play_remove_lines::@10/play_remove_lines::@9->play_remove_lines::@4#1] -- register_copy + //SEG837 [358] 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 + //SEG838 [358] 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 - //SEG763 play_remove_lines::@4 + //SEG839 play_remove_lines::@4 b4: - //SEG764 [330] (byte) play_remove_lines::y#1 ← ++ (byte) play_remove_lines::y#8 -- vbuz1=_inc_vbuz1 + //SEG840 [359] (byte) play_remove_lines::y#1 ← ++ (byte) play_remove_lines::y#8 -- vbuz1=_inc_vbuz1 inc y - //SEG765 [331] if((byte) play_remove_lines::y#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto play_remove_lines::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG841 [360] 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 - //SEG766 [332] phi from play_remove_lines::@4 play_remove_lines::@6 to play_remove_lines::@5 [phi:play_remove_lines::@4/play_remove_lines::@6->play_remove_lines::@5] + //SEG842 [361] 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: - //SEG767 [332] phi (byte) play_remove_lines::w#6 = (byte) play_remove_lines::w#11 [phi:play_remove_lines::@4/play_remove_lines::@6->play_remove_lines::@5#0] -- register_copy + //SEG843 [361] 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 - //SEG768 play_remove_lines::@5 + //SEG844 play_remove_lines::@5 b5: - //SEG769 [333] if((byte) play_remove_lines::w#6!=(byte/word/signed word/dword/signed dword) 255) goto play_remove_lines::@6 -- vbuxx_neq_vbuc1_then_la1 + //SEG845 [362] 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 - //SEG770 play_remove_lines::@return + //SEG846 play_remove_lines::@return breturn: - //SEG771 [334] return + //SEG847 [363] return rts - //SEG772 play_remove_lines::@6 + //SEG848 play_remove_lines::@6 b6: - //SEG773 [335] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::w#6) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuc1_derefidx_vbuxx=vbuc2 + //SEG849 [364] *((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 - //SEG774 [336] (byte) play_remove_lines::w#3 ← -- (byte) play_remove_lines::w#6 -- vbuxx=_dec_vbuxx + //SEG850 [365] (byte) play_remove_lines::w#3 ← -- (byte) play_remove_lines::w#6 -- vbuxx=_dec_vbuxx dex jmp b5_from_b6 - //SEG775 [337] phi from play_remove_lines::@2 to play_remove_lines::@18 [phi:play_remove_lines::@2->play_remove_lines::@18] + //SEG851 [366] 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 - //SEG776 play_remove_lines::@18 + //SEG852 play_remove_lines::@18 b18: - //SEG777 [321] phi from play_remove_lines::@18 to play_remove_lines::@3 [phi:play_remove_lines::@18->play_remove_lines::@3] + //SEG853 [350] phi from play_remove_lines::@18 to play_remove_lines::@3 [phi:play_remove_lines::@18->play_remove_lines::@3] b3_from_b18: - //SEG778 [321] phi (byte) play_remove_lines::full#2 = (byte) play_remove_lines::full#4 [phi:play_remove_lines::@18->play_remove_lines::@3#0] -- register_copy + //SEG854 [350] 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 } -//SEG779 play_lock_current +//SEG855 play_lock_current play_lock_current: { .label ypos2 = $10 .label playfield_line = 5 @@ -18680,531 +20092,531 @@ play_lock_current: { .label i_3 = 9 .label i_7 = 9 .label i_9 = 9 - //SEG780 [338] (byte) play_lock_current::ypos2#0 ← (byte) current_ypos#25 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz1_rol_1 + //SEG856 [367] (byte) play_lock_current::ypos2#0 ← (byte) current_ypos#10 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz1_rol_1 asl ypos2 - //SEG781 [339] phi from play_lock_current to play_lock_current::@1 [phi:play_lock_current->play_lock_current::@1] + //SEG857 [368] phi from play_lock_current to play_lock_current::@1 [phi:play_lock_current->play_lock_current::@1] b1_from_play_lock_current: - //SEG782 [339] phi (byte) play_lock_current::l#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_lock_current->play_lock_current::@1#0] -- vbuz1=vbuc1 + //SEG858 [368] 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 - //SEG783 [339] phi (byte) play_lock_current::i#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_lock_current->play_lock_current::@1#1] -- vbuz1=vbuc1 + //SEG859 [368] 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 - //SEG784 [339] phi (byte) play_lock_current::ypos2#2 = (byte) play_lock_current::ypos2#0 [phi:play_lock_current->play_lock_current::@1#2] -- register_copy + //SEG860 [368] 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 - //SEG785 play_lock_current::@1 + //SEG861 play_lock_current::@1 b1: - //SEG786 [340] (byte*) play_lock_current::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_lock_current::ypos2#2) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG862 [369] (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 - //SEG787 [341] (byte) play_lock_current::col#0 ← (byte) current_xpos#113 -- vbuz1=vbuz2 + //SEG863 [370] (byte) play_lock_current::col#0 ← (byte) current_xpos#121 -- vbuz1=vbuz2 lda current_xpos sta col - //SEG788 [342] phi from play_lock_current::@1 to play_lock_current::@2 [phi:play_lock_current::@1->play_lock_current::@2] + //SEG864 [371] phi from play_lock_current::@1 to play_lock_current::@2 [phi:play_lock_current::@1->play_lock_current::@2] b2_from_b1: - //SEG789 [342] phi (byte) play_lock_current::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_lock_current::@1->play_lock_current::@2#0] -- vbuxx=vbuc1 + //SEG865 [371] 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 - //SEG790 [342] phi (byte) play_lock_current::col#2 = (byte) play_lock_current::col#0 [phi:play_lock_current::@1->play_lock_current::@2#1] -- register_copy - //SEG791 [342] phi (byte) play_lock_current::i#2 = (byte) play_lock_current::i#3 [phi:play_lock_current::@1->play_lock_current::@2#2] -- register_copy + //SEG866 [371] 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 + //SEG867 [371] 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 - //SEG792 play_lock_current::@2 + //SEG868 play_lock_current::@2 b2: - //SEG793 [343] (byte) play_lock_current::i#1 ← ++ (byte) play_lock_current::i#2 -- vbuz1=_inc_vbuz2 + //SEG869 [372] (byte) play_lock_current::i#1 ← ++ (byte) play_lock_current::i#2 -- vbuz1=_inc_vbuz2 ldy i_2 iny sty i - //SEG794 [344] if(*((byte*) current_piece_gfx#103 + (byte) play_lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_lock_current::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 + //SEG870 [373] if(*((byte*) current_piece_gfx#111 + (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 - //SEG795 play_lock_current::@4 + //SEG871 play_lock_current::@4 b4: - //SEG796 [345] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::col#2) ← (byte) current_piece_char#19 -- pbuz1_derefidx_vbuz2=vbuz3 + //SEG872 [374] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::col#2) ← (byte) current_piece_char#21 -- pbuz1_derefidx_vbuz2=vbuz3 lda current_piece_char ldy col sta (playfield_line),y jmp b3 - //SEG797 play_lock_current::@3 + //SEG873 play_lock_current::@3 b3: - //SEG798 [346] (byte) play_lock_current::col#1 ← ++ (byte) play_lock_current::col#2 -- vbuz1=_inc_vbuz1 + //SEG874 [375] (byte) play_lock_current::col#1 ← ++ (byte) play_lock_current::col#2 -- vbuz1=_inc_vbuz1 inc col - //SEG799 [347] (byte) play_lock_current::c#1 ← ++ (byte) play_lock_current::c#2 -- vbuxx=_inc_vbuxx + //SEG875 [376] (byte) play_lock_current::c#1 ← ++ (byte) play_lock_current::c#2 -- vbuxx=_inc_vbuxx inx - //SEG800 [348] if((byte) play_lock_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_lock_current::@8 -- vbuxx_neq_vbuc1_then_la1 + //SEG876 [377] 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 - //SEG801 play_lock_current::@5 + //SEG877 play_lock_current::@5 b5: - //SEG802 [349] (byte) play_lock_current::ypos2#1 ← (byte) play_lock_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz1_plus_2 + //SEG878 [378] (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 - //SEG803 [350] (byte) play_lock_current::l#1 ← ++ (byte) play_lock_current::l#6 -- vbuz1=_inc_vbuz1 + //SEG879 [379] (byte) play_lock_current::l#1 ← ++ (byte) play_lock_current::l#6 -- vbuz1=_inc_vbuz1 inc l - //SEG804 [351] if((byte) play_lock_current::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_lock_current::@7 -- vbuz1_neq_vbuc1_then_la1 + //SEG880 [380] 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 - //SEG805 play_lock_current::@return + //SEG881 play_lock_current::@return breturn: - //SEG806 [352] return + //SEG882 [381] return rts - //SEG807 play_lock_current::@7 + //SEG883 play_lock_current::@7 b7: - //SEG808 [353] (byte~) play_lock_current::i#7 ← (byte) play_lock_current::i#1 -- vbuz1=vbuz2 + //SEG884 [382] (byte~) play_lock_current::i#7 ← (byte) play_lock_current::i#1 -- vbuz1=vbuz2 lda i sta i_7 - //SEG809 [339] phi from play_lock_current::@7 to play_lock_current::@1 [phi:play_lock_current::@7->play_lock_current::@1] + //SEG885 [368] phi from play_lock_current::@7 to play_lock_current::@1 [phi:play_lock_current::@7->play_lock_current::@1] b1_from_b7: - //SEG810 [339] phi (byte) play_lock_current::l#6 = (byte) play_lock_current::l#1 [phi:play_lock_current::@7->play_lock_current::@1#0] -- register_copy - //SEG811 [339] phi (byte) play_lock_current::i#3 = (byte~) play_lock_current::i#7 [phi:play_lock_current::@7->play_lock_current::@1#1] -- register_copy - //SEG812 [339] phi (byte) play_lock_current::ypos2#2 = (byte) play_lock_current::ypos2#1 [phi:play_lock_current::@7->play_lock_current::@1#2] -- register_copy + //SEG886 [368] 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 + //SEG887 [368] 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 + //SEG888 [368] 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 - //SEG813 play_lock_current::@8 + //SEG889 play_lock_current::@8 b8: - //SEG814 [354] (byte~) play_lock_current::i#9 ← (byte) play_lock_current::i#1 -- vbuz1=vbuz2 + //SEG890 [383] (byte~) play_lock_current::i#9 ← (byte) play_lock_current::i#1 -- vbuz1=vbuz2 lda i sta i_9 - //SEG815 [342] phi from play_lock_current::@8 to play_lock_current::@2 [phi:play_lock_current::@8->play_lock_current::@2] + //SEG891 [371] phi from play_lock_current::@8 to play_lock_current::@2 [phi:play_lock_current::@8->play_lock_current::@2] b2_from_b8: - //SEG816 [342] phi (byte) play_lock_current::c#2 = (byte) play_lock_current::c#1 [phi:play_lock_current::@8->play_lock_current::@2#0] -- register_copy - //SEG817 [342] phi (byte) play_lock_current::col#2 = (byte) play_lock_current::col#1 [phi:play_lock_current::@8->play_lock_current::@2#1] -- register_copy - //SEG818 [342] phi (byte) play_lock_current::i#2 = (byte~) play_lock_current::i#9 [phi:play_lock_current::@8->play_lock_current::@2#2] -- register_copy + //SEG892 [371] 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 + //SEG893 [371] 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 + //SEG894 [371] 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 } -//SEG819 keyboard_event_pressed +//SEG895 keyboard_event_pressed keyboard_event_pressed: { .label row_bits = $a .label keycode = 9 - //SEG820 [356] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte/signed byte/word/signed word/dword/signed dword) 3 -- vbuaa=vbuz1_ror_3 + //SEG896 [385] (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 - //SEG821 [357] (byte) keyboard_event_pressed::row_bits#0 ← *((const byte[8]) keyboard_scan_values#0 + (byte~) keyboard_event_pressed::$0) -- vbuz1=pbuc1_derefidx_vbuaa + //SEG897 [386] (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 - //SEG822 [358] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte/signed byte/word/signed word/dword/signed dword) 7 -- vbuaa=vbuz1_band_vbuc1 + //SEG898 [387] (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 - //SEG823 [359] (byte) keyboard_event_pressed::return#11 ← (byte) keyboard_event_pressed::row_bits#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte~) keyboard_event_pressed::$1) -- vbuaa=vbuz1_band_pbuc1_derefidx_vbuaa + //SEG899 [388] (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 - //SEG824 keyboard_event_pressed::@return + //SEG900 keyboard_event_pressed::@return breturn: - //SEG825 [360] return + //SEG901 [389] return rts } -//SEG826 keyboard_event_get +//SEG902 keyboard_event_get keyboard_event_get: { - //SEG827 [361] if((byte) keyboard_events_size#13==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_get::@return -- vbuz1_eq_0_then_la1 + //SEG903 [390] 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 - //SEG828 keyboard_event_get::@3 + //SEG904 keyboard_event_get::@3 b3: - //SEG829 [362] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13 -- vbuz1=_dec_vbuz1 + //SEG905 [391] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13 -- vbuz1=_dec_vbuz1 dec keyboard_events_size - //SEG830 [363] (byte) keyboard_event_get::return#1 ← *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#4) -- vbuxx=pbuc1_derefidx_vbuz1 + //SEG906 [392] (byte) keyboard_event_get::return#1 ← *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#4) -- vbuxx=pbuc1_derefidx_vbuz1 ldx keyboard_events_size lda keyboard_events,x tax - //SEG831 [364] phi from keyboard_event_get::@3 to keyboard_event_get::@return [phi:keyboard_event_get::@3->keyboard_event_get::@return] + //SEG907 [393] phi from keyboard_event_get::@3 to keyboard_event_get::@return [phi:keyboard_event_get::@3->keyboard_event_get::@return] breturn_from_b3: - //SEG832 [364] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#4 [phi:keyboard_event_get::@3->keyboard_event_get::@return#0] -- register_copy - //SEG833 [364] phi (byte) keyboard_event_get::return#2 = (byte) keyboard_event_get::return#1 [phi:keyboard_event_get::@3->keyboard_event_get::@return#1] -- register_copy + //SEG908 [393] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#4 [phi:keyboard_event_get::@3->keyboard_event_get::@return#0] -- register_copy + //SEG909 [393] 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 - //SEG834 [364] phi from keyboard_event_get to keyboard_event_get::@return [phi:keyboard_event_get->keyboard_event_get::@return] + //SEG910 [393] phi from keyboard_event_get to keyboard_event_get::@return [phi:keyboard_event_get->keyboard_event_get::@return] breturn_from_keyboard_event_get: - //SEG835 [364] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#13 [phi:keyboard_event_get->keyboard_event_get::@return#0] -- register_copy - //SEG836 [364] phi (byte) keyboard_event_get::return#2 = (byte/word/signed word/dword/signed dword) 255 [phi:keyboard_event_get->keyboard_event_get::@return#1] -- vbuxx=vbuc1 + //SEG911 [393] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#13 [phi:keyboard_event_get->keyboard_event_get::@return#0] -- register_copy + //SEG912 [393] phi (byte) keyboard_event_get::return#2 = (byte/word/signed word/dword/signed dword) 255 [phi:keyboard_event_get->keyboard_event_get::@return#1] -- vbuxx=vbuc1 ldx #$ff jmp breturn - //SEG837 keyboard_event_get::@return + //SEG913 keyboard_event_get::@return breturn: - //SEG838 [365] return + //SEG914 [394] return rts } -//SEG839 keyboard_event_scan +//SEG915 keyboard_event_scan keyboard_event_scan: { .label row_scan = $b .label keycode = $a .label row = 9 - //SEG840 [367] phi from keyboard_event_scan to keyboard_event_scan::@1 [phi:keyboard_event_scan->keyboard_event_scan::@1] + //SEG916 [396] phi from keyboard_event_scan to keyboard_event_scan::@1 [phi:keyboard_event_scan->keyboard_event_scan::@1] b1_from_keyboard_event_scan: - //SEG841 [367] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#19 [phi:keyboard_event_scan->keyboard_event_scan::@1#0] -- register_copy - //SEG842 [367] phi (byte) keyboard_event_scan::keycode#11 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:keyboard_event_scan->keyboard_event_scan::@1#1] -- vbuz1=vbuc1 + //SEG917 [396] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#19 [phi:keyboard_event_scan->keyboard_event_scan::@1#0] -- register_copy + //SEG918 [396] 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 - //SEG843 [367] phi (byte) keyboard_event_scan::row#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:keyboard_event_scan->keyboard_event_scan::@1#2] -- vbuz1=vbuc1 + //SEG919 [396] 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 - //SEG844 [367] phi from keyboard_event_scan::@3 to keyboard_event_scan::@1 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1] + //SEG920 [396] phi from keyboard_event_scan::@3 to keyboard_event_scan::@1 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1] b1_from_b3: - //SEG845 [367] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#13 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#0] -- register_copy - //SEG846 [367] phi (byte) keyboard_event_scan::keycode#11 = (byte) keyboard_event_scan::keycode#14 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#1] -- register_copy - //SEG847 [367] phi (byte) keyboard_event_scan::row#2 = (byte) keyboard_event_scan::row#1 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#2] -- register_copy + //SEG921 [396] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#13 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#0] -- register_copy + //SEG922 [396] 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 + //SEG923 [396] 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 - //SEG848 keyboard_event_scan::@1 + //SEG924 keyboard_event_scan::@1 b1: - //SEG849 [368] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 -- vbuxx=vbuz1 + //SEG925 [397] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 -- vbuxx=vbuz1 ldx row - //SEG850 [369] call keyboard_matrix_read + //SEG926 [398] call keyboard_matrix_read jsr keyboard_matrix_read - //SEG851 [370] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 + //SEG927 [399] (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 - //SEG852 keyboard_event_scan::@25 + //SEG928 keyboard_event_scan::@25 b25: - //SEG853 [371] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 -- vbuz1=vbuaa + //SEG929 [400] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 -- vbuz1=vbuaa sta row_scan - //SEG854 [372] if((byte) keyboard_event_scan::row_scan#0!=*((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2)) goto keyboard_event_scan::@4 -- vbuz1_neq_pbuc1_derefidx_vbuz2_then_la1 + //SEG930 [401] 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 - //SEG855 keyboard_event_scan::@13 + //SEG931 keyboard_event_scan::@13 b13: - //SEG856 [373] (byte) keyboard_event_scan::keycode#1 ← (byte) keyboard_event_scan::keycode#11 + (byte/signed byte/word/signed word/dword/signed dword) 8 -- vbuz1=vbuz1_plus_vbuc1 + //SEG932 [402] (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 - //SEG857 [374] phi from keyboard_event_scan::@13 keyboard_event_scan::@19 to keyboard_event_scan::@3 [phi:keyboard_event_scan::@13/keyboard_event_scan::@19->keyboard_event_scan::@3] + //SEG933 [403] 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: - //SEG858 [374] phi (byte) keyboard_events_size#13 = (byte) keyboard_events_size#29 [phi:keyboard_event_scan::@13/keyboard_event_scan::@19->keyboard_event_scan::@3#0] -- register_copy - //SEG859 [374] phi (byte) keyboard_event_scan::keycode#14 = (byte) keyboard_event_scan::keycode#1 [phi:keyboard_event_scan::@13/keyboard_event_scan::@19->keyboard_event_scan::@3#1] -- register_copy + //SEG934 [403] 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 + //SEG935 [403] 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 - //SEG860 keyboard_event_scan::@3 + //SEG936 keyboard_event_scan::@3 b3: - //SEG861 [375] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 -- vbuz1=_inc_vbuz1 + //SEG937 [404] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 -- vbuz1=_inc_vbuz1 inc row - //SEG862 [376] if((byte) keyboard_event_scan::row#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG938 [405] 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 - //SEG863 [377] phi from keyboard_event_scan::@3 to keyboard_event_scan::@20 [phi:keyboard_event_scan::@3->keyboard_event_scan::@20] + //SEG939 [406] 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 - //SEG864 keyboard_event_scan::@20 + //SEG940 keyboard_event_scan::@20 b20: - //SEG865 [378] call keyboard_event_pressed - //SEG866 [355] phi from keyboard_event_scan::@20 to keyboard_event_pressed [phi:keyboard_event_scan::@20->keyboard_event_pressed] + //SEG941 [407] call keyboard_event_pressed + //SEG942 [384] phi from keyboard_event_scan::@20 to keyboard_event_pressed [phi:keyboard_event_scan::@20->keyboard_event_pressed] keyboard_event_pressed_from_b20: - //SEG867 [355] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_LSHIFT#0 [phi:keyboard_event_scan::@20->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG943 [384] 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 - //SEG868 [379] (byte) keyboard_event_pressed::return#0 ← (byte) keyboard_event_pressed::return#11 + //SEG944 [408] (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 - //SEG869 keyboard_event_scan::@26 + //SEG945 keyboard_event_scan::@26 b26: - //SEG870 [380] (byte~) keyboard_event_scan::$14 ← (byte) keyboard_event_pressed::return#0 + //SEG946 [409] (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 - //SEG871 [381] if((byte~) keyboard_event_scan::$14==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@9 -- vbuaa_eq_0_then_la1 + //SEG947 [410] 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 - //SEG872 [382] phi from keyboard_event_scan::@26 to keyboard_event_scan::@21 [phi:keyboard_event_scan::@26->keyboard_event_scan::@21] + //SEG948 [411] 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 - //SEG873 keyboard_event_scan::@21 + //SEG949 keyboard_event_scan::@21 b21: - //SEG874 [383] phi from keyboard_event_scan::@21 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@21->keyboard_event_scan::@9] + //SEG950 [412] phi from keyboard_event_scan::@21 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@21->keyboard_event_scan::@9] b9_from_b21: - //SEG875 [383] phi (byte) keyboard_modifiers#11 = (byte/signed byte/word/signed word/dword/signed dword) 0|(const byte) KEY_MODIFIER_LSHIFT#0 [phi:keyboard_event_scan::@21->keyboard_event_scan::@9#0] -- vbuxx=vbuc1 + //SEG951 [412] 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 - //SEG876 [383] phi from keyboard_event_scan::@26 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@26->keyboard_event_scan::@9] + //SEG952 [412] phi from keyboard_event_scan::@26 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@26->keyboard_event_scan::@9] b9_from_b26: - //SEG877 [383] phi (byte) keyboard_modifiers#11 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:keyboard_event_scan::@26->keyboard_event_scan::@9#0] -- vbuxx=vbuc1 + //SEG953 [412] 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 - //SEG878 keyboard_event_scan::@9 + //SEG954 keyboard_event_scan::@9 b9: - //SEG879 [384] call keyboard_event_pressed - //SEG880 [355] phi from keyboard_event_scan::@9 to keyboard_event_pressed [phi:keyboard_event_scan::@9->keyboard_event_pressed] + //SEG955 [413] call keyboard_event_pressed + //SEG956 [384] phi from keyboard_event_scan::@9 to keyboard_event_pressed [phi:keyboard_event_scan::@9->keyboard_event_pressed] keyboard_event_pressed_from_b9: - //SEG881 [355] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_RSHIFT#0 [phi:keyboard_event_scan::@9->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG957 [384] 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 - //SEG882 [385] (byte) keyboard_event_pressed::return#1 ← (byte) keyboard_event_pressed::return#11 + //SEG958 [414] (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 - //SEG883 keyboard_event_scan::@27 + //SEG959 keyboard_event_scan::@27 b27: - //SEG884 [386] (byte~) keyboard_event_scan::$18 ← (byte) keyboard_event_pressed::return#1 + //SEG960 [415] (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 - //SEG885 [387] if((byte~) keyboard_event_scan::$18==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@10 -- vbuaa_eq_0_then_la1 + //SEG961 [416] 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 - //SEG886 keyboard_event_scan::@22 + //SEG962 keyboard_event_scan::@22 b22: - //SEG887 [388] (byte) keyboard_modifiers#3 ← (byte) keyboard_modifiers#11 | (const byte) KEY_MODIFIER_RSHIFT#0 -- vbuxx=vbuxx_bor_vbuc1 + //SEG963 [417] (byte) keyboard_modifiers#3 ← (byte) keyboard_modifiers#11 | (const byte) KEY_MODIFIER_RSHIFT#0 -- vbuxx=vbuxx_bor_vbuc1 txa ora #KEY_MODIFIER_RSHIFT tax - //SEG888 [389] phi from keyboard_event_scan::@22 keyboard_event_scan::@27 to keyboard_event_scan::@10 [phi:keyboard_event_scan::@22/keyboard_event_scan::@27->keyboard_event_scan::@10] + //SEG964 [418] 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: - //SEG889 [389] phi (byte) keyboard_modifiers#12 = (byte) keyboard_modifiers#3 [phi:keyboard_event_scan::@22/keyboard_event_scan::@27->keyboard_event_scan::@10#0] -- register_copy + //SEG965 [418] 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 - //SEG890 keyboard_event_scan::@10 + //SEG966 keyboard_event_scan::@10 b10: - //SEG891 [390] call keyboard_event_pressed - //SEG892 [355] phi from keyboard_event_scan::@10 to keyboard_event_pressed [phi:keyboard_event_scan::@10->keyboard_event_pressed] + //SEG967 [419] call keyboard_event_pressed + //SEG968 [384] phi from keyboard_event_scan::@10 to keyboard_event_pressed [phi:keyboard_event_scan::@10->keyboard_event_pressed] keyboard_event_pressed_from_b10: - //SEG893 [355] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_CTRL#0 [phi:keyboard_event_scan::@10->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG969 [384] 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 - //SEG894 [391] (byte) keyboard_event_pressed::return#2 ← (byte) keyboard_event_pressed::return#11 + //SEG970 [420] (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 - //SEG895 keyboard_event_scan::@28 + //SEG971 keyboard_event_scan::@28 b28: - //SEG896 [392] (byte~) keyboard_event_scan::$22 ← (byte) keyboard_event_pressed::return#2 + //SEG972 [421] (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 - //SEG897 [393] if((byte~) keyboard_event_scan::$22==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@11 -- vbuaa_eq_0_then_la1 + //SEG973 [422] 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 - //SEG898 keyboard_event_scan::@23 + //SEG974 keyboard_event_scan::@23 b23: - //SEG899 [394] (byte) keyboard_modifiers#4 ← (byte) keyboard_modifiers#12 | (const byte) KEY_MODIFIER_CTRL#0 -- vbuxx=vbuxx_bor_vbuc1 + //SEG975 [423] (byte) keyboard_modifiers#4 ← (byte) keyboard_modifiers#12 | (const byte) KEY_MODIFIER_CTRL#0 -- vbuxx=vbuxx_bor_vbuc1 txa ora #KEY_MODIFIER_CTRL tax - //SEG900 [395] phi from keyboard_event_scan::@23 keyboard_event_scan::@28 to keyboard_event_scan::@11 [phi:keyboard_event_scan::@23/keyboard_event_scan::@28->keyboard_event_scan::@11] + //SEG976 [424] 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: - //SEG901 [395] phi (byte) keyboard_modifiers#13 = (byte) keyboard_modifiers#4 [phi:keyboard_event_scan::@23/keyboard_event_scan::@28->keyboard_event_scan::@11#0] -- register_copy + //SEG977 [424] 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 - //SEG902 keyboard_event_scan::@11 + //SEG978 keyboard_event_scan::@11 b11: - //SEG903 [396] call keyboard_event_pressed - //SEG904 [355] phi from keyboard_event_scan::@11 to keyboard_event_pressed [phi:keyboard_event_scan::@11->keyboard_event_pressed] + //SEG979 [425] call keyboard_event_pressed + //SEG980 [384] phi from keyboard_event_scan::@11 to keyboard_event_pressed [phi:keyboard_event_scan::@11->keyboard_event_pressed] keyboard_event_pressed_from_b11: - //SEG905 [355] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_COMMODORE#0 [phi:keyboard_event_scan::@11->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG981 [384] 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 - //SEG906 [397] (byte) keyboard_event_pressed::return#10 ← (byte) keyboard_event_pressed::return#11 + //SEG982 [426] (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 - //SEG907 keyboard_event_scan::@29 + //SEG983 keyboard_event_scan::@29 b29: - //SEG908 [398] (byte~) keyboard_event_scan::$26 ← (byte) keyboard_event_pressed::return#10 + //SEG984 [427] (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 - //SEG909 [399] if((byte~) keyboard_event_scan::$26==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@return -- vbuaa_eq_0_then_la1 + //SEG985 [428] 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 - //SEG910 keyboard_event_scan::@24 + //SEG986 keyboard_event_scan::@24 b24: - //SEG911 [400] (byte) keyboard_modifiers#5 ← (byte) keyboard_modifiers#13 | (const byte) KEY_MODIFIER_COMMODORE#0 -- vbuaa=vbuxx_bor_vbuc1 + //SEG987 [429] (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 - //SEG912 keyboard_event_scan::@return + //SEG988 keyboard_event_scan::@return breturn: - //SEG913 [401] return + //SEG989 [430] return rts - //SEG914 [402] phi from keyboard_event_scan::@25 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4] + //SEG990 [431] phi from keyboard_event_scan::@25 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4] b4_from_b25: - //SEG915 [402] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#29 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#0] -- register_copy - //SEG916 [402] phi (byte) keyboard_event_scan::keycode#10 = (byte) keyboard_event_scan::keycode#11 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#1] -- register_copy - //SEG917 [402] phi (byte) keyboard_event_scan::col#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#2] -- vbuxx=vbuc1 + //SEG991 [431] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#29 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#0] -- register_copy + //SEG992 [431] 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 + //SEG993 [431] 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 - //SEG918 [402] phi from keyboard_event_scan::@5 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4] + //SEG994 [431] phi from keyboard_event_scan::@5 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4] b4_from_b5: - //SEG919 [402] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#30 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#0] -- register_copy - //SEG920 [402] phi (byte) keyboard_event_scan::keycode#10 = (byte) keyboard_event_scan::keycode#15 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#1] -- register_copy - //SEG921 [402] phi (byte) keyboard_event_scan::col#2 = (byte) keyboard_event_scan::col#1 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#2] -- register_copy + //SEG995 [431] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#30 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#0] -- register_copy + //SEG996 [431] 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 + //SEG997 [431] 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 - //SEG922 keyboard_event_scan::@4 + //SEG998 keyboard_event_scan::@4 b4: - //SEG923 [403] (byte~) keyboard_event_scan::$3 ← (byte) keyboard_event_scan::row_scan#0 ^ *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) -- vbuaa=vbuz1_bxor_pbuc1_derefidx_vbuz2 + //SEG999 [432] (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 - //SEG924 [404] (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) -- vbuaa=vbuaa_band_pbuc1_derefidx_vbuxx + //SEG1000 [433] (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 - //SEG925 [405] if((byte~) keyboard_event_scan::$4==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@5 -- vbuaa_eq_0_then_la1 + //SEG1001 [434] 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 - //SEG926 keyboard_event_scan::@15 + //SEG1002 keyboard_event_scan::@15 b15: - //SEG927 [406] if((byte) keyboard_events_size#10==(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@5 -- vbuz1_eq_vbuc1_then_la1 + //SEG1003 [435] 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 - //SEG928 keyboard_event_scan::@16 + //SEG1004 keyboard_event_scan::@16 b16: - //SEG929 [407] (byte) keyboard_event_scan::event_type#0 ← (byte) keyboard_event_scan::row_scan#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) -- vbuaa=vbuz1_band_pbuc1_derefidx_vbuxx + //SEG1005 [436] (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 - //SEG930 [408] if((byte) keyboard_event_scan::event_type#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@7 -- vbuaa_eq_0_then_la1 + //SEG1006 [437] 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 - //SEG931 keyboard_event_scan::@17 + //SEG1007 keyboard_event_scan::@17 b17: - //SEG932 [409] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG1008 [438] *((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 - //SEG933 [410] (byte) keyboard_events_size#2 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 + //SEG1009 [439] (byte) keyboard_events_size#2 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 inc keyboard_events_size - //SEG934 [411] phi from keyboard_event_scan::@15 keyboard_event_scan::@17 keyboard_event_scan::@4 keyboard_event_scan::@7 to keyboard_event_scan::@5 [phi:keyboard_event_scan::@15/keyboard_event_scan::@17/keyboard_event_scan::@4/keyboard_event_scan::@7->keyboard_event_scan::@5] + //SEG1010 [440] 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: - //SEG935 [411] phi (byte) keyboard_events_size#30 = (byte) keyboard_events_size#10 [phi:keyboard_event_scan::@15/keyboard_event_scan::@17/keyboard_event_scan::@4/keyboard_event_scan::@7->keyboard_event_scan::@5#0] -- register_copy + //SEG1011 [440] 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 - //SEG936 keyboard_event_scan::@5 + //SEG1012 keyboard_event_scan::@5 b5: - //SEG937 [412] (byte) keyboard_event_scan::keycode#15 ← ++ (byte) keyboard_event_scan::keycode#10 -- vbuz1=_inc_vbuz1 + //SEG1013 [441] (byte) keyboard_event_scan::keycode#15 ← ++ (byte) keyboard_event_scan::keycode#10 -- vbuz1=_inc_vbuz1 inc keycode - //SEG938 [413] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 -- vbuxx=_inc_vbuxx + //SEG1014 [442] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 -- vbuxx=_inc_vbuxx inx - //SEG939 [414] if((byte) keyboard_event_scan::col#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@4 -- vbuxx_neq_vbuc1_then_la1 + //SEG1015 [443] 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 - //SEG940 keyboard_event_scan::@19 + //SEG1016 keyboard_event_scan::@19 b19: - //SEG941 [415] *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG1017 [444] *((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 - //SEG942 keyboard_event_scan::@7 + //SEG1018 keyboard_event_scan::@7 b7: - //SEG943 [416] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64 -- vbuaa=vbuz1_bor_vbuc1 + //SEG1019 [445] (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 - //SEG944 [417] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte/word/dword~) keyboard_event_scan::$11 -- pbuc1_derefidx_vbuz1=vbuaa + //SEG1020 [446] *((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 - //SEG945 [418] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 + //SEG1021 [447] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 inc keyboard_events_size jmp b5_from_b7 } -//SEG946 keyboard_matrix_read +//SEG1022 keyboard_matrix_read keyboard_matrix_read: { - //SEG947 [419] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) -- _deref_pbuc1=pbuc2_derefidx_vbuxx + //SEG1023 [448] *((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 - //SEG948 [420] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) -- vbuaa=_bnot__deref_pbuc1 + //SEG1024 [449] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) -- vbuaa=_bnot__deref_pbuc1 lda CIA1_PORT_B eor #$ff jmp breturn - //SEG949 keyboard_matrix_read::@return + //SEG1025 keyboard_matrix_read::@return breturn: - //SEG950 [421] return + //SEG1026 [450] return rts } -//SEG951 render_show +//SEG1027 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 - //SEG952 [422] if((byte) render_screen_show#16==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_show::toD0181 -- vbuz1_eq_0_then_la1 + //SEG1028 [451] 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 - //SEG953 [423] phi from render_show to render_show::toD0182 [phi:render_show->render_show::toD0182] + //SEG1029 [452] phi from render_show to render_show::toD0182 [phi:render_show->render_show::toD0182] toD0182_from_render_show: jmp toD0182 - //SEG954 render_show::toD0182 + //SEG1030 render_show::toD0182 toD0182: - //SEG955 [424] phi from render_show::toD0182 to render_show::@2 [phi:render_show::toD0182->render_show::@2] + //SEG1031 [453] phi from render_show::toD0182 to render_show::@2 [phi:render_show::toD0182->render_show::@2] b2_from_toD0182: - //SEG956 [424] phi (byte) render_show::d018val#3 = (const byte) render_show::toD0182_return#0 [phi:render_show::toD0182->render_show::@2#0] -- vbuaa=vbuc1 + //SEG1032 [453] 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 - //SEG957 render_show::@2 + //SEG1033 render_show::@2 b2: - //SEG958 [425] *((const byte*) D018#0) ← (byte) render_show::d018val#3 -- _deref_pbuc1=vbuaa + //SEG1034 [454] *((const byte*) D018#0) ← (byte) render_show::d018val#3 -- _deref_pbuc1=vbuaa sta D018 - //SEG959 [426] (byte) render_screen_showing#1 ← (byte) render_screen_show#16 -- vbuz1=vbuz2 + //SEG1035 [455] (byte) render_screen_showing#1 ← (byte) render_screen_show#16 -- vbuz1=vbuz2 lda render_screen_show sta render_screen_showing jmp breturn - //SEG960 render_show::@return + //SEG1036 render_show::@return breturn: - //SEG961 [427] return + //SEG1037 [456] return rts - //SEG962 [428] phi from render_show to render_show::toD0181 [phi:render_show->render_show::toD0181] + //SEG1038 [457] phi from render_show to render_show::toD0181 [phi:render_show->render_show::toD0181] toD0181_from_render_show: jmp toD0181 - //SEG963 render_show::toD0181 + //SEG1039 render_show::toD0181 toD0181: - //SEG964 [424] phi from render_show::toD0181 to render_show::@2 [phi:render_show::toD0181->render_show::@2] + //SEG1040 [453] phi from render_show::toD0181 to render_show::@2 [phi:render_show::toD0181->render_show::@2] b2_from_toD0181: - //SEG965 [424] phi (byte) render_show::d018val#3 = (const byte) render_show::toD0181_return#0 [phi:render_show::toD0181->render_show::@2#0] -- vbuaa=vbuc1 + //SEG1041 [453] 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 } -//SEG966 play_init +//SEG1042 play_init play_init: { .label pli = 5 .label idx = 2 - //SEG967 [430] phi from play_init to play_init::@1 [phi:play_init->play_init::@1] + //SEG1043 [459] phi from play_init to play_init::@1 [phi:play_init->play_init::@1] b1_from_play_init: - //SEG968 [430] phi (byte) play_init::idx#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_init->play_init::@1#0] -- vbuz1=vbuc1 + //SEG1044 [459] 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 - //SEG969 [430] phi (byte*) play_init::pli#2 = (const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 [phi:play_init->play_init::@1#1] -- pbuz1=pbuc1 + //SEG1045 [459] 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 - //SEG970 [430] phi (byte) play_init::j#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_init->play_init::@1#2] -- vbuxx=vbuc1 + //SEG1046 [459] 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 - //SEG971 [430] phi from play_init::@1 to play_init::@1 [phi:play_init::@1->play_init::@1] + //SEG1047 [459] phi from play_init::@1 to play_init::@1 [phi:play_init::@1->play_init::@1] b1_from_b1: - //SEG972 [430] phi (byte) play_init::idx#2 = (byte) play_init::idx#1 [phi:play_init::@1->play_init::@1#0] -- register_copy - //SEG973 [430] phi (byte*) play_init::pli#2 = (byte*) play_init::pli#1 [phi:play_init::@1->play_init::@1#1] -- register_copy - //SEG974 [430] phi (byte) play_init::j#2 = (byte) play_init::j#1 [phi:play_init::@1->play_init::@1#2] -- register_copy + //SEG1048 [459] phi (byte) play_init::idx#2 = (byte) play_init::idx#1 [phi:play_init::@1->play_init::@1#0] -- register_copy + //SEG1049 [459] phi (byte*) play_init::pli#2 = (byte*) play_init::pli#1 [phi:play_init::@1->play_init::@1#1] -- register_copy + //SEG1050 [459] phi (byte) play_init::j#2 = (byte) play_init::j#1 [phi:play_init::@1->play_init::@1#2] -- register_copy jmp b1 - //SEG975 play_init::@1 + //SEG1051 play_init::@1 b1: - //SEG976 [431] (byte~) play_init::$1 ← (byte) play_init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_rol_1 + //SEG1052 [460] (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 - //SEG977 [432] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) play_init::$1) ← (byte*) play_init::pli#2 -- pptc1_derefidx_vbuaa=pbuz1 + //SEG1053 [461] *((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 - //SEG978 [433] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) play_init::j#2) ← (byte) play_init::idx#2 -- pbuc1_derefidx_vbuxx=vbuz1 + //SEG1054 [462] *((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 - //SEG979 [434] (byte*) play_init::pli#1 ← (byte*) play_init::pli#2 + (const byte) PLAYFIELD_COLS#0 -- pbuz1=pbuz1_plus_vbuc1 + //SEG1055 [463] (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 @@ -19212,41 +20624,41 @@ play_init: { bcc !+ inc pli+1 !: - //SEG980 [435] (byte) play_init::idx#1 ← (byte) play_init::idx#2 + (const byte) PLAYFIELD_COLS#0 -- vbuz1=vbuz1_plus_vbuc1 + //SEG1056 [464] (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 - //SEG981 [436] (byte) play_init::j#1 ← ++ (byte) play_init::j#2 -- vbuxx=_inc_vbuxx + //SEG1057 [465] (byte) play_init::j#1 ← ++ (byte) play_init::j#2 -- vbuxx=_inc_vbuxx inx - //SEG982 [437] if((byte) play_init::j#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto play_init::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG1058 [466] if((byte) play_init::j#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto play_init::@1 -- vbuxx_neq_vbuc1_then_la1 cpx #PLAYFIELD_LINES-1+1 bne b1_from_b1 jmp b3 - //SEG983 play_init::@3 + //SEG1059 play_init::@3 b3: - //SEG984 [438] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0+(const byte) PLAYFIELD_LINES#0) ← (const byte) PLAYFIELD_COLS#0*(const byte) PLAYFIELD_LINES#0 -- _deref_pbuc1=vbuc2 + //SEG1060 [467] *((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 - //SEG985 [439] (byte) current_movedown_slow#1 ← *((const byte[]) MOVEDOWN_SLOW_SPEEDS#0) -- vbuz1=_deref_pbuc1 + //SEG1061 [468] (byte) current_movedown_slow#1 ← *((const byte[]) MOVEDOWN_SLOW_SPEEDS#0) -- vbuz1=_deref_pbuc1 lda MOVEDOWN_SLOW_SPEEDS sta current_movedown_slow - //SEG986 [440] phi from play_init::@3 to play_init::@2 [phi:play_init::@3->play_init::@2] + //SEG1062 [469] phi from play_init::@3 to play_init::@2 [phi:play_init::@3->play_init::@2] b2_from_b3: - //SEG987 [440] phi (byte) play_init::b#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_init::@3->play_init::@2#0] -- vbuxx=vbuc1 + //SEG1063 [469] phi (byte) play_init::b#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_init::@3->play_init::@2#0] -- vbuxx=vbuc1 ldx #0 jmp b2 - //SEG988 [440] phi from play_init::@2 to play_init::@2 [phi:play_init::@2->play_init::@2] + //SEG1064 [469] phi from play_init::@2 to play_init::@2 [phi:play_init::@2->play_init::@2] b2_from_b2: - //SEG989 [440] phi (byte) play_init::b#2 = (byte) play_init::b#1 [phi:play_init::@2->play_init::@2#0] -- register_copy + //SEG1065 [469] phi (byte) play_init::b#2 = (byte) play_init::b#1 [phi:play_init::@2->play_init::@2#0] -- register_copy jmp b2 - //SEG990 play_init::@2 + //SEG1066 play_init::@2 b2: - //SEG991 [441] (byte) play_init::b4#0 ← (byte) play_init::b#2 << (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuaa=vbuxx_rol_2 + //SEG1067 [470] (byte) play_init::b4#0 ← (byte) play_init::b#2 << (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuaa=vbuxx_rol_2 txa asl asl - //SEG992 [442] *((const dword[5]) score_add_bcd#0 + (byte) play_init::b4#0) ← *((const dword[]) SCORE_BASE_BCD#0 + (byte) play_init::b4#0) -- pduc1_derefidx_vbuaa=pduc2_derefidx_vbuaa + //SEG1068 [471] *((const dword[5]) score_add_bcd#0 + (byte) play_init::b4#0) ← *((const dword[]) SCORE_BASE_BCD#0 + (byte) play_init::b4#0) -- pduc1_derefidx_vbuaa=pduc2_derefidx_vbuaa tay lda SCORE_BASE_BCD,y sta score_add_bcd,y @@ -19256,222 +20668,222 @@ play_init: { sta score_add_bcd+2,y lda SCORE_BASE_BCD+3,y sta score_add_bcd+3,y - //SEG993 [443] (byte) play_init::b#1 ← ++ (byte) play_init::b#2 -- vbuxx=_inc_vbuxx + //SEG1069 [472] (byte) play_init::b#1 ← ++ (byte) play_init::b#2 -- vbuxx=_inc_vbuxx inx - //SEG994 [444] if((byte) play_init::b#1!=(byte/signed byte/word/signed word/dword/signed dword) 5) goto play_init::@2 -- vbuxx_neq_vbuc1_then_la1 + //SEG1070 [473] if((byte) play_init::b#1!=(byte/signed byte/word/signed word/dword/signed dword) 5) goto play_init::@2 -- vbuxx_neq_vbuc1_then_la1 cpx #5 bne b2_from_b2 jmp breturn - //SEG995 play_init::@return + //SEG1071 play_init::@return breturn: - //SEG996 [445] return + //SEG1072 [474] return rts } -//SEG997 sprites_irq_init +//SEG1073 sprites_irq_init sprites_irq_init: { - //SEG998 asm { sei } + //SEG1074 asm { sei } sei - //SEG999 [447] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 + //SEG1075 [476] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 lda #IRQ_RASTER sta IRQ_STATUS - //SEG1000 asm { ldaCIA1_INTERRUPT } + //SEG1076 asm { ldaCIA1_INTERRUPT } lda CIA1_INTERRUPT - //SEG1001 [449] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 -- _deref_pbuc1=vbuc2 + //SEG1077 [478] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 -- _deref_pbuc1=vbuc2 lda #PROCPORT_DDR_MEMORY_MASK sta PROCPORT_DDR - //SEG1002 [450] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 -- _deref_pbuc1=vbuc2 + //SEG1078 [479] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 -- _deref_pbuc1=vbuc2 lda #PROCPORT_RAM_IO sta PROCPORT - //SEG1003 [451] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 -- _deref_pbuc1=vbuc2 + //SEG1079 [480] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 -- _deref_pbuc1=vbuc2 lda #CIA_INTERRUPT_CLEAR sta CIA1_INTERRUPT - //SEG1004 [452] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 + //SEG1080 [481] *((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 - //SEG1005 [453] *((const byte*) RASTER#0) ← (const byte) IRQ_RASTER_FIRST#0 -- _deref_pbuc1=vbuc2 + //SEG1081 [482] *((const byte*) RASTER#0) ← (const byte) IRQ_RASTER_FIRST#0 -- _deref_pbuc1=vbuc2 lda #IRQ_RASTER_FIRST sta RASTER - //SEG1006 [454] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 + //SEG1082 [483] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 lda #IRQ_RASTER sta IRQ_ENABLE - //SEG1007 [455] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() -- _deref_pptc1=pprc2 + //SEG1083 [484] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() -- _deref_pptc1=pprc2 lda #sprites_irq sta HARDWARE_IRQ+1 - //SEG1008 asm { cli } + //SEG1084 asm { cli } cli jmp breturn - //SEG1009 sprites_irq_init::@return + //SEG1085 sprites_irq_init::@return breturn: - //SEG1010 [457] return + //SEG1086 [486] return rts } -//SEG1011 sprites_init +//SEG1087 sprites_init sprites_init: { .label xpos = 2 - //SEG1012 [458] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 15 -- _deref_pbuc1=vbuc2 + //SEG1088 [487] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 15 -- _deref_pbuc1=vbuc2 lda #$f sta SPRITES_ENABLE - //SEG1013 [459] *((const byte*) SPRITES_MC#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 + //SEG1089 [488] *((const byte*) SPRITES_MC#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 lda #0 sta SPRITES_MC - //SEG1014 [460] *((const byte*) SPRITES_EXPAND_Y#0) ← *((const byte*) SPRITES_MC#0) -- _deref_pbuc1=_deref_pbuc2 + //SEG1090 [489] *((const byte*) SPRITES_EXPAND_Y#0) ← *((const byte*) SPRITES_MC#0) -- _deref_pbuc1=_deref_pbuc2 lda SPRITES_MC sta SPRITES_EXPAND_Y - //SEG1015 [461] *((const byte*) SPRITES_EXPAND_X#0) ← *((const byte*) SPRITES_EXPAND_Y#0) -- _deref_pbuc1=_deref_pbuc2 + //SEG1091 [490] *((const byte*) SPRITES_EXPAND_X#0) ← *((const byte*) SPRITES_EXPAND_Y#0) -- _deref_pbuc1=_deref_pbuc2 lda SPRITES_EXPAND_Y sta SPRITES_EXPAND_X - //SEG1016 [462] phi from sprites_init to sprites_init::@1 [phi:sprites_init->sprites_init::@1] + //SEG1092 [491] phi from sprites_init to sprites_init::@1 [phi:sprites_init->sprites_init::@1] b1_from_sprites_init: - //SEG1017 [462] phi (byte) sprites_init::xpos#2 = (byte/signed byte/word/signed word/dword/signed dword) 24+(byte/signed byte/word/signed word/dword/signed dword) 15*(byte/signed byte/word/signed word/dword/signed dword) 8 [phi:sprites_init->sprites_init::@1#0] -- vbuz1=vbuc1 + //SEG1093 [491] 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 - //SEG1018 [462] phi (byte) sprites_init::s#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sprites_init->sprites_init::@1#1] -- vbuxx=vbuc1 + //SEG1094 [491] 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 - //SEG1019 [462] phi from sprites_init::@1 to sprites_init::@1 [phi:sprites_init::@1->sprites_init::@1] + //SEG1095 [491] phi from sprites_init::@1 to sprites_init::@1 [phi:sprites_init::@1->sprites_init::@1] b1_from_b1: - //SEG1020 [462] phi (byte) sprites_init::xpos#2 = (byte) sprites_init::xpos#1 [phi:sprites_init::@1->sprites_init::@1#0] -- register_copy - //SEG1021 [462] phi (byte) sprites_init::s#2 = (byte) sprites_init::s#1 [phi:sprites_init::@1->sprites_init::@1#1] -- register_copy + //SEG1096 [491] phi (byte) sprites_init::xpos#2 = (byte) sprites_init::xpos#1 [phi:sprites_init::@1->sprites_init::@1#0] -- register_copy + //SEG1097 [491] phi (byte) sprites_init::s#2 = (byte) sprites_init::s#1 [phi:sprites_init::@1->sprites_init::@1#1] -- register_copy jmp b1 - //SEG1022 sprites_init::@1 + //SEG1098 sprites_init::@1 b1: - //SEG1023 [463] (byte) sprites_init::s2#0 ← (byte) sprites_init::s#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_rol_1 + //SEG1099 [492] (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 - //SEG1024 [464] *((const byte*) SPRITES_XPOS#0 + (byte) sprites_init::s2#0) ← (byte) sprites_init::xpos#2 -- pbuc1_derefidx_vbuaa=vbuz1 + //SEG1100 [493] *((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 - //SEG1025 [465] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::s#2) ← (const byte) BLACK#0 -- pbuc1_derefidx_vbuxx=vbuc2 + //SEG1101 [494] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::s#2) ← (const byte) BLACK#0 -- pbuc1_derefidx_vbuxx=vbuc2 lda #BLACK sta SPRITES_COLS,x - //SEG1026 [466] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 -- vbuz1=vbuz1_plus_vbuc1 + //SEG1102 [495] (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 - //SEG1027 [467] (byte) sprites_init::s#1 ← ++ (byte) sprites_init::s#2 -- vbuxx=_inc_vbuxx + //SEG1103 [496] (byte) sprites_init::s#1 ← ++ (byte) sprites_init::s#2 -- vbuxx=_inc_vbuxx inx - //SEG1028 [468] if((byte) sprites_init::s#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto sprites_init::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG1104 [497] 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 - //SEG1029 sprites_init::@return + //SEG1105 sprites_init::@return breturn: - //SEG1030 [469] return + //SEG1106 [498] return rts } -//SEG1031 render_init +//SEG1107 render_init render_init: { .const vicSelectGfxBank1_toDd001_return = 3^(>PLAYFIELD_CHARSET)>>6 .label li_1 = 5 .label li_2 = 7 jmp vicSelectGfxBank1 - //SEG1032 render_init::vicSelectGfxBank1 + //SEG1108 render_init::vicSelectGfxBank1 vicSelectGfxBank1: - //SEG1033 [471] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 + //SEG1109 [500] *((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 - //SEG1034 [472] phi from render_init::vicSelectGfxBank1 to render_init::vicSelectGfxBank1_toDd001 [phi:render_init::vicSelectGfxBank1->render_init::vicSelectGfxBank1_toDd001] + //SEG1110 [501] 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 - //SEG1035 render_init::vicSelectGfxBank1_toDd001 + //SEG1111 render_init::vicSelectGfxBank1_toDd001 vicSelectGfxBank1_toDd001: jmp vicSelectGfxBank1_b1 - //SEG1036 render_init::vicSelectGfxBank1_@1 + //SEG1112 render_init::vicSelectGfxBank1_@1 vicSelectGfxBank1_b1: - //SEG1037 [473] *((const byte*) CIA2_PORT_A#0) ← (const byte) render_init::vicSelectGfxBank1_toDd001_return#0 -- _deref_pbuc1=vbuc2 + //SEG1113 [502] *((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 - //SEG1038 render_init::@3 + //SEG1114 render_init::@3 b3: - //SEG1039 [474] *((const byte*) D011#0) ← (const byte) VIC_ECM#0|(const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 + //SEG1115 [503] *((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 - //SEG1040 [475] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0 -- _deref_pbuc1=vbuc2 + //SEG1116 [504] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0 -- _deref_pbuc1=vbuc2 lda #BLACK sta BORDERCOL - //SEG1041 [476] *((const byte*) BGCOL1#0) ← (const byte) BLACK#0 -- _deref_pbuc1=vbuc2 + //SEG1117 [505] *((const byte*) BGCOL1#0) ← (const byte) BLACK#0 -- _deref_pbuc1=vbuc2 lda #BLACK sta BGCOL1 - //SEG1042 [477] *((const byte*) BGCOL2#0) ← (const byte) BLUE#0 -- _deref_pbuc1=vbuc2 + //SEG1118 [506] *((const byte*) BGCOL2#0) ← (const byte) BLUE#0 -- _deref_pbuc1=vbuc2 lda #BLUE sta BGCOL2 - //SEG1043 [478] *((const byte*) BGCOL3#0) ← (const byte) CYAN#0 -- _deref_pbuc1=vbuc2 + //SEG1119 [507] *((const byte*) BGCOL3#0) ← (const byte) CYAN#0 -- _deref_pbuc1=vbuc2 lda #CYAN sta BGCOL3 - //SEG1044 [479] *((const byte*) BGCOL4#0) ← (const byte) GREY#0 -- _deref_pbuc1=vbuc2 + //SEG1120 [508] *((const byte*) BGCOL4#0) ← (const byte) GREY#0 -- _deref_pbuc1=vbuc2 lda #GREY sta BGCOL4 - //SEG1045 [480] call render_screen_original - //SEG1046 [493] phi from render_init::@3 to render_screen_original [phi:render_init::@3->render_screen_original] + //SEG1121 [509] call render_screen_original + //SEG1122 [522] phi from render_init::@3 to render_screen_original [phi:render_init::@3->render_screen_original] render_screen_original_from_b3: - //SEG1047 [493] phi (byte*) render_screen_original::screen#9 = (const byte*) PLAYFIELD_SCREEN_1#0 [phi:render_init::@3->render_screen_original#0] -- pbuz1=pbuc1 + //SEG1123 [522] 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 - //SEG1048 [481] phi from render_init::@3 to render_init::@4 [phi:render_init::@3->render_init::@4] + //SEG1124 [510] phi from render_init::@3 to render_init::@4 [phi:render_init::@3->render_init::@4] b4_from_b3: jmp b4 - //SEG1049 render_init::@4 + //SEG1125 render_init::@4 b4: - //SEG1050 [482] call render_screen_original - //SEG1051 [493] phi from render_init::@4 to render_screen_original [phi:render_init::@4->render_screen_original] + //SEG1126 [511] call render_screen_original + //SEG1127 [522] phi from render_init::@4 to render_screen_original [phi:render_init::@4->render_screen_original] render_screen_original_from_b4: - //SEG1052 [493] phi (byte*) render_screen_original::screen#9 = (const byte*) PLAYFIELD_SCREEN_2#0 [phi:render_init::@4->render_screen_original#0] -- pbuz1=pbuc1 + //SEG1128 [522] 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 - //SEG1053 [483] phi from render_init::@4 to render_init::@1 [phi:render_init::@4->render_init::@1] + //SEG1129 [512] phi from render_init::@4 to render_init::@1 [phi:render_init::@4->render_init::@1] b1_from_b4: - //SEG1054 [483] phi (byte*) render_init::li_2#2 = (const byte*) PLAYFIELD_SCREEN_2#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 16 [phi:render_init::@4->render_init::@1#0] -- pbuz1=pbuc1 + //SEG1130 [512] 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 - //SEG1055 [483] phi (byte*) render_init::li_1#2 = (const byte*) PLAYFIELD_SCREEN_1#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 16 [phi:render_init::@4->render_init::@1#1] -- pbuz1=pbuc1 + //SEG1131 [512] 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 - //SEG1056 [483] phi (byte) render_init::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_init::@4->render_init::@1#2] -- vbuxx=vbuc1 + //SEG1132 [512] 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 - //SEG1057 [483] phi from render_init::@1 to render_init::@1 [phi:render_init::@1->render_init::@1] + //SEG1133 [512] phi from render_init::@1 to render_init::@1 [phi:render_init::@1->render_init::@1] b1_from_b1: - //SEG1058 [483] phi (byte*) render_init::li_2#2 = (byte*) render_init::li_2#1 [phi:render_init::@1->render_init::@1#0] -- register_copy - //SEG1059 [483] phi (byte*) render_init::li_1#2 = (byte*) render_init::li_1#1 [phi:render_init::@1->render_init::@1#1] -- register_copy - //SEG1060 [483] phi (byte) render_init::i#2 = (byte) render_init::i#1 [phi:render_init::@1->render_init::@1#2] -- register_copy + //SEG1134 [512] phi (byte*) render_init::li_2#2 = (byte*) render_init::li_2#1 [phi:render_init::@1->render_init::@1#0] -- register_copy + //SEG1135 [512] phi (byte*) render_init::li_1#2 = (byte*) render_init::li_1#1 [phi:render_init::@1->render_init::@1#1] -- register_copy + //SEG1136 [512] phi (byte) render_init::i#2 = (byte) render_init::i#1 [phi:render_init::@1->render_init::@1#2] -- register_copy jmp b1 - //SEG1061 render_init::@1 + //SEG1137 render_init::@1 b1: - //SEG1062 [484] (byte~) render_init::$13 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_rol_1 + //SEG1138 [513] (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 - //SEG1063 [485] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_init::$13) ← (byte*) render_init::li_1#2 -- pptc1_derefidx_vbuaa=pbuz1 + //SEG1139 [514] *((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 - //SEG1064 [486] (byte~) render_init::$14 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_rol_1 + //SEG1140 [515] (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 - //SEG1065 [487] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_2#0 + (byte~) render_init::$14) ← (byte*) render_init::li_2#2 -- pptc1_derefidx_vbuaa=pbuz1 + //SEG1141 [516] *((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 - //SEG1066 [488] (byte*) render_init::li_1#1 ← (byte*) render_init::li_1#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG1142 [517] (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 @@ -19479,7 +20891,7 @@ render_init: { bcc !+ inc li_1+1 !: - //SEG1067 [489] (byte*) render_init::li_2#1 ← (byte*) render_init::li_2#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG1143 [518] (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 @@ -19487,18 +20899,18 @@ render_init: { bcc !+ inc li_2+1 !: - //SEG1068 [490] (byte) render_init::i#1 ← ++ (byte) render_init::i#2 -- vbuxx=_inc_vbuxx + //SEG1144 [519] (byte) render_init::i#1 ← ++ (byte) render_init::i#2 -- vbuxx=_inc_vbuxx inx - //SEG1069 [491] if((byte) render_init::i#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG1145 [520] 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 - //SEG1070 render_init::@return + //SEG1146 render_init::@return breturn: - //SEG1071 [492] return + //SEG1147 [521] return rts } -//SEG1072 render_screen_original +//SEG1148 render_screen_original render_screen_original: { .const SPACE = 0 .label screen = $11 @@ -19506,357 +20918,357 @@ render_screen_original: { .label oscr = 5 .label ocols = 7 .label y = 2 - //SEG1073 [494] phi from render_screen_original to render_screen_original::@1 [phi:render_screen_original->render_screen_original::@1] + //SEG1149 [523] phi from render_screen_original to render_screen_original::@1 [phi:render_screen_original->render_screen_original::@1] b1_from_render_screen_original: - //SEG1074 [494] phi (byte) render_screen_original::y#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_screen_original->render_screen_original::@1#0] -- vbuz1=vbuc1 + //SEG1150 [523] 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 - //SEG1075 [494] phi (byte*) render_screen_original::ocols#4 = (const byte*) PLAYFIELD_COLORS_ORIGINAL#0+(byte/signed byte/word/signed word/dword/signed dword) 32*(byte/signed byte/word/signed word/dword/signed dword) 2 [phi:render_screen_original->render_screen_original::@1#1] -- pbuz1=pbuc1 + //SEG1151 [523] 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 - //SEG1076 [494] phi (byte*) render_screen_original::oscr#4 = (const byte*) PLAYFIELD_SCREEN_ORIGINAL#0+(byte/signed byte/word/signed word/dword/signed dword) 32*(byte/signed byte/word/signed word/dword/signed dword) 2 [phi:render_screen_original->render_screen_original::@1#2] -- pbuz1=pbuc1 + //SEG1152 [523] 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 - //SEG1077 [494] phi (byte*) render_screen_original::cols#7 = (const byte*) COLS#0 [phi:render_screen_original->render_screen_original::@1#3] -- pbuz1=pbuc1 + //SEG1153 [523] 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 - //SEG1078 [494] phi (byte*) render_screen_original::screen#8 = (byte*) render_screen_original::screen#9 [phi:render_screen_original->render_screen_original::@1#4] -- register_copy + //SEG1154 [523] 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 - //SEG1079 [494] phi from render_screen_original::@7 to render_screen_original::@1 [phi:render_screen_original::@7->render_screen_original::@1] + //SEG1155 [523] phi from render_screen_original::@7 to render_screen_original::@1 [phi:render_screen_original::@7->render_screen_original::@1] b1_from_b7: - //SEG1080 [494] phi (byte) render_screen_original::y#6 = (byte) render_screen_original::y#1 [phi:render_screen_original::@7->render_screen_original::@1#0] -- register_copy - //SEG1081 [494] phi (byte*) render_screen_original::ocols#4 = (byte*) render_screen_original::ocols#1 [phi:render_screen_original::@7->render_screen_original::@1#1] -- register_copy - //SEG1082 [494] phi (byte*) render_screen_original::oscr#4 = (byte*) render_screen_original::oscr#1 [phi:render_screen_original::@7->render_screen_original::@1#2] -- register_copy - //SEG1083 [494] phi (byte*) render_screen_original::cols#7 = (byte*) render_screen_original::cols#3 [phi:render_screen_original::@7->render_screen_original::@1#3] -- register_copy - //SEG1084 [494] phi (byte*) render_screen_original::screen#8 = (byte*) render_screen_original::screen#10 [phi:render_screen_original::@7->render_screen_original::@1#4] -- register_copy + //SEG1156 [523] 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 + //SEG1157 [523] 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 + //SEG1158 [523] 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 + //SEG1159 [523] 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 + //SEG1160 [523] 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 - //SEG1085 render_screen_original::@1 + //SEG1161 render_screen_original::@1 b1: - //SEG1086 [495] phi from render_screen_original::@1 to render_screen_original::@2 [phi:render_screen_original::@1->render_screen_original::@2] + //SEG1162 [524] phi from render_screen_original::@1 to render_screen_original::@2 [phi:render_screen_original::@1->render_screen_original::@2] b2_from_b1: - //SEG1087 [495] phi (byte) render_screen_original::x#4 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_screen_original::@1->render_screen_original::@2#0] -- vbuxx=vbuc1 + //SEG1163 [524] 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 - //SEG1088 [495] phi (byte*) render_screen_original::cols#4 = (byte*) render_screen_original::cols#7 [phi:render_screen_original::@1->render_screen_original::@2#1] -- register_copy - //SEG1089 [495] phi (byte*) render_screen_original::screen#5 = (byte*) render_screen_original::screen#8 [phi:render_screen_original::@1->render_screen_original::@2#2] -- register_copy + //SEG1164 [524] 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 + //SEG1165 [524] 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 - //SEG1090 [495] phi from render_screen_original::@2 to render_screen_original::@2 [phi:render_screen_original::@2->render_screen_original::@2] + //SEG1166 [524] phi from render_screen_original::@2 to render_screen_original::@2 [phi:render_screen_original::@2->render_screen_original::@2] b2_from_b2: - //SEG1091 [495] phi (byte) render_screen_original::x#4 = (byte) render_screen_original::x#1 [phi:render_screen_original::@2->render_screen_original::@2#0] -- register_copy - //SEG1092 [495] phi (byte*) render_screen_original::cols#4 = (byte*) render_screen_original::cols#1 [phi:render_screen_original::@2->render_screen_original::@2#1] -- register_copy - //SEG1093 [495] phi (byte*) render_screen_original::screen#5 = (byte*) render_screen_original::screen#2 [phi:render_screen_original::@2->render_screen_original::@2#2] -- register_copy + //SEG1167 [524] 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 + //SEG1168 [524] 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 + //SEG1169 [524] 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 - //SEG1094 render_screen_original::@2 + //SEG1170 render_screen_original::@2 b2: - //SEG1095 [496] *((byte*) render_screen_original::screen#5) ← (const byte) render_screen_original::SPACE#0 -- _deref_pbuz1=vbuc1 + //SEG1171 [525] *((byte*) render_screen_original::screen#5) ← (const byte) render_screen_original::SPACE#0 -- _deref_pbuz1=vbuc1 lda #SPACE ldy #0 sta (screen),y - //SEG1096 [497] (byte*) render_screen_original::screen#2 ← ++ (byte*) render_screen_original::screen#5 -- pbuz1=_inc_pbuz1 + //SEG1172 [526] (byte*) render_screen_original::screen#2 ← ++ (byte*) render_screen_original::screen#5 -- pbuz1=_inc_pbuz1 inc screen bne !+ inc screen+1 !: - //SEG1097 [498] *((byte*) render_screen_original::cols#4) ← (const byte) BLACK#0 -- _deref_pbuz1=vbuc1 + //SEG1173 [527] *((byte*) render_screen_original::cols#4) ← (const byte) BLACK#0 -- _deref_pbuz1=vbuc1 lda #BLACK ldy #0 sta (cols),y - //SEG1098 [499] (byte*) render_screen_original::cols#1 ← ++ (byte*) render_screen_original::cols#4 -- pbuz1=_inc_pbuz1 + //SEG1174 [528] (byte*) render_screen_original::cols#1 ← ++ (byte*) render_screen_original::cols#4 -- pbuz1=_inc_pbuz1 inc cols bne !+ inc cols+1 !: - //SEG1099 [500] (byte) render_screen_original::x#1 ← ++ (byte) render_screen_original::x#4 -- vbuxx=_inc_vbuxx + //SEG1175 [529] (byte) render_screen_original::x#1 ← ++ (byte) render_screen_original::x#4 -- vbuxx=_inc_vbuxx inx - //SEG1100 [501] if((byte) render_screen_original::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_screen_original::@2 -- vbuxx_neq_vbuc1_then_la1 + //SEG1176 [530] 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 - //SEG1101 [502] phi from render_screen_original::@2 render_screen_original::@3 to render_screen_original::@3 [phi:render_screen_original::@2/render_screen_original::@3->render_screen_original::@3] + //SEG1177 [531] 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: - //SEG1102 [502] phi (byte) render_screen_original::x#5 = (byte) render_screen_original::x#1 [phi:render_screen_original::@2/render_screen_original::@3->render_screen_original::@3#0] -- register_copy - //SEG1103 [502] phi (byte*) render_screen_original::cols#5 = (byte*) render_screen_original::cols#1 [phi:render_screen_original::@2/render_screen_original::@3->render_screen_original::@3#1] -- register_copy - //SEG1104 [502] phi (byte*) render_screen_original::ocols#2 = (byte*) render_screen_original::ocols#4 [phi:render_screen_original::@2/render_screen_original::@3->render_screen_original::@3#2] -- register_copy - //SEG1105 [502] phi (byte*) render_screen_original::screen#6 = (byte*) render_screen_original::screen#2 [phi:render_screen_original::@2/render_screen_original::@3->render_screen_original::@3#3] -- register_copy - //SEG1106 [502] phi (byte*) render_screen_original::oscr#2 = (byte*) render_screen_original::oscr#4 [phi:render_screen_original::@2/render_screen_original::@3->render_screen_original::@3#4] -- register_copy + //SEG1178 [531] 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 + //SEG1179 [531] 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 + //SEG1180 [531] 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 + //SEG1181 [531] 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 + //SEG1182 [531] 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 - //SEG1107 render_screen_original::@3 + //SEG1183 render_screen_original::@3 b3: - //SEG1108 [503] *((byte*) render_screen_original::screen#6) ← *((byte*) render_screen_original::oscr#2) -- _deref_pbuz1=_deref_pbuz2 + //SEG1184 [532] *((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 - //SEG1109 [504] (byte*) render_screen_original::screen#3 ← ++ (byte*) render_screen_original::screen#6 -- pbuz1=_inc_pbuz1 + //SEG1185 [533] (byte*) render_screen_original::screen#3 ← ++ (byte*) render_screen_original::screen#6 -- pbuz1=_inc_pbuz1 inc screen bne !+ inc screen+1 !: - //SEG1110 [505] (byte*) render_screen_original::oscr#1 ← ++ (byte*) render_screen_original::oscr#2 -- pbuz1=_inc_pbuz1 + //SEG1186 [534] (byte*) render_screen_original::oscr#1 ← ++ (byte*) render_screen_original::oscr#2 -- pbuz1=_inc_pbuz1 inc oscr bne !+ inc oscr+1 !: - //SEG1111 [506] *((byte*) render_screen_original::cols#5) ← *((byte*) render_screen_original::ocols#2) -- _deref_pbuz1=_deref_pbuz2 + //SEG1187 [535] *((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 - //SEG1112 [507] (byte*) render_screen_original::cols#2 ← ++ (byte*) render_screen_original::cols#5 -- pbuz1=_inc_pbuz1 + //SEG1188 [536] (byte*) render_screen_original::cols#2 ← ++ (byte*) render_screen_original::cols#5 -- pbuz1=_inc_pbuz1 inc cols bne !+ inc cols+1 !: - //SEG1113 [508] (byte*) render_screen_original::ocols#1 ← ++ (byte*) render_screen_original::ocols#2 -- pbuz1=_inc_pbuz1 + //SEG1189 [537] (byte*) render_screen_original::ocols#1 ← ++ (byte*) render_screen_original::ocols#2 -- pbuz1=_inc_pbuz1 inc ocols bne !+ inc ocols+1 !: - //SEG1114 [509] (byte) render_screen_original::x#2 ← ++ (byte) render_screen_original::x#5 -- vbuxx=_inc_vbuxx + //SEG1190 [538] (byte) render_screen_original::x#2 ← ++ (byte) render_screen_original::x#5 -- vbuxx=_inc_vbuxx inx - //SEG1115 [510] if((byte) render_screen_original::x#2!=(byte/signed byte/word/signed word/dword/signed dword) 36) goto render_screen_original::@3 -- vbuxx_neq_vbuc1_then_la1 + //SEG1191 [539] 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 - //SEG1116 [511] phi from render_screen_original::@3 render_screen_original::@4 to render_screen_original::@4 [phi:render_screen_original::@3/render_screen_original::@4->render_screen_original::@4] + //SEG1192 [540] 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: - //SEG1117 [511] phi (byte) render_screen_original::x#6 = (byte) render_screen_original::x#2 [phi:render_screen_original::@3/render_screen_original::@4->render_screen_original::@4#0] -- register_copy - //SEG1118 [511] phi (byte*) render_screen_original::cols#6 = (byte*) render_screen_original::cols#2 [phi:render_screen_original::@3/render_screen_original::@4->render_screen_original::@4#1] -- register_copy - //SEG1119 [511] phi (byte*) render_screen_original::screen#7 = (byte*) render_screen_original::screen#3 [phi:render_screen_original::@3/render_screen_original::@4->render_screen_original::@4#2] -- register_copy + //SEG1193 [540] 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 + //SEG1194 [540] 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 + //SEG1195 [540] 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 - //SEG1120 render_screen_original::@4 + //SEG1196 render_screen_original::@4 b4: - //SEG1121 [512] *((byte*) render_screen_original::screen#7) ← (const byte) render_screen_original::SPACE#0 -- _deref_pbuz1=vbuc1 + //SEG1197 [541] *((byte*) render_screen_original::screen#7) ← (const byte) render_screen_original::SPACE#0 -- _deref_pbuz1=vbuc1 lda #SPACE ldy #0 sta (screen),y - //SEG1122 [513] (byte*) render_screen_original::screen#10 ← ++ (byte*) render_screen_original::screen#7 -- pbuz1=_inc_pbuz1 + //SEG1198 [542] (byte*) render_screen_original::screen#10 ← ++ (byte*) render_screen_original::screen#7 -- pbuz1=_inc_pbuz1 inc screen bne !+ inc screen+1 !: - //SEG1123 [514] *((byte*) render_screen_original::cols#6) ← (const byte) BLACK#0 -- _deref_pbuz1=vbuc1 + //SEG1199 [543] *((byte*) render_screen_original::cols#6) ← (const byte) BLACK#0 -- _deref_pbuz1=vbuc1 lda #BLACK ldy #0 sta (cols),y - //SEG1124 [515] (byte*) render_screen_original::cols#3 ← ++ (byte*) render_screen_original::cols#6 -- pbuz1=_inc_pbuz1 + //SEG1200 [544] (byte*) render_screen_original::cols#3 ← ++ (byte*) render_screen_original::cols#6 -- pbuz1=_inc_pbuz1 inc cols bne !+ inc cols+1 !: - //SEG1125 [516] (byte) render_screen_original::x#3 ← ++ (byte) render_screen_original::x#6 -- vbuxx=_inc_vbuxx + //SEG1201 [545] (byte) render_screen_original::x#3 ← ++ (byte) render_screen_original::x#6 -- vbuxx=_inc_vbuxx inx - //SEG1126 [517] if((byte) render_screen_original::x#3!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto render_screen_original::@4 -- vbuxx_neq_vbuc1_then_la1 + //SEG1202 [546] 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 - //SEG1127 render_screen_original::@7 + //SEG1203 render_screen_original::@7 b7: - //SEG1128 [518] (byte) render_screen_original::y#1 ← ++ (byte) render_screen_original::y#6 -- vbuz1=_inc_vbuz1 + //SEG1204 [547] (byte) render_screen_original::y#1 ← ++ (byte) render_screen_original::y#6 -- vbuz1=_inc_vbuz1 inc y - //SEG1129 [519] if((byte) render_screen_original::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto render_screen_original::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG1205 [548] 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 - //SEG1130 render_screen_original::@return + //SEG1206 render_screen_original::@return breturn: - //SEG1131 [520] return + //SEG1207 [549] return rts } -//SEG1132 sid_rnd_init +//SEG1208 sid_rnd_init sid_rnd_init: { - //SEG1133 [521] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 -- _deref_pwuc1=vwuc2 + //SEG1209 [550] *((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 - //SEG1134 [522] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 -- _deref_pbuc1=vbuc2 + //SEG1210 [551] *((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 - //SEG1135 sid_rnd_init::@return + //SEG1211 sid_rnd_init::@return breturn: - //SEG1136 [523] return + //SEG1212 [552] return rts } -//SEG1137 sprites_irq +//SEG1213 sprites_irq sprites_irq: { .const toSpritePtr2_return = PLAYFIELD_SPRITES>>6 - .label raster_sprite_gfx_modify = $2e - //SEG1138 entry interrupt(HARDWARE_CLOBBER) + .label raster_sprite_gfx_modify = $2f + //SEG1214 entry interrupt(HARDWARE_CLOBBER) sta rega+1 stx regx+1 - //SEG1139 asm { cld } + //SEG1215 asm { cld } cld - //SEG1140 [525] (byte) sprites_irq::ypos#0 ← (byte) irq_sprite_ypos#0 -- vbuaa=vbuz1 + //SEG1216 [554] (byte) sprites_irq::ypos#0 ← (byte) irq_sprite_ypos#0 -- vbuaa=vbuz1 lda irq_sprite_ypos - //SEG1141 [526] *((const byte*) SPRITES_YPOS#0) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuaa + //SEG1217 [555] *((const byte*) SPRITES_YPOS#0) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuaa sta SPRITES_YPOS - //SEG1142 [527] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuaa + //SEG1218 [556] *((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 - //SEG1143 [528] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuaa + //SEG1219 [557] *((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 - //SEG1144 [529] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuaa + //SEG1220 [558] *((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 - //SEG1145 [530] (byte/signed word/word/dword/signed dword~) sprites_irq::$0 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuxx=vbuz1_plus_1 + //SEG1221 [559] (byte/signed word/word/dword/signed dword~) sprites_irq::$0 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuxx=vbuz1_plus_1 ldx irq_raster_next inx - //SEG1146 [531] (byte) sprites_irq::raster_sprite_gfx_modify#0 ← (byte/signed word/word/dword/signed dword~) sprites_irq::$0 -- vbuz1=vbuxx + //SEG1222 [560] (byte) sprites_irq::raster_sprite_gfx_modify#0 ← (byte/signed word/word/dword/signed dword~) sprites_irq::$0 -- vbuz1=vbuxx stx raster_sprite_gfx_modify jmp b1 - //SEG1147 sprites_irq::@1 + //SEG1223 sprites_irq::@1 b1: - //SEG1148 [532] if(*((const byte*) RASTER#0)<(byte) sprites_irq::raster_sprite_gfx_modify#0) goto sprites_irq::@1 -- _deref_pbuc1_lt_vbuz1_then_la1 + //SEG1224 [561] if(*((const byte*) RASTER#0)<(byte) sprites_irq::raster_sprite_gfx_modify#0) goto sprites_irq::@1 -- _deref_pbuc1_lt_vbuz1_then_la1 lda RASTER cmp raster_sprite_gfx_modify bcc b1 jmp b8 - //SEG1149 sprites_irq::@8 + //SEG1225 sprites_irq::@8 b8: - //SEG1150 [533] (byte) sprites_irq::ptr#0 ← (byte) irq_sprite_ptr#0 -- vbuxx=vbuz1 + //SEG1226 [562] (byte) sprites_irq::ptr#0 ← (byte) irq_sprite_ptr#0 -- vbuxx=vbuz1 ldx irq_sprite_ptr - //SEG1151 [534] if((byte) render_screen_showing#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sprites_irq::@2 -- vbuz1_eq_0_then_la1 + //SEG1227 [563] if((byte) render_screen_showing#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sprites_irq::@2 -- vbuz1_eq_0_then_la1 lda render_screen_showing cmp #0 beq b2 jmp b9 - //SEG1152 sprites_irq::@9 + //SEG1228 sprites_irq::@9 b9: - //SEG1153 [535] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0) ← (byte) sprites_irq::ptr#0 -- _deref_pbuc1=vbuxx + //SEG1229 [564] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0) ← (byte) sprites_irq::ptr#0 -- _deref_pbuc1=vbuxx stx PLAYFIELD_SPRITE_PTRS_2 - //SEG1154 [536] (byte) sprites_irq::ptr#3 ← ++ (byte) sprites_irq::ptr#0 -- vbuaa=_inc_vbuxx + //SEG1230 [565] (byte) sprites_irq::ptr#3 ← ++ (byte) sprites_irq::ptr#0 -- vbuaa=_inc_vbuxx txa clc adc #1 - //SEG1155 [537] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) sprites_irq::ptr#3 -- _deref_pbuc1=vbuaa + //SEG1231 [566] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) sprites_irq::ptr#3 -- _deref_pbuc1=vbuaa sta PLAYFIELD_SPRITE_PTRS_2+1 - //SEG1156 [538] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ptr#3 -- _deref_pbuc1=vbuaa + //SEG1232 [567] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ptr#3 -- _deref_pbuc1=vbuaa sta PLAYFIELD_SPRITE_PTRS_2+2 - //SEG1157 [539] (byte) sprites_irq::ptr#4 ← ++ (byte) sprites_irq::ptr#3 -- vbuaa=_inc_vbuaa + //SEG1233 [568] (byte) sprites_irq::ptr#4 ← ++ (byte) sprites_irq::ptr#3 -- vbuaa=_inc_vbuaa clc adc #1 - //SEG1158 [540] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte) sprites_irq::ptr#4 -- _deref_pbuc1=vbuaa + //SEG1234 [569] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte) sprites_irq::ptr#4 -- _deref_pbuc1=vbuaa sta PLAYFIELD_SPRITE_PTRS_2+3 jmp b3 - //SEG1159 sprites_irq::@3 + //SEG1235 sprites_irq::@3 b3: - //SEG1160 [541] (byte) irq_cnt#1 ← ++ (byte) irq_cnt#0 -- vbuz1=_inc_vbuz1 + //SEG1236 [570] (byte) irq_cnt#1 ← ++ (byte) irq_cnt#0 -- vbuz1=_inc_vbuz1 inc irq_cnt - //SEG1161 [542] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 9) goto sprites_irq::@4 -- vbuz1_eq_vbuc1_then_la1 + //SEG1237 [571] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 9) goto sprites_irq::@4 -- vbuz1_eq_vbuc1_then_la1 lda irq_cnt cmp #9 beq b4 jmp b11 - //SEG1162 sprites_irq::@11 + //SEG1238 sprites_irq::@11 b11: - //SEG1163 [543] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto sprites_irq::@5 -- vbuz1_eq_vbuc1_then_la1 + //SEG1239 [572] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto sprites_irq::@5 -- vbuz1_eq_vbuc1_then_la1 lda irq_cnt cmp #$a beq b5 jmp b12 - //SEG1164 sprites_irq::@12 + //SEG1240 sprites_irq::@12 b12: - //SEG1165 [544] (byte) irq_raster_next#3 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 20 -- vbuz1=vbuz1_plus_vbuc1 + //SEG1241 [573] (byte) irq_raster_next#3 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 20 -- vbuz1=vbuz1_plus_vbuc1 lda #$14 clc adc irq_raster_next sta irq_raster_next - //SEG1166 [545] (byte) irq_sprite_ypos#3 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuz1=vbuz1_plus_vbuc1 + //SEG1242 [574] (byte) irq_sprite_ypos#3 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuz1=vbuz1_plus_vbuc1 lda #$15 clc adc irq_sprite_ypos sta irq_sprite_ypos - //SEG1167 [546] (byte) irq_sprite_ptr#3 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 -- vbuz1=vbuz1_plus_vbuc1 + //SEG1243 [575] (byte) irq_sprite_ptr#3 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 -- vbuz1=vbuz1_plus_vbuc1 lda #3 clc adc irq_sprite_ptr sta irq_sprite_ptr - //SEG1168 [547] phi from sprites_irq::@12 sprites_irq::@15 sprites_irq::@5 to sprites_irq::@7 [phi:sprites_irq::@12/sprites_irq::@15/sprites_irq::@5->sprites_irq::@7] + //SEG1244 [576] phi from sprites_irq::@12 sprites_irq::@15 sprites_irq::@5 to sprites_irq::@7 [phi:sprites_irq::@12/sprites_irq::@15/sprites_irq::@5->sprites_irq::@7] b7_from_b12: b7_from_b15: b7_from_b5: - //SEG1169 [547] phi (byte) irq_raster_next#4 = (byte) irq_raster_next#3 [phi:sprites_irq::@12/sprites_irq::@15/sprites_irq::@5->sprites_irq::@7#0] -- register_copy + //SEG1245 [576] phi (byte) irq_raster_next#4 = (byte) irq_raster_next#3 [phi:sprites_irq::@12/sprites_irq::@15/sprites_irq::@5->sprites_irq::@7#0] -- register_copy jmp b7 - //SEG1170 sprites_irq::@7 + //SEG1246 sprites_irq::@7 b7: - //SEG1171 [548] *((const byte*) RASTER#0) ← (byte) irq_raster_next#4 -- _deref_pbuc1=vbuz1 + //SEG1247 [577] *((const byte*) RASTER#0) ← (byte) irq_raster_next#4 -- _deref_pbuc1=vbuz1 lda irq_raster_next sta RASTER - //SEG1172 [549] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 + //SEG1248 [578] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 lda #IRQ_RASTER sta IRQ_STATUS jmp breturn - //SEG1173 sprites_irq::@return + //SEG1249 sprites_irq::@return breturn: - //SEG1174 [550] return - exit interrupt(HARDWARE_CLOBBER) + //SEG1250 [579] return - exit interrupt(HARDWARE_CLOBBER) rega: lda #00 regx: ldx #00 rti - //SEG1175 sprites_irq::@5 + //SEG1251 sprites_irq::@5 b5: - //SEG1176 [551] (byte) irq_cnt#2 ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- vbuz1=vbuc1 + //SEG1252 [580] (byte) irq_cnt#2 ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- vbuz1=vbuc1 lda #0 sta irq_cnt - //SEG1177 [552] (byte) irq_raster_next#2 ← (const byte) IRQ_RASTER_FIRST#0 -- vbuz1=vbuc1 + //SEG1253 [581] (byte) irq_raster_next#2 ← (const byte) IRQ_RASTER_FIRST#0 -- vbuz1=vbuc1 lda #IRQ_RASTER_FIRST sta irq_raster_next - //SEG1178 [553] (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuz1=vbuz1_plus_vbuc1 + //SEG1254 [582] (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 - //SEG1179 [554] (byte) irq_sprite_ptr#2 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 -- vbuz1=vbuz1_plus_vbuc1 + //SEG1255 [583] (byte) irq_sprite_ptr#2 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 -- vbuz1=vbuz1_plus_vbuc1 lda #3 clc adc irq_sprite_ptr sta irq_sprite_ptr jmp b7_from_b5 - //SEG1180 sprites_irq::@4 + //SEG1256 sprites_irq::@4 b4: - //SEG1181 [555] (byte) irq_raster_next#1 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuz1=vbuz1_plus_vbuc1 + //SEG1257 [584] (byte) irq_raster_next#1 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuz1=vbuz1_plus_vbuc1 lda #$15 clc adc irq_raster_next sta irq_raster_next - //SEG1182 [556] (byte) irq_sprite_ypos#1 ← (const byte) SPRITES_FIRST_YPOS#0 -- vbuz1=vbuc1 + //SEG1258 [585] (byte) irq_sprite_ypos#1 ← (const byte) SPRITES_FIRST_YPOS#0 -- vbuz1=vbuc1 lda #SPRITES_FIRST_YPOS sta irq_sprite_ypos - //SEG1183 [557] phi from sprites_irq::@4 to sprites_irq::toSpritePtr2 [phi:sprites_irq::@4->sprites_irq::toSpritePtr2] + //SEG1259 [586] phi from sprites_irq::@4 to sprites_irq::toSpritePtr2 [phi:sprites_irq::@4->sprites_irq::toSpritePtr2] toSpritePtr2_from_b4: jmp toSpritePtr2 - //SEG1184 sprites_irq::toSpritePtr2 + //SEG1260 sprites_irq::toSpritePtr2 toSpritePtr2: jmp b15 - //SEG1185 sprites_irq::@15 + //SEG1261 sprites_irq::@15 b15: - //SEG1186 [558] (byte) irq_sprite_ptr#1 ← (const byte) sprites_irq::toSpritePtr2_return#0 -- vbuz1=vbuc1 + //SEG1262 [587] (byte) irq_sprite_ptr#1 ← (const byte) sprites_irq::toSpritePtr2_return#0 -- vbuz1=vbuc1 lda #toSpritePtr2_return sta irq_sprite_ptr jmp b7_from_b15 - //SEG1187 sprites_irq::@2 + //SEG1263 sprites_irq::@2 b2: - //SEG1188 [559] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0) ← (byte) sprites_irq::ptr#0 -- _deref_pbuc1=vbuxx + //SEG1264 [588] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0) ← (byte) sprites_irq::ptr#0 -- _deref_pbuc1=vbuxx stx PLAYFIELD_SPRITE_PTRS_1 - //SEG1189 [560] (byte) sprites_irq::ptr#1 ← ++ (byte) sprites_irq::ptr#0 -- vbuaa=_inc_vbuxx + //SEG1265 [589] (byte) sprites_irq::ptr#1 ← ++ (byte) sprites_irq::ptr#0 -- vbuaa=_inc_vbuxx txa clc adc #1 - //SEG1190 [561] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) sprites_irq::ptr#1 -- _deref_pbuc1=vbuaa + //SEG1266 [590] *((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 - //SEG1191 [562] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ptr#1 -- _deref_pbuc1=vbuaa + //SEG1267 [591] *((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 - //SEG1192 [563] (byte) sprites_irq::ptr#2 ← ++ (byte) sprites_irq::ptr#1 -- vbuaa=_inc_vbuaa + //SEG1268 [592] (byte) sprites_irq::ptr#2 ← ++ (byte) sprites_irq::ptr#1 -- vbuaa=_inc_vbuaa clc adc #1 - //SEG1193 [564] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte) sprites_irq::ptr#2 -- _deref_pbuc1=vbuaa + //SEG1269 [593] *((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 } @@ -19878,7 +21290,8 @@ sprites_irq: { PIECE_O: .byte 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0 .align $40 PIECE_I: .byte 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0 - PIECES_CHARS: .byte $64, $65, $a5, $65, $64, $64, $a5 + PIECES_CHARS: .byte $65, $66, $a6, $66, $65, $65, $a6 + PIECES_NEXT_CHARS: .byte $63, $64, $a4, $64, $63, $63, $a4 PIECES_START_X: .byte 4, 4, 4, 4, 4, 4, 4 PIECES_START_Y: .byte 1, 1, 1, 1, 1, 0, 1 MOVEDOWN_SLOW_SPEEDS: .byte $30, $2b, $26, $21, $1c, $17, $12, $d, 8, 6, 5, 5, 5, 4, 4, 4, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 @@ -19928,11 +21341,11 @@ sprites_irq: { ASSEMBLER OPTIMIZATIONS Removing instruction jmp b14 -Removing instruction jmp b22 Removing instruction jmp b23 +Removing instruction jmp b24 Removing instruction jmp toSpritePtr1 +Removing instruction jmp b39 Removing instruction jmp b38 -Removing instruction jmp b37 Removing instruction jmp bend Removing instruction jmp b25 Removing instruction jmp b26 @@ -19941,19 +21354,22 @@ Removing instruction jmp b28 Removing instruction jmp b29 Removing instruction jmp b30 Removing instruction jmp b31 +Removing instruction jmp b32 +Removing instruction jmp b33 Removing instruction jmp b1 Removing instruction jmp b4 Removing instruction jmp b6 -Removing instruction jmp b33 -Removing instruction jmp b34 Removing instruction jmp b35 -Removing instruction jmp b9 Removing instruction jmp b36 +Removing instruction jmp b37 +Removing instruction jmp b9 +Removing instruction jmp b38 Removing instruction jmp b11 Removing instruction jmp b23 -Removing instruction jmp b37 -Removing instruction jmp b38 Removing instruction jmp b39 +Removing instruction jmp b40 +Removing instruction jmp b41 +Removing instruction jmp b42 Removing instruction jmp breturn Removing instruction jmp b3 Removing instruction jmp b2 @@ -19966,6 +21382,14 @@ Removing instruction jmp breturn Removing instruction jmp b2 Removing instruction jmp b1 Removing instruction jmp breturn +Removing instruction jmp b7 +Removing instruction jmp b2 +Removing instruction jmp b3 +Removing instruction jmp b4 +Removing instruction jmp b9 +Removing instruction jmp b6 +Removing instruction jmp b11 +Removing instruction jmp breturn Removing instruction jmp b1 Removing instruction jmp b6 Removing instruction jmp b3 @@ -20014,13 +21438,13 @@ Removing instruction jmp b20 Removing instruction jmp b21 Removing instruction jmp b7 Removing instruction jmp breturn +Removing instruction jmp b9 Removing instruction jmp b1 +Removing instruction jmp b2 +Removing instruction jmp breturn Removing instruction jmp b3 Removing instruction jmp b10 -Removing instruction jmp breturn Removing instruction jmp b11 -Removing instruction jmp b2 -Removing instruction jmp b9 Removing instruction jmp breturn Removing instruction jmp b3 Removing instruction jmp b4 @@ -20113,15 +21537,17 @@ 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 Removing instruction lda #0 Removing instruction lda #0 Removing instruction lda #0 +Replacing instruction ldy #0 with TAY Removing instruction lda #0 Removing instruction lda current_orientation Removing instruction lda #0 -Removing instruction ldy _3 +Removing instruction ldy _0 Removing instruction lda #0 Removing instruction lda c Removing instruction lda #0 @@ -20137,6 +21563,8 @@ Replacing label b1 with b4 Replacing label b1_from_b11 with b4 Replacing label b1 with b4 Replacing label b1_from_render_bcd with b1 +Replacing label b4_from_b6 with b4 +Replacing label b3_from_b11 with b3 Replacing label b1_from_b3 with b1 Replacing label b4_from_b5 with b4 Replacing label b3_from_b5 with b3 @@ -20151,8 +21579,8 @@ Replacing label breturn_from_b11 with breturn_from_b8 Replacing label b2_from_b17 with b2 Replacing label b2_from_b9 with b2 Replacing label b4_from_b2 with b4 -Replacing label b2_from_b1 with b2 -Replacing label b11_from_b10 with b11 +Replacing label b11_from_b9 with b11 +Replacing label b3_from_b2 with b3 Replacing label breturn_from_play_update_score with breturn Replacing label breturn_from_b3 with breturn Replacing label b3_from_b2 with b3 @@ -20182,12 +21610,12 @@ Replacing label b1_from_b7 with b1 Replacing label b7_from_b5 with b7 Replacing label b7_from_b15 with b7 Removing instruction b14: -Removing instruction b22: -Removing instruction toSpritePtr1_from_b23: +Removing instruction b23: +Removing instruction toSpritePtr1_from_b24: Removing instruction toSpritePtr1: -Removing instruction b37_from_b38: -Removing instruction main_from_b37: -Removing instruction bend_from_b37: +Removing instruction b38_from_b39: +Removing instruction main_from_b38: +Removing instruction bend_from_b38: Removing instruction b26_from_b25: Removing instruction b27_from_b26: Removing instruction b28_from_b27: @@ -20195,19 +21623,26 @@ Removing instruction play_init_from_b28: Removing instruction b29_from_b28: Removing instruction play_spawn_current_from_b29: Removing instruction b30_from_b29: -Removing instruction render_playfield_from_b30: +Removing instruction play_spawn_current_from_b30: +Removing instruction b31_from_b30: +Removing instruction render_playfield_from_b31: Removing instruction b1_from_b11: Removing instruction b1: Removing instruction b6_from_b4: -Removing instruction b33_from_b6: -Removing instruction keyboard_event_scan_from_b33: -Removing instruction b34_from_b33: -Removing instruction b38_from_b37: -Removing instruction b39_from_b38: +Removing instruction b35_from_b6: +Removing instruction keyboard_event_scan_from_b35: +Removing instruction b36_from_b35: +Removing instruction b41_from_b40: +Removing instruction b42_from_b41: Removing instruction b3_from_render_score: Removing instruction b2_from_b3: Removing instruction b1_from_render_bcd: Removing instruction b1_from_b2: +Removing instruction b7_from_render_next: +Removing instruction b2_from_b7: +Removing instruction b3_from_b11: +Removing instruction b4_from_b3: +Removing instruction b4_from_b6: Removing instruction b1_from_b3: Removing instruction b3_from_b5: Removing instruction b3_from_b6: @@ -20236,9 +21671,10 @@ Removing instruction play_remove_lines_from_b19: Removing instruction b21_from_b20: Removing instruction play_spawn_current_from_b21: Removing instruction breturn_from_b7: -Removing instruction b11_from_b10: -Removing instruction breturn_from_b11: Removing instruction b2_from_b1: +Removing instruction b3_from_b2: +Removing instruction b11_from_b9: +Removing instruction b1_from_b11: Removing instruction b4_from_b3: Removing instruction breturn_from_play_update_score: Removing instruction breturn_from_b3: @@ -20300,9 +21736,9 @@ Removing instruction breturn: Removing instruction toSpritePtr2_from_b4: Removing instruction toSpritePtr2: Succesful ASM optimization Pass5RedundantLabelElimination -Removing instruction b23: +Removing instruction b24: +Removing instruction b39: Removing instruction b38: -Removing instruction b37: Removing instruction bend: Removing instruction b25: Removing instruction render_init_from_b25: @@ -20312,21 +21748,26 @@ Removing instruction b28: Removing instruction b29: Removing instruction b30: Removing instruction b31: -Removing instruction render_moving_from_b31: -Removing instruction b1_from_b31: -Removing instruction b6: +Removing instruction b32: +Removing instruction render_moving_from_b32: Removing instruction b33: -Removing instruction b34: +Removing instruction render_next_from_b33: +Removing instruction b1_from_b33: +Removing instruction b6: Removing instruction b35: Removing instruction b36: +Removing instruction b37: +Removing instruction b38: Removing instruction b11: Removing instruction b23: Removing instruction render_playfield_from_b23: -Removing instruction b37: -Removing instruction render_moving_from_b37: -Removing instruction b38: Removing instruction b39: -Removing instruction b1_from_b39: +Removing instruction render_moving_from_b39: +Removing instruction b40: +Removing instruction render_next_from_b40: +Removing instruction b41: +Removing instruction b42: +Removing instruction b1_from_b42: Removing instruction breturn: Removing instruction b3: Removing instruction render_bcd_from_b2: @@ -20343,6 +21784,11 @@ Removing instruction render_bcd_from_b9: Removing instruction breturn: Removing instruction b2: Removing instruction breturn: +Removing instruction b7: +Removing instruction b3_from_b2: +Removing instruction b9: +Removing instruction b11: +Removing instruction breturn: Removing instruction b1_from_render_moving: Removing instruction b6: Removing instruction breturn: @@ -20393,14 +21839,13 @@ Removing instruction b20: Removing instruction b21: Removing instruction b7_from_b21: Removing instruction b7_from_b6: -Removing instruction b1_from_play_spawn_current: -Removing instruction b3: -Removing instruction play_collision_from_b3: -Removing instruction b10: -Removing instruction breturn_from_b10: +Removing instruction play_collision_from_play_spawn_current: Removing instruction b9: Removing instruction b1_from_b9: Removing instruction breturn: +Removing instruction b10: +Removing instruction b2_from_b10: +Removing instruction breturn: Removing instruction b3: Removing instruction b4: Removing instruction b5: @@ -20467,10 +21912,11 @@ Removing instruction b11: Removing instruction b12: Removing instruction b15: Succesful ASM optimization Pass5UnusedLabelElimination -Skipping double jump to breturn in bne b11 +Skipping double jump to b1 in bne b11 Skipping double jump to b3 in bne b18 Succesful ASM optimization Pass5DoubleJumpElimination Relabelling long label b2_from_render_score to b1 +Relabelling long label b2_from_render_next to b1 Relabelling long label breturn_from_b6 to b3 Relabelling long label breturn_from_b8 to b2 Relabelling long label breturn_from_b6 to b3 @@ -20482,6 +21928,8 @@ 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 b4 Removing instruction jmp b1 Removing instruction jmp b4 Removing instruction jmp b1 @@ -20503,16 +21951,16 @@ Succesful ASM optimization Pass5UnnecesaryLoadElimination Removing instruction b11: Removing instruction b18: Succesful ASM optimization Pass5UnusedLabelElimination -Removing unreachable instruction jmp breturn +Removing unreachable instruction jmp b1 Removing unreachable instruction jmp b3 Succesful ASM optimization Pass5UnreachableCodeElimination FINAL SYMBOL TABLE (label) @14 -(label) @22 (label) @23 -(label) @37 +(label) @24 (label) @38 +(label) @39 (label) @begin (label) @end (byte*) BGCOL @@ -20679,7 +22127,9 @@ FINAL SYMBOL TABLE (word[]) PIECES (const word[]) PIECES#0 PIECES = { ((word))(const byte[4*4*4]) PIECE_T#0, ((word))(const byte[4*4*4]) PIECE_S#0, ((word))(const byte[4*4*4]) PIECE_Z#0, ((word))(const byte[4*4*4]) PIECE_J#0, ((word))(const byte[4*4*4]) PIECE_O#0, ((word))(const byte[4*4*4]) PIECE_I#0, ((word))(const byte[4*4*4]) PIECE_L#0 } (byte[]) PIECES_CHARS -(const byte[]) PIECES_CHARS#0 PIECES_CHARS = { (byte/signed byte/word/signed word/dword/signed dword) 100, (byte/signed byte/word/signed word/dword/signed dword) 101, (byte/word/signed word/dword/signed dword) 165, (byte/signed byte/word/signed word/dword/signed dword) 101, (byte/signed byte/word/signed word/dword/signed dword) 100, (byte/signed byte/word/signed word/dword/signed dword) 100, (byte/word/signed word/dword/signed dword) 165 } +(const byte[]) PIECES_CHARS#0 PIECES_CHARS = { (byte/signed byte/word/signed word/dword/signed dword) 101, (byte/signed byte/word/signed word/dword/signed dword) 102, (byte/word/signed word/dword/signed dword) 166, (byte/signed byte/word/signed word/dword/signed dword) 102, (byte/signed byte/word/signed word/dword/signed dword) 101, (byte/signed byte/word/signed word/dword/signed dword) 101, (byte/word/signed word/dword/signed dword) 166 } +(byte[]) PIECES_NEXT_CHARS +(const byte[]) PIECES_NEXT_CHARS#0 PIECES_NEXT_CHARS = { (byte/signed byte/word/signed word/dword/signed dword) 99, (byte/signed byte/word/signed word/dword/signed dword) 100, (byte/word/signed word/dword/signed dword) 164, (byte/signed byte/word/signed word/dword/signed dword) 100, (byte/signed byte/word/signed word/dword/signed dword) 99, (byte/signed byte/word/signed word/dword/signed dword) 99, (byte/word/signed word/dword/signed dword) 164 } (byte[]) PIECES_START_X (const byte[]) PIECES_START_X#0 PIECES_START_X = { (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 4 } (byte[]) PIECES_START_Y @@ -20795,103 +22245,103 @@ FINAL SYMBOL TABLE (byte) YELLOW (byte) current_movedown_counter (byte) current_movedown_counter#12 current_movedown_counter zp ZP_BYTE:4 0.5333333333333333 -(byte) current_movedown_counter#14 current_movedown_counter zp ZP_BYTE:4 3.257142857142857 +(byte) current_movedown_counter#14 current_movedown_counter zp ZP_BYTE:4 3.0000000000000004 (byte) current_movedown_counter#16 current_movedown_counter zp ZP_BYTE:4 8.769230769230768 (byte) current_movedown_fast (const byte) current_movedown_fast#0 current_movedown_fast = (byte/signed byte/word/signed word/dword/signed dword) 10 (byte) current_movedown_slow -(byte) current_movedown_slow#1 current_movedown_slow zp ZP_BYTE:24 0.2222222222222222 +(byte) current_movedown_slow#1 current_movedown_slow zp ZP_BYTE:24 0.18181818181818182 (byte) current_movedown_slow#10 current_movedown_slow zp ZP_BYTE:24 4.0 (byte) current_movedown_slow#14 current_movedown_slow zp ZP_BYTE:24 2.214285714285714 -(byte) current_movedown_slow#21 current_movedown_slow zp ZP_BYTE:24 3.314285714285714 +(byte) current_movedown_slow#21 current_movedown_slow zp ZP_BYTE:24 3.052631578947369 (byte) current_movedown_slow#23 current_movedown_slow zp ZP_BYTE:24 1.3333333333333333 (byte) current_movedown_slow#38 current_movedown_slow zp ZP_BYTE:24 6.0 (byte) current_movedown_slow#69 current_movedown_slow zp ZP_BYTE:24 0.26666666666666666 (byte) current_orientation -(byte) current_orientation#12 current_orientation zp ZP_BYTE:29 3.189189189189189 -(byte) current_orientation#16 current_orientation zp ZP_BYTE:29 6.444444444444443 -(byte) current_orientation#19 current_orientation zp ZP_BYTE:29 0.36 -(byte) current_orientation#24 current_orientation zp ZP_BYTE:29 1.3333333333333333 -(byte) current_orientation#36 current_orientation zp ZP_BYTE:29 4.0 +(byte) current_orientation#13 current_orientation zp ZP_BYTE:29 3.189189189189189 +(byte) current_orientation#17 current_orientation zp ZP_BYTE:29 5.523809523809523 +(byte) current_orientation#20 current_orientation zp ZP_BYTE:29 0.36 +(byte) current_orientation#25 current_orientation zp ZP_BYTE:29 1.3333333333333333 +(byte) current_orientation#38 current_orientation zp ZP_BYTE:29 4.0 (byte) current_orientation#7 current_orientation zp ZP_BYTE:29 3.0 (byte*) current_piece -(byte*) current_piece#14 current_piece zp ZP_WORD:26 1.6315789473684217 -(byte*) current_piece#16 current_piece#16 zp ZP_WORD:5 12.0 -(byte*) current_piece#20 current_piece zp ZP_WORD:26 3.243243243243243 -(byte*) current_piece#27 current_piece zp ZP_WORD:26 6.0 -(byte*~) current_piece#88 current_piece zp ZP_WORD:26 4.0 -(byte*~) current_piece#90 current_piece#90 zp ZP_WORD:5 4.0 -(byte*~) current_piece#91 current_piece#91 zp ZP_WORD:5 4.0 -(byte*~) current_piece#92 current_piece#92 zp ZP_WORD:5 4.0 -(byte*~) current_piece#93 current_piece#93 zp ZP_WORD:5 4.0 -(byte*~) current_piece#94 current_piece#94 zp ZP_WORD:5 4.0 -(byte*~) current_piece#95 current_piece zp ZP_WORD:26 4.0 +(byte*) current_piece#10 current_piece zp ZP_WORD:26 3.243243243243243 +(byte*~) current_piece#100 current_piece#100 zp ZP_WORD:5 4.0 +(byte*~) current_piece#101 current_piece#101 zp ZP_WORD:5 4.0 +(byte*~) current_piece#102 current_piece#102 zp ZP_WORD:5 4.0 +(byte*~) current_piece#103 current_piece zp ZP_WORD:26 4.0 +(byte*) current_piece#15 current_piece zp ZP_WORD:26 1.5696202531645564 +(byte*) current_piece#17 current_piece#17 zp ZP_WORD:5 12.0 +(byte*) current_piece#29 current_piece zp ZP_WORD:26 6.0 +(byte*~) current_piece#96 current_piece zp ZP_WORD:26 4.0 +(byte*~) current_piece#98 current_piece#98 zp ZP_WORD:5 4.0 +(byte*~) current_piece#99 current_piece#99 zp ZP_WORD:5 4.0 (byte) current_piece_char -(byte~) current_piece_char#102 reg byte x 4.0 -(byte~) current_piece_char#103 reg byte x 22.0 -(byte) current_piece_char#14 current_piece_char zp ZP_BYTE:28 3.628571428571428 -(byte) current_piece_char#16 current_piece_char zp ZP_BYTE:28 0.32 -(byte) current_piece_char#19 current_piece_char zp ZP_BYTE:28 187.38888888888889 -(byte) current_piece_char#27 current_piece_char zp ZP_BYTE:28 6.0 -(byte) current_piece_char#64 reg byte x 50.699999999999996 +(byte~) current_piece_char#110 reg byte x 4.0 +(byte~) current_piece_char#111 reg byte x 22.0 +(byte) current_piece_char#15 current_piece_char zp ZP_BYTE:28 3.3421052631578956 +(byte) current_piece_char#21 current_piece_char zp ZP_BYTE:28 187.38888888888889 +(byte) current_piece_char#29 current_piece_char zp ZP_BYTE:28 6.0 +(byte) current_piece_char#4 current_piece_char zp ZP_BYTE:28 0.23529411764705882 +(byte) current_piece_char#67 reg byte x 50.699999999999996 (byte*) current_piece_gfx -(byte*) current_piece_gfx#103 current_piece_gfx zp ZP_WORD:30 187.38888888888889 -(byte*~) current_piece_gfx#114 current_piece_gfx#114 zp ZP_WORD:5 2.0 -(byte*~) current_piece_gfx#115 current_piece_gfx#115 zp ZP_WORD:5 11.0 -(byte*) current_piece_gfx#16 current_piece_gfx zp ZP_WORD:30 7.055555555555554 -(byte*) current_piece_gfx#18 current_piece_gfx zp ZP_WORD:30 0.3571428571428571 -(byte*) current_piece_gfx#19 current_piece_gfx zp ZP_WORD:30 1.3333333333333333 -(byte*) current_piece_gfx#21 current_piece_gfx zp ZP_WORD:30 0.3333333333333333 -(byte*) current_piece_gfx#33 current_piece_gfx zp ZP_WORD:30 6.0 +(byte*) current_piece_gfx#111 current_piece_gfx zp ZP_WORD:30 187.38888888888889 +(byte*~) current_piece_gfx#122 current_piece_gfx#122 zp ZP_WORD:5 2.0 +(byte*~) current_piece_gfx#123 current_piece_gfx#123 zp ZP_WORD:5 11.0 +(byte*) current_piece_gfx#17 current_piece_gfx zp ZP_WORD:30 6.047619047619047 +(byte*) current_piece_gfx#19 current_piece_gfx zp ZP_WORD:30 0.3571428571428571 +(byte*) current_piece_gfx#20 current_piece_gfx zp ZP_WORD:30 1.3333333333333333 +(byte*) current_piece_gfx#35 current_piece_gfx zp ZP_WORD:30 6.0 (byte*) current_piece_gfx#6 current_piece_gfx zp ZP_WORD:30 4.0 -(byte*) current_piece_gfx#62 current_piece_gfx#62 zp ZP_WORD:5 50.699999999999996 +(byte*) current_piece_gfx#63 current_piece_gfx#63 zp ZP_WORD:5 50.699999999999996 +(byte*) current_piece_gfx#7 current_piece_gfx zp ZP_WORD:30 0.24242424242424243 (byte) current_xpos -(byte) current_xpos#113 current_xpos zp ZP_BYTE:32 20.75925925925926 -(byte~) current_xpos#124 current_xpos#124 zp ZP_BYTE:10 1.3333333333333333 -(byte~) current_xpos#125 current_xpos#125 zp ZP_BYTE:10 7.333333333333333 -(byte) current_xpos#17 current_xpos zp ZP_BYTE:32 7.055555555555554 -(byte) current_xpos#20 current_xpos zp ZP_BYTE:32 0.7692307692307692 -(byte) current_xpos#24 current_xpos zp ZP_BYTE:32 0.4666666666666666 -(byte) current_xpos#28 current_xpos zp ZP_BYTE:32 0.43478260869565216 -(byte) current_xpos#41 current_xpos zp ZP_BYTE:32 6.0 +(byte) current_xpos#102 current_xpos zp ZP_BYTE:32 0.3125 +(byte) current_xpos#121 current_xpos zp ZP_BYTE:32 20.75925925925926 +(byte~) current_xpos#132 current_xpos#132 zp ZP_BYTE:10 1.3333333333333333 +(byte~) current_xpos#133 current_xpos#133 zp ZP_BYTE:10 7.333333333333333 +(byte) current_xpos#18 current_xpos zp ZP_BYTE:32 6.047619047619047 +(byte) current_xpos#21 current_xpos zp ZP_BYTE:32 0.7692307692307692 +(byte) current_xpos#25 current_xpos zp ZP_BYTE:32 0.4666666666666666 +(byte) current_xpos#43 current_xpos zp ZP_BYTE:32 6.0 (byte) current_xpos#5 current_xpos zp ZP_BYTE:32 4.0 -(byte) current_xpos#57 current_xpos#57 zp ZP_BYTE:10 5.7 +(byte) current_xpos#58 current_xpos#58 zp ZP_BYTE:10 5.7 (byte) current_xpos#7 current_xpos zp ZP_BYTE:32 4.0 (byte) current_ypos -(byte~) current_ypos#100 reg byte y 1.0 -(byte~) current_ypos#101 reg byte y 4.4 -(byte) current_ypos#11 reg byte y 15.0 -(byte) current_ypos#17 current_ypos zp ZP_BYTE:16 1.7500000000000007 +(byte) current_ypos#10 current_ypos zp ZP_BYTE:16 3.297297297297297 +(byte~) current_ypos#108 reg byte y 1.0 +(byte~) current_ypos#109 reg byte y 4.4 +(byte) current_ypos#12 reg byte y 15.0 +(byte) current_ypos#18 current_ypos zp ZP_BYTE:16 1.683544303797468 (byte) current_ypos#2 current_ypos zp ZP_BYTE:16 4.0 -(byte) current_ypos#22 current_ypos zp ZP_BYTE:16 0.4545454545454546 -(byte) current_ypos#25 current_ypos zp ZP_BYTE:16 3.297297297297297 -(byte) current_ypos#36 current_ypos zp ZP_BYTE:16 6.0 +(byte) current_ypos#38 current_ypos zp ZP_BYTE:16 6.0 +(byte) current_ypos#5 current_ypos zp ZP_BYTE:16 0.3225806451612903 (byte) game_over -(byte) game_over#14 game_over zp ZP_BYTE:33 3.371428571428571 -(byte) game_over#15 game_over zp ZP_BYTE:33 0.46153846153846156 -(byte) game_over#19 game_over zp ZP_BYTE:33 4.804347826086958 -(byte) game_over#26 game_over zp ZP_BYTE:33 6.0 -(byte) game_over#70 game_over zp ZP_BYTE:33 0.19047619047619047 +(byte) game_over#10 game_over zp ZP_BYTE:34 4.804347826086958 +(byte) game_over#15 game_over zp ZP_BYTE:34 3.1052631578947376 +(byte) game_over#28 game_over zp ZP_BYTE:34 6.0 +(byte) game_over#52 game_over zp ZP_BYTE:34 0.3333333333333333 +(byte) game_over#65 game_over zp ZP_BYTE:34 0.4 (byte) irq_cnt -(byte) irq_cnt#0 irq_cnt zp ZP_BYTE:39 0.17391304347826086 -(byte) irq_cnt#1 irq_cnt zp ZP_BYTE:39 3.0 -(byte) irq_cnt#2 irq_cnt zp ZP_BYTE:39 20.0 +(byte) irq_cnt#0 irq_cnt zp ZP_BYTE:40 0.17391304347826086 +(byte) irq_cnt#1 irq_cnt zp ZP_BYTE:40 3.0 +(byte) irq_cnt#2 irq_cnt zp ZP_BYTE:40 20.0 (byte) irq_raster_next -(byte) irq_raster_next#0 irq_raster_next zp ZP_BYTE:35 0.3076923076923077 -(byte) irq_raster_next#1 irq_raster_next zp ZP_BYTE:35 1.0 -(byte) irq_raster_next#2 irq_raster_next zp ZP_BYTE:35 1.3333333333333333 -(byte) irq_raster_next#3 irq_raster_next zp ZP_BYTE:35 1.3333333333333333 -(byte) irq_raster_next#4 irq_raster_next zp ZP_BYTE:35 8.0 +(byte) irq_raster_next#0 irq_raster_next zp ZP_BYTE:36 0.3076923076923077 +(byte) irq_raster_next#1 irq_raster_next zp ZP_BYTE:36 1.0 +(byte) irq_raster_next#2 irq_raster_next zp ZP_BYTE:36 1.3333333333333333 +(byte) irq_raster_next#3 irq_raster_next zp ZP_BYTE:36 1.3333333333333333 +(byte) irq_raster_next#4 irq_raster_next zp ZP_BYTE:36 8.0 (byte) irq_sprite_ptr -(byte) irq_sprite_ptr#0 irq_sprite_ptr zp ZP_BYTE:38 0.25806451612903225 -(byte) irq_sprite_ptr#1 irq_sprite_ptr zp ZP_BYTE:38 20.0 -(byte) irq_sprite_ptr#2 irq_sprite_ptr zp ZP_BYTE:38 20.0 -(byte) irq_sprite_ptr#3 irq_sprite_ptr zp ZP_BYTE:38 20.0 +(byte) irq_sprite_ptr#0 irq_sprite_ptr zp ZP_BYTE:39 0.25806451612903225 +(byte) irq_sprite_ptr#1 irq_sprite_ptr zp ZP_BYTE:39 20.0 +(byte) irq_sprite_ptr#2 irq_sprite_ptr zp ZP_BYTE:39 20.0 +(byte) irq_sprite_ptr#3 irq_sprite_ptr zp ZP_BYTE:39 20.0 (byte) irq_sprite_ypos -(byte) irq_sprite_ypos#0 irq_sprite_ypos zp ZP_BYTE:37 0.27586206896551724 -(byte) irq_sprite_ypos#1 irq_sprite_ypos zp ZP_BYTE:37 20.0 -(byte) irq_sprite_ypos#2 irq_sprite_ypos zp ZP_BYTE:37 20.0 -(byte) irq_sprite_ypos#3 irq_sprite_ypos zp ZP_BYTE:37 20.0 +(byte) irq_sprite_ypos#0 irq_sprite_ypos zp ZP_BYTE:38 0.27586206896551724 +(byte) irq_sprite_ypos#1 irq_sprite_ypos zp ZP_BYTE:38 20.0 +(byte) irq_sprite_ypos#2 irq_sprite_ypos zp ZP_BYTE:38 20.0 +(byte) irq_sprite_ypos#3 irq_sprite_ypos zp ZP_BYTE:38 20.0 (byte[]) keyboard_char_keycodes (byte()) keyboard_event_get() (label) keyboard_event_get::@3 @@ -20966,15 +22416,15 @@ FINAL SYMBOL TABLE (byte[8]) keyboard_events (const byte[8]) keyboard_events#0 keyboard_events = { fill( 8, 0) } (byte) keyboard_events_size -(byte) keyboard_events_size#1 keyboard_events_size zp ZP_BYTE:34 20002.0 -(byte) keyboard_events_size#10 keyboard_events_size zp ZP_BYTE:34 8100.9000000000015 -(byte) keyboard_events_size#13 keyboard_events_size zp ZP_BYTE:34 97.06451612903226 -(byte) keyboard_events_size#16 keyboard_events_size zp ZP_BYTE:34 5.043478260869566 -(byte) keyboard_events_size#19 keyboard_events_size zp ZP_BYTE:34 18.999999999999996 -(byte) keyboard_events_size#2 keyboard_events_size zp ZP_BYTE:34 20002.0 -(byte) keyboard_events_size#29 keyboard_events_size zp ZP_BYTE:34 429.2857142857143 -(byte) keyboard_events_size#30 keyboard_events_size zp ZP_BYTE:34 10201.2 -(byte) keyboard_events_size#4 keyboard_events_size zp ZP_BYTE:34 3.0 +(byte) keyboard_events_size#1 keyboard_events_size zp ZP_BYTE:35 20002.0 +(byte) keyboard_events_size#10 keyboard_events_size zp ZP_BYTE:35 8100.9000000000015 +(byte) keyboard_events_size#13 keyboard_events_size zp ZP_BYTE:35 97.06451612903226 +(byte) keyboard_events_size#16 keyboard_events_size zp ZP_BYTE:35 4.461538461538461 +(byte) keyboard_events_size#19 keyboard_events_size zp ZP_BYTE:35 18.999999999999996 +(byte) keyboard_events_size#2 keyboard_events_size zp ZP_BYTE:35 20002.0 +(byte) keyboard_events_size#29 keyboard_events_size zp ZP_BYTE:35 429.2857142857143 +(byte) keyboard_events_size#30 keyboard_events_size zp ZP_BYTE:35 10201.2 +(byte) keyboard_events_size#4 keyboard_events_size zp ZP_BYTE:35 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) @@ -20998,20 +22448,20 @@ FINAL SYMBOL TABLE (const byte[8]) keyboard_scan_values#0 keyboard_scan_values = { fill( 8, 0) } (byte) level (byte) level#10 level zp ZP_BYTE:23 2.140350877192983 -(byte) level#16 level zp ZP_BYTE:23 3.314285714285714 +(byte) level#16 level zp ZP_BYTE:23 3.052631578947369 (byte) level#18 level zp ZP_BYTE:23 1.3333333333333333 (byte) level#20 level zp ZP_BYTE:23 0.4444444444444444 (byte) level#31 level zp ZP_BYTE:23 6.0 (byte) level_bcd (byte) level_bcd#11 level_bcd zp ZP_BYTE:25 2.0 -(byte) level_bcd#17 level_bcd zp ZP_BYTE:25 2.0701754385964914 +(byte) level_bcd#17 level_bcd zp ZP_BYTE:25 1.966666666666667 (byte) level_bcd#19 level_bcd zp ZP_BYTE:25 1.3333333333333333 (byte) level_bcd#21 level_bcd zp ZP_BYTE:25 2.6666666666666665 (byte) level_bcd#32 level_bcd zp ZP_BYTE:25 6.0 (byte) level_bcd#64 level_bcd zp ZP_BYTE:25 0.6000000000000001 (byte) level_bcd#8 level_bcd zp ZP_BYTE:25 4.0 (word) lines_bcd -(word) lines_bcd#15 lines_bcd zp ZP_WORD:17 2.105263157894737 +(word) lines_bcd#15 lines_bcd zp ZP_WORD:17 2.0000000000000004 (word) lines_bcd#17 lines_bcd zp ZP_WORD:17 1.3333333333333333 (word) lines_bcd#19 lines_bcd zp ZP_WORD:17 2.4400000000000004 (word) lines_bcd#27 lines_bcd zp ZP_WORD:17 6.0 @@ -21027,14 +22477,17 @@ FINAL SYMBOL TABLE (label) main::@29 (label) main::@30 (label) main::@31 +(label) main::@32 (label) main::@33 -(label) main::@34 (label) main::@35 (label) main::@36 (label) main::@37 (label) main::@38 (label) main::@39 (label) main::@4 +(label) main::@40 +(label) main::@41 +(label) main::@42 (label) main::@6 (label) main::@7 (label) main::@9 @@ -21042,6 +22495,14 @@ FINAL SYMBOL TABLE (byte) main::key_event#0 reg byte x 101.0 (byte) main::render (byte) main::render#1 reg byte a 202.0 +(byte) next_piece_idx +(byte) next_piece_idx#10 next_piece_idx zp ZP_BYTE:33 2.608695652173914 +(byte) next_piece_idx#12 reg byte y 3.4 +(byte) next_piece_idx#16 next_piece_idx zp ZP_BYTE:33 3.3421052631578956 +(byte) next_piece_idx#17 next_piece_idx zp ZP_BYTE:33 6.0 +(byte) next_piece_idx#31 next_piece_idx zp ZP_BYTE:33 6.0 +(byte~) next_piece_idx#84 reg byte y 4.0 +(byte~) next_piece_idx#85 reg byte y 22.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 (label) play_collision::@1 @@ -21063,7 +22524,7 @@ FINAL SYMBOL TABLE (byte) play_collision::col#2 col zp ZP_BYTE:15 6375.75 (byte~) play_collision::col#9 col zp ZP_BYTE:15 2002.0 (byte) play_collision::i -(byte) play_collision::i#1 i zp ZP_BYTE:41 1615.6153846153845 +(byte) play_collision::i#1 i zp ZP_BYTE:42 1615.6153846153845 (byte~) play_collision::i#11 i#11 zp ZP_BYTE:14 2002.0 (byte~) play_collision::i#13 i#13 zp ZP_BYTE:14 20002.0 (byte) play_collision::i#2 i#2 zp ZP_BYTE:14 15502.0 @@ -21250,7 +22711,7 @@ FINAL SYMBOL TABLE (label) play_movement::@7 (label) play_movement::@return (byte) play_movement::key_event -(byte) play_movement::key_event#0 key_event zp ZP_BYTE:40 8.916666666666664 +(byte) play_movement::key_event#0 key_event zp ZP_BYTE:41 8.916666666666664 (byte) play_movement::render (byte) play_movement::render#1 render zp ZP_BYTE:9 1.0 (byte) play_movement::render#2 render zp ZP_BYTE:9 0.8 @@ -21299,9 +22760,9 @@ FINAL SYMBOL TABLE (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 (void()) play_spawn_current() -(byte~) play_spawn_current::$1 reg byte a 2002.0 -(byte~) play_spawn_current::$3 $3 zp ZP_BYTE:4 0.08333333333333333 -(byte~) play_spawn_current::$5 reg byte a 4.0 +(byte~) play_spawn_current::$0 $0 zp ZP_BYTE:4 0.06060606060606061 +(byte~) play_spawn_current::$2 reg byte a 4.0 +(byte~) play_spawn_current::$6 reg byte a 2002.0 (label) play_spawn_current::@1 (label) play_spawn_current::@10 (label) play_spawn_current::@11 @@ -21309,9 +22770,11 @@ FINAL SYMBOL TABLE (label) play_spawn_current::@3 (label) play_spawn_current::@9 (label) play_spawn_current::@return +(byte) play_spawn_current::current_piece_idx +(byte) play_spawn_current::current_piece_idx#0 reg byte x 2.0 (byte) play_spawn_current::piece_idx -(byte) play_spawn_current::piece_idx#1 reg byte x 2002.0 -(byte) play_spawn_current::piece_idx#2 reg byte x 334.99999999999994 +(byte) play_spawn_current::piece_idx#1 piece_idx zp ZP_BYTE:33 2002.0 +(byte) play_spawn_current::piece_idx#2 piece_idx zp ZP_BYTE:33 111.66666666666667 (void()) play_update_score((byte) play_update_score::removed) (byte~) play_update_score::$2 reg byte a 4.0 (byte~) play_update_score::$4 reg byte a 4.0 @@ -21320,7 +22783,7 @@ FINAL SYMBOL TABLE (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:42 1.3333333333333333 +(dword) play_update_score::add_bcd#0 add_bcd zp ZP_DWORD:43 1.3333333333333333 (byte) play_update_score::lines_after (byte) play_update_score::lines_after#0 reg byte a 4.0 (byte) play_update_score::lines_before @@ -21430,6 +22893,40 @@ FINAL SYMBOL TABLE (byte) render_moving::ypos2#0 ypos2 zp ZP_BYTE:11 4.0 (byte) render_moving::ypos2#1 ypos2 zp ZP_BYTE:11 67.33333333333333 (byte) render_moving::ypos2#2 ypos2 zp ZP_BYTE:11 27.06666666666667 +(void()) render_next() +(byte~) render_next::$6 reg byte x 1.0 +(label) render_next::@11 +(label) render_next::@2 +(label) render_next::@3 +(label) render_next::@4 +(label) render_next::@5 +(label) render_next::@6 +(label) render_next::@7 +(label) render_next::@9 +(label) render_next::@return +(byte) render_next::c +(byte) render_next::c#1 reg byte x 1501.5 +(byte) render_next::c#2 reg byte x 286.0 +(byte) render_next::cell +(byte) render_next::cell#0 reg byte a 1001.0 +(byte) render_next::l +(byte) render_next::l#1 l zp ZP_BYTE:9 151.5 +(byte) render_next::l#7 l zp ZP_BYTE:9 18.363636363636363 +(word) render_next::next_area_offset +(const word) render_next::next_area_offset#0 next_area_offset = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 12+(byte/signed byte/word/signed word/dword/signed dword) 24+(byte/signed byte/word/signed word/dword/signed dword) 4 +(byte) render_next::next_piece_char +(byte) render_next::next_piece_char#0 next_piece_char zp ZP_BYTE:10 66.86666666666667 +(byte*) render_next::next_piece_gfx +(byte*) render_next::next_piece_gfx#1 next_piece_gfx zp ZP_WORD:5 210.29999999999998 +(byte*) render_next::next_piece_gfx#2 next_piece_gfx zp ZP_WORD:5 1552.0 +(byte*) render_next::next_piece_gfx#3 next_piece_gfx zp ZP_WORD:5 204.0 +(byte*~) render_next::next_piece_gfx#9 next_piece_gfx zp ZP_WORD:5 4.0 +(byte*) render_next::screen_next_area +(byte*) render_next::screen_next_area#10 screen_next_area zp ZP_WORD:7 0.5 +(byte*) render_next::screen_next_area#2 screen_next_area zp ZP_WORD:7 701.0 +(byte*) render_next::screen_next_area#3 screen_next_area zp ZP_WORD:7 67.33333333333333 +(byte*) render_next::screen_next_area#4 screen_next_area zp ZP_WORD:7 684.1666666666667 +(byte*) render_next::screen_next_area#9 screen_next_area zp ZP_WORD:7 204.0 (void()) render_playfield() (byte~) render_playfield::$2 reg byte a 202.0 (byte~) render_playfield::$3 reg byte a 202.0 @@ -21516,17 +23013,19 @@ 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.7551020408163266 -(byte) render_screen_render#21 reg byte x 8.615384615384615 -(byte) render_screen_render#30 render_screen_render#30 zp ZP_BYTE:9 5.6 -(byte~) render_screen_render#64 render_screen_render#64 zp ZP_BYTE:9 5.5 -(byte~) render_screen_render#65 reg byte x 22.0 +(byte) render_screen_render#15 reg byte a 13.0 +(byte) render_screen_render#18 render_screen_render zp ZP_BYTE:3 0.923076923076923 +(byte) render_screen_render#22 reg byte x 8.615384615384615 +(byte) render_screen_render#33 render_screen_render#33 zp ZP_BYTE:9 5.6 +(byte~) render_screen_render#68 reg byte a 11.0 +(byte~) render_screen_render#69 render_screen_render#69 zp ZP_BYTE:9 5.5 +(byte~) render_screen_render#70 reg byte x 22.0 (byte) render_screen_show (byte) render_screen_show#13 render_screen_show zp ZP_BYTE:2 4.333333333333333 -(byte) render_screen_show#16 render_screen_show zp ZP_BYTE:2 0.48571428571428577 +(byte) render_screen_show#16 render_screen_show zp ZP_BYTE:2 0.4473684210526316 (byte) render_screen_showing -(byte) render_screen_showing#0 render_screen_showing zp ZP_BYTE:36 0.4 -(byte) render_screen_showing#1 render_screen_showing zp ZP_BYTE:36 20.0 +(byte) render_screen_showing#0 render_screen_showing zp ZP_BYTE:37 0.4 +(byte) render_screen_showing#1 render_screen_showing zp ZP_BYTE:37 20.0 (void()) render_screen_swap() (label) render_screen_swap::@return (void()) render_show() @@ -21565,7 +23064,7 @@ FINAL SYMBOL TABLE (dword[5]) score_add_bcd (const dword[5]) score_add_bcd#0 score_add_bcd = { fill( 5, 0) } (dword) score_bcd -(dword) score_bcd#14 score_bcd zp ZP_DWORD:19 3.314285714285714 +(dword) score_bcd#14 score_bcd zp ZP_DWORD:19 3.052631578947369 (dword) score_bcd#16 score_bcd zp ZP_DWORD:19 1.3333333333333333 (dword) score_bcd#18 score_bcd zp ZP_DWORD:19 2.352941176470588 (dword) score_bcd#27 score_bcd zp ZP_DWORD:19 6.0 @@ -21613,7 +23112,7 @@ interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() (byte) sprites_irq::ptr#3 reg byte a 2.6666666666666665 (byte) sprites_irq::ptr#4 reg byte a 4.0 (byte) sprites_irq::raster_sprite_gfx_modify -(byte) sprites_irq::raster_sprite_gfx_modify#0 raster_sprite_gfx_modify zp ZP_BYTE:46 6.5 +(byte) sprites_irq::raster_sprite_gfx_modify#0 raster_sprite_gfx_modify zp ZP_BYTE:47 6.5 (label) sprites_irq::toSpritePtr2 (word~) sprites_irq::toSpritePtr2_$0 (word~) sprites_irq::toSpritePtr2_$1 @@ -21634,42 +23133,45 @@ interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() (byte*) toSpritePtr1_sprite zp ZP_BYTE:2 [ render_screen_show#16 render_screen_show#13 play_init::idx#2 play_init::idx#1 sprites_init::xpos#2 sprites_init::xpos#1 render_screen_original::y#6 render_screen_original::y#1 ] -zp ZP_BYTE:3 [ render_screen_render#17 render_screen_render#11 ] -zp ZP_BYTE:4 [ current_movedown_counter#16 current_movedown_counter#14 current_movedown_counter#12 play_remove_lines::y#8 play_remove_lines::y#1 play_lock_current::l#6 play_lock_current::l#1 play_spawn_current::$3 play_update_score::lines_before#0 ] -zp ZP_WORD:5 [ render_score::screen#2 render_bcd::screen#6 render_bcd::screen#0 render_bcd::screen#1 render_bcd::screen#2 render_bcd::screen#3 render_bcd::screen#4 render_bcd::screen#5 current_piece_gfx#62 current_piece_gfx#114 current_piece_gfx#115 render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 current_piece#16 current_piece#90 current_piece#91 current_piece#92 current_piece#93 current_piece#94 play_collision::piece_gfx#0 play_init::pli#2 play_init::pli#1 render_init::li_1#2 render_init::li_1#1 render_screen_original::oscr#2 render_screen_original::oscr#4 render_screen_original::oscr#1 play_lock_current::playfield_line#0 ] -zp ZP_WORD:7 [ render_bcd::offset#6 render_bcd::screen_pos#3 render_bcd::screen_pos#0 render_bcd::screen_pos#2 render_bcd::screen_pos#1 render_init::li_2#2 render_init::li_2#1 render_screen_original::ocols#2 render_screen_original::ocols#4 render_screen_original::ocols#1 render_moving::screen_line#0 play_collision::playfield_line#0 ] +zp ZP_BYTE:3 [ render_screen_render#18 render_screen_render#11 ] +zp ZP_BYTE:4 [ current_movedown_counter#16 current_movedown_counter#14 current_movedown_counter#12 play_remove_lines::y#8 play_remove_lines::y#1 play_lock_current::l#6 play_lock_current::l#1 play_spawn_current::$0 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 render_next::next_piece_gfx#2 render_next::next_piece_gfx#3 render_next::next_piece_gfx#1 render_next::next_piece_gfx#9 current_piece_gfx#63 current_piece_gfx#122 current_piece_gfx#123 render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 current_piece#17 current_piece#98 current_piece#99 current_piece#100 current_piece#101 current_piece#102 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_next::screen_next_area#4 render_next::screen_next_area#9 render_next::screen_next_area#3 render_next::screen_next_area#10 render_next::screen_next_area#2 render_init::li_2#2 render_init::li_2#1 render_screen_original::ocols#2 render_screen_original::ocols#4 render_screen_original::ocols#1 render_moving::screen_line#0 play_collision::playfield_line#0 ] reg byte y [ render_bcd::only_low#6 ] reg byte x [ render_bcd::bcd#6 render_bcd::bcd#0 render_bcd::bcd#1 render_bcd::bcd#2 render_bcd::bcd#3 render_bcd::bcd#4 render_bcd::bcd#5 ] -reg byte y [ current_ypos#11 current_ypos#100 current_ypos#101 ] -zp ZP_BYTE:9 [ render_screen_render#30 render_screen_render#64 render_playfield::l#2 render_playfield::l#1 play_movement::return#2 play_movement::render#1 play_movement::return#0 play_movement::render#2 play_remove_lines::removed#11 play_remove_lines::removed#7 play_remove_lines::removed#1 play_lock_current::i#2 play_lock_current::i#3 play_lock_current::i#7 play_lock_current::i#9 keyboard_event_pressed::keycode#5 keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] -zp ZP_BYTE:10 [ current_xpos#57 current_xpos#124 current_xpos#125 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 play_remove_lines::x#2 play_remove_lines::x#1 play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 keyboard_event_scan::keycode#15 keyboard_event_pressed::row_bits#0 ] -reg byte x [ current_piece_char#64 current_piece_char#102 current_piece_char#103 ] +reg byte a [ render_screen_render#15 render_screen_render#68 ] +reg byte y [ next_piece_idx#12 next_piece_idx#84 next_piece_idx#85 ] +zp ZP_BYTE:9 [ render_next::l#7 render_next::l#1 render_screen_render#33 render_screen_render#69 render_playfield::l#2 render_playfield::l#1 play_movement::return#2 play_movement::render#1 play_movement::return#0 play_movement::render#2 play_remove_lines::removed#11 play_remove_lines::removed#7 play_remove_lines::removed#1 play_lock_current::i#2 play_lock_current::i#3 play_lock_current::i#7 play_lock_current::i#9 keyboard_event_pressed::keycode#5 keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] +reg byte x [ render_next::c#2 render_next::c#1 ] +reg byte y [ current_ypos#12 current_ypos#108 current_ypos#109 ] +zp ZP_BYTE:10 [ current_xpos#58 current_xpos#132 current_xpos#133 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 play_remove_lines::x#2 play_remove_lines::x#1 play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 keyboard_event_scan::keycode#15 render_next::next_piece_char#0 keyboard_event_pressed::row_bits#0 ] +reg byte x [ current_piece_char#67 current_piece_char#110 current_piece_char#111 ] zp ZP_BYTE:11 [ render_moving::ypos2#2 render_moving::ypos2#0 render_moving::ypos2#1 render_playfield::c#2 render_playfield::c#1 play_collision::ypos#5 play_collision::ypos#0 play_collision::ypos#1 play_collision::ypos#2 play_collision::ypos#3 play_collision::ypos#4 play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 play_remove_lines::full#4 play_remove_lines::full#2 play_lock_current::i#1 keyboard_event_scan::row_scan#0 ] zp ZP_BYTE:12 [ render_moving::l#4 render_moving::l#1 play_collision::xpos#6 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 play_collision::xpos#4 play_remove_lines::c#0 ] zp ZP_BYTE:13 [ render_moving::i#4 render_moving::i#3 render_moving::i#8 render_moving::i#2 render_moving::i#1 play_collision::l#6 play_collision::l#1 ] zp ZP_BYTE:14 [ render_moving::xpos#2 render_moving::xpos#0 render_moving::xpos#1 play_collision::i#2 play_collision::i#3 play_collision::i#11 play_collision::i#13 ] zp ZP_BYTE:15 [ render_moving::c#2 render_moving::c#1 play_collision::col#2 play_collision::col#9 play_collision::col#1 ] -reg byte x [ render_screen_render#21 render_screen_render#65 ] +reg byte x [ render_screen_render#22 render_screen_render#70 ] reg byte a [ play_move_rotate::return#2 ] reg byte x [ play_collision::orientation#5 play_collision::orientation#0 play_collision::orientation#1 play_collision::orientation#2 play_collision::orientation#3 ] reg byte x [ play_collision::c#2 play_collision::c#1 ] reg byte a [ play_collision::return#15 ] reg byte a [ play_move_leftright::return#2 ] 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:16 [ current_ypos#36 current_ypos#25 current_ypos#17 current_ypos#22 current_ypos#2 play_lock_current::ypos2#2 play_lock_current::ypos2#0 play_lock_current::ypos2#1 ] +zp ZP_BYTE:16 [ current_ypos#38 current_ypos#10 current_ypos#18 current_ypos#5 current_ypos#2 play_lock_current::ypos2#2 play_lock_current::ypos2#0 play_lock_current::ypos2#1 ] zp ZP_WORD:17 [ lines_bcd#27 lines_bcd#17 lines_bcd#19 lines_bcd#15 lines_bcd#30 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#27 score_bcd#16 score_bcd#18 score_bcd#14 score_bcd#30 ] zp ZP_BYTE:23 [ level#31 level#18 level#10 level#16 level#20 ] zp ZP_BYTE:24 [ current_movedown_slow#38 current_movedown_slow#23 current_movedown_slow#14 current_movedown_slow#21 current_movedown_slow#1 current_movedown_slow#69 current_movedown_slow#10 ] zp ZP_BYTE:25 [ level_bcd#32 level_bcd#19 level_bcd#11 level_bcd#17 level_bcd#64 level_bcd#21 level_bcd#8 ] -zp ZP_WORD:26 [ current_piece#27 current_piece#95 current_piece#20 current_piece#14 current_piece#88 render_screen_original::cols#6 render_screen_original::cols#5 render_screen_original::cols#4 render_screen_original::cols#7 render_screen_original::cols#3 render_screen_original::cols#1 render_screen_original::cols#2 ] -zp ZP_BYTE:28 [ current_piece_char#27 current_piece_char#19 current_piece_char#14 current_piece_char#16 ] -zp ZP_BYTE:29 [ current_orientation#36 current_orientation#12 current_orientation#16 current_orientation#19 current_orientation#24 current_orientation#7 ] -zp ZP_WORD:30 [ current_piece_gfx#33 current_piece_gfx#103 current_piece_gfx#16 current_piece_gfx#21 current_piece_gfx#18 current_piece_gfx#19 current_piece_gfx#6 ] -zp ZP_BYTE:32 [ current_xpos#41 current_xpos#113 current_xpos#17 current_xpos#28 current_xpos#20 current_xpos#24 current_xpos#7 current_xpos#5 ] +zp ZP_WORD:26 [ current_piece#29 current_piece#103 current_piece#10 current_piece#15 current_piece#96 render_screen_original::cols#6 render_screen_original::cols#5 render_screen_original::cols#4 render_screen_original::cols#7 render_screen_original::cols#3 render_screen_original::cols#1 render_screen_original::cols#2 ] +zp ZP_BYTE:28 [ current_piece_char#29 current_piece_char#21 current_piece_char#15 current_piece_char#4 ] +zp ZP_BYTE:29 [ current_orientation#38 current_orientation#13 current_orientation#17 current_orientation#20 current_orientation#25 current_orientation#7 ] +zp ZP_WORD:30 [ current_piece_gfx#35 current_piece_gfx#111 current_piece_gfx#17 current_piece_gfx#7 current_piece_gfx#19 current_piece_gfx#20 current_piece_gfx#6 ] +zp ZP_BYTE:32 [ current_xpos#43 current_xpos#121 current_xpos#18 current_xpos#102 current_xpos#21 current_xpos#25 current_xpos#7 current_xpos#5 ] reg byte x [ play_move_down::return#3 ] -zp ZP_BYTE:33 [ game_over#70 game_over#26 game_over#19 game_over#14 game_over#15 ] -reg byte x [ play_spawn_current::piece_idx#2 play_spawn_current::piece_idx#1 ] +zp ZP_BYTE:33 [ next_piece_idx#17 next_piece_idx#31 next_piece_idx#10 next_piece_idx#16 play_spawn_current::piece_idx#2 play_spawn_current::piece_idx#1 ] +zp ZP_BYTE:34 [ game_over#65 game_over#28 game_over#10 game_over#15 game_over#52 ] reg byte x [ play_increase_level::b#2 play_increase_level::b#1 ] 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 ] @@ -21677,27 +23179,29 @@ reg byte x [ play_lock_current::c#2 play_lock_current::c#1 ] reg byte x [ 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:34 [ keyboard_events_size#10 keyboard_events_size#29 keyboard_events_size#19 keyboard_events_size#16 keyboard_events_size#13 keyboard_events_size#4 keyboard_events_size#30 keyboard_events_size#2 keyboard_events_size#1 ] +zp ZP_BYTE:35 [ 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 [ play_init::b#2 play_init::b#1 ] reg byte x [ sprites_init::s#2 sprites_init::s#1 ] reg byte x [ render_init::i#2 render_init::i#1 ] reg byte x [ render_screen_original::x#6 render_screen_original::x#5 render_screen_original::x#4 render_screen_original::x#1 render_screen_original::x#2 render_screen_original::x#3 ] -zp ZP_BYTE:35 [ irq_raster_next#4 irq_raster_next#3 irq_raster_next#1 irq_raster_next#2 irq_raster_next#0 ] -zp ZP_BYTE:36 [ render_screen_showing#0 render_screen_showing#1 ] -zp ZP_BYTE:37 [ irq_sprite_ypos#0 irq_sprite_ypos#3 irq_sprite_ypos#2 irq_sprite_ypos#1 ] -zp ZP_BYTE:38 [ irq_sprite_ptr#0 irq_sprite_ptr#3 irq_sprite_ptr#2 irq_sprite_ptr#1 ] -zp ZP_BYTE:39 [ irq_cnt#0 irq_cnt#1 irq_cnt#2 ] +zp ZP_BYTE:36 [ irq_raster_next#4 irq_raster_next#3 irq_raster_next#1 irq_raster_next#2 irq_raster_next#0 ] +zp ZP_BYTE:37 [ render_screen_showing#0 render_screen_showing#1 ] +zp ZP_BYTE:38 [ irq_sprite_ypos#0 irq_sprite_ypos#3 irq_sprite_ypos#2 irq_sprite_ypos#1 ] +zp ZP_BYTE:39 [ irq_sprite_ptr#0 irq_sprite_ptr#3 irq_sprite_ptr#2 irq_sprite_ptr#1 ] +zp ZP_BYTE:40 [ irq_cnt#0 irq_cnt#1 irq_cnt#2 ] reg byte x [ keyboard_event_get::return#3 ] reg byte x [ main::key_event#0 ] -zp ZP_BYTE:40 [ play_movement::key_event#0 ] +zp ZP_BYTE:41 [ play_movement::key_event#0 ] reg byte a [ play_movement::return#3 ] reg byte a [ main::render#1 ] 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 x [ render_next::$6 ] +reg byte a [ render_next::cell#0 ] reg byte a [ render_moving::$2 ] reg byte a [ render_moving::current_cell#0 ] reg byte a [ render_playfield::$2 ] @@ -21715,7 +23219,7 @@ reg byte a [ play_move_rotate::$2 ] reg byte a [ play_collision::return#14 ] reg byte a [ play_move_rotate::$6 ] reg byte a [ play_move_rotate::$4 ] -zp ZP_BYTE:41 [ play_collision::i#1 ] +zp ZP_BYTE:42 [ play_collision::i#1 ] reg byte a [ play_collision::$7 ] reg byte a [ play_collision::return#13 ] reg byte a [ play_move_leftright::$4 ] @@ -21728,14 +23232,15 @@ 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 x [ play_update_score::removed#0 ] +reg byte x [ play_spawn_current::current_piece_idx#0 ] reg byte a [ play_collision::return#10 ] -reg byte a [ play_spawn_current::$5 ] +reg byte a [ play_spawn_current::$2 ] reg byte a [ sid_rnd::return#2 ] -reg byte a [ play_spawn_current::$1 ] +reg byte a [ play_spawn_current::$6 ] reg byte a [ sid_rnd::return#0 ] reg byte a [ play_update_score::$2 ] reg byte a [ play_update_score::$4 ] -zp ZP_DWORD:42 [ play_update_score::add_bcd#0 ] +zp ZP_DWORD:43 [ play_update_score::add_bcd#0 ] reg byte a [ play_update_score::$5 ] reg byte a [ play_update_score::lines_after#0 ] reg byte a [ play_increase_level::$1 ] @@ -21766,7 +23271,7 @@ reg byte a [ render_init::$13 ] reg byte a [ render_init::$14 ] reg byte a [ sprites_irq::ypos#0 ] reg byte x [ sprites_irq::$0 ] -zp ZP_BYTE:46 [ sprites_irq::raster_sprite_gfx_modify#0 ] +zp ZP_BYTE:47 [ sprites_irq::raster_sprite_gfx_modify#0 ] reg byte x [ sprites_irq::ptr#0 ] reg byte a [ sprites_irq::ptr#3 ] reg byte a [ sprites_irq::ptr#4 ] @@ -21775,7 +23280,7 @@ reg byte a [ sprites_irq::ptr#2 ] FINAL ASSEMBLER -Score: 3285184 +Score: 3365334 //SEG0 Basic Upstart .pc = $801 "Basic" @@ -21857,41 +23362,42 @@ Score: 3285184 .label PLAYFIELD_SPRITE_PTRS_2 = PLAYFIELD_SCREEN_2+SPRITE_PTRS .const IRQ_RASTER_FIRST = SPRITES_FIRST_YPOS+$13 .const toSpritePtr1_return = PLAYFIELD_SPRITES>>6 - .label keyboard_events_size = $22 - .label render_screen_showing = $24 - .label irq_raster_next = $23 - .label irq_sprite_ypos = $25 - .label irq_sprite_ptr = $26 - .label irq_cnt = $27 + .label keyboard_events_size = $23 + .label render_screen_showing = $25 + .label irq_raster_next = $24 + .label irq_sprite_ypos = $26 + .label irq_sprite_ptr = $27 + .label irq_cnt = $28 .label current_movedown_slow = $18 .label current_ypos = $10 .label current_xpos = $20 .label current_orientation = $1d .label current_piece_gfx = $1e + .label current_piece_char = $1c .label level_bcd = $19 + .label current_piece = $1a + .label game_over = $22 + .label next_piece_idx = $21 .label level = $17 .label render_screen_render = 3 .label render_screen_show = 2 .label current_movedown_counter = 4 .label lines_bcd = $11 .label score_bcd = $13 - .label current_piece = $1a - .label current_piece_char = $1c - .label game_over = $21 - .label current_piece_16 = 5 - .label render_screen_render_30 = 9 - .label current_xpos_57 = $a - .label current_piece_gfx_62 = 5 - .label render_screen_render_64 = 9 - .label current_xpos_124 = $a - .label current_xpos_125 = $a - .label current_piece_gfx_114 = 5 - .label current_piece_gfx_115 = 5 - .label current_piece_90 = 5 - .label current_piece_91 = 5 - .label current_piece_92 = 5 - .label current_piece_93 = 5 - .label current_piece_94 = 5 + .label current_piece_17 = 5 + .label render_screen_render_33 = 9 + .label current_xpos_58 = $a + .label current_piece_gfx_63 = 5 + .label render_screen_render_69 = 9 + .label current_xpos_132 = $a + .label current_xpos_133 = $a + .label current_piece_gfx_122 = 5 + .label current_piece_gfx_123 = 5 + .label current_piece_98 = 5 + .label current_piece_99 = 5 + .label current_piece_100 = 5 + .label current_piece_101 = 5 + .label current_piece_102 = 5 //SEG2 @begin bbegin: //SEG3 @14 @@ -21901,30 +23407,30 @@ 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 @22 +//SEG8 @23 //SEG9 kickasm(location (const byte*) PLAYFIELD_SPRITES#0) {{ .var sprites = LoadPicture("playfield-sprites.png", List().add($010101, $000000)) // Put the sprites into memory .for(var sy=0;sy<10;sy++) { .var sprite_gfx_y = sy*20 .for(var sx=0;sx<3;sx++) { .for (var y=0;y<21; y++) { .var gfx_y = sprite_gfx_y + mod(2100+y-sprite_gfx_y,21) .for (var c=0; c<3; c++) { .byte sprites.getSinglecolorByte(sx*3+c,gfx_y) } } .byte 0 } } }} -//SEG10 @23 +//SEG10 @24 //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 ← (const byte) SPRITES_FIRST_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuz1=vbuc1 lda #SPRITES_FIRST_YPOS+$15 sta irq_sprite_ypos -//SEG13 [8] phi from @23 to toSpritePtr1 [phi:@23->toSpritePtr1] +//SEG13 [8] phi from @24 to toSpritePtr1 [phi:@24->toSpritePtr1] //SEG14 toSpritePtr1 -//SEG15 @38 +//SEG15 @39 //SEG16 [9] (byte) irq_sprite_ptr#0 ← (const byte) toSpritePtr1_return#0+(byte/signed byte/word/signed word/dword/signed dword) 3 -- vbuz1=vbuc1 lda #toSpritePtr1_return+3 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 @38 to @37 [phi:@38->@37] -//SEG19 @37 +//SEG18 [11] phi from @39 to @38 [phi:@39->@38] +//SEG19 @38 //SEG20 [12] call main -//SEG21 [14] phi from @37 to main [phi:@37->main] +//SEG21 [14] phi from @38 to main [phi:@38->main] jsr main -//SEG22 [13] phi from @37 to @end [phi:@37->@end] +//SEG22 [13] phi from @38 to @end [phi:@38->@end] //SEG23 @end //SEG24 main main: { @@ -21934,7 +23440,7 @@ main: { //SEG27 asm { sei } sei //SEG28 [17] call render_init - //SEG29 [470] phi from main::@25 to render_init [phi:main::@25->render_init] + //SEG29 [499] phi from main::@25 to render_init [phi:main::@25->render_init] jsr render_init //SEG30 [18] phi from main::@25 to main::@26 [phi:main::@25->main::@26] //SEG31 main::@26 @@ -21947,364 +23453,395 @@ main: { //SEG36 [22] phi from main::@27 to main::@28 [phi:main::@27->main::@28] //SEG37 main::@28 //SEG38 [23] call play_init - //SEG39 [429] phi from main::@28 to play_init [phi:main::@28->play_init] + //SEG39 [458] phi from main::@28 to play_init [phi:main::@28->play_init] jsr play_init //SEG40 [24] phi from main::@28 to main::@29 [phi:main::@28->main::@29] //SEG41 main::@29 //SEG42 [25] call play_spawn_current - //SEG43 [257] phi from main::@29 to play_spawn_current [phi:main::@29->play_spawn_current] - //SEG44 [257] phi (byte) game_over#70 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@29->play_spawn_current#0] -- vbuz1=vbuc1 + //SEG43 [285] phi from main::@29 to play_spawn_current [phi:main::@29->play_spawn_current] + //SEG44 [285] phi (byte) game_over#65 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@29->play_spawn_current#0] -- vbuz1=vbuc1 lda #0 sta game_over + //SEG45 [285] phi (byte) next_piece_idx#17 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@29->play_spawn_current#1] -- vbuz1=vbuc1 + sta next_piece_idx jsr play_spawn_current - //SEG45 [26] phi from main::@29 to main::@30 [phi:main::@29->main::@30] - //SEG46 main::@30 - //SEG47 [27] call render_playfield - //SEG48 [122] phi from main::@30 to render_playfield [phi:main::@30->render_playfield] - //SEG49 [122] phi (byte) render_screen_render#21 = (byte/signed byte/word/signed word/dword/signed dword) 64 [phi:main::@30->render_playfield#0] -- vbuxx=vbuc1 + //SEG46 [26] phi from main::@29 to main::@30 [phi:main::@29->main::@30] + //SEG47 main::@30 + //SEG48 [27] call play_spawn_current + //SEG49 [285] phi from main::@30 to play_spawn_current [phi:main::@30->play_spawn_current] + //SEG50 [285] phi (byte) game_over#65 = (byte) game_over#52 [phi:main::@30->play_spawn_current#0] -- register_copy + //SEG51 [285] phi (byte) next_piece_idx#17 = (byte) play_spawn_current::piece_idx#2 [phi:main::@30->play_spawn_current#1] -- register_copy + jsr play_spawn_current + //SEG52 [28] phi from main::@30 to main::@31 [phi:main::@30->main::@31] + //SEG53 main::@31 + //SEG54 [29] call render_playfield + //SEG55 [150] phi from main::@31 to render_playfield [phi:main::@31->render_playfield] + //SEG56 [150] phi (byte) render_screen_render#22 = (byte/signed byte/word/signed word/dword/signed dword) 64 [phi:main::@31->render_playfield#0] -- vbuxx=vbuc1 ldx #$40 jsr render_playfield - //SEG50 main::@31 - //SEG51 [28] (byte~) current_ypos#100 ← (byte) current_ypos#22 -- vbuyy=vbuz1 + //SEG57 main::@32 + //SEG58 [30] (byte~) current_ypos#108 ← (byte) current_ypos#5 -- vbuyy=vbuz1 ldy current_ypos - //SEG52 [29] (byte~) current_xpos#124 ← (byte) current_xpos#28 -- vbuz1=vbuz2 + //SEG59 [31] (byte~) current_xpos#132 ← (byte) current_xpos#102 -- vbuz1=vbuz2 lda current_xpos - sta current_xpos_124 - //SEG53 [30] (byte*~) current_piece_gfx#114 ← (byte*) current_piece_gfx#21 -- pbuz1=pbuz2 + sta current_xpos_132 + //SEG60 [32] (byte*~) current_piece_gfx#122 ← (byte*) current_piece_gfx#7 -- pbuz1=pbuz2 lda current_piece_gfx - sta current_piece_gfx_114 + sta current_piece_gfx_122 lda current_piece_gfx+1 - sta current_piece_gfx_114+1 - //SEG54 [31] (byte~) current_piece_char#102 ← (byte) current_piece_char#16 -- vbuxx=vbuz1 + sta current_piece_gfx_122+1 + //SEG61 [33] (byte~) current_piece_char#110 ← (byte) current_piece_char#4 -- vbuxx=vbuz1 ldx current_piece_char - //SEG55 [32] call render_moving - //SEG56 [101] phi from main::@31 to render_moving [phi:main::@31->render_moving] - //SEG57 [101] phi (byte) current_piece_char#64 = (byte~) current_piece_char#102 [phi:main::@31->render_moving#0] -- register_copy - //SEG58 [101] phi (byte*) current_piece_gfx#62 = (byte*~) current_piece_gfx#114 [phi:main::@31->render_moving#1] -- register_copy - //SEG59 [101] phi (byte) current_xpos#57 = (byte~) current_xpos#124 [phi:main::@31->render_moving#2] -- register_copy - //SEG60 [101] phi (byte) render_screen_render#30 = (byte/signed byte/word/signed word/dword/signed dword) 64 [phi:main::@31->render_moving#3] -- vbuz1=vbuc1 + //SEG62 [34] call render_moving + //SEG63 [129] phi from main::@32 to render_moving [phi:main::@32->render_moving] + //SEG64 [129] phi (byte) current_piece_char#67 = (byte~) current_piece_char#110 [phi:main::@32->render_moving#0] -- register_copy + //SEG65 [129] phi (byte*) current_piece_gfx#63 = (byte*~) current_piece_gfx#122 [phi:main::@32->render_moving#1] -- register_copy + //SEG66 [129] phi (byte) current_xpos#58 = (byte~) current_xpos#132 [phi:main::@32->render_moving#2] -- register_copy + //SEG67 [129] phi (byte) render_screen_render#33 = (byte/signed byte/word/signed word/dword/signed dword) 64 [phi:main::@32->render_moving#3] -- vbuz1=vbuc1 lda #$40 - sta render_screen_render_30 - //SEG61 [101] phi (byte) current_ypos#11 = (byte~) current_ypos#100 [phi:main::@31->render_moving#4] -- register_copy + sta render_screen_render_33 + //SEG68 [129] phi (byte) current_ypos#12 = (byte~) current_ypos#108 [phi:main::@32->render_moving#4] -- register_copy jsr render_moving - //SEG62 [33] (byte*~) current_piece#88 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) -- pbuz1=pptc1_derefidx_vbuz2 - ldy play_spawn_current._3 + //SEG69 main::@33 + //SEG70 [35] (byte~) next_piece_idx#84 ← (byte) play_spawn_current::piece_idx#2 -- vbuyy=vbuz1 + ldy play_spawn_current.piece_idx + //SEG71 [36] call render_next + //SEG72 [108] phi from main::@33 to render_next [phi:main::@33->render_next] + //SEG73 [108] phi (byte) next_piece_idx#12 = (byte~) next_piece_idx#84 [phi:main::@33->render_next#0] -- register_copy + //SEG74 [108] phi (byte) render_screen_render#15 = (byte/signed byte/word/signed word/dword/signed dword) 64 [phi:main::@33->render_next#1] -- vbuaa=vbuc1 + lda #$40 + jsr render_next + //SEG75 [37] (byte*~) current_piece#96 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$0) -- pbuz1=pptc1_derefidx_vbuz2 + ldy play_spawn_current._0 lda PIECES,y sta current_piece lda PIECES+1,y sta current_piece+1 - //SEG63 [34] phi from main::@31 to main::@1 [phi:main::@31->main::@1] - //SEG64 [34] phi (byte) level_bcd#11 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@31->main::@1#0] -- vbuz1=vbuc1 + //SEG76 [38] phi from main::@33 to main::@1 [phi:main::@33->main::@1] + //SEG77 [38] phi (byte) level_bcd#11 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@33->main::@1#0] -- vbuz1=vbuc1 lda #0 sta level_bcd - //SEG65 [34] phi (byte) level#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@31->main::@1#1] -- vbuz1=vbuc1 + //SEG78 [38] phi (byte) level#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@33->main::@1#1] -- vbuz1=vbuc1 sta level - //SEG66 [34] phi (dword) score_bcd#18 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@31->main::@1#2] -- vduz1=vbuc1 + //SEG79 [38] phi (dword) score_bcd#18 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@33->main::@1#2] -- vduz1=vbuc1 sta score_bcd sta score_bcd+1 sta score_bcd+2 sta score_bcd+3 - //SEG67 [34] phi (word) lines_bcd#19 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@31->main::@1#3] -- vwuz1=vbuc1 + //SEG80 [38] phi (word) lines_bcd#19 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@33->main::@1#3] -- vwuz1=vbuc1 sta lines_bcd sta lines_bcd+1 - //SEG68 [34] phi (byte) current_movedown_counter#16 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@31->main::@1#4] -- vbuz1=vbuc1 + //SEG81 [38] phi (byte) current_movedown_counter#16 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@33->main::@1#4] -- vbuz1=vbuc1 sta current_movedown_counter - //SEG69 [34] phi (byte) keyboard_events_size#19 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@31->main::@1#5] -- vbuz1=vbuc1 + //SEG82 [38] phi (byte) keyboard_events_size#19 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@33->main::@1#5] -- vbuz1=vbuc1 sta keyboard_events_size - //SEG70 [34] phi (byte) game_over#19 = (byte) game_over#15 [phi:main::@31->main::@1#6] -- register_copy - //SEG71 [34] phi (byte) current_ypos#25 = (byte) current_ypos#22 [phi:main::@31->main::@1#7] -- register_copy - //SEG72 [34] phi (byte) current_xpos#113 = (byte) current_xpos#28 [phi:main::@31->main::@1#8] -- register_copy - //SEG73 [34] phi (byte*) current_piece_gfx#103 = (byte*) current_piece_gfx#21 [phi:main::@31->main::@1#9] -- register_copy - //SEG74 [34] phi (byte) current_orientation#12 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@31->main::@1#10] -- vbuz1=vbuc1 + //SEG83 [38] phi (byte) next_piece_idx#10 = (byte) play_spawn_current::piece_idx#2 [phi:main::@33->main::@1#6] -- register_copy + //SEG84 [38] phi (byte) game_over#10 = (byte) game_over#52 [phi:main::@33->main::@1#7] -- register_copy + //SEG85 [38] phi (byte) current_ypos#10 = (byte) current_ypos#5 [phi:main::@33->main::@1#8] -- register_copy + //SEG86 [38] phi (byte) current_xpos#121 = (byte) current_xpos#102 [phi:main::@33->main::@1#9] -- register_copy + //SEG87 [38] phi (byte*) current_piece_gfx#111 = (byte*) current_piece_gfx#7 [phi:main::@33->main::@1#10] -- register_copy + //SEG88 [38] phi (byte) current_orientation#13 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@33->main::@1#11] -- vbuz1=vbuc1 sta current_orientation - //SEG75 [34] phi (byte) current_piece_char#19 = (byte) current_piece_char#16 [phi:main::@31->main::@1#11] -- register_copy - //SEG76 [34] phi (byte*) current_piece#20 = (byte*~) current_piece#88 [phi:main::@31->main::@1#12] -- register_copy - //SEG77 [34] phi (byte) current_movedown_slow#14 = (byte) current_movedown_slow#1 [phi:main::@31->main::@1#13] -- register_copy - //SEG78 [34] phi (byte) render_screen_render#17 = (byte/signed byte/word/signed word/dword/signed dword) 64 [phi:main::@31->main::@1#14] -- vbuz1=vbuc1 + //SEG89 [38] phi (byte) current_piece_char#21 = (byte) current_piece_char#4 [phi:main::@33->main::@1#12] -- register_copy + //SEG90 [38] phi (byte*) current_piece#10 = (byte*~) current_piece#96 [phi:main::@33->main::@1#13] -- register_copy + //SEG91 [38] phi (byte) current_movedown_slow#14 = (byte) current_movedown_slow#1 [phi:main::@33->main::@1#14] -- register_copy + //SEG92 [38] phi (byte) render_screen_render#18 = (byte/signed byte/word/signed word/dword/signed dword) 64 [phi:main::@33->main::@1#15] -- vbuz1=vbuc1 lda #$40 sta render_screen_render - //SEG79 [34] phi (byte) render_screen_show#16 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@31->main::@1#15] -- vbuz1=vbuc1 + //SEG93 [38] phi (byte) render_screen_show#16 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:main::@33->main::@1#16] -- vbuz1=vbuc1 lda #0 sta render_screen_show - //SEG80 [34] phi from main::@11 to main::@1 [phi:main::@11->main::@1] - //SEG81 [34] phi (byte) level_bcd#11 = (byte) level_bcd#17 [phi:main::@11->main::@1#0] -- register_copy - //SEG82 [34] phi (byte) level#10 = (byte) level#16 [phi:main::@11->main::@1#1] -- register_copy - //SEG83 [34] phi (dword) score_bcd#18 = (dword) score_bcd#14 [phi:main::@11->main::@1#2] -- register_copy - //SEG84 [34] phi (word) lines_bcd#19 = (word) lines_bcd#15 [phi:main::@11->main::@1#3] -- register_copy - //SEG85 [34] phi (byte) current_movedown_counter#16 = (byte) current_movedown_counter#14 [phi:main::@11->main::@1#4] -- register_copy - //SEG86 [34] phi (byte) keyboard_events_size#19 = (byte) keyboard_events_size#16 [phi:main::@11->main::@1#5] -- register_copy - //SEG87 [34] phi (byte) game_over#19 = (byte) game_over#14 [phi:main::@11->main::@1#6] -- register_copy - //SEG88 [34] phi (byte) current_ypos#25 = (byte) current_ypos#17 [phi:main::@11->main::@1#7] -- register_copy - //SEG89 [34] phi (byte) current_xpos#113 = (byte) current_xpos#17 [phi:main::@11->main::@1#8] -- register_copy - //SEG90 [34] phi (byte*) current_piece_gfx#103 = (byte*) current_piece_gfx#16 [phi:main::@11->main::@1#9] -- register_copy - //SEG91 [34] phi (byte) current_orientation#12 = (byte) current_orientation#16 [phi:main::@11->main::@1#10] -- register_copy - //SEG92 [34] phi (byte) current_piece_char#19 = (byte) current_piece_char#14 [phi:main::@11->main::@1#11] -- register_copy - //SEG93 [34] phi (byte*) current_piece#20 = (byte*) current_piece#14 [phi:main::@11->main::@1#12] -- register_copy - //SEG94 [34] phi (byte) current_movedown_slow#14 = (byte) current_movedown_slow#21 [phi:main::@11->main::@1#13] -- register_copy - //SEG95 main::@1 - //SEG96 main::@4 + //SEG94 [38] phi from main::@11 to main::@1 [phi:main::@11->main::@1] + //SEG95 [38] phi (byte) level_bcd#11 = (byte) level_bcd#17 [phi:main::@11->main::@1#0] -- register_copy + //SEG96 [38] phi (byte) level#10 = (byte) level#16 [phi:main::@11->main::@1#1] -- register_copy + //SEG97 [38] phi (dword) score_bcd#18 = (dword) score_bcd#14 [phi:main::@11->main::@1#2] -- register_copy + //SEG98 [38] phi (word) lines_bcd#19 = (word) lines_bcd#15 [phi:main::@11->main::@1#3] -- register_copy + //SEG99 [38] phi (byte) current_movedown_counter#16 = (byte) current_movedown_counter#14 [phi:main::@11->main::@1#4] -- register_copy + //SEG100 [38] phi (byte) keyboard_events_size#19 = (byte) keyboard_events_size#16 [phi:main::@11->main::@1#5] -- register_copy + //SEG101 [38] phi (byte) next_piece_idx#10 = (byte) next_piece_idx#16 [phi:main::@11->main::@1#6] -- register_copy + //SEG102 [38] phi (byte) game_over#10 = (byte) game_over#15 [phi:main::@11->main::@1#7] -- register_copy + //SEG103 [38] phi (byte) current_ypos#10 = (byte) current_ypos#18 [phi:main::@11->main::@1#8] -- register_copy + //SEG104 [38] phi (byte) current_xpos#121 = (byte) current_xpos#18 [phi:main::@11->main::@1#9] -- register_copy + //SEG105 [38] phi (byte*) current_piece_gfx#111 = (byte*) current_piece_gfx#17 [phi:main::@11->main::@1#10] -- register_copy + //SEG106 [38] phi (byte) current_orientation#13 = (byte) current_orientation#17 [phi:main::@11->main::@1#11] -- register_copy + //SEG107 [38] phi (byte) current_piece_char#21 = (byte) current_piece_char#15 [phi:main::@11->main::@1#12] -- register_copy + //SEG108 [38] phi (byte*) current_piece#10 = (byte*) current_piece#15 [phi:main::@11->main::@1#13] -- register_copy + //SEG109 [38] phi (byte) current_movedown_slow#14 = (byte) current_movedown_slow#21 [phi:main::@11->main::@1#14] -- register_copy + //SEG110 main::@1 + //SEG111 main::@4 b4: - //SEG97 [35] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4 -- _deref_pbuc1_neq_vbuc2_then_la1 + //SEG112 [39] 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 - //SEG98 [36] phi from main::@4 to main::@6 [phi:main::@4->main::@6] - //SEG99 main::@6 - //SEG100 [37] call render_show + //SEG113 [40] phi from main::@4 to main::@6 [phi:main::@4->main::@6] + //SEG114 main::@6 + //SEG115 [41] call render_show jsr render_show - //SEG101 [38] phi from main::@6 to main::@33 [phi:main::@6->main::@33] - //SEG102 main::@33 - //SEG103 [39] call keyboard_event_scan - //SEG104 [366] phi from main::@33 to keyboard_event_scan [phi:main::@33->keyboard_event_scan] + //SEG116 [42] phi from main::@6 to main::@35 [phi:main::@6->main::@35] + //SEG117 main::@35 + //SEG118 [43] call keyboard_event_scan + //SEG119 [395] phi from main::@35 to keyboard_event_scan [phi:main::@35->keyboard_event_scan] jsr keyboard_event_scan - //SEG105 [40] phi from main::@33 to main::@34 [phi:main::@33->main::@34] - //SEG106 main::@34 - //SEG107 [41] call keyboard_event_get + //SEG120 [44] phi from main::@35 to main::@36 [phi:main::@35->main::@36] + //SEG121 main::@36 + //SEG122 [45] call keyboard_event_get jsr keyboard_event_get - //SEG108 [42] (byte) keyboard_event_get::return#3 ← (byte) keyboard_event_get::return#2 + //SEG123 [46] (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 x - //SEG109 main::@35 - //SEG110 [43] (byte) main::key_event#0 ← (byte) keyboard_event_get::return#3 + //SEG124 main::@37 + //SEG125 [47] (byte) main::key_event#0 ← (byte) keyboard_event_get::return#3 // (byte) main::key_event#0 = (byte) keyboard_event_get::return#3 // register copy reg byte x - //SEG111 [44] if((byte) game_over#19==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@7 -- vbuz1_eq_0_then_la1 + //SEG126 [48] if((byte) game_over#10==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@7 -- vbuz1_eq_0_then_la1 lda game_over cmp #0 beq b7 - //SEG112 main::@9 + //SEG127 main::@9 b9: - //SEG113 [45] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) -- _deref_pbuc1=_inc__deref_pbuc1 + //SEG128 [49] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0) -- _deref_pbuc1=_inc__deref_pbuc1 inc BORDERCOL jmp b9 - //SEG114 main::@7 + //SEG129 main::@7 b7: - //SEG115 [46] (byte) play_movement::key_event#0 ← (byte) main::key_event#0 -- vbuz1=vbuxx + //SEG130 [50] (byte) play_movement::key_event#0 ← (byte) main::key_event#0 -- vbuz1=vbuxx stx play_movement.key_event - //SEG116 [47] call play_movement + //SEG131 [51] call play_movement jsr play_movement - //SEG117 [48] (byte) play_movement::return#3 ← (byte) play_movement::return#2 -- vbuaa=vbuz1 + //SEG132 [52] (byte) play_movement::return#3 ← (byte) play_movement::return#2 -- vbuaa=vbuz1 lda play_movement.return - //SEG118 main::@36 - //SEG119 [49] (byte) main::render#1 ← (byte) play_movement::return#3 + //SEG133 main::@38 + //SEG134 [53] (byte) main::render#1 ← (byte) play_movement::return#3 // (byte) main::render#1 = (byte) play_movement::return#3 // register copy reg byte a - //SEG120 main::@11 - //SEG121 [50] if((byte) main::render#1==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@1 -- vbuaa_eq_0_then_la1 + //SEG135 main::@11 + //SEG136 [54] if((byte) main::render#1==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@1 -- vbuaa_eq_0_then_la1 cmp #0 beq b4 - //SEG122 main::@23 - //SEG123 [51] (byte~) render_screen_render#65 ← (byte) render_screen_render#17 -- vbuxx=vbuz1 + //SEG137 main::@23 + //SEG138 [55] (byte~) render_screen_render#70 ← (byte) render_screen_render#18 -- vbuxx=vbuz1 ldx render_screen_render - //SEG124 [52] call render_playfield - //SEG125 [122] phi from main::@23 to render_playfield [phi:main::@23->render_playfield] - //SEG126 [122] phi (byte) render_screen_render#21 = (byte~) render_screen_render#65 [phi:main::@23->render_playfield#0] -- register_copy + //SEG139 [56] call render_playfield + //SEG140 [150] phi from main::@23 to render_playfield [phi:main::@23->render_playfield] + //SEG141 [150] phi (byte) render_screen_render#22 = (byte~) render_screen_render#70 [phi:main::@23->render_playfield#0] -- register_copy jsr render_playfield - //SEG127 main::@37 - //SEG128 [53] (byte~) current_ypos#101 ← (byte) current_ypos#17 -- vbuyy=vbuz1 + //SEG142 main::@39 + //SEG143 [57] (byte~) current_ypos#109 ← (byte) current_ypos#18 -- vbuyy=vbuz1 ldy current_ypos - //SEG129 [54] (byte~) render_screen_render#64 ← (byte) render_screen_render#17 -- vbuz1=vbuz2 + //SEG144 [58] (byte~) render_screen_render#69 ← (byte) render_screen_render#18 -- vbuz1=vbuz2 lda render_screen_render - sta render_screen_render_64 - //SEG130 [55] (byte~) current_xpos#125 ← (byte) current_xpos#17 -- vbuz1=vbuz2 + sta render_screen_render_69 + //SEG145 [59] (byte~) current_xpos#133 ← (byte) current_xpos#18 -- vbuz1=vbuz2 lda current_xpos - sta current_xpos_125 - //SEG131 [56] (byte*~) current_piece_gfx#115 ← (byte*) current_piece_gfx#16 -- pbuz1=pbuz2 + sta current_xpos_133 + //SEG146 [60] (byte*~) current_piece_gfx#123 ← (byte*) current_piece_gfx#17 -- pbuz1=pbuz2 lda current_piece_gfx - sta current_piece_gfx_115 + sta current_piece_gfx_123 lda current_piece_gfx+1 - sta current_piece_gfx_115+1 - //SEG132 [57] (byte~) current_piece_char#103 ← (byte) current_piece_char#14 -- vbuxx=vbuz1 + sta current_piece_gfx_123+1 + //SEG147 [61] (byte~) current_piece_char#111 ← (byte) current_piece_char#15 -- vbuxx=vbuz1 ldx current_piece_char - //SEG133 [58] call render_moving - //SEG134 [101] phi from main::@37 to render_moving [phi:main::@37->render_moving] - //SEG135 [101] phi (byte) current_piece_char#64 = (byte~) current_piece_char#103 [phi:main::@37->render_moving#0] -- register_copy - //SEG136 [101] phi (byte*) current_piece_gfx#62 = (byte*~) current_piece_gfx#115 [phi:main::@37->render_moving#1] -- register_copy - //SEG137 [101] phi (byte) current_xpos#57 = (byte~) current_xpos#125 [phi:main::@37->render_moving#2] -- register_copy - //SEG138 [101] phi (byte) render_screen_render#30 = (byte~) render_screen_render#64 [phi:main::@37->render_moving#3] -- register_copy - //SEG139 [101] phi (byte) current_ypos#11 = (byte~) current_ypos#101 [phi:main::@37->render_moving#4] -- register_copy + //SEG148 [62] call render_moving + //SEG149 [129] phi from main::@39 to render_moving [phi:main::@39->render_moving] + //SEG150 [129] phi (byte) current_piece_char#67 = (byte~) current_piece_char#111 [phi:main::@39->render_moving#0] -- register_copy + //SEG151 [129] phi (byte*) current_piece_gfx#63 = (byte*~) current_piece_gfx#123 [phi:main::@39->render_moving#1] -- register_copy + //SEG152 [129] phi (byte) current_xpos#58 = (byte~) current_xpos#133 [phi:main::@39->render_moving#2] -- register_copy + //SEG153 [129] phi (byte) render_screen_render#33 = (byte~) render_screen_render#69 [phi:main::@39->render_moving#3] -- register_copy + //SEG154 [129] phi (byte) current_ypos#12 = (byte~) current_ypos#109 [phi:main::@39->render_moving#4] -- register_copy jsr render_moving - //SEG140 [59] phi from main::@37 to main::@38 [phi:main::@37->main::@38] - //SEG141 main::@38 - //SEG142 [60] call render_score + //SEG155 main::@40 + //SEG156 [63] (byte~) render_screen_render#68 ← (byte) render_screen_render#18 -- vbuaa=vbuz1 + lda render_screen_render + //SEG157 [64] (byte~) next_piece_idx#85 ← (byte) next_piece_idx#16 -- vbuyy=vbuz1 + ldy next_piece_idx + //SEG158 [65] call render_next + //SEG159 [108] phi from main::@40 to render_next [phi:main::@40->render_next] + //SEG160 [108] phi (byte) next_piece_idx#12 = (byte~) next_piece_idx#85 [phi:main::@40->render_next#0] -- register_copy + //SEG161 [108] phi (byte) render_screen_render#15 = (byte~) render_screen_render#68 [phi:main::@40->render_next#1] -- register_copy + jsr render_next + //SEG162 [66] phi from main::@40 to main::@41 [phi:main::@40->main::@41] + //SEG163 main::@41 + //SEG164 [67] call render_score jsr render_score - //SEG143 [61] phi from main::@38 to main::@39 [phi:main::@38->main::@39] - //SEG144 main::@39 - //SEG145 [62] call render_screen_swap + //SEG165 [68] phi from main::@41 to main::@42 [phi:main::@41->main::@42] + //SEG166 main::@42 + //SEG167 [69] call render_screen_swap jsr render_screen_swap - //SEG146 [34] phi from main::@39 to main::@1 [phi:main::@39->main::@1] - //SEG147 [34] phi (byte) level_bcd#11 = (byte) level_bcd#17 [phi:main::@39->main::@1#0] -- register_copy - //SEG148 [34] phi (byte) level#10 = (byte) level#16 [phi:main::@39->main::@1#1] -- register_copy - //SEG149 [34] phi (dword) score_bcd#18 = (dword) score_bcd#14 [phi:main::@39->main::@1#2] -- register_copy - //SEG150 [34] phi (word) lines_bcd#19 = (word) lines_bcd#15 [phi:main::@39->main::@1#3] -- register_copy - //SEG151 [34] phi (byte) current_movedown_counter#16 = (byte) current_movedown_counter#14 [phi:main::@39->main::@1#4] -- register_copy - //SEG152 [34] phi (byte) keyboard_events_size#19 = (byte) keyboard_events_size#16 [phi:main::@39->main::@1#5] -- register_copy - //SEG153 [34] phi (byte) game_over#19 = (byte) game_over#14 [phi:main::@39->main::@1#6] -- register_copy - //SEG154 [34] phi (byte) current_ypos#25 = (byte) current_ypos#17 [phi:main::@39->main::@1#7] -- register_copy - //SEG155 [34] phi (byte) current_xpos#113 = (byte) current_xpos#17 [phi:main::@39->main::@1#8] -- register_copy - //SEG156 [34] phi (byte*) current_piece_gfx#103 = (byte*) current_piece_gfx#16 [phi:main::@39->main::@1#9] -- register_copy - //SEG157 [34] phi (byte) current_orientation#12 = (byte) current_orientation#16 [phi:main::@39->main::@1#10] -- register_copy - //SEG158 [34] phi (byte) current_piece_char#19 = (byte) current_piece_char#14 [phi:main::@39->main::@1#11] -- register_copy - //SEG159 [34] phi (byte*) current_piece#20 = (byte*) current_piece#14 [phi:main::@39->main::@1#12] -- register_copy - //SEG160 [34] phi (byte) current_movedown_slow#14 = (byte) current_movedown_slow#21 [phi:main::@39->main::@1#13] -- register_copy - //SEG161 [34] phi (byte) render_screen_render#17 = (byte) render_screen_render#11 [phi:main::@39->main::@1#14] -- register_copy - //SEG162 [34] phi (byte) render_screen_show#16 = (byte) render_screen_show#13 [phi:main::@39->main::@1#15] -- register_copy + //SEG168 [38] phi from main::@42 to main::@1 [phi:main::@42->main::@1] + //SEG169 [38] phi (byte) level_bcd#11 = (byte) level_bcd#17 [phi:main::@42->main::@1#0] -- register_copy + //SEG170 [38] phi (byte) level#10 = (byte) level#16 [phi:main::@42->main::@1#1] -- register_copy + //SEG171 [38] phi (dword) score_bcd#18 = (dword) score_bcd#14 [phi:main::@42->main::@1#2] -- register_copy + //SEG172 [38] phi (word) lines_bcd#19 = (word) lines_bcd#15 [phi:main::@42->main::@1#3] -- register_copy + //SEG173 [38] phi (byte) current_movedown_counter#16 = (byte) current_movedown_counter#14 [phi:main::@42->main::@1#4] -- register_copy + //SEG174 [38] phi (byte) keyboard_events_size#19 = (byte) keyboard_events_size#16 [phi:main::@42->main::@1#5] -- register_copy + //SEG175 [38] phi (byte) next_piece_idx#10 = (byte) next_piece_idx#16 [phi:main::@42->main::@1#6] -- register_copy + //SEG176 [38] phi (byte) game_over#10 = (byte) game_over#15 [phi:main::@42->main::@1#7] -- register_copy + //SEG177 [38] phi (byte) current_ypos#10 = (byte) current_ypos#18 [phi:main::@42->main::@1#8] -- register_copy + //SEG178 [38] phi (byte) current_xpos#121 = (byte) current_xpos#18 [phi:main::@42->main::@1#9] -- register_copy + //SEG179 [38] phi (byte*) current_piece_gfx#111 = (byte*) current_piece_gfx#17 [phi:main::@42->main::@1#10] -- register_copy + //SEG180 [38] phi (byte) current_orientation#13 = (byte) current_orientation#17 [phi:main::@42->main::@1#11] -- register_copy + //SEG181 [38] phi (byte) current_piece_char#21 = (byte) current_piece_char#15 [phi:main::@42->main::@1#12] -- register_copy + //SEG182 [38] phi (byte*) current_piece#10 = (byte*) current_piece#15 [phi:main::@42->main::@1#13] -- register_copy + //SEG183 [38] phi (byte) current_movedown_slow#14 = (byte) current_movedown_slow#21 [phi:main::@42->main::@1#14] -- register_copy + //SEG184 [38] phi (byte) render_screen_render#18 = (byte) render_screen_render#11 [phi:main::@42->main::@1#15] -- register_copy + //SEG185 [38] phi (byte) render_screen_show#16 = (byte) render_screen_show#13 [phi:main::@42->main::@1#16] -- register_copy jmp b4 } -//SEG163 render_screen_swap +//SEG186 render_screen_swap render_screen_swap: { - //SEG164 [63] (byte) render_screen_render#11 ← (byte) render_screen_render#17 ^ (byte/signed byte/word/signed word/dword/signed dword) 64 -- vbuz1=vbuz1_bxor_vbuc1 + //SEG187 [70] (byte) render_screen_render#11 ← (byte) render_screen_render#18 ^ (byte/signed byte/word/signed word/dword/signed dword) 64 -- vbuz1=vbuz1_bxor_vbuc1 lda render_screen_render eor #$40 sta render_screen_render - //SEG165 [64] (byte) render_screen_show#13 ← (byte) render_screen_show#16 ^ (byte/signed byte/word/signed word/dword/signed dword) 64 -- vbuz1=vbuz1_bxor_vbuc1 + //SEG188 [71] (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 - //SEG166 render_screen_swap::@return - //SEG167 [65] return + //SEG189 render_screen_swap::@return + //SEG190 [72] return rts } -//SEG168 render_score +//SEG191 render_score render_score: { .label score_bytes = score_bcd .const score_offset = $28*5+$1c .const lines_offset = $28*1+$16 .const level_offset = $28*$13+$1f .label screen = 5 - //SEG169 [66] 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 + //SEG192 [73] if((byte) render_screen_render#18==(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 - //SEG170 [67] phi from render_score to render_score::@3 [phi:render_score->render_score::@3] - //SEG171 render_score::@3 - //SEG172 [68] phi from render_score::@3 to render_score::@2 [phi:render_score::@3->render_score::@2] - //SEG173 [68] phi (byte*) render_score::screen#2 = (const byte*) PLAYFIELD_SCREEN_2#0 [phi:render_score::@3->render_score::@2#0] -- pbuz1=pbuc1 + //SEG193 [74] phi from render_score to render_score::@3 [phi:render_score->render_score::@3] + //SEG194 render_score::@3 + //SEG195 [75] phi from render_score::@3 to render_score::@2 [phi:render_score::@3->render_score::@2] + //SEG196 [75] 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 - //SEG174 [68] phi from render_score to render_score::@2 [phi:render_score->render_score::@2] + //SEG197 [75] phi from render_score to render_score::@2 [phi:render_score->render_score::@2] b1: - //SEG175 [68] phi (byte*) render_score::screen#2 = (const byte*) PLAYFIELD_SCREEN_1#0 [phi:render_score->render_score::@2#0] -- pbuz1=pbuc1 + //SEG198 [75] 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 - //SEG176 render_score::@2 + //SEG199 render_score::@2 b2: - //SEG177 [69] (byte*) render_bcd::screen#0 ← (byte*) render_score::screen#2 + //SEG200 [76] (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 - //SEG178 [70] (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 + //SEG201 [77] (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 - //SEG179 [71] call render_bcd - //SEG180 [88] phi from render_score::@2 to render_bcd [phi:render_score::@2->render_bcd] - //SEG181 [88] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#0 [phi:render_score::@2->render_bcd#0] -- register_copy - //SEG182 [88] 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 + //SEG202 [78] call render_bcd + //SEG203 [95] phi from render_score::@2 to render_bcd [phi:render_score::@2->render_bcd] + //SEG204 [95] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#0 [phi:render_score::@2->render_bcd#0] -- register_copy + //SEG205 [95] 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 - //SEG183 [88] phi (word) render_bcd::offset#6 = (const word) render_score::score_offset#0 [phi:render_score::@2->render_bcd#2] -- vwuz1=vwuc1 + //SEG206 [95] 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 - //SEG184 [88] phi (byte*) render_bcd::screen#6 = (byte*) render_bcd::screen#0 [phi:render_score::@2->render_bcd#3] -- register_copy + //SEG207 [95] phi (byte*) render_bcd::screen#6 = (byte*) render_bcd::screen#0 [phi:render_score::@2->render_bcd#3] -- register_copy jsr render_bcd - //SEG185 render_score::@5 - //SEG186 [72] (byte*) render_bcd::screen#1 ← (byte*) render_score::screen#2 + //SEG208 render_score::@5 + //SEG209 [79] (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 - //SEG187 [73] (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 + //SEG210 [80] (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 - //SEG188 [74] call render_bcd - //SEG189 [88] phi from render_score::@5 to render_bcd [phi:render_score::@5->render_bcd] - //SEG190 [88] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#1 [phi:render_score::@5->render_bcd#0] -- register_copy - //SEG191 [88] 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 + //SEG211 [81] call render_bcd + //SEG212 [95] phi from render_score::@5 to render_bcd [phi:render_score::@5->render_bcd] + //SEG213 [95] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#1 [phi:render_score::@5->render_bcd#0] -- register_copy + //SEG214 [95] 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 - //SEG192 [88] 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 + //SEG215 [95] 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 - //SEG193 [88] phi (byte*) render_bcd::screen#6 = (byte*) render_bcd::screen#1 [phi:render_score::@5->render_bcd#3] -- register_copy + //SEG216 [95] phi (byte*) render_bcd::screen#6 = (byte*) render_bcd::screen#1 [phi:render_score::@5->render_bcd#3] -- register_copy jsr render_bcd - //SEG194 render_score::@6 - //SEG195 [75] (byte*) render_bcd::screen#2 ← (byte*) render_score::screen#2 + //SEG217 render_score::@6 + //SEG218 [82] (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 - //SEG196 [76] (byte) render_bcd::bcd#2 ← *((const byte*) render_score::score_bytes#0) -- vbuxx=_deref_pbuc1 + //SEG219 [83] (byte) render_bcd::bcd#2 ← *((const byte*) render_score::score_bytes#0) -- vbuxx=_deref_pbuc1 ldx score_bytes - //SEG197 [77] call render_bcd - //SEG198 [88] phi from render_score::@6 to render_bcd [phi:render_score::@6->render_bcd] - //SEG199 [88] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#2 [phi:render_score::@6->render_bcd#0] -- register_copy - //SEG200 [88] 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 + //SEG220 [84] call render_bcd + //SEG221 [95] phi from render_score::@6 to render_bcd [phi:render_score::@6->render_bcd] + //SEG222 [95] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#2 [phi:render_score::@6->render_bcd#0] -- register_copy + //SEG223 [95] 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 - //SEG201 [88] 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 + //SEG224 [95] 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 - //SEG202 [88] phi (byte*) render_bcd::screen#6 = (byte*) render_bcd::screen#2 [phi:render_score::@6->render_bcd#3] -- register_copy + //SEG225 [95] phi (byte*) render_bcd::screen#6 = (byte*) render_bcd::screen#2 [phi:render_score::@6->render_bcd#3] -- register_copy jsr render_bcd - //SEG203 render_score::@7 - //SEG204 [78] (byte) render_bcd::bcd#3 ← > (word) lines_bcd#15 -- vbuxx=_hi_vwuz1 + //SEG226 render_score::@7 + //SEG227 [85] (byte) render_bcd::bcd#3 ← > (word) lines_bcd#15 -- vbuxx=_hi_vwuz1 lda lines_bcd+1 tax - //SEG205 [79] (byte*) render_bcd::screen#3 ← (byte*) render_score::screen#2 + //SEG228 [86] (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 - //SEG206 [80] call render_bcd - //SEG207 [88] phi from render_score::@7 to render_bcd [phi:render_score::@7->render_bcd] - //SEG208 [88] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#3 [phi:render_score::@7->render_bcd#0] -- register_copy - //SEG209 [88] 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 + //SEG229 [87] call render_bcd + //SEG230 [95] phi from render_score::@7 to render_bcd [phi:render_score::@7->render_bcd] + //SEG231 [95] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#3 [phi:render_score::@7->render_bcd#0] -- register_copy + //SEG232 [95] 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 - //SEG210 [88] phi (word) render_bcd::offset#6 = (const word) render_score::lines_offset#0 [phi:render_score::@7->render_bcd#2] -- vwuz1=vwuc1 + //SEG233 [95] 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 - //SEG211 [88] phi (byte*) render_bcd::screen#6 = (byte*) render_bcd::screen#3 [phi:render_score::@7->render_bcd#3] -- register_copy + //SEG234 [95] phi (byte*) render_bcd::screen#6 = (byte*) render_bcd::screen#3 [phi:render_score::@7->render_bcd#3] -- register_copy jsr render_bcd - //SEG212 render_score::@8 - //SEG213 [81] (byte) render_bcd::bcd#4 ← < (word) lines_bcd#15 -- vbuxx=_lo_vwuz1 + //SEG235 render_score::@8 + //SEG236 [88] (byte) render_bcd::bcd#4 ← < (word) lines_bcd#15 -- vbuxx=_lo_vwuz1 lda lines_bcd tax - //SEG214 [82] (byte*) render_bcd::screen#4 ← (byte*) render_score::screen#2 + //SEG237 [89] (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 - //SEG215 [83] call render_bcd - //SEG216 [88] phi from render_score::@8 to render_bcd [phi:render_score::@8->render_bcd] - //SEG217 [88] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#4 [phi:render_score::@8->render_bcd#0] -- register_copy - //SEG218 [88] 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 + //SEG238 [90] call render_bcd + //SEG239 [95] phi from render_score::@8 to render_bcd [phi:render_score::@8->render_bcd] + //SEG240 [95] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#4 [phi:render_score::@8->render_bcd#0] -- register_copy + //SEG241 [95] 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 - //SEG219 [88] 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 + //SEG242 [95] 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 - //SEG220 [88] phi (byte*) render_bcd::screen#6 = (byte*) render_bcd::screen#4 [phi:render_score::@8->render_bcd#3] -- register_copy + //SEG243 [95] phi (byte*) render_bcd::screen#6 = (byte*) render_bcd::screen#4 [phi:render_score::@8->render_bcd#3] -- register_copy jsr render_bcd - //SEG221 render_score::@9 - //SEG222 [84] (byte*) render_bcd::screen#5 ← (byte*) render_score::screen#2 + //SEG244 render_score::@9 + //SEG245 [91] (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 - //SEG223 [85] (byte) render_bcd::bcd#5 ← (byte) level_bcd#17 -- vbuxx=vbuz1 + //SEG246 [92] (byte) render_bcd::bcd#5 ← (byte) level_bcd#17 -- vbuxx=vbuz1 ldx level_bcd - //SEG224 [86] call render_bcd - //SEG225 [88] phi from render_score::@9 to render_bcd [phi:render_score::@9->render_bcd] - //SEG226 [88] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#5 [phi:render_score::@9->render_bcd#0] -- register_copy - //SEG227 [88] 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 + //SEG247 [93] call render_bcd + //SEG248 [95] phi from render_score::@9 to render_bcd [phi:render_score::@9->render_bcd] + //SEG249 [95] phi (byte) render_bcd::bcd#6 = (byte) render_bcd::bcd#5 [phi:render_score::@9->render_bcd#0] -- register_copy + //SEG250 [95] 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 - //SEG228 [88] phi (word) render_bcd::offset#6 = (const word) render_score::level_offset#0 [phi:render_score::@9->render_bcd#2] -- vwuz1=vwuc1 + //SEG251 [95] 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 - //SEG229 [88] phi (byte*) render_bcd::screen#6 = (byte*) render_bcd::screen#5 [phi:render_score::@9->render_bcd#3] -- register_copy + //SEG252 [95] phi (byte*) render_bcd::screen#6 = (byte*) render_bcd::screen#5 [phi:render_score::@9->render_bcd#3] -- register_copy jsr render_bcd - //SEG230 render_score::@return - //SEG231 [87] return + //SEG253 render_score::@return + //SEG254 [94] return rts } -//SEG232 render_bcd +//SEG255 render_bcd render_bcd: { .const ZERO_CHAR = $35 .label screen = 5 .label screen_pos = 7 .label offset = 7 - //SEG233 [89] (byte*) render_bcd::screen_pos#0 ← (byte*) render_bcd::screen#6 + (word) render_bcd::offset#6 -- pbuz1=pbuz2_plus_vwuz1 + //SEG256 [96] (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 @@ -22312,50 +23849,167 @@ render_bcd: { lda screen_pos+1 adc screen+1 sta screen_pos+1 - //SEG234 [90] 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 + //SEG257 [97] 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 - //SEG235 render_bcd::@2 - //SEG236 [91] (byte~) render_bcd::$3 ← (byte) render_bcd::bcd#6 >> (byte/signed byte/word/signed word/dword/signed dword) 4 -- vbuaa=vbuxx_ror_4 + //SEG258 render_bcd::@2 + //SEG259 [98] (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 - //SEG237 [92] (byte~) render_bcd::$4 ← (const byte) render_bcd::ZERO_CHAR#0 + (byte~) render_bcd::$3 -- vbuaa=vbuc1_plus_vbuaa + //SEG260 [99] (byte~) render_bcd::$4 ← (const byte) render_bcd::ZERO_CHAR#0 + (byte~) render_bcd::$3 -- vbuaa=vbuc1_plus_vbuaa clc adc #ZERO_CHAR - //SEG238 [93] *((byte*) render_bcd::screen_pos#0) ← (byte~) render_bcd::$4 -- _deref_pbuz1=vbuaa + //SEG261 [100] *((byte*) render_bcd::screen_pos#0) ← (byte~) render_bcd::$4 -- _deref_pbuz1=vbuaa ldy #0 sta (screen_pos),y - //SEG239 [94] (byte*) render_bcd::screen_pos#2 ← ++ (byte*) render_bcd::screen_pos#0 -- pbuz1=_inc_pbuz1 + //SEG262 [101] (byte*) render_bcd::screen_pos#2 ← ++ (byte*) render_bcd::screen_pos#0 -- pbuz1=_inc_pbuz1 inc screen_pos bne !+ inc screen_pos+1 !: - //SEG240 [95] phi from render_bcd render_bcd::@2 to render_bcd::@1 [phi:render_bcd/render_bcd::@2->render_bcd::@1] - //SEG241 [95] 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 - //SEG242 render_bcd::@1 + //SEG263 [102] phi from render_bcd render_bcd::@2 to render_bcd::@1 [phi:render_bcd/render_bcd::@2->render_bcd::@1] + //SEG264 [102] 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 + //SEG265 render_bcd::@1 b1: - //SEG243 [96] (byte~) render_bcd::$5 ← (byte) render_bcd::bcd#6 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuxx_band_vbuc1 + //SEG266 [103] (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 - //SEG244 [97] (byte~) render_bcd::$6 ← (const byte) render_bcd::ZERO_CHAR#0 + (byte~) render_bcd::$5 -- vbuaa=vbuc1_plus_vbuaa + //SEG267 [104] (byte~) render_bcd::$6 ← (const byte) render_bcd::ZERO_CHAR#0 + (byte~) render_bcd::$5 -- vbuaa=vbuc1_plus_vbuaa clc adc #ZERO_CHAR - //SEG245 [98] *((byte*) render_bcd::screen_pos#3) ← (byte~) render_bcd::$6 -- _deref_pbuz1=vbuaa + //SEG268 [105] *((byte*) render_bcd::screen_pos#3) ← (byte~) render_bcd::$6 -- _deref_pbuz1=vbuaa ldy #0 sta (screen_pos),y - //SEG246 [99] (byte*) render_bcd::screen_pos#1 ← ++ (byte*) render_bcd::screen_pos#3 -- pbuz1=_inc_pbuz1 + //SEG269 [106] (byte*) render_bcd::screen_pos#1 ← ++ (byte*) render_bcd::screen_pos#3 -- pbuz1=_inc_pbuz1 inc screen_pos bne !+ inc screen_pos+1 !: - //SEG247 render_bcd::@return - //SEG248 [100] return + //SEG270 render_bcd::@return + //SEG271 [107] return rts } -//SEG249 render_moving +//SEG272 render_next +render_next: { + .const next_area_offset = $28*$c+$18+4 + .label next_piece_char = $a + .label next_piece_gfx = 5 + .label screen_next_area = 7 + .label l = 9 + //SEG273 [109] if((byte) render_screen_render#15==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_next::@2 -- vbuaa_eq_0_then_la1 + cmp #0 + beq b1 + //SEG274 [110] phi from render_next to render_next::@7 [phi:render_next->render_next::@7] + //SEG275 render_next::@7 + //SEG276 [111] phi from render_next::@7 to render_next::@2 [phi:render_next::@7->render_next::@2] + //SEG277 [111] phi (byte*) render_next::screen_next_area#10 = (const byte*) PLAYFIELD_SCREEN_2#0+(const word) render_next::next_area_offset#0 [phi:render_next::@7->render_next::@2#0] -- pbuz1=pbuc1 + lda #PLAYFIELD_SCREEN_2+next_area_offset + sta screen_next_area+1 + jmp b2 + //SEG278 [111] phi from render_next to render_next::@2 [phi:render_next->render_next::@2] + b1: + //SEG279 [111] phi (byte*) render_next::screen_next_area#10 = (const byte*) PLAYFIELD_SCREEN_1#0+(const word) render_next::next_area_offset#0 [phi:render_next->render_next::@2#0] -- pbuz1=pbuc1 + lda #PLAYFIELD_SCREEN_1+next_area_offset + sta screen_next_area+1 + //SEG280 render_next::@2 + b2: + //SEG281 [112] (byte~) render_next::$6 ← (byte) next_piece_idx#12 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuxx=vbuyy_rol_1 + tya + asl + tax + //SEG282 [113] (byte) render_next::next_piece_char#0 ← *((const byte[]) PIECES_NEXT_CHARS#0 + (byte) next_piece_idx#12) -- vbuz1=pbuc1_derefidx_vbuyy + lda PIECES_NEXT_CHARS,y + sta next_piece_char + //SEG283 [114] (byte*~) render_next::next_piece_gfx#9 ← (byte*)*((const word[]) PIECES#0 + (byte~) render_next::$6) -- pbuz1=pptc1_derefidx_vbuxx + lda PIECES,x + sta next_piece_gfx + lda PIECES+1,x + sta next_piece_gfx+1 + //SEG284 [115] phi from render_next::@2 to render_next::@3 [phi:render_next::@2->render_next::@3] + //SEG285 [115] phi (byte) render_next::l#7 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_next::@2->render_next::@3#0] -- vbuz1=vbuc1 + lda #0 + sta l + //SEG286 [115] phi (byte*) render_next::screen_next_area#9 = (byte*) render_next::screen_next_area#10 [phi:render_next::@2->render_next::@3#1] -- register_copy + //SEG287 [115] phi (byte*) render_next::next_piece_gfx#3 = (byte*~) render_next::next_piece_gfx#9 [phi:render_next::@2->render_next::@3#2] -- register_copy + //SEG288 [115] phi from render_next::@11 to render_next::@3 [phi:render_next::@11->render_next::@3] + //SEG289 [115] phi (byte) render_next::l#7 = (byte) render_next::l#1 [phi:render_next::@11->render_next::@3#0] -- register_copy + //SEG290 [115] phi (byte*) render_next::screen_next_area#9 = (byte*) render_next::screen_next_area#3 [phi:render_next::@11->render_next::@3#1] -- register_copy + //SEG291 [115] phi (byte*) render_next::next_piece_gfx#3 = (byte*) render_next::next_piece_gfx#1 [phi:render_next::@11->render_next::@3#2] -- register_copy + //SEG292 render_next::@3 + b3: + //SEG293 [116] phi from render_next::@3 to render_next::@4 [phi:render_next::@3->render_next::@4] + //SEG294 [116] phi (byte) render_next::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_next::@3->render_next::@4#0] -- vbuxx=vbuc1 + ldx #0 + //SEG295 [116] phi (byte*) render_next::screen_next_area#4 = (byte*) render_next::screen_next_area#9 [phi:render_next::@3->render_next::@4#1] -- register_copy + //SEG296 [116] phi (byte*) render_next::next_piece_gfx#2 = (byte*) render_next::next_piece_gfx#3 [phi:render_next::@3->render_next::@4#2] -- register_copy + //SEG297 [116] phi from render_next::@6 to render_next::@4 [phi:render_next::@6->render_next::@4] + //SEG298 [116] phi (byte) render_next::c#2 = (byte) render_next::c#1 [phi:render_next::@6->render_next::@4#0] -- register_copy + //SEG299 [116] phi (byte*) render_next::screen_next_area#4 = (byte*) render_next::screen_next_area#2 [phi:render_next::@6->render_next::@4#1] -- register_copy + //SEG300 [116] phi (byte*) render_next::next_piece_gfx#2 = (byte*) render_next::next_piece_gfx#1 [phi:render_next::@6->render_next::@4#2] -- register_copy + //SEG301 render_next::@4 + b4: + //SEG302 [117] (byte) render_next::cell#0 ← *((byte*) render_next::next_piece_gfx#2) -- vbuaa=_deref_pbuz1 + ldy #0 + lda (next_piece_gfx),y + //SEG303 [118] (byte*) render_next::next_piece_gfx#1 ← ++ (byte*) render_next::next_piece_gfx#2 -- pbuz1=_inc_pbuz1 + inc next_piece_gfx + bne !+ + inc next_piece_gfx+1 + !: + //SEG304 [119] if((byte) render_next::cell#0!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_next::@5 -- vbuaa_neq_0_then_la1 + cmp #0 + bne b5 + //SEG305 render_next::@9 + //SEG306 [120] *((byte*) render_next::screen_next_area#4) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuz1=vbuc1 + lda #0 + tay + sta (screen_next_area),y + //SEG307 render_next::@6 + b6: + //SEG308 [121] (byte*) render_next::screen_next_area#2 ← ++ (byte*) render_next::screen_next_area#4 -- pbuz1=_inc_pbuz1 + inc screen_next_area + bne !+ + inc screen_next_area+1 + !: + //SEG309 [122] (byte) render_next::c#1 ← ++ (byte) render_next::c#2 -- vbuxx=_inc_vbuxx + inx + //SEG310 [123] if((byte) render_next::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_next::@4 -- vbuxx_neq_vbuc1_then_la1 + cpx #4 + bne b4 + //SEG311 render_next::@11 + //SEG312 [124] (byte*) render_next::screen_next_area#3 ← (byte*) render_next::screen_next_area#2 + (byte/signed byte/word/signed word/dword/signed dword) 36 -- pbuz1=pbuz1_plus_vbuc1 + lda screen_next_area + clc + adc #$24 + sta screen_next_area + bcc !+ + inc screen_next_area+1 + !: + //SEG313 [125] (byte) render_next::l#1 ← ++ (byte) render_next::l#7 -- vbuz1=_inc_vbuz1 + inc l + //SEG314 [126] if((byte) render_next::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_next::@3 -- vbuz1_neq_vbuc1_then_la1 + lda l + cmp #4 + bne b3 + //SEG315 render_next::@return + //SEG316 [127] return + rts + //SEG317 render_next::@5 + b5: + //SEG318 [128] *((byte*) render_next::screen_next_area#4) ← (byte) render_next::next_piece_char#0 -- _deref_pbuz1=vbuz2 + lda next_piece_char + ldy #0 + sta (screen_next_area),y + jmp b6 +} +//SEG319 render_moving render_moving: { .label ypos2 = $b .label screen_line = 7 @@ -22363,342 +24017,342 @@ render_moving: { .label i = $d .label l = $c .label c = $f - //SEG250 [102] (byte) render_moving::ypos2#0 ← (byte) current_ypos#11 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuyy_rol_1 + //SEG320 [130] (byte) render_moving::ypos2#0 ← (byte) current_ypos#12 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuyy_rol_1 tya asl sta ypos2 - //SEG251 [103] phi from render_moving to render_moving::@1 [phi:render_moving->render_moving::@1] - //SEG252 [103] phi (byte) render_moving::l#4 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_moving->render_moving::@1#0] -- vbuz1=vbuc1 + //SEG321 [131] phi from render_moving to render_moving::@1 [phi:render_moving->render_moving::@1] + //SEG322 [131] phi (byte) render_moving::l#4 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_moving->render_moving::@1#0] -- vbuz1=vbuc1 lda #0 sta l - //SEG253 [103] phi (byte) render_moving::i#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_moving->render_moving::@1#1] -- vbuz1=vbuc1 + //SEG323 [131] phi (byte) render_moving::i#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_moving->render_moving::@1#1] -- vbuz1=vbuc1 sta i - //SEG254 [103] phi (byte) render_moving::ypos2#2 = (byte) render_moving::ypos2#0 [phi:render_moving->render_moving::@1#2] -- register_copy - //SEG255 [103] phi from render_moving::@3 to render_moving::@1 [phi:render_moving::@3->render_moving::@1] - //SEG256 [103] phi (byte) render_moving::l#4 = (byte) render_moving::l#1 [phi:render_moving::@3->render_moving::@1#0] -- register_copy - //SEG257 [103] phi (byte) render_moving::i#3 = (byte) render_moving::i#8 [phi:render_moving::@3->render_moving::@1#1] -- register_copy - //SEG258 [103] phi (byte) render_moving::ypos2#2 = (byte) render_moving::ypos2#1 [phi:render_moving::@3->render_moving::@1#2] -- register_copy - //SEG259 render_moving::@1 + //SEG324 [131] phi (byte) render_moving::ypos2#2 = (byte) render_moving::ypos2#0 [phi:render_moving->render_moving::@1#2] -- register_copy + //SEG325 [131] phi from render_moving::@3 to render_moving::@1 [phi:render_moving::@3->render_moving::@1] + //SEG326 [131] phi (byte) render_moving::l#4 = (byte) render_moving::l#1 [phi:render_moving::@3->render_moving::@1#0] -- register_copy + //SEG327 [131] phi (byte) render_moving::i#3 = (byte) render_moving::i#8 [phi:render_moving::@3->render_moving::@1#1] -- register_copy + //SEG328 [131] phi (byte) render_moving::ypos2#2 = (byte) render_moving::ypos2#1 [phi:render_moving::@3->render_moving::@1#2] -- register_copy + //SEG329 render_moving::@1 b1: - //SEG260 [104] if((byte) render_moving::ypos2#2>(byte/signed byte/word/signed word/dword/signed dword) 2) goto render_moving::@2 -- vbuz1_gt_vbuc1_then_la1 + //SEG330 [132] if((byte) render_moving::ypos2#2>(byte/signed byte/word/signed word/dword/signed dword) 2) goto render_moving::@2 -- vbuz1_gt_vbuc1_then_la1 lda ypos2 cmp #2 beq !+ bcs b2 !: - //SEG261 render_moving::@6 - //SEG262 [105] (byte) render_moving::i#1 ← (byte) render_moving::i#3 + (byte/signed byte/word/signed word/dword/signed dword) 4 -- vbuz1=vbuz1_plus_vbuc1 + //SEG331 render_moving::@6 + //SEG332 [133] (byte) render_moving::i#1 ← (byte) render_moving::i#3 + (byte/signed byte/word/signed word/dword/signed dword) 4 -- vbuz1=vbuz1_plus_vbuc1 lda #4 clc adc i sta i - //SEG263 [106] phi from render_moving::@5 render_moving::@6 to render_moving::@3 [phi:render_moving::@5/render_moving::@6->render_moving::@3] - //SEG264 [106] phi (byte) render_moving::i#8 = (byte) render_moving::i#2 [phi:render_moving::@5/render_moving::@6->render_moving::@3#0] -- register_copy - //SEG265 render_moving::@3 + //SEG333 [134] phi from render_moving::@5 render_moving::@6 to render_moving::@3 [phi:render_moving::@5/render_moving::@6->render_moving::@3] + //SEG334 [134] phi (byte) render_moving::i#8 = (byte) render_moving::i#2 [phi:render_moving::@5/render_moving::@6->render_moving::@3#0] -- register_copy + //SEG335 render_moving::@3 b3: - //SEG266 [107] (byte) render_moving::ypos2#1 ← (byte) render_moving::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz1_plus_2 + //SEG336 [135] (byte) render_moving::ypos2#1 ← (byte) render_moving::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz1_plus_2 lda ypos2 clc adc #2 sta ypos2 - //SEG267 [108] (byte) render_moving::l#1 ← ++ (byte) render_moving::l#4 -- vbuz1=_inc_vbuz1 + //SEG337 [136] (byte) render_moving::l#1 ← ++ (byte) render_moving::l#4 -- vbuz1=_inc_vbuz1 inc l - //SEG268 [109] if((byte) render_moving::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_moving::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG338 [137] if((byte) render_moving::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_moving::@1 -- vbuz1_neq_vbuc1_then_la1 lda l cmp #4 bne b1 - //SEG269 render_moving::@return - //SEG270 [110] return + //SEG339 render_moving::@return + //SEG340 [138] return rts - //SEG271 render_moving::@2 + //SEG341 render_moving::@2 b2: - //SEG272 [111] (byte~) render_moving::$2 ← (byte) render_screen_render#30 + (byte) render_moving::ypos2#2 -- vbuaa=vbuz1_plus_vbuz2 - lda render_screen_render_30 + //SEG342 [139] (byte~) render_moving::$2 ← (byte) render_screen_render#33 + (byte) render_moving::ypos2#2 -- vbuaa=vbuz1_plus_vbuz2 + lda render_screen_render_33 clc adc ypos2 - //SEG273 [112] (byte*) render_moving::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_moving::$2) -- pbuz1=pptc1_derefidx_vbuaa + //SEG343 [140] (byte*) render_moving::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_moving::$2) -- pbuz1=pptc1_derefidx_vbuaa tay lda screen_lines_1,y sta screen_line lda screen_lines_1+1,y sta screen_line+1 - //SEG274 [113] (byte) render_moving::xpos#0 ← (byte) current_xpos#57 -- vbuz1=vbuz2 - lda current_xpos_57 + //SEG344 [141] (byte) render_moving::xpos#0 ← (byte) current_xpos#58 -- vbuz1=vbuz2 + lda current_xpos_58 sta xpos - //SEG275 [114] phi from render_moving::@2 to render_moving::@4 [phi:render_moving::@2->render_moving::@4] - //SEG276 [114] phi (byte) render_moving::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_moving::@2->render_moving::@4#0] -- vbuz1=vbuc1 + //SEG345 [142] phi from render_moving::@2 to render_moving::@4 [phi:render_moving::@2->render_moving::@4] + //SEG346 [142] phi (byte) render_moving::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_moving::@2->render_moving::@4#0] -- vbuz1=vbuc1 lda #0 sta c - //SEG277 [114] phi (byte) render_moving::xpos#2 = (byte) render_moving::xpos#0 [phi:render_moving::@2->render_moving::@4#1] -- register_copy - //SEG278 [114] phi (byte) render_moving::i#4 = (byte) render_moving::i#3 [phi:render_moving::@2->render_moving::@4#2] -- register_copy - //SEG279 [114] phi from render_moving::@5 to render_moving::@4 [phi:render_moving::@5->render_moving::@4] - //SEG280 [114] phi (byte) render_moving::c#2 = (byte) render_moving::c#1 [phi:render_moving::@5->render_moving::@4#0] -- register_copy - //SEG281 [114] phi (byte) render_moving::xpos#2 = (byte) render_moving::xpos#1 [phi:render_moving::@5->render_moving::@4#1] -- register_copy - //SEG282 [114] phi (byte) render_moving::i#4 = (byte) render_moving::i#2 [phi:render_moving::@5->render_moving::@4#2] -- register_copy - //SEG283 render_moving::@4 + //SEG347 [142] phi (byte) render_moving::xpos#2 = (byte) render_moving::xpos#0 [phi:render_moving::@2->render_moving::@4#1] -- register_copy + //SEG348 [142] phi (byte) render_moving::i#4 = (byte) render_moving::i#3 [phi:render_moving::@2->render_moving::@4#2] -- register_copy + //SEG349 [142] phi from render_moving::@5 to render_moving::@4 [phi:render_moving::@5->render_moving::@4] + //SEG350 [142] phi (byte) render_moving::c#2 = (byte) render_moving::c#1 [phi:render_moving::@5->render_moving::@4#0] -- register_copy + //SEG351 [142] phi (byte) render_moving::xpos#2 = (byte) render_moving::xpos#1 [phi:render_moving::@5->render_moving::@4#1] -- register_copy + //SEG352 [142] phi (byte) render_moving::i#4 = (byte) render_moving::i#2 [phi:render_moving::@5->render_moving::@4#2] -- register_copy + //SEG353 render_moving::@4 b4: - //SEG284 [115] (byte) render_moving::current_cell#0 ← *((byte*) current_piece_gfx#62 + (byte) render_moving::i#4) -- vbuaa=pbuz1_derefidx_vbuz2 + //SEG354 [143] (byte) render_moving::current_cell#0 ← *((byte*) current_piece_gfx#63 + (byte) render_moving::i#4) -- vbuaa=pbuz1_derefidx_vbuz2 ldy i - lda (current_piece_gfx_62),y - //SEG285 [116] (byte) render_moving::i#2 ← ++ (byte) render_moving::i#4 -- vbuz1=_inc_vbuz1 + lda (current_piece_gfx_63),y + //SEG355 [144] (byte) render_moving::i#2 ← ++ (byte) render_moving::i#4 -- vbuz1=_inc_vbuz1 inc i - //SEG286 [117] if((byte) render_moving::current_cell#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_moving::@5 -- vbuaa_eq_0_then_la1 + //SEG356 [145] if((byte) render_moving::current_cell#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_moving::@5 -- vbuaa_eq_0_then_la1 cmp #0 beq b5 - //SEG287 render_moving::@8 - //SEG288 [118] *((byte*) render_moving::screen_line#0 + (byte) render_moving::xpos#2) ← (byte) current_piece_char#64 -- pbuz1_derefidx_vbuz2=vbuxx + //SEG357 render_moving::@8 + //SEG358 [146] *((byte*) render_moving::screen_line#0 + (byte) render_moving::xpos#2) ← (byte) current_piece_char#67 -- pbuz1_derefidx_vbuz2=vbuxx ldy xpos txa sta (screen_line),y - //SEG289 render_moving::@5 + //SEG359 render_moving::@5 b5: - //SEG290 [119] (byte) render_moving::xpos#1 ← ++ (byte) render_moving::xpos#2 -- vbuz1=_inc_vbuz1 + //SEG360 [147] (byte) render_moving::xpos#1 ← ++ (byte) render_moving::xpos#2 -- vbuz1=_inc_vbuz1 inc xpos - //SEG291 [120] (byte) render_moving::c#1 ← ++ (byte) render_moving::c#2 -- vbuz1=_inc_vbuz1 + //SEG361 [148] (byte) render_moving::c#1 ← ++ (byte) render_moving::c#2 -- vbuz1=_inc_vbuz1 inc c - //SEG292 [121] if((byte) render_moving::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_moving::@4 -- vbuz1_neq_vbuc1_then_la1 + //SEG362 [149] if((byte) render_moving::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_moving::@4 -- vbuz1_neq_vbuc1_then_la1 lda c cmp #4 bne b4 jmp b3 } -//SEG293 render_playfield +//SEG363 render_playfield render_playfield: { .label screen_line = 5 .label i = $a .label c = $b .label l = 9 - //SEG294 [123] phi from render_playfield to render_playfield::@1 [phi:render_playfield->render_playfield::@1] - //SEG295 [123] phi (byte) render_playfield::i#3 = (const byte) PLAYFIELD_COLS#0*(byte/signed byte/word/signed word/dword/signed dword) 2 [phi:render_playfield->render_playfield::@1#0] -- vbuz1=vbuc1 + //SEG364 [151] phi from render_playfield to render_playfield::@1 [phi:render_playfield->render_playfield::@1] + //SEG365 [151] 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 - //SEG296 [123] phi (byte) render_playfield::l#2 = (byte/signed byte/word/signed word/dword/signed dword) 2 [phi:render_playfield->render_playfield::@1#1] -- vbuz1=vbuc1 + //SEG366 [151] 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 - //SEG297 [123] phi from render_playfield::@3 to render_playfield::@1 [phi:render_playfield::@3->render_playfield::@1] - //SEG298 [123] phi (byte) render_playfield::i#3 = (byte) render_playfield::i#1 [phi:render_playfield::@3->render_playfield::@1#0] -- register_copy - //SEG299 [123] phi (byte) render_playfield::l#2 = (byte) render_playfield::l#1 [phi:render_playfield::@3->render_playfield::@1#1] -- register_copy - //SEG300 render_playfield::@1 + //SEG367 [151] phi from render_playfield::@3 to render_playfield::@1 [phi:render_playfield::@3->render_playfield::@1] + //SEG368 [151] phi (byte) render_playfield::i#3 = (byte) render_playfield::i#1 [phi:render_playfield::@3->render_playfield::@1#0] -- register_copy + //SEG369 [151] phi (byte) render_playfield::l#2 = (byte) render_playfield::l#1 [phi:render_playfield::@3->render_playfield::@1#1] -- register_copy + //SEG370 render_playfield::@1 b1: - //SEG301 [124] (byte~) render_playfield::$2 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuz1_rol_1 + //SEG371 [152] (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 - //SEG302 [125] (byte~) render_playfield::$3 ← (byte) render_screen_render#21 + (byte~) render_playfield::$2 -- vbuaa=vbuxx_plus_vbuaa + //SEG372 [153] (byte~) render_playfield::$3 ← (byte) render_screen_render#22 + (byte~) render_playfield::$2 -- vbuaa=vbuxx_plus_vbuaa stx $ff clc adc $ff - //SEG303 [126] (byte*) render_playfield::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_playfield::$3) -- pbuz1=pptc1_derefidx_vbuaa + //SEG373 [154] (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 - //SEG304 [127] phi from render_playfield::@1 to render_playfield::@2 [phi:render_playfield::@1->render_playfield::@2] - //SEG305 [127] phi (byte) render_playfield::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_playfield::@1->render_playfield::@2#0] -- vbuz1=vbuc1 + //SEG374 [155] phi from render_playfield::@1 to render_playfield::@2 [phi:render_playfield::@1->render_playfield::@2] + //SEG375 [155] 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 - //SEG306 [127] phi (byte*) render_playfield::screen_line#2 = (byte*) render_playfield::screen_line#0 [phi:render_playfield::@1->render_playfield::@2#1] -- register_copy - //SEG307 [127] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#3 [phi:render_playfield::@1->render_playfield::@2#2] -- register_copy - //SEG308 [127] phi from render_playfield::@2 to render_playfield::@2 [phi:render_playfield::@2->render_playfield::@2] - //SEG309 [127] phi (byte) render_playfield::c#2 = (byte) render_playfield::c#1 [phi:render_playfield::@2->render_playfield::@2#0] -- register_copy - //SEG310 [127] phi (byte*) render_playfield::screen_line#2 = (byte*) render_playfield::screen_line#1 [phi:render_playfield::@2->render_playfield::@2#1] -- register_copy - //SEG311 [127] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#1 [phi:render_playfield::@2->render_playfield::@2#2] -- register_copy - //SEG312 render_playfield::@2 + //SEG376 [155] phi (byte*) render_playfield::screen_line#2 = (byte*) render_playfield::screen_line#0 [phi:render_playfield::@1->render_playfield::@2#1] -- register_copy + //SEG377 [155] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#3 [phi:render_playfield::@1->render_playfield::@2#2] -- register_copy + //SEG378 [155] phi from render_playfield::@2 to render_playfield::@2 [phi:render_playfield::@2->render_playfield::@2] + //SEG379 [155] phi (byte) render_playfield::c#2 = (byte) render_playfield::c#1 [phi:render_playfield::@2->render_playfield::@2#0] -- register_copy + //SEG380 [155] phi (byte*) render_playfield::screen_line#2 = (byte*) render_playfield::screen_line#1 [phi:render_playfield::@2->render_playfield::@2#1] -- register_copy + //SEG381 [155] phi (byte) render_playfield::i#2 = (byte) render_playfield::i#1 [phi:render_playfield::@2->render_playfield::@2#2] -- register_copy + //SEG382 render_playfield::@2 b2: - //SEG313 [128] *((byte*) render_playfield::screen_line#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2) -- _deref_pbuz1=pbuc1_derefidx_vbuz2 + //SEG383 [156] *((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 - //SEG314 [129] (byte*) render_playfield::screen_line#1 ← ++ (byte*) render_playfield::screen_line#2 -- pbuz1=_inc_pbuz1 + //SEG384 [157] (byte*) render_playfield::screen_line#1 ← ++ (byte*) render_playfield::screen_line#2 -- pbuz1=_inc_pbuz1 inc screen_line bne !+ inc screen_line+1 !: - //SEG315 [130] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2 -- vbuz1=_inc_vbuz1 + //SEG385 [158] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2 -- vbuz1=_inc_vbuz1 inc i - //SEG316 [131] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2 -- vbuz1=_inc_vbuz1 + //SEG386 [159] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2 -- vbuz1=_inc_vbuz1 inc c - //SEG317 [132] if((byte) render_playfield::c#1!=(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_playfield::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG387 [160] 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 - //SEG318 render_playfield::@3 - //SEG319 [133] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2 -- vbuz1=_inc_vbuz1 + //SEG388 render_playfield::@3 + //SEG389 [161] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2 -- vbuz1=_inc_vbuz1 inc l - //SEG320 [134] if((byte) render_playfield::l#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_playfield::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG390 [162] 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 - //SEG321 render_playfield::@return - //SEG322 [135] return + //SEG391 render_playfield::@return + //SEG392 [163] return rts } -//SEG323 play_movement +//SEG393 play_movement play_movement: { .label render = 9 .label return = 9 - .label key_event = $28 - //SEG324 [136] (byte) play_move_down::key_event#0 ← (byte) play_movement::key_event#0 -- vbuaa=vbuz1 + .label key_event = $29 + //SEG394 [164] (byte) play_move_down::key_event#0 ← (byte) play_movement::key_event#0 -- vbuaa=vbuz1 lda key_event - //SEG325 [137] call play_move_down + //SEG395 [165] call play_move_down jsr play_move_down - //SEG326 [138] (byte) play_move_down::return#0 ← (byte) play_move_down::return#3 -- vbuaa=vbuxx + //SEG396 [166] (byte) play_move_down::return#0 ← (byte) play_move_down::return#3 -- vbuaa=vbuxx txa - //SEG327 play_movement::@5 - //SEG328 [139] (byte~) play_movement::$0 ← (byte) play_move_down::return#0 + //SEG397 play_movement::@5 + //SEG398 [167] (byte~) play_movement::$0 ← (byte) play_move_down::return#0 // (byte~) play_movement::$0 = (byte) play_move_down::return#0 // register copy reg byte a - //SEG329 [140] (byte) play_movement::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) play_movement::$0 -- vbuz1=vbuc1_plus_vbuaa + //SEG399 [168] (byte) play_movement::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) play_movement::$0 -- vbuz1=vbuc1_plus_vbuaa clc adc #0 sta render - //SEG330 [141] if((byte) game_over#14==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_movement::@1 -- vbuz1_eq_0_then_la1 + //SEG400 [169] if((byte) game_over#15==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_movement::@1 -- vbuz1_eq_0_then_la1 lda game_over cmp #0 beq b1 - //SEG331 [142] phi from play_movement::@5 play_movement::@7 to play_movement::@return [phi:play_movement::@5/play_movement::@7->play_movement::@return] - //SEG332 [142] phi (byte) current_xpos#17 = (byte) current_xpos#20 [phi:play_movement::@5/play_movement::@7->play_movement::@return#0] -- register_copy - //SEG333 [142] phi (byte*) current_piece_gfx#16 = (byte*) current_piece_gfx#18 [phi:play_movement::@5/play_movement::@7->play_movement::@return#1] -- register_copy - //SEG334 [142] phi (byte) current_orientation#16 = (byte) current_orientation#19 [phi:play_movement::@5/play_movement::@7->play_movement::@return#2] -- register_copy - //SEG335 [142] phi (byte) play_movement::return#2 = (byte) play_movement::render#1 [phi:play_movement::@5/play_movement::@7->play_movement::@return#3] -- register_copy - //SEG336 play_movement::@return + //SEG401 [170] phi from play_movement::@5 play_movement::@7 to play_movement::@return [phi:play_movement::@5/play_movement::@7->play_movement::@return] + //SEG402 [170] phi (byte) current_xpos#18 = (byte) current_xpos#21 [phi:play_movement::@5/play_movement::@7->play_movement::@return#0] -- register_copy + //SEG403 [170] phi (byte*) current_piece_gfx#17 = (byte*) current_piece_gfx#19 [phi:play_movement::@5/play_movement::@7->play_movement::@return#1] -- register_copy + //SEG404 [170] phi (byte) current_orientation#17 = (byte) current_orientation#20 [phi:play_movement::@5/play_movement::@7->play_movement::@return#2] -- register_copy + //SEG405 [170] phi (byte) play_movement::return#2 = (byte) play_movement::render#1 [phi:play_movement::@5/play_movement::@7->play_movement::@return#3] -- register_copy + //SEG406 play_movement::@return breturn: - //SEG337 [143] return + //SEG407 [171] return rts - //SEG338 play_movement::@1 + //SEG408 play_movement::@1 b1: - //SEG339 [144] (byte) play_move_leftright::key_event#0 ← (byte) play_movement::key_event#0 -- vbuaa=vbuz1 + //SEG409 [172] (byte) play_move_leftright::key_event#0 ← (byte) play_movement::key_event#0 -- vbuaa=vbuz1 lda key_event - //SEG340 [145] call play_move_leftright + //SEG410 [173] call play_move_leftright jsr play_move_leftright - //SEG341 [146] (byte) play_move_leftright::return#0 ← (byte) play_move_leftright::return#2 + //SEG411 [174] (byte) play_move_leftright::return#0 ← (byte) play_move_leftright::return#2 // (byte) play_move_leftright::return#0 = (byte) play_move_leftright::return#2 // register copy reg byte a - //SEG342 play_movement::@6 - //SEG343 [147] (byte~) play_movement::$3 ← (byte) play_move_leftright::return#0 + //SEG412 play_movement::@6 + //SEG413 [175] (byte~) play_movement::$3 ← (byte) play_move_leftright::return#0 // (byte~) play_movement::$3 = (byte) play_move_leftright::return#0 // register copy reg byte a - //SEG344 [148] (byte) play_movement::render#2 ← (byte) play_movement::render#1 + (byte~) play_movement::$3 -- vbuz1=vbuz1_plus_vbuaa + //SEG414 [176] (byte) play_movement::render#2 ← (byte) play_movement::render#1 + (byte~) play_movement::$3 -- vbuz1=vbuz1_plus_vbuaa clc adc render sta render - //SEG345 [149] (byte) play_move_rotate::key_event#0 ← (byte) play_movement::key_event#0 -- vbuaa=vbuz1 + //SEG415 [177] (byte) play_move_rotate::key_event#0 ← (byte) play_movement::key_event#0 -- vbuaa=vbuz1 lda key_event - //SEG346 [150] call play_move_rotate + //SEG416 [178] call play_move_rotate jsr play_move_rotate - //SEG347 [151] (byte) play_move_rotate::return#0 ← (byte) play_move_rotate::return#2 + //SEG417 [179] (byte) play_move_rotate::return#0 ← (byte) play_move_rotate::return#2 // (byte) play_move_rotate::return#0 = (byte) play_move_rotate::return#2 // register copy reg byte a - //SEG348 play_movement::@7 - //SEG349 [152] (byte~) play_movement::$4 ← (byte) play_move_rotate::return#0 + //SEG418 play_movement::@7 + //SEG419 [180] (byte~) play_movement::$4 ← (byte) play_move_rotate::return#0 // (byte~) play_movement::$4 = (byte) play_move_rotate::return#0 // register copy reg byte a - //SEG350 [153] (byte) play_movement::return#0 ← (byte) play_movement::render#2 + (byte~) play_movement::$4 -- vbuz1=vbuz1_plus_vbuaa + //SEG420 [181] (byte) play_movement::return#0 ← (byte) play_movement::render#2 + (byte~) play_movement::$4 -- vbuz1=vbuz1_plus_vbuaa clc adc return sta return jmp breturn } -//SEG351 play_move_rotate +//SEG421 play_move_rotate play_move_rotate: { .label orientation = $a - //SEG352 [154] if((byte) play_move_rotate::key_event#0==(const byte) KEY_Z#0) goto play_move_rotate::@1 -- vbuaa_eq_vbuc1_then_la1 + //SEG422 [182] 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 - //SEG353 play_move_rotate::@6 - //SEG354 [155] if((byte) play_move_rotate::key_event#0==(const byte) KEY_X#0) goto play_move_rotate::@2 -- vbuaa_eq_vbuc1_then_la1 + //SEG423 play_move_rotate::@6 + //SEG424 [183] 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 - //SEG355 [156] phi from play_move_rotate::@14 play_move_rotate::@6 to play_move_rotate::@return [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return] + //SEG425 [184] 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: - //SEG356 [156] phi (byte*) current_piece_gfx#19 = (byte*) current_piece_gfx#18 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#0] -- register_copy - //SEG357 [156] phi (byte) current_orientation#24 = (byte) current_orientation#19 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#1] -- register_copy - //SEG358 [156] phi (byte) play_move_rotate::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#2] -- vbuaa=vbuc1 + //SEG426 [184] phi (byte*) current_piece_gfx#20 = (byte*) current_piece_gfx#19 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#0] -- register_copy + //SEG427 [184] phi (byte) current_orientation#25 = (byte) current_orientation#20 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#1] -- register_copy + //SEG428 [184] phi (byte) play_move_rotate::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_rotate::@14/play_move_rotate::@6->play_move_rotate::@return#2] -- vbuaa=vbuc1 lda #0 - //SEG359 play_move_rotate::@return + //SEG429 play_move_rotate::@return breturn: - //SEG360 [157] return + //SEG430 [185] return rts - //SEG361 play_move_rotate::@2 + //SEG431 play_move_rotate::@2 b2: - //SEG362 [158] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#19 + (byte/signed byte/word/signed word/dword/signed dword) 16 -- vbuaa=vbuz1_plus_vbuc1 + //SEG432 [186] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#20 + (byte/signed byte/word/signed word/dword/signed dword) 16 -- vbuaa=vbuz1_plus_vbuc1 lda #$10 clc adc current_orientation - //SEG363 [159] (byte) play_move_rotate::orientation#2 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 & (byte/signed byte/word/signed word/dword/signed dword) 63 -- vbuz1=vbuaa_band_vbuc1 + //SEG433 [187] (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 - //SEG364 [160] phi from play_move_rotate::@1 play_move_rotate::@2 to play_move_rotate::@4 [phi:play_move_rotate::@1/play_move_rotate::@2->play_move_rotate::@4] - //SEG365 [160] phi (byte) play_move_rotate::orientation#3 = (byte) play_move_rotate::orientation#1 [phi:play_move_rotate::@1/play_move_rotate::@2->play_move_rotate::@4#0] -- register_copy - //SEG366 play_move_rotate::@4 + //SEG434 [188] 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] + //SEG435 [188] 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 + //SEG436 play_move_rotate::@4 b4: - //SEG367 [161] (byte) play_collision::xpos#3 ← (byte) current_xpos#24 -- vbuz1=vbuz2 + //SEG437 [189] (byte) play_collision::xpos#3 ← (byte) current_xpos#25 -- vbuz1=vbuz2 lda current_xpos sta play_collision.xpos - //SEG368 [162] (byte) play_collision::ypos#3 ← (byte) current_ypos#17 -- vbuz1=vbuz2 + //SEG438 [190] (byte) play_collision::ypos#3 ← (byte) current_ypos#18 -- vbuz1=vbuz2 lda current_ypos sta play_collision.ypos - //SEG369 [163] (byte) play_collision::orientation#3 ← (byte) play_move_rotate::orientation#3 -- vbuxx=vbuz1 + //SEG439 [191] (byte) play_collision::orientation#3 ← (byte) play_move_rotate::orientation#3 -- vbuxx=vbuz1 ldx orientation - //SEG370 [164] (byte*~) current_piece#93 ← (byte*) current_piece#14 -- pbuz1=pbuz2 + //SEG440 [192] (byte*~) current_piece#101 ← (byte*) current_piece#15 -- pbuz1=pbuz2 lda current_piece - sta current_piece_93 + sta current_piece_101 lda current_piece+1 - sta current_piece_93+1 - //SEG371 [165] call play_collision - //SEG372 [173] phi from play_move_rotate::@4 to play_collision [phi:play_move_rotate::@4->play_collision] - //SEG373 [173] phi (byte) play_collision::xpos#6 = (byte) play_collision::xpos#3 [phi:play_move_rotate::@4->play_collision#0] -- register_copy - //SEG374 [173] phi (byte) play_collision::ypos#5 = (byte) play_collision::ypos#3 [phi:play_move_rotate::@4->play_collision#1] -- register_copy - //SEG375 [173] phi (byte) play_collision::orientation#5 = (byte) play_collision::orientation#3 [phi:play_move_rotate::@4->play_collision#2] -- register_copy - //SEG376 [173] phi (byte*) current_piece#16 = (byte*~) current_piece#93 [phi:play_move_rotate::@4->play_collision#3] -- register_copy + sta current_piece_101+1 + //SEG441 [193] call play_collision + //SEG442 [201] phi from play_move_rotate::@4 to play_collision [phi:play_move_rotate::@4->play_collision] + //SEG443 [201] phi (byte) play_collision::xpos#6 = (byte) play_collision::xpos#3 [phi:play_move_rotate::@4->play_collision#0] -- register_copy + //SEG444 [201] phi (byte) play_collision::ypos#5 = (byte) play_collision::ypos#3 [phi:play_move_rotate::@4->play_collision#1] -- register_copy + //SEG445 [201] phi (byte) play_collision::orientation#5 = (byte) play_collision::orientation#3 [phi:play_move_rotate::@4->play_collision#2] -- register_copy + //SEG446 [201] phi (byte*) current_piece#17 = (byte*~) current_piece#101 [phi:play_move_rotate::@4->play_collision#3] -- register_copy jsr play_collision - //SEG377 [166] (byte) play_collision::return#14 ← (byte) play_collision::return#15 + //SEG447 [194] (byte) play_collision::return#14 ← (byte) play_collision::return#15 // (byte) play_collision::return#14 = (byte) play_collision::return#15 // register copy reg byte a - //SEG378 play_move_rotate::@14 - //SEG379 [167] (byte~) play_move_rotate::$6 ← (byte) play_collision::return#14 + //SEG448 play_move_rotate::@14 + //SEG449 [195] (byte~) play_move_rotate::$6 ← (byte) play_collision::return#14 // (byte~) play_move_rotate::$6 = (byte) play_collision::return#14 // register copy reg byte a - //SEG380 [168] if((byte~) play_move_rotate::$6!=(const byte) COLLISION_NONE#0) goto play_move_rotate::@return -- vbuaa_neq_vbuc1_then_la1 + //SEG450 [196] 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 - //SEG381 play_move_rotate::@11 - //SEG382 [169] (byte) current_orientation#7 ← (byte) play_move_rotate::orientation#3 -- vbuz1=vbuz2 + //SEG451 play_move_rotate::@11 + //SEG452 [197] (byte) current_orientation#7 ← (byte) play_move_rotate::orientation#3 -- vbuz1=vbuz2 lda orientation sta current_orientation - //SEG383 [170] (byte*) current_piece_gfx#6 ← (byte*) current_piece#14 + (byte) current_orientation#7 -- pbuz1=pbuz2_plus_vbuz3 + //SEG453 [198] (byte*) current_piece_gfx#6 ← (byte*) current_piece#15 + (byte) current_orientation#7 -- pbuz1=pbuz2_plus_vbuz3 clc adc current_piece sta current_piece_gfx lda #0 adc current_piece+1 sta current_piece_gfx+1 - //SEG384 [156] phi from play_move_rotate::@11 to play_move_rotate::@return [phi:play_move_rotate::@11->play_move_rotate::@return] - //SEG385 [156] phi (byte*) current_piece_gfx#19 = (byte*) current_piece_gfx#6 [phi:play_move_rotate::@11->play_move_rotate::@return#0] -- register_copy - //SEG386 [156] phi (byte) current_orientation#24 = (byte) current_orientation#7 [phi:play_move_rotate::@11->play_move_rotate::@return#1] -- register_copy - //SEG387 [156] phi (byte) play_move_rotate::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_rotate::@11->play_move_rotate::@return#2] -- vbuaa=vbuc1 + //SEG454 [184] phi from play_move_rotate::@11 to play_move_rotate::@return [phi:play_move_rotate::@11->play_move_rotate::@return] + //SEG455 [184] phi (byte*) current_piece_gfx#20 = (byte*) current_piece_gfx#6 [phi:play_move_rotate::@11->play_move_rotate::@return#0] -- register_copy + //SEG456 [184] phi (byte) current_orientation#25 = (byte) current_orientation#7 [phi:play_move_rotate::@11->play_move_rotate::@return#1] -- register_copy + //SEG457 [184] phi (byte) play_move_rotate::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_rotate::@11->play_move_rotate::@return#2] -- vbuaa=vbuc1 lda #1 jmp breturn - //SEG388 play_move_rotate::@1 + //SEG458 play_move_rotate::@1 b1: - //SEG389 [171] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#19 - (byte/signed byte/word/signed word/dword/signed dword) 16 -- vbuaa=vbuz1_minus_vbuc1 + //SEG459 [199] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#20 - (byte/signed byte/word/signed word/dword/signed dword) 16 -- vbuaa=vbuz1_minus_vbuc1 lda current_orientation sec sbc #$10 - //SEG390 [172] (byte) play_move_rotate::orientation#1 ← (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 & (byte/signed byte/word/signed word/dword/signed dword) 63 -- vbuz1=vbuaa_band_vbuc1 + //SEG460 [200] (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 } -//SEG391 play_collision +//SEG461 play_collision play_collision: { .label xpos = $c .label ypos = $b .label piece_gfx = 5 .label ypos2 = $b .label playfield_line = 7 - .label i = $29 + .label i = $2a .label col = $f .label l = $d .label i_2 = $e .label i_3 = $e .label i_11 = $e .label i_13 = $e - //SEG392 [174] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#16 + (byte) play_collision::orientation#5 -- pbuz1=pbuz1_plus_vbuxx + //SEG462 [202] (byte*) play_collision::piece_gfx#0 ← (byte*) current_piece#17 + (byte) play_collision::orientation#5 -- pbuz1=pbuz1_plus_vbuxx txa clc adc piece_gfx @@ -22706,534 +24360,544 @@ play_collision: { lda #0 adc piece_gfx+1 sta piece_gfx+1 - //SEG393 [175] (byte) play_collision::ypos2#0 ← (byte) play_collision::ypos#5 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz1_rol_1 + //SEG463 [203] (byte) play_collision::ypos2#0 ← (byte) play_collision::ypos#5 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz1_rol_1 asl ypos2 - //SEG394 [176] phi from play_collision to play_collision::@1 [phi:play_collision->play_collision::@1] - //SEG395 [176] phi (byte) play_collision::l#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_collision->play_collision::@1#0] -- vbuz1=vbuc1 + //SEG464 [204] phi from play_collision to play_collision::@1 [phi:play_collision->play_collision::@1] + //SEG465 [204] 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 - //SEG396 [176] phi (byte) play_collision::i#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_collision->play_collision::@1#1] -- vbuz1=vbuc1 + //SEG466 [204] 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 - //SEG397 [176] phi (byte) play_collision::ypos2#2 = (byte) play_collision::ypos2#0 [phi:play_collision->play_collision::@1#2] -- register_copy - //SEG398 play_collision::@1 + //SEG467 [204] phi (byte) play_collision::ypos2#2 = (byte) play_collision::ypos2#0 [phi:play_collision->play_collision::@1#2] -- register_copy + //SEG468 play_collision::@1 b1: - //SEG399 [177] (byte*) play_collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_collision::ypos2#2) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG469 [205] (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 - //SEG400 [178] (byte~) play_collision::col#9 ← (byte) play_collision::xpos#6 -- vbuz1=vbuz2 + //SEG470 [206] (byte~) play_collision::col#9 ← (byte) play_collision::xpos#6 -- vbuz1=vbuz2 lda xpos sta col - //SEG401 [179] phi from play_collision::@1 to play_collision::@2 [phi:play_collision::@1->play_collision::@2] - //SEG402 [179] phi (byte) play_collision::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_collision::@1->play_collision::@2#0] -- vbuxx=vbuc1 + //SEG471 [207] phi from play_collision::@1 to play_collision::@2 [phi:play_collision::@1->play_collision::@2] + //SEG472 [207] 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 - //SEG403 [179] phi (byte) play_collision::col#2 = (byte~) play_collision::col#9 [phi:play_collision::@1->play_collision::@2#1] -- register_copy - //SEG404 [179] phi (byte) play_collision::i#2 = (byte) play_collision::i#3 [phi:play_collision::@1->play_collision::@2#2] -- register_copy - //SEG405 play_collision::@2 + //SEG473 [207] phi (byte) play_collision::col#2 = (byte~) play_collision::col#9 [phi:play_collision::@1->play_collision::@2#1] -- register_copy + //SEG474 [207] phi (byte) play_collision::i#2 = (byte) play_collision::i#3 [phi:play_collision::@1->play_collision::@2#2] -- register_copy + //SEG475 play_collision::@2 b2: - //SEG406 [180] (byte) play_collision::i#1 ← ++ (byte) play_collision::i#2 -- vbuz1=_inc_vbuz2 + //SEG476 [208] (byte) play_collision::i#1 ← ++ (byte) play_collision::i#2 -- vbuz1=_inc_vbuz2 ldy i_2 iny sty i - //SEG407 [181] if(*((byte*) play_collision::piece_gfx#0 + (byte) play_collision::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 + //SEG477 [209] 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 - //SEG408 play_collision::@8 - //SEG409 [182] if((byte) play_collision::ypos2#2<(byte/signed byte/word/signed word/dword/signed dword) 2*(const byte) PLAYFIELD_LINES#0) goto play_collision::@4 -- vbuz1_lt_vbuc1_then_la1 + //SEG478 play_collision::@8 + //SEG479 [210] 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 - //SEG410 [183] phi from play_collision::@8 to play_collision::@return [phi:play_collision::@8->play_collision::@return] - //SEG411 [183] phi (byte) play_collision::return#15 = (const byte) COLLISION_BOTTOM#0 [phi:play_collision::@8->play_collision::@return#0] -- vbuaa=vbuc1 + //SEG480 [211] phi from play_collision::@8 to play_collision::@return [phi:play_collision::@8->play_collision::@return] + //SEG481 [211] phi (byte) play_collision::return#15 = (const byte) COLLISION_BOTTOM#0 [phi:play_collision::@8->play_collision::@return#0] -- vbuaa=vbuc1 lda #COLLISION_BOTTOM - //SEG412 play_collision::@return + //SEG482 play_collision::@return breturn: - //SEG413 [184] return + //SEG483 [212] return rts - //SEG414 play_collision::@4 + //SEG484 play_collision::@4 b4: - //SEG415 [185] (byte~) play_collision::$7 ← (byte) play_collision::col#2 & (byte/word/signed word/dword/signed dword) 128 -- vbuaa=vbuz1_band_vbuc1 + //SEG485 [213] (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 - //SEG416 [186] if((byte~) play_collision::$7==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@5 -- vbuaa_eq_0_then_la1 + //SEG486 [214] 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 - //SEG417 [183] phi from play_collision::@4 to play_collision::@return [phi:play_collision::@4->play_collision::@return] - //SEG418 [183] phi (byte) play_collision::return#15 = (const byte) COLLISION_LEFT#0 [phi:play_collision::@4->play_collision::@return#0] -- vbuaa=vbuc1 + //SEG487 [211] phi from play_collision::@4 to play_collision::@return [phi:play_collision::@4->play_collision::@return] + //SEG488 [211] phi (byte) play_collision::return#15 = (const byte) COLLISION_LEFT#0 [phi:play_collision::@4->play_collision::@return#0] -- vbuaa=vbuc1 lda #COLLISION_LEFT jmp breturn - //SEG419 play_collision::@5 + //SEG489 play_collision::@5 b5: - //SEG420 [187] if((byte) play_collision::col#2<(const byte) PLAYFIELD_COLS#0) goto play_collision::@6 -- vbuz1_lt_vbuc1_then_la1 + //SEG490 [215] 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 - //SEG421 [183] phi from play_collision::@5 to play_collision::@return [phi:play_collision::@5->play_collision::@return] - //SEG422 [183] phi (byte) play_collision::return#15 = (const byte) COLLISION_RIGHT#0 [phi:play_collision::@5->play_collision::@return#0] -- vbuaa=vbuc1 + //SEG491 [211] phi from play_collision::@5 to play_collision::@return [phi:play_collision::@5->play_collision::@return] + //SEG492 [211] phi (byte) play_collision::return#15 = (const byte) COLLISION_RIGHT#0 [phi:play_collision::@5->play_collision::@return#0] -- vbuaa=vbuc1 lda #COLLISION_RIGHT jmp breturn - //SEG423 play_collision::@6 + //SEG493 play_collision::@6 b6: - //SEG424 [188] if(*((byte*) play_collision::playfield_line#0 + (byte) play_collision::col#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_collision::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 + //SEG494 [216] 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 - //SEG425 [183] phi from play_collision::@6 to play_collision::@return [phi:play_collision::@6->play_collision::@return] - //SEG426 [183] phi (byte) play_collision::return#15 = (const byte) COLLISION_PLAYFIELD#0 [phi:play_collision::@6->play_collision::@return#0] -- vbuaa=vbuc1 + //SEG495 [211] phi from play_collision::@6 to play_collision::@return [phi:play_collision::@6->play_collision::@return] + //SEG496 [211] phi (byte) play_collision::return#15 = (const byte) COLLISION_PLAYFIELD#0 [phi:play_collision::@6->play_collision::@return#0] -- vbuaa=vbuc1 lda #COLLISION_PLAYFIELD jmp breturn - //SEG427 play_collision::@3 + //SEG497 play_collision::@3 b3: - //SEG428 [189] (byte) play_collision::col#1 ← ++ (byte) play_collision::col#2 -- vbuz1=_inc_vbuz1 + //SEG498 [217] (byte) play_collision::col#1 ← ++ (byte) play_collision::col#2 -- vbuz1=_inc_vbuz1 inc col - //SEG429 [190] (byte) play_collision::c#1 ← ++ (byte) play_collision::c#2 -- vbuxx=_inc_vbuxx + //SEG499 [218] (byte) play_collision::c#1 ← ++ (byte) play_collision::c#2 -- vbuxx=_inc_vbuxx inx - //SEG430 [191] if((byte) play_collision::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_collision::@21 -- vbuxx_neq_vbuc1_then_la1 + //SEG500 [219] 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 - //SEG431 play_collision::@17 - //SEG432 [192] (byte) play_collision::ypos2#1 ← (byte) play_collision::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz1_plus_2 + //SEG501 play_collision::@17 + //SEG502 [220] (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 - //SEG433 [193] (byte) play_collision::l#1 ← ++ (byte) play_collision::l#6 -- vbuz1=_inc_vbuz1 + //SEG503 [221] (byte) play_collision::l#1 ← ++ (byte) play_collision::l#6 -- vbuz1=_inc_vbuz1 inc l - //SEG434 [194] if((byte) play_collision::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_collision::@20 -- vbuz1_neq_vbuc1_then_la1 + //SEG504 [222] 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 - //SEG435 [183] phi from play_collision::@17 to play_collision::@return [phi:play_collision::@17->play_collision::@return] - //SEG436 [183] phi (byte) play_collision::return#15 = (const byte) COLLISION_NONE#0 [phi:play_collision::@17->play_collision::@return#0] -- vbuaa=vbuc1 + //SEG505 [211] phi from play_collision::@17 to play_collision::@return [phi:play_collision::@17->play_collision::@return] + //SEG506 [211] phi (byte) play_collision::return#15 = (const byte) COLLISION_NONE#0 [phi:play_collision::@17->play_collision::@return#0] -- vbuaa=vbuc1 lda #COLLISION_NONE jmp breturn - //SEG437 play_collision::@20 + //SEG507 play_collision::@20 b20: - //SEG438 [195] (byte~) play_collision::i#11 ← (byte) play_collision::i#1 -- vbuz1=vbuz2 + //SEG508 [223] (byte~) play_collision::i#11 ← (byte) play_collision::i#1 -- vbuz1=vbuz2 lda i sta i_11 - //SEG439 [176] phi from play_collision::@20 to play_collision::@1 [phi:play_collision::@20->play_collision::@1] - //SEG440 [176] phi (byte) play_collision::l#6 = (byte) play_collision::l#1 [phi:play_collision::@20->play_collision::@1#0] -- register_copy - //SEG441 [176] phi (byte) play_collision::i#3 = (byte~) play_collision::i#11 [phi:play_collision::@20->play_collision::@1#1] -- register_copy - //SEG442 [176] phi (byte) play_collision::ypos2#2 = (byte) play_collision::ypos2#1 [phi:play_collision::@20->play_collision::@1#2] -- register_copy + //SEG509 [204] phi from play_collision::@20 to play_collision::@1 [phi:play_collision::@20->play_collision::@1] + //SEG510 [204] phi (byte) play_collision::l#6 = (byte) play_collision::l#1 [phi:play_collision::@20->play_collision::@1#0] -- register_copy + //SEG511 [204] phi (byte) play_collision::i#3 = (byte~) play_collision::i#11 [phi:play_collision::@20->play_collision::@1#1] -- register_copy + //SEG512 [204] phi (byte) play_collision::ypos2#2 = (byte) play_collision::ypos2#1 [phi:play_collision::@20->play_collision::@1#2] -- register_copy jmp b1 - //SEG443 play_collision::@21 + //SEG513 play_collision::@21 b21: - //SEG444 [196] (byte~) play_collision::i#13 ← (byte) play_collision::i#1 -- vbuz1=vbuz2 + //SEG514 [224] (byte~) play_collision::i#13 ← (byte) play_collision::i#1 -- vbuz1=vbuz2 lda i sta i_13 - //SEG445 [179] phi from play_collision::@21 to play_collision::@2 [phi:play_collision::@21->play_collision::@2] - //SEG446 [179] phi (byte) play_collision::c#2 = (byte) play_collision::c#1 [phi:play_collision::@21->play_collision::@2#0] -- register_copy - //SEG447 [179] phi (byte) play_collision::col#2 = (byte) play_collision::col#1 [phi:play_collision::@21->play_collision::@2#1] -- register_copy - //SEG448 [179] phi (byte) play_collision::i#2 = (byte~) play_collision::i#13 [phi:play_collision::@21->play_collision::@2#2] -- register_copy + //SEG515 [207] phi from play_collision::@21 to play_collision::@2 [phi:play_collision::@21->play_collision::@2] + //SEG516 [207] phi (byte) play_collision::c#2 = (byte) play_collision::c#1 [phi:play_collision::@21->play_collision::@2#0] -- register_copy + //SEG517 [207] phi (byte) play_collision::col#2 = (byte) play_collision::col#1 [phi:play_collision::@21->play_collision::@2#1] -- register_copy + //SEG518 [207] phi (byte) play_collision::i#2 = (byte~) play_collision::i#13 [phi:play_collision::@21->play_collision::@2#2] -- register_copy jmp b2 } -//SEG449 play_move_leftright +//SEG519 play_move_leftright play_move_leftright: { - //SEG450 [197] if((byte) play_move_leftright::key_event#0==(const byte) KEY_COMMA#0) goto play_move_leftright::@1 -- vbuaa_eq_vbuc1_then_la1 + //SEG520 [225] 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 - //SEG451 play_move_leftright::@6 - //SEG452 [198] if((byte) play_move_leftright::key_event#0!=(const byte) KEY_DOT#0) goto play_move_leftright::@return -- vbuaa_neq_vbuc1_then_la1 + //SEG521 play_move_leftright::@6 + //SEG522 [226] 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 - //SEG453 play_move_leftright::@7 - //SEG454 [199] (byte) play_collision::xpos#2 ← (byte) current_xpos#20 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_plus_1 + //SEG523 play_move_leftright::@7 + //SEG524 [227] (byte) play_collision::xpos#2 ← (byte) current_xpos#21 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_plus_1 ldy current_xpos iny sty play_collision.xpos - //SEG455 [200] (byte) play_collision::ypos#2 ← (byte) current_ypos#17 -- vbuz1=vbuz2 + //SEG525 [228] (byte) play_collision::ypos#2 ← (byte) current_ypos#18 -- vbuz1=vbuz2 lda current_ypos sta play_collision.ypos - //SEG456 [201] (byte) play_collision::orientation#2 ← (byte) current_orientation#19 -- vbuxx=vbuz1 + //SEG526 [229] (byte) play_collision::orientation#2 ← (byte) current_orientation#20 -- vbuxx=vbuz1 ldx current_orientation - //SEG457 [202] (byte*~) current_piece#92 ← (byte*) current_piece#14 -- pbuz1=pbuz2 + //SEG527 [230] (byte*~) current_piece#100 ← (byte*) current_piece#15 -- pbuz1=pbuz2 lda current_piece - sta current_piece_92 + sta current_piece_100 lda current_piece+1 - sta current_piece_92+1 - //SEG458 [203] call play_collision - //SEG459 [173] phi from play_move_leftright::@7 to play_collision [phi:play_move_leftright::@7->play_collision] - //SEG460 [173] phi (byte) play_collision::xpos#6 = (byte) play_collision::xpos#2 [phi:play_move_leftright::@7->play_collision#0] -- register_copy - //SEG461 [173] phi (byte) play_collision::ypos#5 = (byte) play_collision::ypos#2 [phi:play_move_leftright::@7->play_collision#1] -- register_copy - //SEG462 [173] phi (byte) play_collision::orientation#5 = (byte) play_collision::orientation#2 [phi:play_move_leftright::@7->play_collision#2] -- register_copy - //SEG463 [173] phi (byte*) current_piece#16 = (byte*~) current_piece#92 [phi:play_move_leftright::@7->play_collision#3] -- register_copy + sta current_piece_100+1 + //SEG528 [231] call play_collision + //SEG529 [201] phi from play_move_leftright::@7 to play_collision [phi:play_move_leftright::@7->play_collision] + //SEG530 [201] phi (byte) play_collision::xpos#6 = (byte) play_collision::xpos#2 [phi:play_move_leftright::@7->play_collision#0] -- register_copy + //SEG531 [201] phi (byte) play_collision::ypos#5 = (byte) play_collision::ypos#2 [phi:play_move_leftright::@7->play_collision#1] -- register_copy + //SEG532 [201] phi (byte) play_collision::orientation#5 = (byte) play_collision::orientation#2 [phi:play_move_leftright::@7->play_collision#2] -- register_copy + //SEG533 [201] phi (byte*) current_piece#17 = (byte*~) current_piece#100 [phi:play_move_leftright::@7->play_collision#3] -- register_copy jsr play_collision - //SEG464 [204] (byte) play_collision::return#13 ← (byte) play_collision::return#15 + //SEG534 [232] (byte) play_collision::return#13 ← (byte) play_collision::return#15 // (byte) play_collision::return#13 = (byte) play_collision::return#15 // register copy reg byte a - //SEG465 play_move_leftright::@15 - //SEG466 [205] (byte~) play_move_leftright::$4 ← (byte) play_collision::return#13 + //SEG535 play_move_leftright::@15 + //SEG536 [233] (byte~) play_move_leftright::$4 ← (byte) play_collision::return#13 // (byte~) play_move_leftright::$4 = (byte) play_collision::return#13 // register copy reg byte a - //SEG467 [206] if((byte~) play_move_leftright::$4!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return -- vbuaa_neq_vbuc1_then_la1 + //SEG537 [234] 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 - //SEG468 play_move_leftright::@8 - //SEG469 [207] (byte) current_xpos#5 ← ++ (byte) current_xpos#20 -- vbuz1=_inc_vbuz1 + //SEG538 play_move_leftright::@8 + //SEG539 [235] (byte) current_xpos#5 ← ++ (byte) current_xpos#21 -- vbuz1=_inc_vbuz1 inc current_xpos - //SEG470 [208] phi from play_move_leftright::@11 play_move_leftright::@8 to play_move_leftright::@return [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return] + //SEG540 [236] 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: - //SEG471 [208] phi (byte) current_xpos#24 = (byte) current_xpos#7 [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return#0] -- register_copy - //SEG472 [208] phi (byte) play_move_leftright::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return#1] -- vbuaa=vbuc1 + //SEG541 [236] phi (byte) current_xpos#25 = (byte) current_xpos#7 [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return#0] -- register_copy + //SEG542 [236] phi (byte) play_move_leftright::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_leftright::@11/play_move_leftright::@8->play_move_leftright::@return#1] -- vbuaa=vbuc1 lda #1 jmp breturn - //SEG473 [208] phi from play_move_leftright::@14 play_move_leftright::@15 play_move_leftright::@6 to play_move_leftright::@return [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return] + //SEG543 [236] 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: - //SEG474 [208] phi (byte) current_xpos#24 = (byte) current_xpos#20 [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return#0] -- register_copy - //SEG475 [208] phi (byte) play_move_leftright::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return#1] -- vbuaa=vbuc1 + //SEG544 [236] phi (byte) current_xpos#25 = (byte) current_xpos#21 [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return#0] -- register_copy + //SEG545 [236] phi (byte) play_move_leftright::return#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_leftright::@14/play_move_leftright::@15/play_move_leftright::@6->play_move_leftright::@return#1] -- vbuaa=vbuc1 lda #0 - //SEG476 play_move_leftright::@return + //SEG546 play_move_leftright::@return breturn: - //SEG477 [209] return + //SEG547 [237] return rts - //SEG478 play_move_leftright::@1 + //SEG548 play_move_leftright::@1 b1: - //SEG479 [210] (byte) play_collision::xpos#1 ← (byte) current_xpos#20 - (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_minus_1 + //SEG549 [238] (byte) play_collision::xpos#1 ← (byte) current_xpos#21 - (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_minus_1 ldx current_xpos dex stx play_collision.xpos - //SEG480 [211] (byte) play_collision::ypos#1 ← (byte) current_ypos#17 -- vbuz1=vbuz2 + //SEG550 [239] (byte) play_collision::ypos#1 ← (byte) current_ypos#18 -- vbuz1=vbuz2 lda current_ypos sta play_collision.ypos - //SEG481 [212] (byte) play_collision::orientation#1 ← (byte) current_orientation#19 -- vbuxx=vbuz1 + //SEG551 [240] (byte) play_collision::orientation#1 ← (byte) current_orientation#20 -- vbuxx=vbuz1 ldx current_orientation - //SEG482 [213] (byte*~) current_piece#91 ← (byte*) current_piece#14 -- pbuz1=pbuz2 + //SEG552 [241] (byte*~) current_piece#99 ← (byte*) current_piece#15 -- pbuz1=pbuz2 lda current_piece - sta current_piece_91 + sta current_piece_99 lda current_piece+1 - sta current_piece_91+1 - //SEG483 [214] call play_collision - //SEG484 [173] phi from play_move_leftright::@1 to play_collision [phi:play_move_leftright::@1->play_collision] - //SEG485 [173] phi (byte) play_collision::xpos#6 = (byte) play_collision::xpos#1 [phi:play_move_leftright::@1->play_collision#0] -- register_copy - //SEG486 [173] phi (byte) play_collision::ypos#5 = (byte) play_collision::ypos#1 [phi:play_move_leftright::@1->play_collision#1] -- register_copy - //SEG487 [173] phi (byte) play_collision::orientation#5 = (byte) play_collision::orientation#1 [phi:play_move_leftright::@1->play_collision#2] -- register_copy - //SEG488 [173] phi (byte*) current_piece#16 = (byte*~) current_piece#91 [phi:play_move_leftright::@1->play_collision#3] -- register_copy + sta current_piece_99+1 + //SEG553 [242] call play_collision + //SEG554 [201] phi from play_move_leftright::@1 to play_collision [phi:play_move_leftright::@1->play_collision] + //SEG555 [201] phi (byte) play_collision::xpos#6 = (byte) play_collision::xpos#1 [phi:play_move_leftright::@1->play_collision#0] -- register_copy + //SEG556 [201] phi (byte) play_collision::ypos#5 = (byte) play_collision::ypos#1 [phi:play_move_leftright::@1->play_collision#1] -- register_copy + //SEG557 [201] phi (byte) play_collision::orientation#5 = (byte) play_collision::orientation#1 [phi:play_move_leftright::@1->play_collision#2] -- register_copy + //SEG558 [201] phi (byte*) current_piece#17 = (byte*~) current_piece#99 [phi:play_move_leftright::@1->play_collision#3] -- register_copy jsr play_collision - //SEG489 [215] (byte) play_collision::return#1 ← (byte) play_collision::return#15 + //SEG559 [243] (byte) play_collision::return#1 ← (byte) play_collision::return#15 // (byte) play_collision::return#1 = (byte) play_collision::return#15 // register copy reg byte a - //SEG490 play_move_leftright::@14 - //SEG491 [216] (byte~) play_move_leftright::$8 ← (byte) play_collision::return#1 + //SEG560 play_move_leftright::@14 + //SEG561 [244] (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 - //SEG492 [217] if((byte~) play_move_leftright::$8!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return -- vbuaa_neq_vbuc1_then_la1 + //SEG562 [245] 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 - //SEG493 play_move_leftright::@11 - //SEG494 [218] (byte) current_xpos#7 ← -- (byte) current_xpos#20 -- vbuz1=_dec_vbuz1 + //SEG563 play_move_leftright::@11 + //SEG564 [246] (byte) current_xpos#7 ← -- (byte) current_xpos#21 -- vbuz1=_dec_vbuz1 dec current_xpos jmp b2 } -//SEG495 play_move_down +//SEG565 play_move_down play_move_down: { - //SEG496 [219] (byte) current_movedown_counter#12 ← ++ (byte) current_movedown_counter#16 -- vbuz1=_inc_vbuz1 + //SEG566 [247] (byte) current_movedown_counter#12 ← ++ (byte) current_movedown_counter#16 -- vbuz1=_inc_vbuz1 inc current_movedown_counter - //SEG497 [220] if((byte) play_move_down::key_event#0!=(const byte) KEY_SPACE#0) goto play_move_down::@1 -- vbuaa_neq_vbuc1_then_la1 + //SEG567 [248] 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 - //SEG498 [221] phi from play_move_down to play_move_down::@8 [phi:play_move_down->play_move_down::@8] - //SEG499 play_move_down::@8 - //SEG500 [222] phi from play_move_down::@8 to play_move_down::@1 [phi:play_move_down::@8->play_move_down::@1] - //SEG501 [222] phi (byte) play_move_down::movedown#10 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_down::@8->play_move_down::@1#0] -- vbuxx=vbuc1 + //SEG568 [249] phi from play_move_down to play_move_down::@8 [phi:play_move_down->play_move_down::@8] + //SEG569 play_move_down::@8 + //SEG570 [250] phi from play_move_down::@8 to play_move_down::@1 [phi:play_move_down::@8->play_move_down::@1] + //SEG571 [250] 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 - //SEG502 [222] phi from play_move_down to play_move_down::@1 [phi:play_move_down->play_move_down::@1] + //SEG572 [250] phi from play_move_down to play_move_down::@1 [phi:play_move_down->play_move_down::@1] b3: - //SEG503 [222] phi (byte) play_move_down::movedown#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down->play_move_down::@1#0] -- vbuxx=vbuc1 + //SEG573 [250] 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 - //SEG504 play_move_down::@1 + //SEG574 play_move_down::@1 b1: - //SEG505 [223] call keyboard_event_pressed - //SEG506 [355] phi from play_move_down::@1 to keyboard_event_pressed [phi:play_move_down::@1->keyboard_event_pressed] - //SEG507 [355] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_SPACE#0 [phi:play_move_down::@1->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG575 [251] call keyboard_event_pressed + //SEG576 [384] phi from play_move_down::@1 to keyboard_event_pressed [phi:play_move_down::@1->keyboard_event_pressed] + //SEG577 [384] 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 - //SEG508 [224] (byte) keyboard_event_pressed::return#12 ← (byte) keyboard_event_pressed::return#11 + //SEG578 [252] (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 - //SEG509 play_move_down::@17 - //SEG510 [225] (byte~) play_move_down::$2 ← (byte) keyboard_event_pressed::return#12 + //SEG579 play_move_down::@17 + //SEG580 [253] (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 - //SEG511 [226] if((byte~) play_move_down::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@2 -- vbuaa_eq_0_then_la1 + //SEG581 [254] 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 - //SEG512 play_move_down::@9 - //SEG513 [227] if((byte) current_movedown_counter#12<(const byte) current_movedown_fast#0) goto play_move_down::@2 -- vbuz1_lt_vbuc1_then_la1 + //SEG582 play_move_down::@9 + //SEG583 [255] if((byte) current_movedown_counter#12<(const byte) current_movedown_fast#0) goto play_move_down::@2 -- vbuz1_lt_vbuc1_then_la1 lda current_movedown_counter cmp #current_movedown_fast bcc b2 - //SEG514 play_move_down::@10 - //SEG515 [228] (byte) play_move_down::movedown#2 ← ++ (byte) play_move_down::movedown#10 -- vbuxx=_inc_vbuxx + //SEG584 play_move_down::@10 + //SEG585 [256] (byte) play_move_down::movedown#2 ← ++ (byte) play_move_down::movedown#10 -- vbuxx=_inc_vbuxx inx - //SEG516 [229] phi from play_move_down::@10 play_move_down::@17 play_move_down::@9 to play_move_down::@2 [phi:play_move_down::@10/play_move_down::@17/play_move_down::@9->play_move_down::@2] - //SEG517 [229] phi (byte) play_move_down::movedown#7 = (byte) play_move_down::movedown#2 [phi:play_move_down::@10/play_move_down::@17/play_move_down::@9->play_move_down::@2#0] -- register_copy - //SEG518 play_move_down::@2 + //SEG586 [257] 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] + //SEG587 [257] 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 + //SEG588 play_move_down::@2 b2: - //SEG519 [230] if((byte) current_movedown_counter#12<(byte) current_movedown_slow#14) goto play_move_down::@4 -- vbuz1_lt_vbuz2_then_la1 + //SEG589 [258] if((byte) current_movedown_counter#12<(byte) current_movedown_slow#14) goto play_move_down::@4 -- vbuz1_lt_vbuz2_then_la1 lda current_movedown_counter cmp current_movedown_slow bcc b4 - //SEG520 play_move_down::@11 - //SEG521 [231] (byte) play_move_down::movedown#3 ← ++ (byte) play_move_down::movedown#7 -- vbuxx=_inc_vbuxx + //SEG590 play_move_down::@11 + //SEG591 [259] (byte) play_move_down::movedown#3 ← ++ (byte) play_move_down::movedown#7 -- vbuxx=_inc_vbuxx inx - //SEG522 [232] phi from play_move_down::@11 play_move_down::@2 to play_move_down::@4 [phi:play_move_down::@11/play_move_down::@2->play_move_down::@4] - //SEG523 [232] phi (byte) play_move_down::movedown#6 = (byte) play_move_down::movedown#3 [phi:play_move_down::@11/play_move_down::@2->play_move_down::@4#0] -- register_copy - //SEG524 play_move_down::@4 + //SEG592 [260] 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] + //SEG593 [260] 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 + //SEG594 play_move_down::@4 b4: - //SEG525 [233] if((byte) play_move_down::movedown#6==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@return -- vbuxx_eq_0_then_la1 + //SEG595 [261] 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 - //SEG526 play_move_down::@12 - //SEG527 [234] (byte) play_collision::ypos#0 ← (byte) current_ypos#25 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_plus_1 + //SEG596 play_move_down::@12 + //SEG597 [262] (byte) play_collision::ypos#0 ← (byte) current_ypos#10 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz2_plus_1 ldy current_ypos iny sty play_collision.ypos - //SEG528 [235] (byte) play_collision::xpos#0 ← (byte) current_xpos#113 -- vbuz1=vbuz2 + //SEG598 [263] (byte) play_collision::xpos#0 ← (byte) current_xpos#121 -- vbuz1=vbuz2 lda current_xpos sta play_collision.xpos - //SEG529 [236] (byte) play_collision::orientation#0 ← (byte) current_orientation#12 -- vbuxx=vbuz1 + //SEG599 [264] (byte) play_collision::orientation#0 ← (byte) current_orientation#13 -- vbuxx=vbuz1 ldx current_orientation - //SEG530 [237] (byte*~) current_piece#90 ← (byte*) current_piece#20 -- pbuz1=pbuz2 + //SEG600 [265] (byte*~) current_piece#98 ← (byte*) current_piece#10 -- pbuz1=pbuz2 lda current_piece - sta current_piece_90 + sta current_piece_98 lda current_piece+1 - sta current_piece_90+1 - //SEG531 [238] call play_collision - //SEG532 [173] phi from play_move_down::@12 to play_collision [phi:play_move_down::@12->play_collision] - //SEG533 [173] phi (byte) play_collision::xpos#6 = (byte) play_collision::xpos#0 [phi:play_move_down::@12->play_collision#0] -- register_copy - //SEG534 [173] phi (byte) play_collision::ypos#5 = (byte) play_collision::ypos#0 [phi:play_move_down::@12->play_collision#1] -- register_copy - //SEG535 [173] phi (byte) play_collision::orientation#5 = (byte) play_collision::orientation#0 [phi:play_move_down::@12->play_collision#2] -- register_copy - //SEG536 [173] phi (byte*) current_piece#16 = (byte*~) current_piece#90 [phi:play_move_down::@12->play_collision#3] -- register_copy + sta current_piece_98+1 + //SEG601 [266] call play_collision + //SEG602 [201] phi from play_move_down::@12 to play_collision [phi:play_move_down::@12->play_collision] + //SEG603 [201] phi (byte) play_collision::xpos#6 = (byte) play_collision::xpos#0 [phi:play_move_down::@12->play_collision#0] -- register_copy + //SEG604 [201] phi (byte) play_collision::ypos#5 = (byte) play_collision::ypos#0 [phi:play_move_down::@12->play_collision#1] -- register_copy + //SEG605 [201] phi (byte) play_collision::orientation#5 = (byte) play_collision::orientation#0 [phi:play_move_down::@12->play_collision#2] -- register_copy + //SEG606 [201] phi (byte*) current_piece#17 = (byte*~) current_piece#98 [phi:play_move_down::@12->play_collision#3] -- register_copy jsr play_collision - //SEG537 [239] (byte) play_collision::return#0 ← (byte) play_collision::return#15 + //SEG607 [267] (byte) play_collision::return#0 ← (byte) play_collision::return#15 // (byte) play_collision::return#0 = (byte) play_collision::return#15 // register copy reg byte a - //SEG538 play_move_down::@18 - //SEG539 [240] (byte~) play_move_down::$12 ← (byte) play_collision::return#0 + //SEG608 play_move_down::@18 + //SEG609 [268] (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 - //SEG540 [241] if((byte~) play_move_down::$12==(const byte) COLLISION_NONE#0) goto play_move_down::@6 -- vbuaa_eq_vbuc1_then_la1 + //SEG610 [269] 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 - //SEG541 [242] phi from play_move_down::@18 to play_move_down::@13 [phi:play_move_down::@18->play_move_down::@13] - //SEG542 play_move_down::@13 - //SEG543 [243] call play_lock_current + //SEG611 [270] phi from play_move_down::@18 to play_move_down::@13 [phi:play_move_down::@18->play_move_down::@13] + //SEG612 play_move_down::@13 + //SEG613 [271] call play_lock_current jsr play_lock_current - //SEG544 [244] phi from play_move_down::@13 to play_move_down::@19 [phi:play_move_down::@13->play_move_down::@19] - //SEG545 play_move_down::@19 - //SEG546 [245] call play_remove_lines - //SEG547 [315] phi from play_move_down::@19 to play_remove_lines [phi:play_move_down::@19->play_remove_lines] + //SEG614 [272] phi from play_move_down::@13 to play_move_down::@19 [phi:play_move_down::@13->play_move_down::@19] + //SEG615 play_move_down::@19 + //SEG616 [273] call play_remove_lines + //SEG617 [344] phi from play_move_down::@19 to play_remove_lines [phi:play_move_down::@19->play_remove_lines] jsr play_remove_lines - //SEG548 [246] (byte) play_remove_lines::return#0 ← (byte) play_remove_lines::removed#7 -- vbuaa=vbuz1 + //SEG618 [274] (byte) play_remove_lines::return#0 ← (byte) play_remove_lines::removed#7 -- vbuaa=vbuz1 lda play_remove_lines.removed - //SEG549 play_move_down::@20 - //SEG550 [247] (byte) play_move_down::removed#0 ← (byte) play_remove_lines::return#0 + //SEG619 play_move_down::@20 + //SEG620 [275] (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 - //SEG551 [248] (byte) play_update_score::removed#0 ← (byte) play_move_down::removed#0 -- vbuxx=vbuaa + //SEG621 [276] (byte) play_update_score::removed#0 ← (byte) play_move_down::removed#0 -- vbuxx=vbuaa tax - //SEG552 [249] call play_update_score + //SEG622 [277] call play_update_score jsr play_update_score - //SEG553 [250] phi from play_move_down::@20 to play_move_down::@21 [phi:play_move_down::@20->play_move_down::@21] - //SEG554 play_move_down::@21 - //SEG555 [251] call play_spawn_current - //SEG556 [257] phi from play_move_down::@21 to play_spawn_current [phi:play_move_down::@21->play_spawn_current] - //SEG557 [257] phi (byte) game_over#70 = (byte) game_over#19 [phi:play_move_down::@21->play_spawn_current#0] -- register_copy + //SEG623 [278] phi from play_move_down::@20 to play_move_down::@21 [phi:play_move_down::@20->play_move_down::@21] + //SEG624 play_move_down::@21 + //SEG625 [279] call play_spawn_current + //SEG626 [285] phi from play_move_down::@21 to play_spawn_current [phi:play_move_down::@21->play_spawn_current] + //SEG627 [285] phi (byte) game_over#65 = (byte) game_over#10 [phi:play_move_down::@21->play_spawn_current#0] -- register_copy + //SEG628 [285] phi (byte) next_piece_idx#17 = (byte) next_piece_idx#10 [phi:play_move_down::@21->play_spawn_current#1] -- register_copy jsr play_spawn_current - //SEG558 [252] (byte*~) current_piece#95 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) -- pbuz1=pptc1_derefidx_vbuz2 - ldy play_spawn_current._3 + //SEG629 [280] (byte*~) current_piece#103 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$0) -- pbuz1=pptc1_derefidx_vbuz2 + ldy play_spawn_current._0 lda PIECES,y sta current_piece lda PIECES+1,y sta current_piece+1 - //SEG559 [253] phi from play_move_down::@21 to play_move_down::@7 [phi:play_move_down::@21->play_move_down::@7] - //SEG560 [253] phi (byte) game_over#26 = (byte) game_over#15 [phi:play_move_down::@21->play_move_down::@7#0] -- register_copy - //SEG561 [253] phi (byte) current_xpos#41 = (byte) current_xpos#28 [phi:play_move_down::@21->play_move_down::@7#1] -- register_copy - //SEG562 [253] phi (byte*) current_piece_gfx#33 = (byte*) current_piece_gfx#21 [phi:play_move_down::@21->play_move_down::@7#2] -- register_copy - //SEG563 [253] phi (byte) current_orientation#36 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@21->play_move_down::@7#3] -- vbuz1=vbuc1 + //SEG630 [281] phi from play_move_down::@21 to play_move_down::@7 [phi:play_move_down::@21->play_move_down::@7] + //SEG631 [281] phi (byte) next_piece_idx#31 = (byte) play_spawn_current::piece_idx#2 [phi:play_move_down::@21->play_move_down::@7#0] -- register_copy + //SEG632 [281] phi (byte) game_over#28 = (byte) game_over#52 [phi:play_move_down::@21->play_move_down::@7#1] -- register_copy + //SEG633 [281] phi (byte) current_xpos#43 = (byte) current_xpos#102 [phi:play_move_down::@21->play_move_down::@7#2] -- register_copy + //SEG634 [281] phi (byte*) current_piece_gfx#35 = (byte*) current_piece_gfx#7 [phi:play_move_down::@21->play_move_down::@7#3] -- register_copy + //SEG635 [281] phi (byte) current_orientation#38 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@21->play_move_down::@7#4] -- vbuz1=vbuc1 lda #0 sta current_orientation - //SEG564 [253] phi (byte) current_piece_char#27 = (byte) current_piece_char#16 [phi:play_move_down::@21->play_move_down::@7#4] -- register_copy - //SEG565 [253] phi (byte*) current_piece#27 = (byte*~) current_piece#95 [phi:play_move_down::@21->play_move_down::@7#5] -- register_copy - //SEG566 [253] phi (byte) level_bcd#32 = (byte) level_bcd#19 [phi:play_move_down::@21->play_move_down::@7#6] -- register_copy - //SEG567 [253] phi (byte) current_movedown_slow#38 = (byte) current_movedown_slow#23 [phi:play_move_down::@21->play_move_down::@7#7] -- register_copy - //SEG568 [253] phi (byte) level#31 = (byte) level#18 [phi:play_move_down::@21->play_move_down::@7#8] -- register_copy - //SEG569 [253] phi (dword) score_bcd#27 = (dword) score_bcd#16 [phi:play_move_down::@21->play_move_down::@7#9] -- register_copy - //SEG570 [253] phi (word) lines_bcd#27 = (word) lines_bcd#17 [phi:play_move_down::@21->play_move_down::@7#10] -- register_copy - //SEG571 [253] phi (byte) current_ypos#36 = (byte) current_ypos#22 [phi:play_move_down::@21->play_move_down::@7#11] -- register_copy - //SEG572 play_move_down::@7 + //SEG636 [281] phi (byte) current_piece_char#29 = (byte) current_piece_char#4 [phi:play_move_down::@21->play_move_down::@7#5] -- register_copy + //SEG637 [281] phi (byte*) current_piece#29 = (byte*~) current_piece#103 [phi:play_move_down::@21->play_move_down::@7#6] -- register_copy + //SEG638 [281] phi (byte) level_bcd#32 = (byte) level_bcd#19 [phi:play_move_down::@21->play_move_down::@7#7] -- register_copy + //SEG639 [281] phi (byte) current_movedown_slow#38 = (byte) current_movedown_slow#23 [phi:play_move_down::@21->play_move_down::@7#8] -- register_copy + //SEG640 [281] phi (byte) level#31 = (byte) level#18 [phi:play_move_down::@21->play_move_down::@7#9] -- register_copy + //SEG641 [281] phi (dword) score_bcd#27 = (dword) score_bcd#16 [phi:play_move_down::@21->play_move_down::@7#10] -- register_copy + //SEG642 [281] phi (word) lines_bcd#27 = (word) lines_bcd#17 [phi:play_move_down::@21->play_move_down::@7#11] -- register_copy + //SEG643 [281] phi (byte) current_ypos#38 = (byte) current_ypos#5 [phi:play_move_down::@21->play_move_down::@7#12] -- register_copy + //SEG644 play_move_down::@7 b7: - //SEG573 [254] phi from play_move_down::@7 to play_move_down::@return [phi:play_move_down::@7->play_move_down::@return] - //SEG574 [254] phi (byte) game_over#14 = (byte) game_over#26 [phi:play_move_down::@7->play_move_down::@return#0] -- register_copy - //SEG575 [254] phi (byte) current_xpos#20 = (byte) current_xpos#41 [phi:play_move_down::@7->play_move_down::@return#1] -- register_copy - //SEG576 [254] phi (byte*) current_piece_gfx#18 = (byte*) current_piece_gfx#33 [phi:play_move_down::@7->play_move_down::@return#2] -- register_copy - //SEG577 [254] phi (byte) current_orientation#19 = (byte) current_orientation#36 [phi:play_move_down::@7->play_move_down::@return#3] -- register_copy - //SEG578 [254] phi (byte) current_piece_char#14 = (byte) current_piece_char#27 [phi:play_move_down::@7->play_move_down::@return#4] -- register_copy - //SEG579 [254] phi (byte*) current_piece#14 = (byte*) current_piece#27 [phi:play_move_down::@7->play_move_down::@return#5] -- register_copy - //SEG580 [254] phi (byte) level_bcd#17 = (byte) level_bcd#32 [phi:play_move_down::@7->play_move_down::@return#6] -- register_copy - //SEG581 [254] phi (byte) current_movedown_slow#21 = (byte) current_movedown_slow#38 [phi:play_move_down::@7->play_move_down::@return#7] -- register_copy - //SEG582 [254] phi (byte) level#16 = (byte) level#31 [phi:play_move_down::@7->play_move_down::@return#8] -- register_copy - //SEG583 [254] phi (dword) score_bcd#14 = (dword) score_bcd#27 [phi:play_move_down::@7->play_move_down::@return#9] -- register_copy - //SEG584 [254] phi (word) lines_bcd#15 = (word) lines_bcd#27 [phi:play_move_down::@7->play_move_down::@return#10] -- register_copy - //SEG585 [254] phi (byte) current_ypos#17 = (byte) current_ypos#36 [phi:play_move_down::@7->play_move_down::@return#11] -- register_copy - //SEG586 [254] phi (byte) current_movedown_counter#14 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@7->play_move_down::@return#12] -- vbuz1=vbuc1 + //SEG645 [282] phi from play_move_down::@7 to play_move_down::@return [phi:play_move_down::@7->play_move_down::@return] + //SEG646 [282] phi (byte) next_piece_idx#16 = (byte) next_piece_idx#31 [phi:play_move_down::@7->play_move_down::@return#0] -- register_copy + //SEG647 [282] phi (byte) game_over#15 = (byte) game_over#28 [phi:play_move_down::@7->play_move_down::@return#1] -- register_copy + //SEG648 [282] phi (byte) current_xpos#21 = (byte) current_xpos#43 [phi:play_move_down::@7->play_move_down::@return#2] -- register_copy + //SEG649 [282] phi (byte*) current_piece_gfx#19 = (byte*) current_piece_gfx#35 [phi:play_move_down::@7->play_move_down::@return#3] -- register_copy + //SEG650 [282] phi (byte) current_orientation#20 = (byte) current_orientation#38 [phi:play_move_down::@7->play_move_down::@return#4] -- register_copy + //SEG651 [282] phi (byte) current_piece_char#15 = (byte) current_piece_char#29 [phi:play_move_down::@7->play_move_down::@return#5] -- register_copy + //SEG652 [282] phi (byte*) current_piece#15 = (byte*) current_piece#29 [phi:play_move_down::@7->play_move_down::@return#6] -- register_copy + //SEG653 [282] phi (byte) level_bcd#17 = (byte) level_bcd#32 [phi:play_move_down::@7->play_move_down::@return#7] -- register_copy + //SEG654 [282] phi (byte) current_movedown_slow#21 = (byte) current_movedown_slow#38 [phi:play_move_down::@7->play_move_down::@return#8] -- register_copy + //SEG655 [282] phi (byte) level#16 = (byte) level#31 [phi:play_move_down::@7->play_move_down::@return#9] -- register_copy + //SEG656 [282] phi (dword) score_bcd#14 = (dword) score_bcd#27 [phi:play_move_down::@7->play_move_down::@return#10] -- register_copy + //SEG657 [282] phi (word) lines_bcd#15 = (word) lines_bcd#27 [phi:play_move_down::@7->play_move_down::@return#11] -- register_copy + //SEG658 [282] phi (byte) current_ypos#18 = (byte) current_ypos#38 [phi:play_move_down::@7->play_move_down::@return#12] -- register_copy + //SEG659 [282] phi (byte) current_movedown_counter#14 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@7->play_move_down::@return#13] -- vbuz1=vbuc1 lda #0 sta current_movedown_counter - //SEG587 [254] phi (byte) play_move_down::return#3 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_down::@7->play_move_down::@return#13] -- vbuxx=vbuc1 + //SEG660 [282] phi (byte) play_move_down::return#3 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_move_down::@7->play_move_down::@return#14] -- vbuxx=vbuc1 ldx #1 jmp breturn - //SEG588 [254] phi from play_move_down::@4 to play_move_down::@return [phi:play_move_down::@4->play_move_down::@return] + //SEG661 [282] phi from play_move_down::@4 to play_move_down::@return [phi:play_move_down::@4->play_move_down::@return] b5: - //SEG589 [254] phi (byte) game_over#14 = (byte) game_over#19 [phi:play_move_down::@4->play_move_down::@return#0] -- register_copy - //SEG590 [254] phi (byte) current_xpos#20 = (byte) current_xpos#113 [phi:play_move_down::@4->play_move_down::@return#1] -- register_copy - //SEG591 [254] phi (byte*) current_piece_gfx#18 = (byte*) current_piece_gfx#103 [phi:play_move_down::@4->play_move_down::@return#2] -- register_copy - //SEG592 [254] phi (byte) current_orientation#19 = (byte) current_orientation#12 [phi:play_move_down::@4->play_move_down::@return#3] -- register_copy - //SEG593 [254] phi (byte) current_piece_char#14 = (byte) current_piece_char#19 [phi:play_move_down::@4->play_move_down::@return#4] -- register_copy - //SEG594 [254] phi (byte*) current_piece#14 = (byte*) current_piece#20 [phi:play_move_down::@4->play_move_down::@return#5] -- register_copy - //SEG595 [254] phi (byte) level_bcd#17 = (byte) level_bcd#11 [phi:play_move_down::@4->play_move_down::@return#6] -- register_copy - //SEG596 [254] phi (byte) current_movedown_slow#21 = (byte) current_movedown_slow#14 [phi:play_move_down::@4->play_move_down::@return#7] -- register_copy - //SEG597 [254] phi (byte) level#16 = (byte) level#10 [phi:play_move_down::@4->play_move_down::@return#8] -- register_copy - //SEG598 [254] phi (dword) score_bcd#14 = (dword) score_bcd#18 [phi:play_move_down::@4->play_move_down::@return#9] -- register_copy - //SEG599 [254] phi (word) lines_bcd#15 = (word) lines_bcd#19 [phi:play_move_down::@4->play_move_down::@return#10] -- register_copy - //SEG600 [254] phi (byte) current_ypos#17 = (byte) current_ypos#25 [phi:play_move_down::@4->play_move_down::@return#11] -- register_copy - //SEG601 [254] phi (byte) current_movedown_counter#14 = (byte) current_movedown_counter#12 [phi:play_move_down::@4->play_move_down::@return#12] -- register_copy - //SEG602 [254] phi (byte) play_move_down::return#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@4->play_move_down::@return#13] -- vbuxx=vbuc1 + //SEG662 [282] phi (byte) next_piece_idx#16 = (byte) next_piece_idx#10 [phi:play_move_down::@4->play_move_down::@return#0] -- register_copy + //SEG663 [282] phi (byte) game_over#15 = (byte) game_over#10 [phi:play_move_down::@4->play_move_down::@return#1] -- register_copy + //SEG664 [282] phi (byte) current_xpos#21 = (byte) current_xpos#121 [phi:play_move_down::@4->play_move_down::@return#2] -- register_copy + //SEG665 [282] phi (byte*) current_piece_gfx#19 = (byte*) current_piece_gfx#111 [phi:play_move_down::@4->play_move_down::@return#3] -- register_copy + //SEG666 [282] phi (byte) current_orientation#20 = (byte) current_orientation#13 [phi:play_move_down::@4->play_move_down::@return#4] -- register_copy + //SEG667 [282] phi (byte) current_piece_char#15 = (byte) current_piece_char#21 [phi:play_move_down::@4->play_move_down::@return#5] -- register_copy + //SEG668 [282] phi (byte*) current_piece#15 = (byte*) current_piece#10 [phi:play_move_down::@4->play_move_down::@return#6] -- register_copy + //SEG669 [282] phi (byte) level_bcd#17 = (byte) level_bcd#11 [phi:play_move_down::@4->play_move_down::@return#7] -- register_copy + //SEG670 [282] phi (byte) current_movedown_slow#21 = (byte) current_movedown_slow#14 [phi:play_move_down::@4->play_move_down::@return#8] -- register_copy + //SEG671 [282] phi (byte) level#16 = (byte) level#10 [phi:play_move_down::@4->play_move_down::@return#9] -- register_copy + //SEG672 [282] phi (dword) score_bcd#14 = (dword) score_bcd#18 [phi:play_move_down::@4->play_move_down::@return#10] -- register_copy + //SEG673 [282] phi (word) lines_bcd#15 = (word) lines_bcd#19 [phi:play_move_down::@4->play_move_down::@return#11] -- register_copy + //SEG674 [282] phi (byte) current_ypos#18 = (byte) current_ypos#10 [phi:play_move_down::@4->play_move_down::@return#12] -- register_copy + //SEG675 [282] phi (byte) current_movedown_counter#14 = (byte) current_movedown_counter#12 [phi:play_move_down::@4->play_move_down::@return#13] -- register_copy + //SEG676 [282] phi (byte) play_move_down::return#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_move_down::@4->play_move_down::@return#14] -- vbuxx=vbuc1 ldx #0 - //SEG603 play_move_down::@return + //SEG677 play_move_down::@return breturn: - //SEG604 [255] return + //SEG678 [283] return rts - //SEG605 play_move_down::@6 + //SEG679 play_move_down::@6 b6: - //SEG606 [256] (byte) current_ypos#2 ← ++ (byte) current_ypos#25 -- vbuz1=_inc_vbuz1 + //SEG680 [284] (byte) current_ypos#2 ← ++ (byte) current_ypos#10 -- vbuz1=_inc_vbuz1 inc current_ypos - //SEG607 [253] phi from play_move_down::@6 to play_move_down::@7 [phi:play_move_down::@6->play_move_down::@7] - //SEG608 [253] phi (byte) game_over#26 = (byte) game_over#19 [phi:play_move_down::@6->play_move_down::@7#0] -- register_copy - //SEG609 [253] phi (byte) current_xpos#41 = (byte) current_xpos#113 [phi:play_move_down::@6->play_move_down::@7#1] -- register_copy - //SEG610 [253] phi (byte*) current_piece_gfx#33 = (byte*) current_piece_gfx#103 [phi:play_move_down::@6->play_move_down::@7#2] -- register_copy - //SEG611 [253] phi (byte) current_orientation#36 = (byte) current_orientation#12 [phi:play_move_down::@6->play_move_down::@7#3] -- register_copy - //SEG612 [253] phi (byte) current_piece_char#27 = (byte) current_piece_char#19 [phi:play_move_down::@6->play_move_down::@7#4] -- register_copy - //SEG613 [253] phi (byte*) current_piece#27 = (byte*) current_piece#20 [phi:play_move_down::@6->play_move_down::@7#5] -- register_copy - //SEG614 [253] phi (byte) level_bcd#32 = (byte) level_bcd#11 [phi:play_move_down::@6->play_move_down::@7#6] -- register_copy - //SEG615 [253] phi (byte) current_movedown_slow#38 = (byte) current_movedown_slow#14 [phi:play_move_down::@6->play_move_down::@7#7] -- register_copy - //SEG616 [253] phi (byte) level#31 = (byte) level#10 [phi:play_move_down::@6->play_move_down::@7#8] -- register_copy - //SEG617 [253] phi (dword) score_bcd#27 = (dword) score_bcd#18 [phi:play_move_down::@6->play_move_down::@7#9] -- register_copy - //SEG618 [253] phi (word) lines_bcd#27 = (word) lines_bcd#19 [phi:play_move_down::@6->play_move_down::@7#10] -- register_copy - //SEG619 [253] phi (byte) current_ypos#36 = (byte) current_ypos#2 [phi:play_move_down::@6->play_move_down::@7#11] -- register_copy + //SEG681 [281] phi from play_move_down::@6 to play_move_down::@7 [phi:play_move_down::@6->play_move_down::@7] + //SEG682 [281] phi (byte) next_piece_idx#31 = (byte) next_piece_idx#10 [phi:play_move_down::@6->play_move_down::@7#0] -- register_copy + //SEG683 [281] phi (byte) game_over#28 = (byte) game_over#10 [phi:play_move_down::@6->play_move_down::@7#1] -- register_copy + //SEG684 [281] phi (byte) current_xpos#43 = (byte) current_xpos#121 [phi:play_move_down::@6->play_move_down::@7#2] -- register_copy + //SEG685 [281] phi (byte*) current_piece_gfx#35 = (byte*) current_piece_gfx#111 [phi:play_move_down::@6->play_move_down::@7#3] -- register_copy + //SEG686 [281] phi (byte) current_orientation#38 = (byte) current_orientation#13 [phi:play_move_down::@6->play_move_down::@7#4] -- register_copy + //SEG687 [281] phi (byte) current_piece_char#29 = (byte) current_piece_char#21 [phi:play_move_down::@6->play_move_down::@7#5] -- register_copy + //SEG688 [281] phi (byte*) current_piece#29 = (byte*) current_piece#10 [phi:play_move_down::@6->play_move_down::@7#6] -- register_copy + //SEG689 [281] phi (byte) level_bcd#32 = (byte) level_bcd#11 [phi:play_move_down::@6->play_move_down::@7#7] -- register_copy + //SEG690 [281] phi (byte) current_movedown_slow#38 = (byte) current_movedown_slow#14 [phi:play_move_down::@6->play_move_down::@7#8] -- register_copy + //SEG691 [281] phi (byte) level#31 = (byte) level#10 [phi:play_move_down::@6->play_move_down::@7#9] -- register_copy + //SEG692 [281] phi (dword) score_bcd#27 = (dword) score_bcd#18 [phi:play_move_down::@6->play_move_down::@7#10] -- register_copy + //SEG693 [281] phi (word) lines_bcd#27 = (word) lines_bcd#19 [phi:play_move_down::@6->play_move_down::@7#11] -- register_copy + //SEG694 [281] phi (byte) current_ypos#38 = (byte) current_ypos#2 [phi:play_move_down::@6->play_move_down::@7#12] -- register_copy jmp b7 } -//SEG620 play_spawn_current +//SEG695 play_spawn_current play_spawn_current: { - .label _3 = 4 - //SEG621 [258] phi from play_spawn_current to play_spawn_current::@1 [phi:play_spawn_current->play_spawn_current::@1] - //SEG622 [258] phi (byte) play_spawn_current::piece_idx#2 = (byte/signed byte/word/signed word/dword/signed dword) 7 [phi:play_spawn_current->play_spawn_current::@1#0] -- vbuxx=vbuc1 - ldx #7 - //SEG623 play_spawn_current::@1 - b1: - //SEG624 [259] if((byte) play_spawn_current::piece_idx#2==(byte/signed byte/word/signed word/dword/signed dword) 7) goto play_spawn_current::@2 -- vbuxx_eq_vbuc1_then_la1 - cpx #7 - beq b2 - //SEG625 play_spawn_current::@3 - //SEG626 [260] (byte~) play_spawn_current::$3 ← (byte) play_spawn_current::piece_idx#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuxx_rol_1 + .label _0 = 4 + .label piece_idx = $21 + //SEG696 [286] (byte) play_spawn_current::current_piece_idx#0 ← (byte) next_piece_idx#17 -- vbuxx=vbuz1 + ldx next_piece_idx + //SEG697 [287] (byte~) play_spawn_current::$0 ← (byte) play_spawn_current::current_piece_idx#0 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuxx_rol_1 txa asl - sta _3 - //SEG627 [261] (byte) current_piece_char#16 ← *((const byte[]) PIECES_CHARS#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuxx + sta _0 + //SEG698 [288] (byte) current_piece_char#4 ← *((const byte[]) PIECES_CHARS#0 + (byte) play_spawn_current::current_piece_idx#0) -- vbuz1=pbuc1_derefidx_vbuxx lda PIECES_CHARS,x sta current_piece_char - //SEG628 [262] (byte*) current_piece_gfx#21 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) + (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuz1=pptc1_derefidx_vbuz2_plus_0 - ldy _3 + //SEG699 [289] (byte*) current_piece_gfx#7 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$0) + (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuz1=pptc1_derefidx_vbuz2_plus_0 + ldy _0 lda PIECES,y sta current_piece_gfx lda PIECES+1,y sta current_piece_gfx+1 - //SEG629 [263] (byte) current_xpos#28 ← *((const byte[]) PIECES_START_X#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuxx + //SEG700 [290] (byte) current_xpos#102 ← *((const byte[]) PIECES_START_X#0 + (byte) play_spawn_current::current_piece_idx#0) -- vbuz1=pbuc1_derefidx_vbuxx lda PIECES_START_X,x sta current_xpos - //SEG630 [264] (byte) current_ypos#22 ← *((const byte[]) PIECES_START_Y#0 + (byte) play_spawn_current::piece_idx#2) -- vbuz1=pbuc1_derefidx_vbuxx + //SEG701 [291] (byte) current_ypos#5 ← *((const byte[]) PIECES_START_Y#0 + (byte) play_spawn_current::current_piece_idx#0) -- vbuz1=pbuc1_derefidx_vbuxx lda PIECES_START_Y,x sta current_ypos - //SEG631 [265] (byte) play_collision::xpos#4 ← (byte) current_xpos#28 -- vbuz1=vbuz2 + //SEG702 [292] (byte) play_collision::xpos#4 ← (byte) current_xpos#102 -- vbuz1=vbuz2 lda current_xpos sta play_collision.xpos - //SEG632 [266] (byte) play_collision::ypos#4 ← (byte) current_ypos#22 -- vbuz1=vbuz2 + //SEG703 [293] (byte) play_collision::ypos#4 ← (byte) current_ypos#5 -- vbuz1=vbuz2 lda current_ypos sta play_collision.ypos - //SEG633 [267] (byte*~) current_piece#94 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$3) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG704 [294] (byte*~) current_piece#102 ← (byte*)*((const word[]) PIECES#0 + (byte~) play_spawn_current::$0) -- pbuz1=pptc1_derefidx_vbuz2 lda PIECES,y - sta current_piece_94 + sta current_piece_102 lda PIECES+1,y - sta current_piece_94+1 - //SEG634 [268] call play_collision - //SEG635 [173] phi from play_spawn_current::@3 to play_collision [phi:play_spawn_current::@3->play_collision] - //SEG636 [173] phi (byte) play_collision::xpos#6 = (byte) play_collision::xpos#4 [phi:play_spawn_current::@3->play_collision#0] -- register_copy - //SEG637 [173] phi (byte) play_collision::ypos#5 = (byte) play_collision::ypos#4 [phi:play_spawn_current::@3->play_collision#1] -- register_copy - //SEG638 [173] phi (byte) play_collision::orientation#5 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_spawn_current::@3->play_collision#2] -- vbuxx=vbuc1 + sta current_piece_102+1 + //SEG705 [295] call play_collision + //SEG706 [201] phi from play_spawn_current to play_collision [phi:play_spawn_current->play_collision] + //SEG707 [201] phi (byte) play_collision::xpos#6 = (byte) play_collision::xpos#4 [phi:play_spawn_current->play_collision#0] -- register_copy + //SEG708 [201] phi (byte) play_collision::ypos#5 = (byte) play_collision::ypos#4 [phi:play_spawn_current->play_collision#1] -- register_copy + //SEG709 [201] phi (byte) play_collision::orientation#5 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_spawn_current->play_collision#2] -- vbuxx=vbuc1 ldx #0 - //SEG639 [173] phi (byte*) current_piece#16 = (byte*~) current_piece#94 [phi:play_spawn_current::@3->play_collision#3] -- register_copy + //SEG710 [201] phi (byte*) current_piece#17 = (byte*~) current_piece#102 [phi:play_spawn_current->play_collision#3] -- register_copy jsr play_collision - //SEG640 [269] (byte) play_collision::return#10 ← (byte) play_collision::return#15 + //SEG711 [296] (byte) play_collision::return#10 ← (byte) play_collision::return#15 // (byte) play_collision::return#10 = (byte) play_collision::return#15 // register copy reg byte a - //SEG641 play_spawn_current::@10 - //SEG642 [270] (byte~) play_spawn_current::$5 ← (byte) play_collision::return#10 - // (byte~) play_spawn_current::$5 = (byte) play_collision::return#10 // register copy reg byte a - //SEG643 [271] if((byte~) play_spawn_current::$5!=(const byte) COLLISION_PLAYFIELD#0) goto play_spawn_current::@11 -- vbuaa_neq_vbuc1_then_la1 + //SEG712 play_spawn_current::@9 + //SEG713 [297] (byte~) play_spawn_current::$2 ← (byte) play_collision::return#10 + // (byte~) play_spawn_current::$2 = (byte) play_collision::return#10 // register copy reg byte a + //SEG714 [298] if((byte~) play_spawn_current::$2!=(const byte) COLLISION_PLAYFIELD#0) goto play_spawn_current::@11 -- vbuaa_neq_vbuc1_then_la1 cmp #COLLISION_PLAYFIELD - bne breturn - //SEG644 [272] phi from play_spawn_current::@10 to play_spawn_current::@return [phi:play_spawn_current::@10->play_spawn_current::@return] - //SEG645 [272] phi (byte) game_over#15 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_spawn_current::@10->play_spawn_current::@return#0] -- vbuz1=vbuc1 + bne b1 + //SEG715 [299] phi from play_spawn_current::@9 to play_spawn_current::@1 [phi:play_spawn_current::@9->play_spawn_current::@1] + //SEG716 [299] phi (byte) game_over#52 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_spawn_current::@9->play_spawn_current::@1#0] -- vbuz1=vbuc1 lda #1 sta game_over - //SEG646 play_spawn_current::@return - breturn: - //SEG647 [273] return - rts - //SEG648 [274] phi from play_spawn_current::@10 to play_spawn_current::@11 [phi:play_spawn_current::@10->play_spawn_current::@11] - //SEG649 play_spawn_current::@11 - //SEG650 [272] phi from play_spawn_current::@11 to play_spawn_current::@return [phi:play_spawn_current::@11->play_spawn_current::@return] - //SEG651 [272] phi (byte) game_over#15 = (byte) game_over#70 [phi:play_spawn_current::@11->play_spawn_current::@return#0] -- register_copy - //SEG652 [275] phi from play_spawn_current::@1 to play_spawn_current::@2 [phi:play_spawn_current::@1->play_spawn_current::@2] - //SEG653 play_spawn_current::@2 + //SEG717 play_spawn_current::@1 + b1: + //SEG718 [300] phi from play_spawn_current::@1 to play_spawn_current::@2 [phi:play_spawn_current::@1->play_spawn_current::@2] + //SEG719 [300] phi (byte) play_spawn_current::piece_idx#2 = (byte/signed byte/word/signed word/dword/signed dword) 7 [phi:play_spawn_current::@1->play_spawn_current::@2#0] -- vbuz1=vbuc1 + lda #7 + sta piece_idx + //SEG720 play_spawn_current::@2 b2: - //SEG654 [276] call sid_rnd + //SEG721 [301] if((byte) play_spawn_current::piece_idx#2==(byte/signed byte/word/signed word/dword/signed dword) 7) goto play_spawn_current::@3 -- vbuz1_eq_vbuc1_then_la1 + lda piece_idx + cmp #7 + beq b3 + //SEG722 play_spawn_current::@return + //SEG723 [302] return + rts + //SEG724 [303] phi from play_spawn_current::@2 to play_spawn_current::@3 [phi:play_spawn_current::@2->play_spawn_current::@3] + //SEG725 play_spawn_current::@3 + b3: + //SEG726 [304] call sid_rnd jsr sid_rnd - //SEG655 [277] (byte) sid_rnd::return#2 ← (byte) sid_rnd::return#0 + //SEG727 [305] (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 - //SEG656 play_spawn_current::@9 - //SEG657 [278] (byte~) play_spawn_current::$1 ← (byte) sid_rnd::return#2 - // (byte~) play_spawn_current::$1 = (byte) sid_rnd::return#2 // register copy reg byte a - //SEG658 [279] (byte) play_spawn_current::piece_idx#1 ← (byte~) play_spawn_current::$1 & (byte/signed byte/word/signed word/dword/signed dword) 7 -- vbuxx=vbuaa_band_vbuc1 + //SEG728 play_spawn_current::@10 + //SEG729 [306] (byte~) play_spawn_current::$6 ← (byte) sid_rnd::return#2 + // (byte~) play_spawn_current::$6 = (byte) sid_rnd::return#2 // register copy reg byte a + //SEG730 [307] (byte) play_spawn_current::piece_idx#1 ← (byte~) play_spawn_current::$6 & (byte/signed byte/word/signed word/dword/signed dword) 7 -- vbuz1=vbuaa_band_vbuc1 and #7 - tax - //SEG659 [258] phi from play_spawn_current::@9 to play_spawn_current::@1 [phi:play_spawn_current::@9->play_spawn_current::@1] - //SEG660 [258] phi (byte) play_spawn_current::piece_idx#2 = (byte) play_spawn_current::piece_idx#1 [phi:play_spawn_current::@9->play_spawn_current::@1#0] -- register_copy - jmp b1 + sta piece_idx + //SEG731 [300] phi from play_spawn_current::@10 to play_spawn_current::@2 [phi:play_spawn_current::@10->play_spawn_current::@2] + //SEG732 [300] phi (byte) play_spawn_current::piece_idx#2 = (byte) play_spawn_current::piece_idx#1 [phi:play_spawn_current::@10->play_spawn_current::@2#0] -- register_copy + jmp b2 + //SEG733 [308] phi from play_spawn_current::@9 to play_spawn_current::@11 [phi:play_spawn_current::@9->play_spawn_current::@11] + //SEG734 play_spawn_current::@11 + //SEG735 [299] phi from play_spawn_current::@11 to play_spawn_current::@1 [phi:play_spawn_current::@11->play_spawn_current::@1] + //SEG736 [299] phi (byte) game_over#52 = (byte) game_over#65 [phi:play_spawn_current::@11->play_spawn_current::@1#0] -- register_copy } -//SEG661 sid_rnd +//SEG737 sid_rnd sid_rnd: { - //SEG662 [280] (byte) sid_rnd::return#0 ← *((const byte*) SID_VOICE3_OSC#0) -- vbuaa=_deref_pbuc1 + //SEG738 [309] (byte) sid_rnd::return#0 ← *((const byte*) SID_VOICE3_OSC#0) -- vbuaa=_deref_pbuc1 lda SID_VOICE3_OSC - //SEG663 sid_rnd::@return - //SEG664 [281] return + //SEG739 sid_rnd::@return + //SEG740 [310] return rts } -//SEG665 play_update_score +//SEG741 play_update_score play_update_score: { .label lines_before = 4 - .label add_bcd = $2a - //SEG666 [282] if((byte) play_update_score::removed#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_update_score::@return -- vbuxx_eq_0_then_la1 + .label add_bcd = $2b + //SEG742 [311] 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 - //SEG667 play_update_score::@3 - //SEG668 [283] (byte~) play_update_score::$2 ← < (word) lines_bcd#19 -- vbuaa=_lo_vwuz1 + //SEG743 play_update_score::@3 + //SEG744 [312] (byte~) play_update_score::$2 ← < (word) lines_bcd#19 -- vbuaa=_lo_vwuz1 lda lines_bcd - //SEG669 [284] (byte) play_update_score::lines_before#0 ← (byte~) play_update_score::$2 & (byte/word/signed word/dword/signed dword) 240 -- vbuz1=vbuaa_band_vbuc1 + //SEG745 [313] (byte) play_update_score::lines_before#0 ← (byte~) play_update_score::$2 & (byte/word/signed word/dword/signed dword) 240 -- vbuz1=vbuaa_band_vbuc1 and #$f0 sta lines_before - //SEG670 [285] (byte~) play_update_score::$4 ← (byte) play_update_score::removed#0 << (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuaa=vbuxx_rol_2 + //SEG746 [314] (byte~) play_update_score::$4 ← (byte) play_update_score::removed#0 << (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuaa=vbuxx_rol_2 txa asl asl - //SEG671 [286] (dword) play_update_score::add_bcd#0 ← *((const dword[5]) score_add_bcd#0 + (byte~) play_update_score::$4) -- vduz1=pduc1_derefidx_vbuaa + //SEG747 [315] (dword) play_update_score::add_bcd#0 ← *((const dword[5]) score_add_bcd#0 + (byte~) play_update_score::$4) -- vduz1=pduc1_derefidx_vbuaa tay lda score_add_bcd,y sta add_bcd @@ -23243,9 +24907,9 @@ play_update_score: { sta add_bcd+2 lda score_add_bcd+3,y sta add_bcd+3 - //SEG672 asm { sed } + //SEG748 asm { sed } sed - //SEG673 [288] (word) lines_bcd#30 ← (word) lines_bcd#19 + (byte) play_update_score::removed#0 -- vwuz1=vwuz1_plus_vbuxx + //SEG749 [317] (word) lines_bcd#30 ← (word) lines_bcd#19 + (byte) play_update_score::removed#0 -- vwuz1=vwuz1_plus_vbuxx txa clc adc lines_bcd @@ -23253,7 +24917,7 @@ play_update_score: { lda #0 adc lines_bcd+1 sta lines_bcd+1 - //SEG674 [289] (dword) score_bcd#30 ← (dword) score_bcd#18 + (dword) play_update_score::add_bcd#0 -- vduz1=vduz1_plus_vduz2 + //SEG750 [318] (dword) score_bcd#30 ← (dword) score_bcd#18 + (dword) play_update_score::add_bcd#0 -- vduz1=vduz1_plus_vduz2 lda score_bcd clc adc add_bcd @@ -23267,87 +24931,87 @@ play_update_score: { lda score_bcd+3 adc add_bcd+3 sta score_bcd+3 - //SEG675 asm { cld } + //SEG751 asm { cld } cld - //SEG676 [291] (byte~) play_update_score::$5 ← < (word) lines_bcd#30 -- vbuaa=_lo_vwuz1 + //SEG752 [320] (byte~) play_update_score::$5 ← < (word) lines_bcd#30 -- vbuaa=_lo_vwuz1 lda lines_bcd - //SEG677 [292] (byte) play_update_score::lines_after#0 ← (byte~) play_update_score::$5 & (byte/word/signed word/dword/signed dword) 240 -- vbuaa=vbuaa_band_vbuc1 + //SEG753 [321] (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 - //SEG678 [293] if((byte) play_update_score::lines_before#0==(byte) play_update_score::lines_after#0) goto play_update_score::@return -- vbuz1_eq_vbuaa_then_la1 + //SEG754 [322] if((byte) play_update_score::lines_before#0==(byte) play_update_score::lines_after#0) goto play_update_score::@return -- vbuz1_eq_vbuaa_then_la1 cmp lines_before beq breturn - //SEG679 [294] phi from play_update_score::@3 to play_update_score::@4 [phi:play_update_score::@3->play_update_score::@4] - //SEG680 play_update_score::@4 - //SEG681 [295] call play_increase_level + //SEG755 [323] phi from play_update_score::@3 to play_update_score::@4 [phi:play_update_score::@3->play_update_score::@4] + //SEG756 play_update_score::@4 + //SEG757 [324] call play_increase_level jsr play_increase_level - //SEG682 [296] phi from play_update_score play_update_score::@3 play_update_score::@4 to play_update_score::@return [phi:play_update_score/play_update_score::@3/play_update_score::@4->play_update_score::@return] - //SEG683 [296] phi (byte) level_bcd#19 = (byte) level_bcd#11 [phi:play_update_score/play_update_score::@3/play_update_score::@4->play_update_score::@return#0] -- register_copy - //SEG684 [296] phi (byte) current_movedown_slow#23 = (byte) current_movedown_slow#14 [phi:play_update_score/play_update_score::@3/play_update_score::@4->play_update_score::@return#1] -- register_copy - //SEG685 [296] phi (byte) level#18 = (byte) level#10 [phi:play_update_score/play_update_score::@3/play_update_score::@4->play_update_score::@return#2] -- register_copy - //SEG686 [296] phi (dword) score_bcd#16 = (dword) score_bcd#18 [phi:play_update_score/play_update_score::@3/play_update_score::@4->play_update_score::@return#3] -- register_copy - //SEG687 [296] phi (word) lines_bcd#17 = (word) lines_bcd#19 [phi:play_update_score/play_update_score::@3/play_update_score::@4->play_update_score::@return#4] -- register_copy - //SEG688 play_update_score::@return + //SEG758 [325] phi from play_update_score play_update_score::@3 play_update_score::@4 to play_update_score::@return [phi:play_update_score/play_update_score::@3/play_update_score::@4->play_update_score::@return] + //SEG759 [325] phi (byte) level_bcd#19 = (byte) level_bcd#11 [phi:play_update_score/play_update_score::@3/play_update_score::@4->play_update_score::@return#0] -- register_copy + //SEG760 [325] phi (byte) current_movedown_slow#23 = (byte) current_movedown_slow#14 [phi:play_update_score/play_update_score::@3/play_update_score::@4->play_update_score::@return#1] -- register_copy + //SEG761 [325] phi (byte) level#18 = (byte) level#10 [phi:play_update_score/play_update_score::@3/play_update_score::@4->play_update_score::@return#2] -- register_copy + //SEG762 [325] phi (dword) score_bcd#16 = (dword) score_bcd#18 [phi:play_update_score/play_update_score::@3/play_update_score::@4->play_update_score::@return#3] -- register_copy + //SEG763 [325] phi (word) lines_bcd#17 = (word) lines_bcd#19 [phi:play_update_score/play_update_score::@3/play_update_score::@4->play_update_score::@return#4] -- register_copy + //SEG764 play_update_score::@return breturn: - //SEG689 [297] return + //SEG765 [326] return rts } -//SEG690 play_increase_level +//SEG766 play_increase_level play_increase_level: { - //SEG691 [298] (byte) level#20 ← ++ (byte) level#10 -- vbuz1=_inc_vbuz1 + //SEG767 [327] (byte) level#20 ← ++ (byte) level#10 -- vbuz1=_inc_vbuz1 inc level - //SEG692 [299] if((byte) level#20>(byte/signed byte/word/signed word/dword/signed dword) 29) goto play_increase_level::@2 -- vbuz1_gt_vbuc1_then_la1 + //SEG768 [328] if((byte) level#20>(byte/signed byte/word/signed word/dword/signed dword) 29) goto play_increase_level::@2 -- vbuz1_gt_vbuc1_then_la1 lda level cmp #$1d beq !+ bcs b1 !: - //SEG693 play_increase_level::@5 - //SEG694 [300] (byte) current_movedown_slow#10 ← *((const byte[]) MOVEDOWN_SLOW_SPEEDS#0 + (byte) level#20) -- vbuz1=pbuc1_derefidx_vbuz2 + //SEG769 play_increase_level::@5 + //SEG770 [329] (byte) current_movedown_slow#10 ← *((const byte[]) MOVEDOWN_SLOW_SPEEDS#0 + (byte) level#20) -- vbuz1=pbuc1_derefidx_vbuz2 ldy level lda MOVEDOWN_SLOW_SPEEDS,y sta current_movedown_slow - //SEG695 [301] phi from play_increase_level::@5 to play_increase_level::@2 [phi:play_increase_level::@5->play_increase_level::@2] - //SEG696 [301] phi (byte) current_movedown_slow#69 = (byte) current_movedown_slow#10 [phi:play_increase_level::@5->play_increase_level::@2#0] -- register_copy + //SEG771 [330] phi from play_increase_level::@5 to play_increase_level::@2 [phi:play_increase_level::@5->play_increase_level::@2] + //SEG772 [330] phi (byte) current_movedown_slow#69 = (byte) current_movedown_slow#10 [phi:play_increase_level::@5->play_increase_level::@2#0] -- register_copy jmp b2 - //SEG697 [301] phi from play_increase_level to play_increase_level::@2 [phi:play_increase_level->play_increase_level::@2] + //SEG773 [330] phi from play_increase_level to play_increase_level::@2 [phi:play_increase_level->play_increase_level::@2] b1: - //SEG698 [301] phi (byte) current_movedown_slow#69 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_increase_level->play_increase_level::@2#0] -- vbuz1=vbuc1 + //SEG774 [330] phi (byte) current_movedown_slow#69 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_increase_level->play_increase_level::@2#0] -- vbuz1=vbuc1 lda #1 sta current_movedown_slow - //SEG699 play_increase_level::@2 + //SEG775 play_increase_level::@2 b2: - //SEG700 [302] (byte) level_bcd#21 ← ++ (byte) level_bcd#11 -- vbuz1=_inc_vbuz1 + //SEG776 [331] (byte) level_bcd#21 ← ++ (byte) level_bcd#11 -- vbuz1=_inc_vbuz1 inc level_bcd - //SEG701 [303] (byte~) play_increase_level::$1 ← (byte) level_bcd#21 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuz1_band_vbuc1 + //SEG777 [332] (byte~) play_increase_level::$1 ← (byte) level_bcd#21 & (byte/signed byte/word/signed word/dword/signed dword) 15 -- vbuaa=vbuz1_band_vbuc1 lda #$f and level_bcd - //SEG702 [304] if((byte~) play_increase_level::$1!=(byte/signed byte/word/signed word/dword/signed dword) 10) goto play_increase_level::@3 -- vbuaa_neq_vbuc1_then_la1 + //SEG778 [333] if((byte~) play_increase_level::$1!=(byte/signed byte/word/signed word/dword/signed dword) 10) goto play_increase_level::@3 -- vbuaa_neq_vbuc1_then_la1 cmp #$a bne b3 - //SEG703 play_increase_level::@7 - //SEG704 [305] (byte) level_bcd#8 ← (byte) level_bcd#21 + (byte/signed byte/word/signed word/dword/signed dword) 6 -- vbuz1=vbuz1_plus_vbuc1 + //SEG779 play_increase_level::@7 + //SEG780 [334] (byte) level_bcd#8 ← (byte) level_bcd#21 + (byte/signed byte/word/signed word/dword/signed dword) 6 -- vbuz1=vbuz1_plus_vbuc1 lda #6 clc adc level_bcd sta level_bcd - //SEG705 [306] phi from play_increase_level::@2 play_increase_level::@7 to play_increase_level::@3 [phi:play_increase_level::@2/play_increase_level::@7->play_increase_level::@3] - //SEG706 [306] phi (byte) level_bcd#64 = (byte) level_bcd#21 [phi:play_increase_level::@2/play_increase_level::@7->play_increase_level::@3#0] -- register_copy - //SEG707 play_increase_level::@3 + //SEG781 [335] phi from play_increase_level::@2 play_increase_level::@7 to play_increase_level::@3 [phi:play_increase_level::@2/play_increase_level::@7->play_increase_level::@3] + //SEG782 [335] phi (byte) level_bcd#64 = (byte) level_bcd#21 [phi:play_increase_level::@2/play_increase_level::@7->play_increase_level::@3#0] -- register_copy + //SEG783 play_increase_level::@3 b3: - //SEG708 asm { sed } + //SEG784 asm { sed } sed - //SEG709 [308] phi from play_increase_level::@3 to play_increase_level::@4 [phi:play_increase_level::@3->play_increase_level::@4] - //SEG710 [308] phi (byte) play_increase_level::b#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_increase_level::@3->play_increase_level::@4#0] -- vbuxx=vbuc1 + //SEG785 [337] phi from play_increase_level::@3 to play_increase_level::@4 [phi:play_increase_level::@3->play_increase_level::@4] + //SEG786 [337] phi (byte) play_increase_level::b#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_increase_level::@3->play_increase_level::@4#0] -- vbuxx=vbuc1 ldx #0 - //SEG711 [308] phi from play_increase_level::@4 to play_increase_level::@4 [phi:play_increase_level::@4->play_increase_level::@4] - //SEG712 [308] phi (byte) play_increase_level::b#2 = (byte) play_increase_level::b#1 [phi:play_increase_level::@4->play_increase_level::@4#0] -- register_copy - //SEG713 play_increase_level::@4 + //SEG787 [337] phi from play_increase_level::@4 to play_increase_level::@4 [phi:play_increase_level::@4->play_increase_level::@4] + //SEG788 [337] phi (byte) play_increase_level::b#2 = (byte) play_increase_level::b#1 [phi:play_increase_level::@4->play_increase_level::@4#0] -- register_copy + //SEG789 play_increase_level::@4 b4: - //SEG714 [309] (byte) play_increase_level::b4#0 ← (byte) play_increase_level::b#2 << (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuaa=vbuxx_rol_2 + //SEG790 [338] (byte) play_increase_level::b4#0 ← (byte) play_increase_level::b#2 << (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuaa=vbuxx_rol_2 txa asl asl - //SEG715 [310] *((const dword[5]) score_add_bcd#0 + (byte) play_increase_level::b4#0) ← *((const dword[5]) score_add_bcd#0 + (byte) play_increase_level::b4#0) + *((const dword[]) SCORE_BASE_BCD#0 + (byte) play_increase_level::b4#0) -- pduc1_derefidx_vbuaa=pduc1_derefidx_vbuaa_plus_pduc2_derefidx_vbuaa + //SEG791 [339] *((const dword[5]) score_add_bcd#0 + (byte) play_increase_level::b4#0) ← *((const dword[5]) score_add_bcd#0 + (byte) play_increase_level::b4#0) + *((const dword[]) SCORE_BASE_BCD#0 + (byte) play_increase_level::b4#0) -- pduc1_derefidx_vbuaa=pduc1_derefidx_vbuaa_plus_pduc2_derefidx_vbuaa tay clc lda score_add_bcd,y @@ -23362,131 +25026,131 @@ play_increase_level: { lda score_add_bcd+3,y adc SCORE_BASE_BCD+3,y sta score_add_bcd+3,y - //SEG716 [311] (byte) play_increase_level::b#1 ← ++ (byte) play_increase_level::b#2 -- vbuxx=_inc_vbuxx + //SEG792 [340] (byte) play_increase_level::b#1 ← ++ (byte) play_increase_level::b#2 -- vbuxx=_inc_vbuxx inx - //SEG717 [312] if((byte) play_increase_level::b#1!=(byte/signed byte/word/signed word/dword/signed dword) 5) goto play_increase_level::@4 -- vbuxx_neq_vbuc1_then_la1 + //SEG793 [341] if((byte) play_increase_level::b#1!=(byte/signed byte/word/signed word/dword/signed dword) 5) goto play_increase_level::@4 -- vbuxx_neq_vbuc1_then_la1 cpx #5 bne b4 - //SEG718 play_increase_level::@8 - //SEG719 asm { cld } + //SEG794 play_increase_level::@8 + //SEG795 asm { cld } cld - //SEG720 play_increase_level::@return - //SEG721 [314] return + //SEG796 play_increase_level::@return + //SEG797 [343] return rts } -//SEG722 play_remove_lines +//SEG798 play_remove_lines play_remove_lines: { .label c = $c .label x = $a .label y = 4 .label removed = 9 .label full = $b - //SEG723 [316] phi from play_remove_lines to play_remove_lines::@1 [phi:play_remove_lines->play_remove_lines::@1] - //SEG724 [316] phi (byte) play_remove_lines::removed#11 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_remove_lines->play_remove_lines::@1#0] -- vbuz1=vbuc1 + //SEG799 [345] phi from play_remove_lines to play_remove_lines::@1 [phi:play_remove_lines->play_remove_lines::@1] + //SEG800 [345] 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 - //SEG725 [316] phi (byte) play_remove_lines::y#8 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_remove_lines->play_remove_lines::@1#1] -- vbuz1=vbuc1 + //SEG801 [345] 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 - //SEG726 [316] phi (byte) play_remove_lines::w#12 = (const byte) PLAYFIELD_LINES#0*(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_remove_lines->play_remove_lines::@1#2] -- vbuxx=vbuc1 + //SEG802 [345] 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 - //SEG727 [316] phi (byte) play_remove_lines::r#3 = (const byte) PLAYFIELD_LINES#0*(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_remove_lines->play_remove_lines::@1#3] -- vbuyy=vbuc1 + //SEG803 [345] 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 - //SEG728 [316] phi from play_remove_lines::@4 to play_remove_lines::@1 [phi:play_remove_lines::@4->play_remove_lines::@1] - //SEG729 [316] phi (byte) play_remove_lines::removed#11 = (byte) play_remove_lines::removed#7 [phi:play_remove_lines::@4->play_remove_lines::@1#0] -- register_copy - //SEG730 [316] phi (byte) play_remove_lines::y#8 = (byte) play_remove_lines::y#1 [phi:play_remove_lines::@4->play_remove_lines::@1#1] -- register_copy - //SEG731 [316] phi (byte) play_remove_lines::w#12 = (byte) play_remove_lines::w#11 [phi:play_remove_lines::@4->play_remove_lines::@1#2] -- register_copy - //SEG732 [316] phi (byte) play_remove_lines::r#3 = (byte) play_remove_lines::r#1 [phi:play_remove_lines::@4->play_remove_lines::@1#3] -- register_copy - //SEG733 play_remove_lines::@1 + //SEG804 [345] phi from play_remove_lines::@4 to play_remove_lines::@1 [phi:play_remove_lines::@4->play_remove_lines::@1] + //SEG805 [345] 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 + //SEG806 [345] 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 + //SEG807 [345] 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 + //SEG808 [345] 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 + //SEG809 play_remove_lines::@1 b1: - //SEG734 [317] phi from play_remove_lines::@1 to play_remove_lines::@2 [phi:play_remove_lines::@1->play_remove_lines::@2] - //SEG735 [317] phi (byte) play_remove_lines::full#4 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:play_remove_lines::@1->play_remove_lines::@2#0] -- vbuz1=vbuc1 + //SEG810 [346] phi from play_remove_lines::@1 to play_remove_lines::@2 [phi:play_remove_lines::@1->play_remove_lines::@2] + //SEG811 [346] 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 - //SEG736 [317] phi (byte) play_remove_lines::x#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_remove_lines::@1->play_remove_lines::@2#1] -- vbuz1=vbuc1 + //SEG812 [346] 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 - //SEG737 [317] phi (byte) play_remove_lines::w#4 = (byte) play_remove_lines::w#12 [phi:play_remove_lines::@1->play_remove_lines::@2#2] -- register_copy - //SEG738 [317] phi (byte) play_remove_lines::r#2 = (byte) play_remove_lines::r#3 [phi:play_remove_lines::@1->play_remove_lines::@2#3] -- register_copy - //SEG739 [317] phi from play_remove_lines::@3 to play_remove_lines::@2 [phi:play_remove_lines::@3->play_remove_lines::@2] - //SEG740 [317] phi (byte) play_remove_lines::full#4 = (byte) play_remove_lines::full#2 [phi:play_remove_lines::@3->play_remove_lines::@2#0] -- register_copy - //SEG741 [317] phi (byte) play_remove_lines::x#2 = (byte) play_remove_lines::x#1 [phi:play_remove_lines::@3->play_remove_lines::@2#1] -- register_copy - //SEG742 [317] phi (byte) play_remove_lines::w#4 = (byte) play_remove_lines::w#1 [phi:play_remove_lines::@3->play_remove_lines::@2#2] -- register_copy - //SEG743 [317] phi (byte) play_remove_lines::r#2 = (byte) play_remove_lines::r#1 [phi:play_remove_lines::@3->play_remove_lines::@2#3] -- register_copy - //SEG744 play_remove_lines::@2 + //SEG813 [346] 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 + //SEG814 [346] 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 + //SEG815 [346] phi from play_remove_lines::@3 to play_remove_lines::@2 [phi:play_remove_lines::@3->play_remove_lines::@2] + //SEG816 [346] 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 + //SEG817 [346] 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 + //SEG818 [346] 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 + //SEG819 [346] 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 + //SEG820 play_remove_lines::@2 b2: - //SEG745 [318] (byte) play_remove_lines::c#0 ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::r#2) -- vbuz1=pbuc1_derefidx_vbuyy + //SEG821 [347] (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 - //SEG746 [319] (byte) play_remove_lines::r#1 ← -- (byte) play_remove_lines::r#2 -- vbuyy=_dec_vbuyy + //SEG822 [348] (byte) play_remove_lines::r#1 ← -- (byte) play_remove_lines::r#2 -- vbuyy=_dec_vbuyy dey - //SEG747 [320] if((byte) play_remove_lines::c#0!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_remove_lines::@18 -- vbuz1_neq_0_then_la1 + //SEG823 [349] 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 - //SEG748 [321] phi from play_remove_lines::@2 to play_remove_lines::@3 [phi:play_remove_lines::@2->play_remove_lines::@3] - //SEG749 [321] phi (byte) play_remove_lines::full#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_remove_lines::@2->play_remove_lines::@3#0] -- vbuz1=vbuc1 + //SEG824 [350] phi from play_remove_lines::@2 to play_remove_lines::@3 [phi:play_remove_lines::@2->play_remove_lines::@3] + //SEG825 [350] 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 - //SEG750 play_remove_lines::@3 + //SEG826 play_remove_lines::@3 b3: - //SEG751 [322] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::w#4) ← (byte) play_remove_lines::c#0 -- pbuc1_derefidx_vbuxx=vbuz1 + //SEG827 [351] *((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 - //SEG752 [323] (byte) play_remove_lines::w#1 ← -- (byte) play_remove_lines::w#4 -- vbuxx=_dec_vbuxx + //SEG828 [352] (byte) play_remove_lines::w#1 ← -- (byte) play_remove_lines::w#4 -- vbuxx=_dec_vbuxx dex - //SEG753 [324] (byte) play_remove_lines::x#1 ← ++ (byte) play_remove_lines::x#2 -- vbuz1=_inc_vbuz1 + //SEG829 [353] (byte) play_remove_lines::x#1 ← ++ (byte) play_remove_lines::x#2 -- vbuz1=_inc_vbuz1 inc x - //SEG754 [325] if((byte) play_remove_lines::x#1!=(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto play_remove_lines::@2 -- vbuz1_neq_vbuc1_then_la1 + //SEG830 [354] 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 - //SEG755 play_remove_lines::@9 - //SEG756 [326] if((byte) play_remove_lines::full#2!=(byte/signed byte/word/signed word/dword/signed dword) 1) goto play_remove_lines::@4 -- vbuz1_neq_vbuc1_then_la1 + //SEG831 play_remove_lines::@9 + //SEG832 [355] 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 - //SEG757 play_remove_lines::@10 - //SEG758 [327] (byte) play_remove_lines::w#2 ← (byte) play_remove_lines::w#1 + (const byte) PLAYFIELD_COLS#0 -- vbuxx=vbuxx_plus_vbuc1 + //SEG833 play_remove_lines::@10 + //SEG834 [356] (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 - //SEG759 [328] (byte) play_remove_lines::removed#1 ← ++ (byte) play_remove_lines::removed#11 -- vbuz1=_inc_vbuz1 + //SEG835 [357] (byte) play_remove_lines::removed#1 ← ++ (byte) play_remove_lines::removed#11 -- vbuz1=_inc_vbuz1 inc removed - //SEG760 [329] phi from play_remove_lines::@10 play_remove_lines::@9 to play_remove_lines::@4 [phi:play_remove_lines::@10/play_remove_lines::@9->play_remove_lines::@4] - //SEG761 [329] phi (byte) play_remove_lines::removed#7 = (byte) play_remove_lines::removed#1 [phi:play_remove_lines::@10/play_remove_lines::@9->play_remove_lines::@4#0] -- register_copy - //SEG762 [329] phi (byte) play_remove_lines::w#11 = (byte) play_remove_lines::w#2 [phi:play_remove_lines::@10/play_remove_lines::@9->play_remove_lines::@4#1] -- register_copy - //SEG763 play_remove_lines::@4 + //SEG836 [358] 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] + //SEG837 [358] 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 + //SEG838 [358] 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 + //SEG839 play_remove_lines::@4 b4: - //SEG764 [330] (byte) play_remove_lines::y#1 ← ++ (byte) play_remove_lines::y#8 -- vbuz1=_inc_vbuz1 + //SEG840 [359] (byte) play_remove_lines::y#1 ← ++ (byte) play_remove_lines::y#8 -- vbuz1=_inc_vbuz1 inc y - //SEG765 [331] if((byte) play_remove_lines::y#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto play_remove_lines::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG841 [360] 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 - //SEG766 [332] phi from play_remove_lines::@4 play_remove_lines::@6 to play_remove_lines::@5 [phi:play_remove_lines::@4/play_remove_lines::@6->play_remove_lines::@5] - //SEG767 [332] phi (byte) play_remove_lines::w#6 = (byte) play_remove_lines::w#11 [phi:play_remove_lines::@4/play_remove_lines::@6->play_remove_lines::@5#0] -- register_copy - //SEG768 play_remove_lines::@5 + //SEG842 [361] 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] + //SEG843 [361] 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 + //SEG844 play_remove_lines::@5 b5: - //SEG769 [333] if((byte) play_remove_lines::w#6!=(byte/word/signed word/dword/signed dword) 255) goto play_remove_lines::@6 -- vbuxx_neq_vbuc1_then_la1 + //SEG845 [362] 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 - //SEG770 play_remove_lines::@return - //SEG771 [334] return + //SEG846 play_remove_lines::@return + //SEG847 [363] return rts - //SEG772 play_remove_lines::@6 + //SEG848 play_remove_lines::@6 b6: - //SEG773 [335] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) play_remove_lines::w#6) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuc1_derefidx_vbuxx=vbuc2 + //SEG849 [364] *((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 - //SEG774 [336] (byte) play_remove_lines::w#3 ← -- (byte) play_remove_lines::w#6 -- vbuxx=_dec_vbuxx + //SEG850 [365] (byte) play_remove_lines::w#3 ← -- (byte) play_remove_lines::w#6 -- vbuxx=_dec_vbuxx dex jmp b5 - //SEG775 [337] phi from play_remove_lines::@2 to play_remove_lines::@18 [phi:play_remove_lines::@2->play_remove_lines::@18] - //SEG776 play_remove_lines::@18 - //SEG777 [321] phi from play_remove_lines::@18 to play_remove_lines::@3 [phi:play_remove_lines::@18->play_remove_lines::@3] - //SEG778 [321] phi (byte) play_remove_lines::full#2 = (byte) play_remove_lines::full#4 [phi:play_remove_lines::@18->play_remove_lines::@3#0] -- register_copy + //SEG851 [366] phi from play_remove_lines::@2 to play_remove_lines::@18 [phi:play_remove_lines::@2->play_remove_lines::@18] + //SEG852 play_remove_lines::@18 + //SEG853 [350] phi from play_remove_lines::@18 to play_remove_lines::@3 [phi:play_remove_lines::@18->play_remove_lines::@3] + //SEG854 [350] 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 } -//SEG779 play_lock_current +//SEG855 play_lock_current play_lock_current: { .label ypos2 = $10 .label playfield_line = 5 @@ -23497,433 +25161,433 @@ play_lock_current: { .label i_3 = 9 .label i_7 = 9 .label i_9 = 9 - //SEG780 [338] (byte) play_lock_current::ypos2#0 ← (byte) current_ypos#25 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz1_rol_1 + //SEG856 [367] (byte) play_lock_current::ypos2#0 ← (byte) current_ypos#10 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuz1=vbuz1_rol_1 asl ypos2 - //SEG781 [339] phi from play_lock_current to play_lock_current::@1 [phi:play_lock_current->play_lock_current::@1] - //SEG782 [339] phi (byte) play_lock_current::l#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_lock_current->play_lock_current::@1#0] -- vbuz1=vbuc1 + //SEG857 [368] phi from play_lock_current to play_lock_current::@1 [phi:play_lock_current->play_lock_current::@1] + //SEG858 [368] 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 - //SEG783 [339] phi (byte) play_lock_current::i#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_lock_current->play_lock_current::@1#1] -- vbuz1=vbuc1 + //SEG859 [368] 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 - //SEG784 [339] phi (byte) play_lock_current::ypos2#2 = (byte) play_lock_current::ypos2#0 [phi:play_lock_current->play_lock_current::@1#2] -- register_copy - //SEG785 play_lock_current::@1 + //SEG860 [368] phi (byte) play_lock_current::ypos2#2 = (byte) play_lock_current::ypos2#0 [phi:play_lock_current->play_lock_current::@1#2] -- register_copy + //SEG861 play_lock_current::@1 b1: - //SEG786 [340] (byte*) play_lock_current::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) play_lock_current::ypos2#2) -- pbuz1=pptc1_derefidx_vbuz2 + //SEG862 [369] (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 - //SEG787 [341] (byte) play_lock_current::col#0 ← (byte) current_xpos#113 -- vbuz1=vbuz2 + //SEG863 [370] (byte) play_lock_current::col#0 ← (byte) current_xpos#121 -- vbuz1=vbuz2 lda current_xpos sta col - //SEG788 [342] phi from play_lock_current::@1 to play_lock_current::@2 [phi:play_lock_current::@1->play_lock_current::@2] - //SEG789 [342] phi (byte) play_lock_current::c#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_lock_current::@1->play_lock_current::@2#0] -- vbuxx=vbuc1 + //SEG864 [371] phi from play_lock_current::@1 to play_lock_current::@2 [phi:play_lock_current::@1->play_lock_current::@2] + //SEG865 [371] 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 - //SEG790 [342] phi (byte) play_lock_current::col#2 = (byte) play_lock_current::col#0 [phi:play_lock_current::@1->play_lock_current::@2#1] -- register_copy - //SEG791 [342] phi (byte) play_lock_current::i#2 = (byte) play_lock_current::i#3 [phi:play_lock_current::@1->play_lock_current::@2#2] -- register_copy - //SEG792 play_lock_current::@2 + //SEG866 [371] 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 + //SEG867 [371] 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 + //SEG868 play_lock_current::@2 b2: - //SEG793 [343] (byte) play_lock_current::i#1 ← ++ (byte) play_lock_current::i#2 -- vbuz1=_inc_vbuz2 + //SEG869 [372] (byte) play_lock_current::i#1 ← ++ (byte) play_lock_current::i#2 -- vbuz1=_inc_vbuz2 ldy i_2 iny sty i - //SEG794 [344] if(*((byte*) current_piece_gfx#103 + (byte) play_lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_lock_current::@3 -- pbuz1_derefidx_vbuz2_eq_0_then_la1 + //SEG870 [373] if(*((byte*) current_piece_gfx#111 + (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 - //SEG795 play_lock_current::@4 - //SEG796 [345] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::col#2) ← (byte) current_piece_char#19 -- pbuz1_derefidx_vbuz2=vbuz3 + //SEG871 play_lock_current::@4 + //SEG872 [374] *((byte*) play_lock_current::playfield_line#0 + (byte) play_lock_current::col#2) ← (byte) current_piece_char#21 -- pbuz1_derefidx_vbuz2=vbuz3 lda current_piece_char ldy col sta (playfield_line),y - //SEG797 play_lock_current::@3 + //SEG873 play_lock_current::@3 b3: - //SEG798 [346] (byte) play_lock_current::col#1 ← ++ (byte) play_lock_current::col#2 -- vbuz1=_inc_vbuz1 + //SEG874 [375] (byte) play_lock_current::col#1 ← ++ (byte) play_lock_current::col#2 -- vbuz1=_inc_vbuz1 inc col - //SEG799 [347] (byte) play_lock_current::c#1 ← ++ (byte) play_lock_current::c#2 -- vbuxx=_inc_vbuxx + //SEG875 [376] (byte) play_lock_current::c#1 ← ++ (byte) play_lock_current::c#2 -- vbuxx=_inc_vbuxx inx - //SEG800 [348] if((byte) play_lock_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_lock_current::@8 -- vbuxx_neq_vbuc1_then_la1 + //SEG876 [377] 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 - //SEG801 play_lock_current::@5 - //SEG802 [349] (byte) play_lock_current::ypos2#1 ← (byte) play_lock_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuz1=vbuz1_plus_2 + //SEG877 play_lock_current::@5 + //SEG878 [378] (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 - //SEG803 [350] (byte) play_lock_current::l#1 ← ++ (byte) play_lock_current::l#6 -- vbuz1=_inc_vbuz1 + //SEG879 [379] (byte) play_lock_current::l#1 ← ++ (byte) play_lock_current::l#6 -- vbuz1=_inc_vbuz1 inc l - //SEG804 [351] if((byte) play_lock_current::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto play_lock_current::@7 -- vbuz1_neq_vbuc1_then_la1 + //SEG880 [380] 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 - //SEG805 play_lock_current::@return - //SEG806 [352] return + //SEG881 play_lock_current::@return + //SEG882 [381] return rts - //SEG807 play_lock_current::@7 + //SEG883 play_lock_current::@7 b7: - //SEG808 [353] (byte~) play_lock_current::i#7 ← (byte) play_lock_current::i#1 -- vbuz1=vbuz2 + //SEG884 [382] (byte~) play_lock_current::i#7 ← (byte) play_lock_current::i#1 -- vbuz1=vbuz2 lda i sta i_7 - //SEG809 [339] phi from play_lock_current::@7 to play_lock_current::@1 [phi:play_lock_current::@7->play_lock_current::@1] - //SEG810 [339] phi (byte) play_lock_current::l#6 = (byte) play_lock_current::l#1 [phi:play_lock_current::@7->play_lock_current::@1#0] -- register_copy - //SEG811 [339] phi (byte) play_lock_current::i#3 = (byte~) play_lock_current::i#7 [phi:play_lock_current::@7->play_lock_current::@1#1] -- register_copy - //SEG812 [339] phi (byte) play_lock_current::ypos2#2 = (byte) play_lock_current::ypos2#1 [phi:play_lock_current::@7->play_lock_current::@1#2] -- register_copy + //SEG885 [368] phi from play_lock_current::@7 to play_lock_current::@1 [phi:play_lock_current::@7->play_lock_current::@1] + //SEG886 [368] 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 + //SEG887 [368] 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 + //SEG888 [368] 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 - //SEG813 play_lock_current::@8 + //SEG889 play_lock_current::@8 b8: - //SEG814 [354] (byte~) play_lock_current::i#9 ← (byte) play_lock_current::i#1 -- vbuz1=vbuz2 + //SEG890 [383] (byte~) play_lock_current::i#9 ← (byte) play_lock_current::i#1 -- vbuz1=vbuz2 lda i sta i_9 - //SEG815 [342] phi from play_lock_current::@8 to play_lock_current::@2 [phi:play_lock_current::@8->play_lock_current::@2] - //SEG816 [342] phi (byte) play_lock_current::c#2 = (byte) play_lock_current::c#1 [phi:play_lock_current::@8->play_lock_current::@2#0] -- register_copy - //SEG817 [342] phi (byte) play_lock_current::col#2 = (byte) play_lock_current::col#1 [phi:play_lock_current::@8->play_lock_current::@2#1] -- register_copy - //SEG818 [342] phi (byte) play_lock_current::i#2 = (byte~) play_lock_current::i#9 [phi:play_lock_current::@8->play_lock_current::@2#2] -- register_copy + //SEG891 [371] phi from play_lock_current::@8 to play_lock_current::@2 [phi:play_lock_current::@8->play_lock_current::@2] + //SEG892 [371] 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 + //SEG893 [371] 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 + //SEG894 [371] 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 } -//SEG819 keyboard_event_pressed +//SEG895 keyboard_event_pressed keyboard_event_pressed: { .label row_bits = $a .label keycode = 9 - //SEG820 [356] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte/signed byte/word/signed word/dword/signed dword) 3 -- vbuaa=vbuz1_ror_3 + //SEG896 [385] (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 - //SEG821 [357] (byte) keyboard_event_pressed::row_bits#0 ← *((const byte[8]) keyboard_scan_values#0 + (byte~) keyboard_event_pressed::$0) -- vbuz1=pbuc1_derefidx_vbuaa + //SEG897 [386] (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 - //SEG822 [358] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte/signed byte/word/signed word/dword/signed dword) 7 -- vbuaa=vbuz1_band_vbuc1 + //SEG898 [387] (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 - //SEG823 [359] (byte) keyboard_event_pressed::return#11 ← (byte) keyboard_event_pressed::row_bits#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte~) keyboard_event_pressed::$1) -- vbuaa=vbuz1_band_pbuc1_derefidx_vbuaa + //SEG899 [388] (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 - //SEG824 keyboard_event_pressed::@return - //SEG825 [360] return + //SEG900 keyboard_event_pressed::@return + //SEG901 [389] return rts } -//SEG826 keyboard_event_get +//SEG902 keyboard_event_get keyboard_event_get: { - //SEG827 [361] if((byte) keyboard_events_size#13==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_get::@return -- vbuz1_eq_0_then_la1 + //SEG903 [390] 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 - //SEG828 keyboard_event_get::@3 - //SEG829 [362] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13 -- vbuz1=_dec_vbuz1 + //SEG904 keyboard_event_get::@3 + //SEG905 [391] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13 -- vbuz1=_dec_vbuz1 dec keyboard_events_size - //SEG830 [363] (byte) keyboard_event_get::return#1 ← *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#4) -- vbuxx=pbuc1_derefidx_vbuz1 + //SEG906 [392] (byte) keyboard_event_get::return#1 ← *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#4) -- vbuxx=pbuc1_derefidx_vbuz1 ldx keyboard_events_size lda keyboard_events,x tax - //SEG831 [364] phi from keyboard_event_get::@3 to keyboard_event_get::@return [phi:keyboard_event_get::@3->keyboard_event_get::@return] - //SEG832 [364] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#4 [phi:keyboard_event_get::@3->keyboard_event_get::@return#0] -- register_copy - //SEG833 [364] phi (byte) keyboard_event_get::return#2 = (byte) keyboard_event_get::return#1 [phi:keyboard_event_get::@3->keyboard_event_get::@return#1] -- register_copy + //SEG907 [393] phi from keyboard_event_get::@3 to keyboard_event_get::@return [phi:keyboard_event_get::@3->keyboard_event_get::@return] + //SEG908 [393] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#4 [phi:keyboard_event_get::@3->keyboard_event_get::@return#0] -- register_copy + //SEG909 [393] 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 - //SEG834 [364] phi from keyboard_event_get to keyboard_event_get::@return [phi:keyboard_event_get->keyboard_event_get::@return] + //SEG910 [393] phi from keyboard_event_get to keyboard_event_get::@return [phi:keyboard_event_get->keyboard_event_get::@return] b1: - //SEG835 [364] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#13 [phi:keyboard_event_get->keyboard_event_get::@return#0] -- register_copy - //SEG836 [364] phi (byte) keyboard_event_get::return#2 = (byte/word/signed word/dword/signed dword) 255 [phi:keyboard_event_get->keyboard_event_get::@return#1] -- vbuxx=vbuc1 + //SEG911 [393] phi (byte) keyboard_events_size#16 = (byte) keyboard_events_size#13 [phi:keyboard_event_get->keyboard_event_get::@return#0] -- register_copy + //SEG912 [393] phi (byte) keyboard_event_get::return#2 = (byte/word/signed word/dword/signed dword) 255 [phi:keyboard_event_get->keyboard_event_get::@return#1] -- vbuxx=vbuc1 ldx #$ff - //SEG837 keyboard_event_get::@return + //SEG913 keyboard_event_get::@return breturn: - //SEG838 [365] return + //SEG914 [394] return rts } -//SEG839 keyboard_event_scan +//SEG915 keyboard_event_scan keyboard_event_scan: { .label row_scan = $b .label keycode = $a .label row = 9 - //SEG840 [367] phi from keyboard_event_scan to keyboard_event_scan::@1 [phi:keyboard_event_scan->keyboard_event_scan::@1] - //SEG841 [367] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#19 [phi:keyboard_event_scan->keyboard_event_scan::@1#0] -- register_copy - //SEG842 [367] phi (byte) keyboard_event_scan::keycode#11 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:keyboard_event_scan->keyboard_event_scan::@1#1] -- vbuz1=vbuc1 + //SEG916 [396] phi from keyboard_event_scan to keyboard_event_scan::@1 [phi:keyboard_event_scan->keyboard_event_scan::@1] + //SEG917 [396] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#19 [phi:keyboard_event_scan->keyboard_event_scan::@1#0] -- register_copy + //SEG918 [396] 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 - //SEG843 [367] phi (byte) keyboard_event_scan::row#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:keyboard_event_scan->keyboard_event_scan::@1#2] -- vbuz1=vbuc1 + //SEG919 [396] 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 - //SEG844 [367] phi from keyboard_event_scan::@3 to keyboard_event_scan::@1 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1] - //SEG845 [367] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#13 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#0] -- register_copy - //SEG846 [367] phi (byte) keyboard_event_scan::keycode#11 = (byte) keyboard_event_scan::keycode#14 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#1] -- register_copy - //SEG847 [367] phi (byte) keyboard_event_scan::row#2 = (byte) keyboard_event_scan::row#1 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#2] -- register_copy - //SEG848 keyboard_event_scan::@1 + //SEG920 [396] phi from keyboard_event_scan::@3 to keyboard_event_scan::@1 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1] + //SEG921 [396] phi (byte) keyboard_events_size#29 = (byte) keyboard_events_size#13 [phi:keyboard_event_scan::@3->keyboard_event_scan::@1#0] -- register_copy + //SEG922 [396] 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 + //SEG923 [396] 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 + //SEG924 keyboard_event_scan::@1 b1: - //SEG849 [368] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 -- vbuxx=vbuz1 + //SEG925 [397] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2 -- vbuxx=vbuz1 ldx row - //SEG850 [369] call keyboard_matrix_read + //SEG926 [398] call keyboard_matrix_read jsr keyboard_matrix_read - //SEG851 [370] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0 + //SEG927 [399] (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 - //SEG852 keyboard_event_scan::@25 - //SEG853 [371] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 -- vbuz1=vbuaa + //SEG928 keyboard_event_scan::@25 + //SEG929 [400] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2 -- vbuz1=vbuaa sta row_scan - //SEG854 [372] if((byte) keyboard_event_scan::row_scan#0!=*((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2)) goto keyboard_event_scan::@4 -- vbuz1_neq_pbuc1_derefidx_vbuz2_then_la1 + //SEG930 [401] 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 - //SEG855 keyboard_event_scan::@13 - //SEG856 [373] (byte) keyboard_event_scan::keycode#1 ← (byte) keyboard_event_scan::keycode#11 + (byte/signed byte/word/signed word/dword/signed dword) 8 -- vbuz1=vbuz1_plus_vbuc1 + //SEG931 keyboard_event_scan::@13 + //SEG932 [402] (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 - //SEG857 [374] phi from keyboard_event_scan::@13 keyboard_event_scan::@19 to keyboard_event_scan::@3 [phi:keyboard_event_scan::@13/keyboard_event_scan::@19->keyboard_event_scan::@3] - //SEG858 [374] phi (byte) keyboard_events_size#13 = (byte) keyboard_events_size#29 [phi:keyboard_event_scan::@13/keyboard_event_scan::@19->keyboard_event_scan::@3#0] -- register_copy - //SEG859 [374] phi (byte) keyboard_event_scan::keycode#14 = (byte) keyboard_event_scan::keycode#1 [phi:keyboard_event_scan::@13/keyboard_event_scan::@19->keyboard_event_scan::@3#1] -- register_copy - //SEG860 keyboard_event_scan::@3 + //SEG933 [403] 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] + //SEG934 [403] 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 + //SEG935 [403] 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 + //SEG936 keyboard_event_scan::@3 b3: - //SEG861 [375] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 -- vbuz1=_inc_vbuz1 + //SEG937 [404] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2 -- vbuz1=_inc_vbuz1 inc row - //SEG862 [376] if((byte) keyboard_event_scan::row#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG938 [405] 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 - //SEG863 [377] phi from keyboard_event_scan::@3 to keyboard_event_scan::@20 [phi:keyboard_event_scan::@3->keyboard_event_scan::@20] - //SEG864 keyboard_event_scan::@20 - //SEG865 [378] call keyboard_event_pressed - //SEG866 [355] phi from keyboard_event_scan::@20 to keyboard_event_pressed [phi:keyboard_event_scan::@20->keyboard_event_pressed] - //SEG867 [355] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_LSHIFT#0 [phi:keyboard_event_scan::@20->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG939 [406] phi from keyboard_event_scan::@3 to keyboard_event_scan::@20 [phi:keyboard_event_scan::@3->keyboard_event_scan::@20] + //SEG940 keyboard_event_scan::@20 + //SEG941 [407] call keyboard_event_pressed + //SEG942 [384] phi from keyboard_event_scan::@20 to keyboard_event_pressed [phi:keyboard_event_scan::@20->keyboard_event_pressed] + //SEG943 [384] 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 - //SEG868 [379] (byte) keyboard_event_pressed::return#0 ← (byte) keyboard_event_pressed::return#11 + //SEG944 [408] (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 - //SEG869 keyboard_event_scan::@26 - //SEG870 [380] (byte~) keyboard_event_scan::$14 ← (byte) keyboard_event_pressed::return#0 + //SEG945 keyboard_event_scan::@26 + //SEG946 [409] (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 - //SEG871 [381] if((byte~) keyboard_event_scan::$14==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@9 -- vbuaa_eq_0_then_la1 + //SEG947 [410] 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 - //SEG872 [382] phi from keyboard_event_scan::@26 to keyboard_event_scan::@21 [phi:keyboard_event_scan::@26->keyboard_event_scan::@21] - //SEG873 keyboard_event_scan::@21 - //SEG874 [383] phi from keyboard_event_scan::@21 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@21->keyboard_event_scan::@9] - //SEG875 [383] phi (byte) keyboard_modifiers#11 = (byte/signed byte/word/signed word/dword/signed dword) 0|(const byte) KEY_MODIFIER_LSHIFT#0 [phi:keyboard_event_scan::@21->keyboard_event_scan::@9#0] -- vbuxx=vbuc1 + //SEG948 [411] phi from keyboard_event_scan::@26 to keyboard_event_scan::@21 [phi:keyboard_event_scan::@26->keyboard_event_scan::@21] + //SEG949 keyboard_event_scan::@21 + //SEG950 [412] phi from keyboard_event_scan::@21 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@21->keyboard_event_scan::@9] + //SEG951 [412] 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 - //SEG876 [383] phi from keyboard_event_scan::@26 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@26->keyboard_event_scan::@9] + //SEG952 [412] phi from keyboard_event_scan::@26 to keyboard_event_scan::@9 [phi:keyboard_event_scan::@26->keyboard_event_scan::@9] b2: - //SEG877 [383] phi (byte) keyboard_modifiers#11 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:keyboard_event_scan::@26->keyboard_event_scan::@9#0] -- vbuxx=vbuc1 + //SEG953 [412] 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 - //SEG878 keyboard_event_scan::@9 + //SEG954 keyboard_event_scan::@9 b9: - //SEG879 [384] call keyboard_event_pressed - //SEG880 [355] phi from keyboard_event_scan::@9 to keyboard_event_pressed [phi:keyboard_event_scan::@9->keyboard_event_pressed] - //SEG881 [355] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_RSHIFT#0 [phi:keyboard_event_scan::@9->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG955 [413] call keyboard_event_pressed + //SEG956 [384] phi from keyboard_event_scan::@9 to keyboard_event_pressed [phi:keyboard_event_scan::@9->keyboard_event_pressed] + //SEG957 [384] 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 - //SEG882 [385] (byte) keyboard_event_pressed::return#1 ← (byte) keyboard_event_pressed::return#11 + //SEG958 [414] (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 - //SEG883 keyboard_event_scan::@27 - //SEG884 [386] (byte~) keyboard_event_scan::$18 ← (byte) keyboard_event_pressed::return#1 + //SEG959 keyboard_event_scan::@27 + //SEG960 [415] (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 - //SEG885 [387] if((byte~) keyboard_event_scan::$18==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@10 -- vbuaa_eq_0_then_la1 + //SEG961 [416] 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 - //SEG886 keyboard_event_scan::@22 - //SEG887 [388] (byte) keyboard_modifiers#3 ← (byte) keyboard_modifiers#11 | (const byte) KEY_MODIFIER_RSHIFT#0 -- vbuxx=vbuxx_bor_vbuc1 + //SEG962 keyboard_event_scan::@22 + //SEG963 [417] (byte) keyboard_modifiers#3 ← (byte) keyboard_modifiers#11 | (const byte) KEY_MODIFIER_RSHIFT#0 -- vbuxx=vbuxx_bor_vbuc1 txa ora #KEY_MODIFIER_RSHIFT tax - //SEG888 [389] phi from keyboard_event_scan::@22 keyboard_event_scan::@27 to keyboard_event_scan::@10 [phi:keyboard_event_scan::@22/keyboard_event_scan::@27->keyboard_event_scan::@10] - //SEG889 [389] phi (byte) keyboard_modifiers#12 = (byte) keyboard_modifiers#3 [phi:keyboard_event_scan::@22/keyboard_event_scan::@27->keyboard_event_scan::@10#0] -- register_copy - //SEG890 keyboard_event_scan::@10 + //SEG964 [418] 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] + //SEG965 [418] 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 + //SEG966 keyboard_event_scan::@10 b10: - //SEG891 [390] call keyboard_event_pressed - //SEG892 [355] phi from keyboard_event_scan::@10 to keyboard_event_pressed [phi:keyboard_event_scan::@10->keyboard_event_pressed] - //SEG893 [355] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_CTRL#0 [phi:keyboard_event_scan::@10->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG967 [419] call keyboard_event_pressed + //SEG968 [384] phi from keyboard_event_scan::@10 to keyboard_event_pressed [phi:keyboard_event_scan::@10->keyboard_event_pressed] + //SEG969 [384] 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 - //SEG894 [391] (byte) keyboard_event_pressed::return#2 ← (byte) keyboard_event_pressed::return#11 + //SEG970 [420] (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 - //SEG895 keyboard_event_scan::@28 - //SEG896 [392] (byte~) keyboard_event_scan::$22 ← (byte) keyboard_event_pressed::return#2 + //SEG971 keyboard_event_scan::@28 + //SEG972 [421] (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 - //SEG897 [393] if((byte~) keyboard_event_scan::$22==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@11 -- vbuaa_eq_0_then_la1 + //SEG973 [422] 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 - //SEG898 keyboard_event_scan::@23 - //SEG899 [394] (byte) keyboard_modifiers#4 ← (byte) keyboard_modifiers#12 | (const byte) KEY_MODIFIER_CTRL#0 -- vbuxx=vbuxx_bor_vbuc1 + //SEG974 keyboard_event_scan::@23 + //SEG975 [423] (byte) keyboard_modifiers#4 ← (byte) keyboard_modifiers#12 | (const byte) KEY_MODIFIER_CTRL#0 -- vbuxx=vbuxx_bor_vbuc1 txa ora #KEY_MODIFIER_CTRL tax - //SEG900 [395] phi from keyboard_event_scan::@23 keyboard_event_scan::@28 to keyboard_event_scan::@11 [phi:keyboard_event_scan::@23/keyboard_event_scan::@28->keyboard_event_scan::@11] - //SEG901 [395] phi (byte) keyboard_modifiers#13 = (byte) keyboard_modifiers#4 [phi:keyboard_event_scan::@23/keyboard_event_scan::@28->keyboard_event_scan::@11#0] -- register_copy - //SEG902 keyboard_event_scan::@11 + //SEG976 [424] 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] + //SEG977 [424] 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 + //SEG978 keyboard_event_scan::@11 b11: - //SEG903 [396] call keyboard_event_pressed - //SEG904 [355] phi from keyboard_event_scan::@11 to keyboard_event_pressed [phi:keyboard_event_scan::@11->keyboard_event_pressed] - //SEG905 [355] phi (byte) keyboard_event_pressed::keycode#5 = (const byte) KEY_COMMODORE#0 [phi:keyboard_event_scan::@11->keyboard_event_pressed#0] -- vbuz1=vbuc1 + //SEG979 [425] call keyboard_event_pressed + //SEG980 [384] phi from keyboard_event_scan::@11 to keyboard_event_pressed [phi:keyboard_event_scan::@11->keyboard_event_pressed] + //SEG981 [384] 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 - //SEG906 [397] (byte) keyboard_event_pressed::return#10 ← (byte) keyboard_event_pressed::return#11 + //SEG982 [426] (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 - //SEG907 keyboard_event_scan::@29 - //SEG908 [398] (byte~) keyboard_event_scan::$26 ← (byte) keyboard_event_pressed::return#10 + //SEG983 keyboard_event_scan::@29 + //SEG984 [427] (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 - //SEG909 [399] if((byte~) keyboard_event_scan::$26==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@return -- vbuaa_eq_0_then_la1 + //SEG985 [428] 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 - //SEG910 keyboard_event_scan::@24 - //SEG911 [400] (byte) keyboard_modifiers#5 ← (byte) keyboard_modifiers#13 | (const byte) KEY_MODIFIER_COMMODORE#0 -- vbuaa=vbuxx_bor_vbuc1 + //SEG986 keyboard_event_scan::@24 + //SEG987 [429] (byte) keyboard_modifiers#5 ← (byte) keyboard_modifiers#13 | (const byte) KEY_MODIFIER_COMMODORE#0 -- vbuaa=vbuxx_bor_vbuc1 txa ora #KEY_MODIFIER_COMMODORE - //SEG912 keyboard_event_scan::@return + //SEG988 keyboard_event_scan::@return breturn: - //SEG913 [401] return + //SEG989 [430] return rts - //SEG914 [402] phi from keyboard_event_scan::@25 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4] + //SEG990 [431] phi from keyboard_event_scan::@25 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4] b6: - //SEG915 [402] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#29 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#0] -- register_copy - //SEG916 [402] phi (byte) keyboard_event_scan::keycode#10 = (byte) keyboard_event_scan::keycode#11 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#1] -- register_copy - //SEG917 [402] phi (byte) keyboard_event_scan::col#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#2] -- vbuxx=vbuc1 + //SEG991 [431] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#29 [phi:keyboard_event_scan::@25->keyboard_event_scan::@4#0] -- register_copy + //SEG992 [431] 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 + //SEG993 [431] 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 - //SEG918 [402] phi from keyboard_event_scan::@5 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4] - //SEG919 [402] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#30 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#0] -- register_copy - //SEG920 [402] phi (byte) keyboard_event_scan::keycode#10 = (byte) keyboard_event_scan::keycode#15 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#1] -- register_copy - //SEG921 [402] phi (byte) keyboard_event_scan::col#2 = (byte) keyboard_event_scan::col#1 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#2] -- register_copy - //SEG922 keyboard_event_scan::@4 + //SEG994 [431] phi from keyboard_event_scan::@5 to keyboard_event_scan::@4 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4] + //SEG995 [431] phi (byte) keyboard_events_size#10 = (byte) keyboard_events_size#30 [phi:keyboard_event_scan::@5->keyboard_event_scan::@4#0] -- register_copy + //SEG996 [431] 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 + //SEG997 [431] 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 + //SEG998 keyboard_event_scan::@4 b4: - //SEG923 [403] (byte~) keyboard_event_scan::$3 ← (byte) keyboard_event_scan::row_scan#0 ^ *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) -- vbuaa=vbuz1_bxor_pbuc1_derefidx_vbuz2 + //SEG999 [432] (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 - //SEG924 [404] (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) -- vbuaa=vbuaa_band_pbuc1_derefidx_vbuxx + //SEG1000 [433] (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 - //SEG925 [405] if((byte~) keyboard_event_scan::$4==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@5 -- vbuaa_eq_0_then_la1 + //SEG1001 [434] 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 - //SEG926 keyboard_event_scan::@15 - //SEG927 [406] if((byte) keyboard_events_size#10==(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@5 -- vbuz1_eq_vbuc1_then_la1 + //SEG1002 keyboard_event_scan::@15 + //SEG1003 [435] 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 - //SEG928 keyboard_event_scan::@16 - //SEG929 [407] (byte) keyboard_event_scan::event_type#0 ← (byte) keyboard_event_scan::row_scan#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2) -- vbuaa=vbuz1_band_pbuc1_derefidx_vbuxx + //SEG1004 keyboard_event_scan::@16 + //SEG1005 [436] (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 - //SEG930 [408] if((byte) keyboard_event_scan::event_type#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@7 -- vbuaa_eq_0_then_la1 + //SEG1006 [437] 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 - //SEG931 keyboard_event_scan::@17 - //SEG932 [409] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG1007 keyboard_event_scan::@17 + //SEG1008 [438] *((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 - //SEG933 [410] (byte) keyboard_events_size#2 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 + //SEG1009 [439] (byte) keyboard_events_size#2 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 inc keyboard_events_size - //SEG934 [411] phi from keyboard_event_scan::@15 keyboard_event_scan::@17 keyboard_event_scan::@4 keyboard_event_scan::@7 to keyboard_event_scan::@5 [phi:keyboard_event_scan::@15/keyboard_event_scan::@17/keyboard_event_scan::@4/keyboard_event_scan::@7->keyboard_event_scan::@5] - //SEG935 [411] phi (byte) keyboard_events_size#30 = (byte) keyboard_events_size#10 [phi:keyboard_event_scan::@15/keyboard_event_scan::@17/keyboard_event_scan::@4/keyboard_event_scan::@7->keyboard_event_scan::@5#0] -- register_copy - //SEG936 keyboard_event_scan::@5 + //SEG1010 [440] 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] + //SEG1011 [440] 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 + //SEG1012 keyboard_event_scan::@5 b5: - //SEG937 [412] (byte) keyboard_event_scan::keycode#15 ← ++ (byte) keyboard_event_scan::keycode#10 -- vbuz1=_inc_vbuz1 + //SEG1013 [441] (byte) keyboard_event_scan::keycode#15 ← ++ (byte) keyboard_event_scan::keycode#10 -- vbuz1=_inc_vbuz1 inc keycode - //SEG938 [413] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 -- vbuxx=_inc_vbuxx + //SEG1014 [442] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2 -- vbuxx=_inc_vbuxx inx - //SEG939 [414] if((byte) keyboard_event_scan::col#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@4 -- vbuxx_neq_vbuc1_then_la1 + //SEG1015 [443] 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 - //SEG940 keyboard_event_scan::@19 - //SEG941 [415] *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0 -- pbuc1_derefidx_vbuz1=vbuz2 + //SEG1016 keyboard_event_scan::@19 + //SEG1017 [444] *((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 - //SEG942 keyboard_event_scan::@7 + //SEG1018 keyboard_event_scan::@7 b7: - //SEG943 [416] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64 -- vbuaa=vbuz1_bor_vbuc1 + //SEG1019 [445] (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 - //SEG944 [417] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte/word/dword~) keyboard_event_scan::$11 -- pbuc1_derefidx_vbuz1=vbuaa + //SEG1020 [446] *((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 - //SEG945 [418] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 + //SEG1021 [447] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#10 -- vbuz1=_inc_vbuz1 inc keyboard_events_size jmp b5 } -//SEG946 keyboard_matrix_read +//SEG1022 keyboard_matrix_read keyboard_matrix_read: { - //SEG947 [419] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0) -- _deref_pbuc1=pbuc2_derefidx_vbuxx + //SEG1023 [448] *((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 - //SEG948 [420] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) -- vbuaa=_bnot__deref_pbuc1 + //SEG1024 [449] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0) -- vbuaa=_bnot__deref_pbuc1 lda CIA1_PORT_B eor #$ff - //SEG949 keyboard_matrix_read::@return - //SEG950 [421] return + //SEG1025 keyboard_matrix_read::@return + //SEG1026 [450] return rts } -//SEG951 render_show +//SEG1027 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 - //SEG952 [422] if((byte) render_screen_show#16==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_show::toD0181 -- vbuz1_eq_0_then_la1 + //SEG1028 [451] 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 - //SEG953 [423] phi from render_show to render_show::toD0182 [phi:render_show->render_show::toD0182] - //SEG954 render_show::toD0182 - //SEG955 [424] phi from render_show::toD0182 to render_show::@2 [phi:render_show::toD0182->render_show::@2] - //SEG956 [424] phi (byte) render_show::d018val#3 = (const byte) render_show::toD0182_return#0 [phi:render_show::toD0182->render_show::@2#0] -- vbuaa=vbuc1 + //SEG1029 [452] phi from render_show to render_show::toD0182 [phi:render_show->render_show::toD0182] + //SEG1030 render_show::toD0182 + //SEG1031 [453] phi from render_show::toD0182 to render_show::@2 [phi:render_show::toD0182->render_show::@2] + //SEG1032 [453] 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 - //SEG957 render_show::@2 + //SEG1033 render_show::@2 b2: - //SEG958 [425] *((const byte*) D018#0) ← (byte) render_show::d018val#3 -- _deref_pbuc1=vbuaa + //SEG1034 [454] *((const byte*) D018#0) ← (byte) render_show::d018val#3 -- _deref_pbuc1=vbuaa sta D018 - //SEG959 [426] (byte) render_screen_showing#1 ← (byte) render_screen_show#16 -- vbuz1=vbuz2 + //SEG1035 [455] (byte) render_screen_showing#1 ← (byte) render_screen_show#16 -- vbuz1=vbuz2 lda render_screen_show sta render_screen_showing - //SEG960 render_show::@return - //SEG961 [427] return + //SEG1036 render_show::@return + //SEG1037 [456] return rts - //SEG962 [428] phi from render_show to render_show::toD0181 [phi:render_show->render_show::toD0181] - //SEG963 render_show::toD0181 + //SEG1038 [457] phi from render_show to render_show::toD0181 [phi:render_show->render_show::toD0181] + //SEG1039 render_show::toD0181 toD0181: - //SEG964 [424] phi from render_show::toD0181 to render_show::@2 [phi:render_show::toD0181->render_show::@2] - //SEG965 [424] phi (byte) render_show::d018val#3 = (const byte) render_show::toD0181_return#0 [phi:render_show::toD0181->render_show::@2#0] -- vbuaa=vbuc1 + //SEG1040 [453] phi from render_show::toD0181 to render_show::@2 [phi:render_show::toD0181->render_show::@2] + //SEG1041 [453] 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 } -//SEG966 play_init +//SEG1042 play_init play_init: { .label pli = 5 .label idx = 2 - //SEG967 [430] phi from play_init to play_init::@1 [phi:play_init->play_init::@1] - //SEG968 [430] phi (byte) play_init::idx#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_init->play_init::@1#0] -- vbuz1=vbuc1 + //SEG1043 [459] phi from play_init to play_init::@1 [phi:play_init->play_init::@1] + //SEG1044 [459] 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 - //SEG969 [430] phi (byte*) play_init::pli#2 = (const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 [phi:play_init->play_init::@1#1] -- pbuz1=pbuc1 + //SEG1045 [459] 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 - //SEG970 [430] phi (byte) play_init::j#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_init->play_init::@1#2] -- vbuxx=vbuc1 + //SEG1046 [459] 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 - //SEG971 [430] phi from play_init::@1 to play_init::@1 [phi:play_init::@1->play_init::@1] - //SEG972 [430] phi (byte) play_init::idx#2 = (byte) play_init::idx#1 [phi:play_init::@1->play_init::@1#0] -- register_copy - //SEG973 [430] phi (byte*) play_init::pli#2 = (byte*) play_init::pli#1 [phi:play_init::@1->play_init::@1#1] -- register_copy - //SEG974 [430] phi (byte) play_init::j#2 = (byte) play_init::j#1 [phi:play_init::@1->play_init::@1#2] -- register_copy - //SEG975 play_init::@1 + //SEG1047 [459] phi from play_init::@1 to play_init::@1 [phi:play_init::@1->play_init::@1] + //SEG1048 [459] phi (byte) play_init::idx#2 = (byte) play_init::idx#1 [phi:play_init::@1->play_init::@1#0] -- register_copy + //SEG1049 [459] phi (byte*) play_init::pli#2 = (byte*) play_init::pli#1 [phi:play_init::@1->play_init::@1#1] -- register_copy + //SEG1050 [459] phi (byte) play_init::j#2 = (byte) play_init::j#1 [phi:play_init::@1->play_init::@1#2] -- register_copy + //SEG1051 play_init::@1 b1: - //SEG976 [431] (byte~) play_init::$1 ← (byte) play_init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_rol_1 + //SEG1052 [460] (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 - //SEG977 [432] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) play_init::$1) ← (byte*) play_init::pli#2 -- pptc1_derefidx_vbuaa=pbuz1 + //SEG1053 [461] *((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 - //SEG978 [433] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) play_init::j#2) ← (byte) play_init::idx#2 -- pbuc1_derefidx_vbuxx=vbuz1 + //SEG1054 [462] *((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 - //SEG979 [434] (byte*) play_init::pli#1 ← (byte*) play_init::pli#2 + (const byte) PLAYFIELD_COLS#0 -- pbuz1=pbuz1_plus_vbuc1 + //SEG1055 [463] (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 @@ -23931,35 +25595,35 @@ play_init: { bcc !+ inc pli+1 !: - //SEG980 [435] (byte) play_init::idx#1 ← (byte) play_init::idx#2 + (const byte) PLAYFIELD_COLS#0 -- vbuz1=vbuz1_plus_vbuc1 + //SEG1056 [464] (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 - //SEG981 [436] (byte) play_init::j#1 ← ++ (byte) play_init::j#2 -- vbuxx=_inc_vbuxx + //SEG1057 [465] (byte) play_init::j#1 ← ++ (byte) play_init::j#2 -- vbuxx=_inc_vbuxx inx - //SEG982 [437] if((byte) play_init::j#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto play_init::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG1058 [466] 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 - //SEG983 play_init::@3 - //SEG984 [438] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0+(const byte) PLAYFIELD_LINES#0) ← (const byte) PLAYFIELD_COLS#0*(const byte) PLAYFIELD_LINES#0 -- _deref_pbuc1=vbuc2 + //SEG1059 play_init::@3 + //SEG1060 [467] *((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 - //SEG985 [439] (byte) current_movedown_slow#1 ← *((const byte[]) MOVEDOWN_SLOW_SPEEDS#0) -- vbuz1=_deref_pbuc1 + //SEG1061 [468] (byte) current_movedown_slow#1 ← *((const byte[]) MOVEDOWN_SLOW_SPEEDS#0) -- vbuz1=_deref_pbuc1 lda MOVEDOWN_SLOW_SPEEDS sta current_movedown_slow - //SEG986 [440] phi from play_init::@3 to play_init::@2 [phi:play_init::@3->play_init::@2] - //SEG987 [440] phi (byte) play_init::b#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_init::@3->play_init::@2#0] -- vbuxx=vbuc1 + //SEG1062 [469] phi from play_init::@3 to play_init::@2 [phi:play_init::@3->play_init::@2] + //SEG1063 [469] phi (byte) play_init::b#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:play_init::@3->play_init::@2#0] -- vbuxx=vbuc1 ldx #0 - //SEG988 [440] phi from play_init::@2 to play_init::@2 [phi:play_init::@2->play_init::@2] - //SEG989 [440] phi (byte) play_init::b#2 = (byte) play_init::b#1 [phi:play_init::@2->play_init::@2#0] -- register_copy - //SEG990 play_init::@2 + //SEG1064 [469] phi from play_init::@2 to play_init::@2 [phi:play_init::@2->play_init::@2] + //SEG1065 [469] phi (byte) play_init::b#2 = (byte) play_init::b#1 [phi:play_init::@2->play_init::@2#0] -- register_copy + //SEG1066 play_init::@2 b2: - //SEG991 [441] (byte) play_init::b4#0 ← (byte) play_init::b#2 << (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuaa=vbuxx_rol_2 + //SEG1067 [470] (byte) play_init::b4#0 ← (byte) play_init::b#2 << (byte/signed byte/word/signed word/dword/signed dword) 2 -- vbuaa=vbuxx_rol_2 txa asl asl - //SEG992 [442] *((const dword[5]) score_add_bcd#0 + (byte) play_init::b4#0) ← *((const dword[]) SCORE_BASE_BCD#0 + (byte) play_init::b4#0) -- pduc1_derefidx_vbuaa=pduc2_derefidx_vbuaa + //SEG1068 [471] *((const dword[5]) score_add_bcd#0 + (byte) play_init::b4#0) ← *((const dword[]) SCORE_BASE_BCD#0 + (byte) play_init::b4#0) -- pduc1_derefidx_vbuaa=pduc2_derefidx_vbuaa tay lda SCORE_BASE_BCD,y sta score_add_bcd,y @@ -23969,191 +25633,191 @@ play_init: { sta score_add_bcd+2,y lda SCORE_BASE_BCD+3,y sta score_add_bcd+3,y - //SEG993 [443] (byte) play_init::b#1 ← ++ (byte) play_init::b#2 -- vbuxx=_inc_vbuxx + //SEG1069 [472] (byte) play_init::b#1 ← ++ (byte) play_init::b#2 -- vbuxx=_inc_vbuxx inx - //SEG994 [444] if((byte) play_init::b#1!=(byte/signed byte/word/signed word/dword/signed dword) 5) goto play_init::@2 -- vbuxx_neq_vbuc1_then_la1 + //SEG1070 [473] if((byte) play_init::b#1!=(byte/signed byte/word/signed word/dword/signed dword) 5) goto play_init::@2 -- vbuxx_neq_vbuc1_then_la1 cpx #5 bne b2 - //SEG995 play_init::@return - //SEG996 [445] return + //SEG1071 play_init::@return + //SEG1072 [474] return rts } -//SEG997 sprites_irq_init +//SEG1073 sprites_irq_init sprites_irq_init: { - //SEG998 asm { sei } + //SEG1074 asm { sei } sei - //SEG999 [447] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 + //SEG1075 [476] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 lda #IRQ_RASTER sta IRQ_STATUS - //SEG1000 asm { ldaCIA1_INTERRUPT } + //SEG1076 asm { ldaCIA1_INTERRUPT } lda CIA1_INTERRUPT - //SEG1001 [449] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 -- _deref_pbuc1=vbuc2 + //SEG1077 [478] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0 -- _deref_pbuc1=vbuc2 lda #PROCPORT_DDR_MEMORY_MASK sta PROCPORT_DDR - //SEG1002 [450] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 -- _deref_pbuc1=vbuc2 + //SEG1078 [479] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0 -- _deref_pbuc1=vbuc2 lda #PROCPORT_RAM_IO sta PROCPORT - //SEG1003 [451] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 -- _deref_pbuc1=vbuc2 + //SEG1079 [480] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0 -- _deref_pbuc1=vbuc2 lda #CIA_INTERRUPT_CLEAR sta CIA1_INTERRUPT - //SEG1004 [452] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) 127 -- _deref_pbuc1=_deref_pbuc1_band_vbuc2 + //SEG1080 [481] *((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 - //SEG1005 [453] *((const byte*) RASTER#0) ← (const byte) IRQ_RASTER_FIRST#0 -- _deref_pbuc1=vbuc2 + //SEG1081 [482] *((const byte*) RASTER#0) ← (const byte) IRQ_RASTER_FIRST#0 -- _deref_pbuc1=vbuc2 lda #IRQ_RASTER_FIRST sta RASTER - //SEG1006 [454] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 + //SEG1082 [483] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 lda #IRQ_RASTER sta IRQ_ENABLE - //SEG1007 [455] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() -- _deref_pptc1=pprc2 + //SEG1083 [484] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() -- _deref_pptc1=pprc2 lda #sprites_irq sta HARDWARE_IRQ+1 - //SEG1008 asm { cli } + //SEG1084 asm { cli } cli - //SEG1009 sprites_irq_init::@return - //SEG1010 [457] return + //SEG1085 sprites_irq_init::@return + //SEG1086 [486] return rts } -//SEG1011 sprites_init +//SEG1087 sprites_init sprites_init: { .label xpos = 2 - //SEG1012 [458] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 15 -- _deref_pbuc1=vbuc2 + //SEG1088 [487] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 15 -- _deref_pbuc1=vbuc2 lda #$f sta SPRITES_ENABLE - //SEG1013 [459] *((const byte*) SPRITES_MC#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 + //SEG1089 [488] *((const byte*) SPRITES_MC#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2 lda #0 sta SPRITES_MC - //SEG1014 [460] *((const byte*) SPRITES_EXPAND_Y#0) ← *((const byte*) SPRITES_MC#0) -- _deref_pbuc1=_deref_pbuc2 + //SEG1090 [489] *((const byte*) SPRITES_EXPAND_Y#0) ← *((const byte*) SPRITES_MC#0) -- _deref_pbuc1=_deref_pbuc2 sta SPRITES_EXPAND_Y - //SEG1015 [461] *((const byte*) SPRITES_EXPAND_X#0) ← *((const byte*) SPRITES_EXPAND_Y#0) -- _deref_pbuc1=_deref_pbuc2 + //SEG1091 [490] *((const byte*) SPRITES_EXPAND_X#0) ← *((const byte*) SPRITES_EXPAND_Y#0) -- _deref_pbuc1=_deref_pbuc2 sta SPRITES_EXPAND_X - //SEG1016 [462] phi from sprites_init to sprites_init::@1 [phi:sprites_init->sprites_init::@1] - //SEG1017 [462] phi (byte) sprites_init::xpos#2 = (byte/signed byte/word/signed word/dword/signed dword) 24+(byte/signed byte/word/signed word/dword/signed dword) 15*(byte/signed byte/word/signed word/dword/signed dword) 8 [phi:sprites_init->sprites_init::@1#0] -- vbuz1=vbuc1 + //SEG1092 [491] phi from sprites_init to sprites_init::@1 [phi:sprites_init->sprites_init::@1] + //SEG1093 [491] 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 - //SEG1018 [462] phi (byte) sprites_init::s#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:sprites_init->sprites_init::@1#1] -- vbuxx=vbuc1 + //SEG1094 [491] 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 - //SEG1019 [462] phi from sprites_init::@1 to sprites_init::@1 [phi:sprites_init::@1->sprites_init::@1] - //SEG1020 [462] phi (byte) sprites_init::xpos#2 = (byte) sprites_init::xpos#1 [phi:sprites_init::@1->sprites_init::@1#0] -- register_copy - //SEG1021 [462] phi (byte) sprites_init::s#2 = (byte) sprites_init::s#1 [phi:sprites_init::@1->sprites_init::@1#1] -- register_copy - //SEG1022 sprites_init::@1 + //SEG1095 [491] phi from sprites_init::@1 to sprites_init::@1 [phi:sprites_init::@1->sprites_init::@1] + //SEG1096 [491] phi (byte) sprites_init::xpos#2 = (byte) sprites_init::xpos#1 [phi:sprites_init::@1->sprites_init::@1#0] -- register_copy + //SEG1097 [491] phi (byte) sprites_init::s#2 = (byte) sprites_init::s#1 [phi:sprites_init::@1->sprites_init::@1#1] -- register_copy + //SEG1098 sprites_init::@1 b1: - //SEG1023 [463] (byte) sprites_init::s2#0 ← (byte) sprites_init::s#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_rol_1 + //SEG1099 [492] (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 - //SEG1024 [464] *((const byte*) SPRITES_XPOS#0 + (byte) sprites_init::s2#0) ← (byte) sprites_init::xpos#2 -- pbuc1_derefidx_vbuaa=vbuz1 + //SEG1100 [493] *((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 - //SEG1025 [465] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::s#2) ← (const byte) BLACK#0 -- pbuc1_derefidx_vbuxx=vbuc2 + //SEG1101 [494] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::s#2) ← (const byte) BLACK#0 -- pbuc1_derefidx_vbuxx=vbuc2 lda #BLACK sta SPRITES_COLS,x - //SEG1026 [466] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) 24 -- vbuz1=vbuz1_plus_vbuc1 + //SEG1102 [495] (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 - //SEG1027 [467] (byte) sprites_init::s#1 ← ++ (byte) sprites_init::s#2 -- vbuxx=_inc_vbuxx + //SEG1103 [496] (byte) sprites_init::s#1 ← ++ (byte) sprites_init::s#2 -- vbuxx=_inc_vbuxx inx - //SEG1028 [468] if((byte) sprites_init::s#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto sprites_init::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG1104 [497] 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 - //SEG1029 sprites_init::@return - //SEG1030 [469] return + //SEG1105 sprites_init::@return + //SEG1106 [498] return rts } -//SEG1031 render_init +//SEG1107 render_init render_init: { .const vicSelectGfxBank1_toDd001_return = 3^(>PLAYFIELD_CHARSET)>>6 .label li_1 = 5 .label li_2 = 7 - //SEG1032 render_init::vicSelectGfxBank1 - //SEG1033 [471] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 + //SEG1108 render_init::vicSelectGfxBank1 + //SEG1109 [500] *((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 - //SEG1034 [472] phi from render_init::vicSelectGfxBank1 to render_init::vicSelectGfxBank1_toDd001 [phi:render_init::vicSelectGfxBank1->render_init::vicSelectGfxBank1_toDd001] - //SEG1035 render_init::vicSelectGfxBank1_toDd001 - //SEG1036 render_init::vicSelectGfxBank1_@1 - //SEG1037 [473] *((const byte*) CIA2_PORT_A#0) ← (const byte) render_init::vicSelectGfxBank1_toDd001_return#0 -- _deref_pbuc1=vbuc2 + //SEG1110 [501] phi from render_init::vicSelectGfxBank1 to render_init::vicSelectGfxBank1_toDd001 [phi:render_init::vicSelectGfxBank1->render_init::vicSelectGfxBank1_toDd001] + //SEG1111 render_init::vicSelectGfxBank1_toDd001 + //SEG1112 render_init::vicSelectGfxBank1_@1 + //SEG1113 [502] *((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 - //SEG1038 render_init::@3 - //SEG1039 [474] *((const byte*) D011#0) ← (const byte) VIC_ECM#0|(const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3 -- _deref_pbuc1=vbuc2 + //SEG1114 render_init::@3 + //SEG1115 [503] *((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 - //SEG1040 [475] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0 -- _deref_pbuc1=vbuc2 + //SEG1116 [504] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0 -- _deref_pbuc1=vbuc2 lda #BLACK sta BORDERCOL - //SEG1041 [476] *((const byte*) BGCOL1#0) ← (const byte) BLACK#0 -- _deref_pbuc1=vbuc2 + //SEG1117 [505] *((const byte*) BGCOL1#0) ← (const byte) BLACK#0 -- _deref_pbuc1=vbuc2 sta BGCOL1 - //SEG1042 [477] *((const byte*) BGCOL2#0) ← (const byte) BLUE#0 -- _deref_pbuc1=vbuc2 + //SEG1118 [506] *((const byte*) BGCOL2#0) ← (const byte) BLUE#0 -- _deref_pbuc1=vbuc2 lda #BLUE sta BGCOL2 - //SEG1043 [478] *((const byte*) BGCOL3#0) ← (const byte) CYAN#0 -- _deref_pbuc1=vbuc2 + //SEG1119 [507] *((const byte*) BGCOL3#0) ← (const byte) CYAN#0 -- _deref_pbuc1=vbuc2 lda #CYAN sta BGCOL3 - //SEG1044 [479] *((const byte*) BGCOL4#0) ← (const byte) GREY#0 -- _deref_pbuc1=vbuc2 + //SEG1120 [508] *((const byte*) BGCOL4#0) ← (const byte) GREY#0 -- _deref_pbuc1=vbuc2 lda #GREY sta BGCOL4 - //SEG1045 [480] call render_screen_original - //SEG1046 [493] phi from render_init::@3 to render_screen_original [phi:render_init::@3->render_screen_original] - //SEG1047 [493] phi (byte*) render_screen_original::screen#9 = (const byte*) PLAYFIELD_SCREEN_1#0 [phi:render_init::@3->render_screen_original#0] -- pbuz1=pbuc1 + //SEG1121 [509] call render_screen_original + //SEG1122 [522] phi from render_init::@3 to render_screen_original [phi:render_init::@3->render_screen_original] + //SEG1123 [522] 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 - //SEG1048 [481] phi from render_init::@3 to render_init::@4 [phi:render_init::@3->render_init::@4] - //SEG1049 render_init::@4 - //SEG1050 [482] call render_screen_original - //SEG1051 [493] phi from render_init::@4 to render_screen_original [phi:render_init::@4->render_screen_original] - //SEG1052 [493] phi (byte*) render_screen_original::screen#9 = (const byte*) PLAYFIELD_SCREEN_2#0 [phi:render_init::@4->render_screen_original#0] -- pbuz1=pbuc1 + //SEG1124 [510] phi from render_init::@3 to render_init::@4 [phi:render_init::@3->render_init::@4] + //SEG1125 render_init::@4 + //SEG1126 [511] call render_screen_original + //SEG1127 [522] phi from render_init::@4 to render_screen_original [phi:render_init::@4->render_screen_original] + //SEG1128 [522] 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 - //SEG1053 [483] phi from render_init::@4 to render_init::@1 [phi:render_init::@4->render_init::@1] - //SEG1054 [483] phi (byte*) render_init::li_2#2 = (const byte*) PLAYFIELD_SCREEN_2#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 16 [phi:render_init::@4->render_init::@1#0] -- pbuz1=pbuc1 + //SEG1129 [512] phi from render_init::@4 to render_init::@1 [phi:render_init::@4->render_init::@1] + //SEG1130 [512] 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 - //SEG1055 [483] phi (byte*) render_init::li_1#2 = (const byte*) PLAYFIELD_SCREEN_1#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 16 [phi:render_init::@4->render_init::@1#1] -- pbuz1=pbuc1 + //SEG1131 [512] 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 - //SEG1056 [483] phi (byte) render_init::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_init::@4->render_init::@1#2] -- vbuxx=vbuc1 + //SEG1132 [512] 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 - //SEG1057 [483] phi from render_init::@1 to render_init::@1 [phi:render_init::@1->render_init::@1] - //SEG1058 [483] phi (byte*) render_init::li_2#2 = (byte*) render_init::li_2#1 [phi:render_init::@1->render_init::@1#0] -- register_copy - //SEG1059 [483] phi (byte*) render_init::li_1#2 = (byte*) render_init::li_1#1 [phi:render_init::@1->render_init::@1#1] -- register_copy - //SEG1060 [483] phi (byte) render_init::i#2 = (byte) render_init::i#1 [phi:render_init::@1->render_init::@1#2] -- register_copy - //SEG1061 render_init::@1 + //SEG1133 [512] phi from render_init::@1 to render_init::@1 [phi:render_init::@1->render_init::@1] + //SEG1134 [512] phi (byte*) render_init::li_2#2 = (byte*) render_init::li_2#1 [phi:render_init::@1->render_init::@1#0] -- register_copy + //SEG1135 [512] phi (byte*) render_init::li_1#2 = (byte*) render_init::li_1#1 [phi:render_init::@1->render_init::@1#1] -- register_copy + //SEG1136 [512] phi (byte) render_init::i#2 = (byte) render_init::i#1 [phi:render_init::@1->render_init::@1#2] -- register_copy + //SEG1137 render_init::@1 b1: - //SEG1062 [484] (byte~) render_init::$13 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_rol_1 + //SEG1138 [513] (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 - //SEG1063 [485] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_init::$13) ← (byte*) render_init::li_1#2 -- pptc1_derefidx_vbuaa=pbuz1 + //SEG1139 [514] *((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 - //SEG1064 [486] (byte~) render_init::$14 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuaa=vbuxx_rol_1 + //SEG1140 [515] (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 - //SEG1065 [487] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_2#0 + (byte~) render_init::$14) ← (byte*) render_init::li_2#2 -- pptc1_derefidx_vbuaa=pbuz1 + //SEG1141 [516] *((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 - //SEG1066 [488] (byte*) render_init::li_1#1 ← (byte*) render_init::li_1#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG1142 [517] (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 @@ -24161,7 +25825,7 @@ render_init: { bcc !+ inc li_1+1 !: - //SEG1067 [489] (byte*) render_init::li_2#1 ← (byte*) render_init::li_2#2 + (byte/signed byte/word/signed word/dword/signed dword) 40 -- pbuz1=pbuz1_plus_vbuc1 + //SEG1143 [518] (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 @@ -24169,16 +25833,16 @@ render_init: { bcc !+ inc li_2+1 !: - //SEG1068 [490] (byte) render_init::i#1 ← ++ (byte) render_init::i#2 -- vbuxx=_inc_vbuxx + //SEG1144 [519] (byte) render_init::i#1 ← ++ (byte) render_init::i#2 -- vbuxx=_inc_vbuxx inx - //SEG1069 [491] if((byte) render_init::i#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@1 -- vbuxx_neq_vbuc1_then_la1 + //SEG1145 [520] 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 - //SEG1070 render_init::@return - //SEG1071 [492] return + //SEG1146 render_init::@return + //SEG1147 [521] return rts } -//SEG1072 render_screen_original +//SEG1148 render_screen_original render_screen_original: { .const SPACE = 0 .label screen = $11 @@ -24186,313 +25850,313 @@ render_screen_original: { .label oscr = 5 .label ocols = 7 .label y = 2 - //SEG1073 [494] phi from render_screen_original to render_screen_original::@1 [phi:render_screen_original->render_screen_original::@1] - //SEG1074 [494] phi (byte) render_screen_original::y#6 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_screen_original->render_screen_original::@1#0] -- vbuz1=vbuc1 + //SEG1149 [523] phi from render_screen_original to render_screen_original::@1 [phi:render_screen_original->render_screen_original::@1] + //SEG1150 [523] 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 - //SEG1075 [494] phi (byte*) render_screen_original::ocols#4 = (const byte*) PLAYFIELD_COLORS_ORIGINAL#0+(byte/signed byte/word/signed word/dword/signed dword) 32*(byte/signed byte/word/signed word/dword/signed dword) 2 [phi:render_screen_original->render_screen_original::@1#1] -- pbuz1=pbuc1 + //SEG1151 [523] 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 - //SEG1076 [494] phi (byte*) render_screen_original::oscr#4 = (const byte*) PLAYFIELD_SCREEN_ORIGINAL#0+(byte/signed byte/word/signed word/dword/signed dword) 32*(byte/signed byte/word/signed word/dword/signed dword) 2 [phi:render_screen_original->render_screen_original::@1#2] -- pbuz1=pbuc1 + //SEG1152 [523] 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 - //SEG1077 [494] phi (byte*) render_screen_original::cols#7 = (const byte*) COLS#0 [phi:render_screen_original->render_screen_original::@1#3] -- pbuz1=pbuc1 + //SEG1153 [523] 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 - //SEG1078 [494] phi (byte*) render_screen_original::screen#8 = (byte*) render_screen_original::screen#9 [phi:render_screen_original->render_screen_original::@1#4] -- register_copy - //SEG1079 [494] phi from render_screen_original::@7 to render_screen_original::@1 [phi:render_screen_original::@7->render_screen_original::@1] - //SEG1080 [494] phi (byte) render_screen_original::y#6 = (byte) render_screen_original::y#1 [phi:render_screen_original::@7->render_screen_original::@1#0] -- register_copy - //SEG1081 [494] phi (byte*) render_screen_original::ocols#4 = (byte*) render_screen_original::ocols#1 [phi:render_screen_original::@7->render_screen_original::@1#1] -- register_copy - //SEG1082 [494] phi (byte*) render_screen_original::oscr#4 = (byte*) render_screen_original::oscr#1 [phi:render_screen_original::@7->render_screen_original::@1#2] -- register_copy - //SEG1083 [494] phi (byte*) render_screen_original::cols#7 = (byte*) render_screen_original::cols#3 [phi:render_screen_original::@7->render_screen_original::@1#3] -- register_copy - //SEG1084 [494] phi (byte*) render_screen_original::screen#8 = (byte*) render_screen_original::screen#10 [phi:render_screen_original::@7->render_screen_original::@1#4] -- register_copy - //SEG1085 render_screen_original::@1 + //SEG1154 [523] phi (byte*) render_screen_original::screen#8 = (byte*) render_screen_original::screen#9 [phi:render_screen_original->render_screen_original::@1#4] -- register_copy + //SEG1155 [523] phi from render_screen_original::@7 to render_screen_original::@1 [phi:render_screen_original::@7->render_screen_original::@1] + //SEG1156 [523] 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 + //SEG1157 [523] 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 + //SEG1158 [523] 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 + //SEG1159 [523] 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 + //SEG1160 [523] 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 + //SEG1161 render_screen_original::@1 b1: - //SEG1086 [495] phi from render_screen_original::@1 to render_screen_original::@2 [phi:render_screen_original::@1->render_screen_original::@2] - //SEG1087 [495] phi (byte) render_screen_original::x#4 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:render_screen_original::@1->render_screen_original::@2#0] -- vbuxx=vbuc1 + //SEG1162 [524] phi from render_screen_original::@1 to render_screen_original::@2 [phi:render_screen_original::@1->render_screen_original::@2] + //SEG1163 [524] 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 - //SEG1088 [495] phi (byte*) render_screen_original::cols#4 = (byte*) render_screen_original::cols#7 [phi:render_screen_original::@1->render_screen_original::@2#1] -- register_copy - //SEG1089 [495] phi (byte*) render_screen_original::screen#5 = (byte*) render_screen_original::screen#8 [phi:render_screen_original::@1->render_screen_original::@2#2] -- register_copy - //SEG1090 [495] phi from render_screen_original::@2 to render_screen_original::@2 [phi:render_screen_original::@2->render_screen_original::@2] - //SEG1091 [495] phi (byte) render_screen_original::x#4 = (byte) render_screen_original::x#1 [phi:render_screen_original::@2->render_screen_original::@2#0] -- register_copy - //SEG1092 [495] phi (byte*) render_screen_original::cols#4 = (byte*) render_screen_original::cols#1 [phi:render_screen_original::@2->render_screen_original::@2#1] -- register_copy - //SEG1093 [495] phi (byte*) render_screen_original::screen#5 = (byte*) render_screen_original::screen#2 [phi:render_screen_original::@2->render_screen_original::@2#2] -- register_copy - //SEG1094 render_screen_original::@2 + //SEG1164 [524] 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 + //SEG1165 [524] 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 + //SEG1166 [524] phi from render_screen_original::@2 to render_screen_original::@2 [phi:render_screen_original::@2->render_screen_original::@2] + //SEG1167 [524] 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 + //SEG1168 [524] 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 + //SEG1169 [524] 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 + //SEG1170 render_screen_original::@2 b2: - //SEG1095 [496] *((byte*) render_screen_original::screen#5) ← (const byte) render_screen_original::SPACE#0 -- _deref_pbuz1=vbuc1 + //SEG1171 [525] *((byte*) render_screen_original::screen#5) ← (const byte) render_screen_original::SPACE#0 -- _deref_pbuz1=vbuc1 lda #SPACE ldy #0 sta (screen),y - //SEG1096 [497] (byte*) render_screen_original::screen#2 ← ++ (byte*) render_screen_original::screen#5 -- pbuz1=_inc_pbuz1 + //SEG1172 [526] (byte*) render_screen_original::screen#2 ← ++ (byte*) render_screen_original::screen#5 -- pbuz1=_inc_pbuz1 inc screen bne !+ inc screen+1 !: - //SEG1097 [498] *((byte*) render_screen_original::cols#4) ← (const byte) BLACK#0 -- _deref_pbuz1=vbuc1 + //SEG1173 [527] *((byte*) render_screen_original::cols#4) ← (const byte) BLACK#0 -- _deref_pbuz1=vbuc1 lda #BLACK ldy #0 sta (cols),y - //SEG1098 [499] (byte*) render_screen_original::cols#1 ← ++ (byte*) render_screen_original::cols#4 -- pbuz1=_inc_pbuz1 + //SEG1174 [528] (byte*) render_screen_original::cols#1 ← ++ (byte*) render_screen_original::cols#4 -- pbuz1=_inc_pbuz1 inc cols bne !+ inc cols+1 !: - //SEG1099 [500] (byte) render_screen_original::x#1 ← ++ (byte) render_screen_original::x#4 -- vbuxx=_inc_vbuxx + //SEG1175 [529] (byte) render_screen_original::x#1 ← ++ (byte) render_screen_original::x#4 -- vbuxx=_inc_vbuxx inx - //SEG1100 [501] if((byte) render_screen_original::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_screen_original::@2 -- vbuxx_neq_vbuc1_then_la1 + //SEG1176 [530] 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 - //SEG1101 [502] phi from render_screen_original::@2 render_screen_original::@3 to render_screen_original::@3 [phi:render_screen_original::@2/render_screen_original::@3->render_screen_original::@3] - //SEG1102 [502] phi (byte) render_screen_original::x#5 = (byte) render_screen_original::x#1 [phi:render_screen_original::@2/render_screen_original::@3->render_screen_original::@3#0] -- register_copy - //SEG1103 [502] phi (byte*) render_screen_original::cols#5 = (byte*) render_screen_original::cols#1 [phi:render_screen_original::@2/render_screen_original::@3->render_screen_original::@3#1] -- register_copy - //SEG1104 [502] phi (byte*) render_screen_original::ocols#2 = (byte*) render_screen_original::ocols#4 [phi:render_screen_original::@2/render_screen_original::@3->render_screen_original::@3#2] -- register_copy - //SEG1105 [502] phi (byte*) render_screen_original::screen#6 = (byte*) render_screen_original::screen#2 [phi:render_screen_original::@2/render_screen_original::@3->render_screen_original::@3#3] -- register_copy - //SEG1106 [502] phi (byte*) render_screen_original::oscr#2 = (byte*) render_screen_original::oscr#4 [phi:render_screen_original::@2/render_screen_original::@3->render_screen_original::@3#4] -- register_copy - //SEG1107 render_screen_original::@3 + //SEG1177 [531] 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] + //SEG1178 [531] 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 + //SEG1179 [531] 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 + //SEG1180 [531] 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 + //SEG1181 [531] 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 + //SEG1182 [531] 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 + //SEG1183 render_screen_original::@3 b3: - //SEG1108 [503] *((byte*) render_screen_original::screen#6) ← *((byte*) render_screen_original::oscr#2) -- _deref_pbuz1=_deref_pbuz2 + //SEG1184 [532] *((byte*) render_screen_original::screen#6) ← *((byte*) render_screen_original::oscr#2) -- _deref_pbuz1=_deref_pbuz2 ldy #0 lda (oscr),y sta (screen),y - //SEG1109 [504] (byte*) render_screen_original::screen#3 ← ++ (byte*) render_screen_original::screen#6 -- pbuz1=_inc_pbuz1 + //SEG1185 [533] (byte*) render_screen_original::screen#3 ← ++ (byte*) render_screen_original::screen#6 -- pbuz1=_inc_pbuz1 inc screen bne !+ inc screen+1 !: - //SEG1110 [505] (byte*) render_screen_original::oscr#1 ← ++ (byte*) render_screen_original::oscr#2 -- pbuz1=_inc_pbuz1 + //SEG1186 [534] (byte*) render_screen_original::oscr#1 ← ++ (byte*) render_screen_original::oscr#2 -- pbuz1=_inc_pbuz1 inc oscr bne !+ inc oscr+1 !: - //SEG1111 [506] *((byte*) render_screen_original::cols#5) ← *((byte*) render_screen_original::ocols#2) -- _deref_pbuz1=_deref_pbuz2 + //SEG1187 [535] *((byte*) render_screen_original::cols#5) ← *((byte*) render_screen_original::ocols#2) -- _deref_pbuz1=_deref_pbuz2 ldy #0 lda (ocols),y sta (cols),y - //SEG1112 [507] (byte*) render_screen_original::cols#2 ← ++ (byte*) render_screen_original::cols#5 -- pbuz1=_inc_pbuz1 + //SEG1188 [536] (byte*) render_screen_original::cols#2 ← ++ (byte*) render_screen_original::cols#5 -- pbuz1=_inc_pbuz1 inc cols bne !+ inc cols+1 !: - //SEG1113 [508] (byte*) render_screen_original::ocols#1 ← ++ (byte*) render_screen_original::ocols#2 -- pbuz1=_inc_pbuz1 + //SEG1189 [537] (byte*) render_screen_original::ocols#1 ← ++ (byte*) render_screen_original::ocols#2 -- pbuz1=_inc_pbuz1 inc ocols bne !+ inc ocols+1 !: - //SEG1114 [509] (byte) render_screen_original::x#2 ← ++ (byte) render_screen_original::x#5 -- vbuxx=_inc_vbuxx + //SEG1190 [538] (byte) render_screen_original::x#2 ← ++ (byte) render_screen_original::x#5 -- vbuxx=_inc_vbuxx inx - //SEG1115 [510] if((byte) render_screen_original::x#2!=(byte/signed byte/word/signed word/dword/signed dword) 36) goto render_screen_original::@3 -- vbuxx_neq_vbuc1_then_la1 + //SEG1191 [539] 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 - //SEG1116 [511] phi from render_screen_original::@3 render_screen_original::@4 to render_screen_original::@4 [phi:render_screen_original::@3/render_screen_original::@4->render_screen_original::@4] - //SEG1117 [511] phi (byte) render_screen_original::x#6 = (byte) render_screen_original::x#2 [phi:render_screen_original::@3/render_screen_original::@4->render_screen_original::@4#0] -- register_copy - //SEG1118 [511] phi (byte*) render_screen_original::cols#6 = (byte*) render_screen_original::cols#2 [phi:render_screen_original::@3/render_screen_original::@4->render_screen_original::@4#1] -- register_copy - //SEG1119 [511] phi (byte*) render_screen_original::screen#7 = (byte*) render_screen_original::screen#3 [phi:render_screen_original::@3/render_screen_original::@4->render_screen_original::@4#2] -- register_copy - //SEG1120 render_screen_original::@4 + //SEG1192 [540] 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] + //SEG1193 [540] 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 + //SEG1194 [540] 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 + //SEG1195 [540] 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 + //SEG1196 render_screen_original::@4 b4: - //SEG1121 [512] *((byte*) render_screen_original::screen#7) ← (const byte) render_screen_original::SPACE#0 -- _deref_pbuz1=vbuc1 + //SEG1197 [541] *((byte*) render_screen_original::screen#7) ← (const byte) render_screen_original::SPACE#0 -- _deref_pbuz1=vbuc1 lda #SPACE ldy #0 sta (screen),y - //SEG1122 [513] (byte*) render_screen_original::screen#10 ← ++ (byte*) render_screen_original::screen#7 -- pbuz1=_inc_pbuz1 + //SEG1198 [542] (byte*) render_screen_original::screen#10 ← ++ (byte*) render_screen_original::screen#7 -- pbuz1=_inc_pbuz1 inc screen bne !+ inc screen+1 !: - //SEG1123 [514] *((byte*) render_screen_original::cols#6) ← (const byte) BLACK#0 -- _deref_pbuz1=vbuc1 + //SEG1199 [543] *((byte*) render_screen_original::cols#6) ← (const byte) BLACK#0 -- _deref_pbuz1=vbuc1 lda #BLACK ldy #0 sta (cols),y - //SEG1124 [515] (byte*) render_screen_original::cols#3 ← ++ (byte*) render_screen_original::cols#6 -- pbuz1=_inc_pbuz1 + //SEG1200 [544] (byte*) render_screen_original::cols#3 ← ++ (byte*) render_screen_original::cols#6 -- pbuz1=_inc_pbuz1 inc cols bne !+ inc cols+1 !: - //SEG1125 [516] (byte) render_screen_original::x#3 ← ++ (byte) render_screen_original::x#6 -- vbuxx=_inc_vbuxx + //SEG1201 [545] (byte) render_screen_original::x#3 ← ++ (byte) render_screen_original::x#6 -- vbuxx=_inc_vbuxx inx - //SEG1126 [517] if((byte) render_screen_original::x#3!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto render_screen_original::@4 -- vbuxx_neq_vbuc1_then_la1 + //SEG1202 [546] 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 - //SEG1127 render_screen_original::@7 - //SEG1128 [518] (byte) render_screen_original::y#1 ← ++ (byte) render_screen_original::y#6 -- vbuz1=_inc_vbuz1 + //SEG1203 render_screen_original::@7 + //SEG1204 [547] (byte) render_screen_original::y#1 ← ++ (byte) render_screen_original::y#6 -- vbuz1=_inc_vbuz1 inc y - //SEG1129 [519] if((byte) render_screen_original::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto render_screen_original::@1 -- vbuz1_neq_vbuc1_then_la1 + //SEG1205 [548] 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 - //SEG1130 render_screen_original::@return - //SEG1131 [520] return + //SEG1206 render_screen_original::@return + //SEG1207 [549] return rts } -//SEG1132 sid_rnd_init +//SEG1208 sid_rnd_init sid_rnd_init: { - //SEG1133 [521] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535 -- _deref_pwuc1=vwuc2 + //SEG1209 [550] *((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 - //SEG1134 [522] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 -- _deref_pbuc1=vbuc2 + //SEG1210 [551] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0 -- _deref_pbuc1=vbuc2 lda #SID_CONTROL_NOISE sta SID_VOICE3_CONTROL - //SEG1135 sid_rnd_init::@return - //SEG1136 [523] return + //SEG1211 sid_rnd_init::@return + //SEG1212 [552] return rts } -//SEG1137 sprites_irq +//SEG1213 sprites_irq sprites_irq: { .const toSpritePtr2_return = PLAYFIELD_SPRITES>>6 - .label raster_sprite_gfx_modify = $2e - //SEG1138 entry interrupt(HARDWARE_CLOBBER) + .label raster_sprite_gfx_modify = $2f + //SEG1214 entry interrupt(HARDWARE_CLOBBER) sta rega+1 stx regx+1 - //SEG1139 asm { cld } + //SEG1215 asm { cld } cld - //SEG1140 [525] (byte) sprites_irq::ypos#0 ← (byte) irq_sprite_ypos#0 -- vbuaa=vbuz1 + //SEG1216 [554] (byte) sprites_irq::ypos#0 ← (byte) irq_sprite_ypos#0 -- vbuaa=vbuz1 lda irq_sprite_ypos - //SEG1141 [526] *((const byte*) SPRITES_YPOS#0) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuaa + //SEG1217 [555] *((const byte*) SPRITES_YPOS#0) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuaa sta SPRITES_YPOS - //SEG1142 [527] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuaa + //SEG1218 [556] *((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 - //SEG1143 [528] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuaa + //SEG1219 [557] *((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 - //SEG1144 [529] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte) sprites_irq::ypos#0 -- _deref_pbuc1=vbuaa + //SEG1220 [558] *((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 - //SEG1145 [530] (byte/signed word/word/dword/signed dword~) sprites_irq::$0 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuxx=vbuz1_plus_1 + //SEG1221 [559] (byte/signed word/word/dword/signed dword~) sprites_irq::$0 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vbuxx=vbuz1_plus_1 ldx irq_raster_next inx - //SEG1146 [531] (byte) sprites_irq::raster_sprite_gfx_modify#0 ← (byte/signed word/word/dword/signed dword~) sprites_irq::$0 -- vbuz1=vbuxx + //SEG1222 [560] (byte) sprites_irq::raster_sprite_gfx_modify#0 ← (byte/signed word/word/dword/signed dword~) sprites_irq::$0 -- vbuz1=vbuxx stx raster_sprite_gfx_modify - //SEG1147 sprites_irq::@1 + //SEG1223 sprites_irq::@1 b1: - //SEG1148 [532] if(*((const byte*) RASTER#0)<(byte) sprites_irq::raster_sprite_gfx_modify#0) goto sprites_irq::@1 -- _deref_pbuc1_lt_vbuz1_then_la1 + //SEG1224 [561] if(*((const byte*) RASTER#0)<(byte) sprites_irq::raster_sprite_gfx_modify#0) goto sprites_irq::@1 -- _deref_pbuc1_lt_vbuz1_then_la1 lda RASTER cmp raster_sprite_gfx_modify bcc b1 - //SEG1149 sprites_irq::@8 - //SEG1150 [533] (byte) sprites_irq::ptr#0 ← (byte) irq_sprite_ptr#0 -- vbuxx=vbuz1 + //SEG1225 sprites_irq::@8 + //SEG1226 [562] (byte) sprites_irq::ptr#0 ← (byte) irq_sprite_ptr#0 -- vbuxx=vbuz1 ldx irq_sprite_ptr - //SEG1151 [534] if((byte) render_screen_showing#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sprites_irq::@2 -- vbuz1_eq_0_then_la1 + //SEG1227 [563] 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 - //SEG1152 sprites_irq::@9 - //SEG1153 [535] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0) ← (byte) sprites_irq::ptr#0 -- _deref_pbuc1=vbuxx + //SEG1228 sprites_irq::@9 + //SEG1229 [564] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0) ← (byte) sprites_irq::ptr#0 -- _deref_pbuc1=vbuxx stx PLAYFIELD_SPRITE_PTRS_2 - //SEG1154 [536] (byte) sprites_irq::ptr#3 ← ++ (byte) sprites_irq::ptr#0 -- vbuaa=_inc_vbuxx + //SEG1230 [565] (byte) sprites_irq::ptr#3 ← ++ (byte) sprites_irq::ptr#0 -- vbuaa=_inc_vbuxx txa clc adc #1 - //SEG1155 [537] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) sprites_irq::ptr#3 -- _deref_pbuc1=vbuaa + //SEG1231 [566] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) sprites_irq::ptr#3 -- _deref_pbuc1=vbuaa sta PLAYFIELD_SPRITE_PTRS_2+1 - //SEG1156 [538] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ptr#3 -- _deref_pbuc1=vbuaa + //SEG1232 [567] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ptr#3 -- _deref_pbuc1=vbuaa sta PLAYFIELD_SPRITE_PTRS_2+2 - //SEG1157 [539] (byte) sprites_irq::ptr#4 ← ++ (byte) sprites_irq::ptr#3 -- vbuaa=_inc_vbuaa + //SEG1233 [568] (byte) sprites_irq::ptr#4 ← ++ (byte) sprites_irq::ptr#3 -- vbuaa=_inc_vbuaa clc adc #1 - //SEG1158 [540] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte) sprites_irq::ptr#4 -- _deref_pbuc1=vbuaa + //SEG1234 [569] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte) sprites_irq::ptr#4 -- _deref_pbuc1=vbuaa sta PLAYFIELD_SPRITE_PTRS_2+3 - //SEG1159 sprites_irq::@3 + //SEG1235 sprites_irq::@3 b3: - //SEG1160 [541] (byte) irq_cnt#1 ← ++ (byte) irq_cnt#0 -- vbuz1=_inc_vbuz1 + //SEG1236 [570] (byte) irq_cnt#1 ← ++ (byte) irq_cnt#0 -- vbuz1=_inc_vbuz1 inc irq_cnt - //SEG1161 [542] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 9) goto sprites_irq::@4 -- vbuz1_eq_vbuc1_then_la1 + //SEG1237 [571] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 9) goto sprites_irq::@4 -- vbuz1_eq_vbuc1_then_la1 lda irq_cnt cmp #9 beq b4 - //SEG1162 sprites_irq::@11 - //SEG1163 [543] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto sprites_irq::@5 -- vbuz1_eq_vbuc1_then_la1 + //SEG1238 sprites_irq::@11 + //SEG1239 [572] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto sprites_irq::@5 -- vbuz1_eq_vbuc1_then_la1 cmp #$a beq b5 - //SEG1164 sprites_irq::@12 - //SEG1165 [544] (byte) irq_raster_next#3 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 20 -- vbuz1=vbuz1_plus_vbuc1 + //SEG1240 sprites_irq::@12 + //SEG1241 [573] (byte) irq_raster_next#3 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 20 -- vbuz1=vbuz1_plus_vbuc1 lda #$14 clc adc irq_raster_next sta irq_raster_next - //SEG1166 [545] (byte) irq_sprite_ypos#3 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuz1=vbuz1_plus_vbuc1 + //SEG1242 [574] (byte) irq_sprite_ypos#3 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuz1=vbuz1_plus_vbuc1 lda #$15 clc adc irq_sprite_ypos sta irq_sprite_ypos - //SEG1167 [546] (byte) irq_sprite_ptr#3 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 -- vbuz1=vbuz1_plus_vbuc1 + //SEG1243 [575] (byte) irq_sprite_ptr#3 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 -- vbuz1=vbuz1_plus_vbuc1 lda #3 clc adc irq_sprite_ptr sta irq_sprite_ptr - //SEG1168 [547] phi from sprites_irq::@12 sprites_irq::@15 sprites_irq::@5 to sprites_irq::@7 [phi:sprites_irq::@12/sprites_irq::@15/sprites_irq::@5->sprites_irq::@7] - //SEG1169 [547] phi (byte) irq_raster_next#4 = (byte) irq_raster_next#3 [phi:sprites_irq::@12/sprites_irq::@15/sprites_irq::@5->sprites_irq::@7#0] -- register_copy - //SEG1170 sprites_irq::@7 + //SEG1244 [576] phi from sprites_irq::@12 sprites_irq::@15 sprites_irq::@5 to sprites_irq::@7 [phi:sprites_irq::@12/sprites_irq::@15/sprites_irq::@5->sprites_irq::@7] + //SEG1245 [576] phi (byte) irq_raster_next#4 = (byte) irq_raster_next#3 [phi:sprites_irq::@12/sprites_irq::@15/sprites_irq::@5->sprites_irq::@7#0] -- register_copy + //SEG1246 sprites_irq::@7 b7: - //SEG1171 [548] *((const byte*) RASTER#0) ← (byte) irq_raster_next#4 -- _deref_pbuc1=vbuz1 + //SEG1247 [577] *((const byte*) RASTER#0) ← (byte) irq_raster_next#4 -- _deref_pbuc1=vbuz1 lda irq_raster_next sta RASTER - //SEG1172 [549] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 + //SEG1248 [578] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0 -- _deref_pbuc1=vbuc2 lda #IRQ_RASTER sta IRQ_STATUS - //SEG1173 sprites_irq::@return - //SEG1174 [550] return - exit interrupt(HARDWARE_CLOBBER) + //SEG1249 sprites_irq::@return + //SEG1250 [579] return - exit interrupt(HARDWARE_CLOBBER) rega: lda #00 regx: ldx #00 rti - //SEG1175 sprites_irq::@5 + //SEG1251 sprites_irq::@5 b5: - //SEG1176 [551] (byte) irq_cnt#2 ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- vbuz1=vbuc1 + //SEG1252 [580] (byte) irq_cnt#2 ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- vbuz1=vbuc1 lda #0 sta irq_cnt - //SEG1177 [552] (byte) irq_raster_next#2 ← (const byte) IRQ_RASTER_FIRST#0 -- vbuz1=vbuc1 + //SEG1253 [581] (byte) irq_raster_next#2 ← (const byte) IRQ_RASTER_FIRST#0 -- vbuz1=vbuc1 lda #IRQ_RASTER_FIRST sta irq_raster_next - //SEG1178 [553] (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuz1=vbuz1_plus_vbuc1 + //SEG1254 [582] (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 - //SEG1179 [554] (byte) irq_sprite_ptr#2 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 -- vbuz1=vbuz1_plus_vbuc1 + //SEG1255 [583] (byte) irq_sprite_ptr#2 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3 -- vbuz1=vbuz1_plus_vbuc1 lda #3 clc adc irq_sprite_ptr sta irq_sprite_ptr jmp b7 - //SEG1180 sprites_irq::@4 + //SEG1256 sprites_irq::@4 b4: - //SEG1181 [555] (byte) irq_raster_next#1 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuz1=vbuz1_plus_vbuc1 + //SEG1257 [584] (byte) irq_raster_next#1 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21 -- vbuz1=vbuz1_plus_vbuc1 lda #$15 clc adc irq_raster_next sta irq_raster_next - //SEG1182 [556] (byte) irq_sprite_ypos#1 ← (const byte) SPRITES_FIRST_YPOS#0 -- vbuz1=vbuc1 + //SEG1258 [585] (byte) irq_sprite_ypos#1 ← (const byte) SPRITES_FIRST_YPOS#0 -- vbuz1=vbuc1 lda #SPRITES_FIRST_YPOS sta irq_sprite_ypos - //SEG1183 [557] phi from sprites_irq::@4 to sprites_irq::toSpritePtr2 [phi:sprites_irq::@4->sprites_irq::toSpritePtr2] - //SEG1184 sprites_irq::toSpritePtr2 - //SEG1185 sprites_irq::@15 - //SEG1186 [558] (byte) irq_sprite_ptr#1 ← (const byte) sprites_irq::toSpritePtr2_return#0 -- vbuz1=vbuc1 + //SEG1259 [586] phi from sprites_irq::@4 to sprites_irq::toSpritePtr2 [phi:sprites_irq::@4->sprites_irq::toSpritePtr2] + //SEG1260 sprites_irq::toSpritePtr2 + //SEG1261 sprites_irq::@15 + //SEG1262 [587] (byte) irq_sprite_ptr#1 ← (const byte) sprites_irq::toSpritePtr2_return#0 -- vbuz1=vbuc1 lda #toSpritePtr2_return sta irq_sprite_ptr jmp b7 - //SEG1187 sprites_irq::@2 + //SEG1263 sprites_irq::@2 b2: - //SEG1188 [559] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0) ← (byte) sprites_irq::ptr#0 -- _deref_pbuc1=vbuxx + //SEG1264 [588] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0) ← (byte) sprites_irq::ptr#0 -- _deref_pbuc1=vbuxx stx PLAYFIELD_SPRITE_PTRS_1 - //SEG1189 [560] (byte) sprites_irq::ptr#1 ← ++ (byte) sprites_irq::ptr#0 -- vbuaa=_inc_vbuxx + //SEG1265 [589] (byte) sprites_irq::ptr#1 ← ++ (byte) sprites_irq::ptr#0 -- vbuaa=_inc_vbuxx txa clc adc #1 - //SEG1190 [561] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) sprites_irq::ptr#1 -- _deref_pbuc1=vbuaa + //SEG1266 [590] *((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 - //SEG1191 [562] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ptr#1 -- _deref_pbuc1=vbuaa + //SEG1267 [591] *((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 - //SEG1192 [563] (byte) sprites_irq::ptr#2 ← ++ (byte) sprites_irq::ptr#1 -- vbuaa=_inc_vbuaa + //SEG1268 [592] (byte) sprites_irq::ptr#2 ← ++ (byte) sprites_irq::ptr#1 -- vbuaa=_inc_vbuaa clc adc #1 - //SEG1193 [564] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte) sprites_irq::ptr#2 -- _deref_pbuc1=vbuaa + //SEG1269 [593] *((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 } @@ -24514,7 +26178,8 @@ sprites_irq: { PIECE_O: .byte 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0 .align $40 PIECE_I: .byte 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0 - PIECES_CHARS: .byte $64, $65, $a5, $65, $64, $64, $a5 + PIECES_CHARS: .byte $65, $66, $a6, $66, $65, $65, $a6 + PIECES_NEXT_CHARS: .byte $63, $64, $a4, $64, $63, $63, $a4 PIECES_START_X: .byte 4, 4, 4, 4, 4, 4, 4 PIECES_START_Y: .byte 1, 1, 1, 1, 1, 0, 1 MOVEDOWN_SLOW_SPEEDS: .byte $30, $2b, $26, $21, $1c, $17, $12, $d, 8, 6, 5, 5, 5, 4, 4, 4, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 diff --git a/src/test/ref/complex/tetris/tetris.sym b/src/test/ref/complex/tetris/tetris.sym index dec58eafa..0a4ff5afa 100644 --- a/src/test/ref/complex/tetris/tetris.sym +++ b/src/test/ref/complex/tetris/tetris.sym @@ -1,8 +1,8 @@ (label) @14 -(label) @22 (label) @23 -(label) @37 +(label) @24 (label) @38 +(label) @39 (label) @begin (label) @end (byte*) BGCOL @@ -169,7 +169,9 @@ (word[]) PIECES (const word[]) PIECES#0 PIECES = { ((word))(const byte[4*4*4]) PIECE_T#0, ((word))(const byte[4*4*4]) PIECE_S#0, ((word))(const byte[4*4*4]) PIECE_Z#0, ((word))(const byte[4*4*4]) PIECE_J#0, ((word))(const byte[4*4*4]) PIECE_O#0, ((word))(const byte[4*4*4]) PIECE_I#0, ((word))(const byte[4*4*4]) PIECE_L#0 } (byte[]) PIECES_CHARS -(const byte[]) PIECES_CHARS#0 PIECES_CHARS = { (byte/signed byte/word/signed word/dword/signed dword) 100, (byte/signed byte/word/signed word/dword/signed dword) 101, (byte/word/signed word/dword/signed dword) 165, (byte/signed byte/word/signed word/dword/signed dword) 101, (byte/signed byte/word/signed word/dword/signed dword) 100, (byte/signed byte/word/signed word/dword/signed dword) 100, (byte/word/signed word/dword/signed dword) 165 } +(const byte[]) PIECES_CHARS#0 PIECES_CHARS = { (byte/signed byte/word/signed word/dword/signed dword) 101, (byte/signed byte/word/signed word/dword/signed dword) 102, (byte/word/signed word/dword/signed dword) 166, (byte/signed byte/word/signed word/dword/signed dword) 102, (byte/signed byte/word/signed word/dword/signed dword) 101, (byte/signed byte/word/signed word/dword/signed dword) 101, (byte/word/signed word/dword/signed dword) 166 } +(byte[]) PIECES_NEXT_CHARS +(const byte[]) PIECES_NEXT_CHARS#0 PIECES_NEXT_CHARS = { (byte/signed byte/word/signed word/dword/signed dword) 99, (byte/signed byte/word/signed word/dword/signed dword) 100, (byte/word/signed word/dword/signed dword) 164, (byte/signed byte/word/signed word/dword/signed dword) 100, (byte/signed byte/word/signed word/dword/signed dword) 99, (byte/signed byte/word/signed word/dword/signed dword) 99, (byte/word/signed word/dword/signed dword) 164 } (byte[]) PIECES_START_X (const byte[]) PIECES_START_X#0 PIECES_START_X = { (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 4 } (byte[]) PIECES_START_Y @@ -285,103 +287,103 @@ (byte) YELLOW (byte) current_movedown_counter (byte) current_movedown_counter#12 current_movedown_counter zp ZP_BYTE:4 0.5333333333333333 -(byte) current_movedown_counter#14 current_movedown_counter zp ZP_BYTE:4 3.257142857142857 +(byte) current_movedown_counter#14 current_movedown_counter zp ZP_BYTE:4 3.0000000000000004 (byte) current_movedown_counter#16 current_movedown_counter zp ZP_BYTE:4 8.769230769230768 (byte) current_movedown_fast (const byte) current_movedown_fast#0 current_movedown_fast = (byte/signed byte/word/signed word/dword/signed dword) 10 (byte) current_movedown_slow -(byte) current_movedown_slow#1 current_movedown_slow zp ZP_BYTE:24 0.2222222222222222 +(byte) current_movedown_slow#1 current_movedown_slow zp ZP_BYTE:24 0.18181818181818182 (byte) current_movedown_slow#10 current_movedown_slow zp ZP_BYTE:24 4.0 (byte) current_movedown_slow#14 current_movedown_slow zp ZP_BYTE:24 2.214285714285714 -(byte) current_movedown_slow#21 current_movedown_slow zp ZP_BYTE:24 3.314285714285714 +(byte) current_movedown_slow#21 current_movedown_slow zp ZP_BYTE:24 3.052631578947369 (byte) current_movedown_slow#23 current_movedown_slow zp ZP_BYTE:24 1.3333333333333333 (byte) current_movedown_slow#38 current_movedown_slow zp ZP_BYTE:24 6.0 (byte) current_movedown_slow#69 current_movedown_slow zp ZP_BYTE:24 0.26666666666666666 (byte) current_orientation -(byte) current_orientation#12 current_orientation zp ZP_BYTE:29 3.189189189189189 -(byte) current_orientation#16 current_orientation zp ZP_BYTE:29 6.444444444444443 -(byte) current_orientation#19 current_orientation zp ZP_BYTE:29 0.36 -(byte) current_orientation#24 current_orientation zp ZP_BYTE:29 1.3333333333333333 -(byte) current_orientation#36 current_orientation zp ZP_BYTE:29 4.0 +(byte) current_orientation#13 current_orientation zp ZP_BYTE:29 3.189189189189189 +(byte) current_orientation#17 current_orientation zp ZP_BYTE:29 5.523809523809523 +(byte) current_orientation#20 current_orientation zp ZP_BYTE:29 0.36 +(byte) current_orientation#25 current_orientation zp ZP_BYTE:29 1.3333333333333333 +(byte) current_orientation#38 current_orientation zp ZP_BYTE:29 4.0 (byte) current_orientation#7 current_orientation zp ZP_BYTE:29 3.0 (byte*) current_piece -(byte*) current_piece#14 current_piece zp ZP_WORD:26 1.6315789473684217 -(byte*) current_piece#16 current_piece#16 zp ZP_WORD:5 12.0 -(byte*) current_piece#20 current_piece zp ZP_WORD:26 3.243243243243243 -(byte*) current_piece#27 current_piece zp ZP_WORD:26 6.0 -(byte*~) current_piece#88 current_piece zp ZP_WORD:26 4.0 -(byte*~) current_piece#90 current_piece#90 zp ZP_WORD:5 4.0 -(byte*~) current_piece#91 current_piece#91 zp ZP_WORD:5 4.0 -(byte*~) current_piece#92 current_piece#92 zp ZP_WORD:5 4.0 -(byte*~) current_piece#93 current_piece#93 zp ZP_WORD:5 4.0 -(byte*~) current_piece#94 current_piece#94 zp ZP_WORD:5 4.0 -(byte*~) current_piece#95 current_piece zp ZP_WORD:26 4.0 +(byte*) current_piece#10 current_piece zp ZP_WORD:26 3.243243243243243 +(byte*~) current_piece#100 current_piece#100 zp ZP_WORD:5 4.0 +(byte*~) current_piece#101 current_piece#101 zp ZP_WORD:5 4.0 +(byte*~) current_piece#102 current_piece#102 zp ZP_WORD:5 4.0 +(byte*~) current_piece#103 current_piece zp ZP_WORD:26 4.0 +(byte*) current_piece#15 current_piece zp ZP_WORD:26 1.5696202531645564 +(byte*) current_piece#17 current_piece#17 zp ZP_WORD:5 12.0 +(byte*) current_piece#29 current_piece zp ZP_WORD:26 6.0 +(byte*~) current_piece#96 current_piece zp ZP_WORD:26 4.0 +(byte*~) current_piece#98 current_piece#98 zp ZP_WORD:5 4.0 +(byte*~) current_piece#99 current_piece#99 zp ZP_WORD:5 4.0 (byte) current_piece_char -(byte~) current_piece_char#102 reg byte x 4.0 -(byte~) current_piece_char#103 reg byte x 22.0 -(byte) current_piece_char#14 current_piece_char zp ZP_BYTE:28 3.628571428571428 -(byte) current_piece_char#16 current_piece_char zp ZP_BYTE:28 0.32 -(byte) current_piece_char#19 current_piece_char zp ZP_BYTE:28 187.38888888888889 -(byte) current_piece_char#27 current_piece_char zp ZP_BYTE:28 6.0 -(byte) current_piece_char#64 reg byte x 50.699999999999996 +(byte~) current_piece_char#110 reg byte x 4.0 +(byte~) current_piece_char#111 reg byte x 22.0 +(byte) current_piece_char#15 current_piece_char zp ZP_BYTE:28 3.3421052631578956 +(byte) current_piece_char#21 current_piece_char zp ZP_BYTE:28 187.38888888888889 +(byte) current_piece_char#29 current_piece_char zp ZP_BYTE:28 6.0 +(byte) current_piece_char#4 current_piece_char zp ZP_BYTE:28 0.23529411764705882 +(byte) current_piece_char#67 reg byte x 50.699999999999996 (byte*) current_piece_gfx -(byte*) current_piece_gfx#103 current_piece_gfx zp ZP_WORD:30 187.38888888888889 -(byte*~) current_piece_gfx#114 current_piece_gfx#114 zp ZP_WORD:5 2.0 -(byte*~) current_piece_gfx#115 current_piece_gfx#115 zp ZP_WORD:5 11.0 -(byte*) current_piece_gfx#16 current_piece_gfx zp ZP_WORD:30 7.055555555555554 -(byte*) current_piece_gfx#18 current_piece_gfx zp ZP_WORD:30 0.3571428571428571 -(byte*) current_piece_gfx#19 current_piece_gfx zp ZP_WORD:30 1.3333333333333333 -(byte*) current_piece_gfx#21 current_piece_gfx zp ZP_WORD:30 0.3333333333333333 -(byte*) current_piece_gfx#33 current_piece_gfx zp ZP_WORD:30 6.0 +(byte*) current_piece_gfx#111 current_piece_gfx zp ZP_WORD:30 187.38888888888889 +(byte*~) current_piece_gfx#122 current_piece_gfx#122 zp ZP_WORD:5 2.0 +(byte*~) current_piece_gfx#123 current_piece_gfx#123 zp ZP_WORD:5 11.0 +(byte*) current_piece_gfx#17 current_piece_gfx zp ZP_WORD:30 6.047619047619047 +(byte*) current_piece_gfx#19 current_piece_gfx zp ZP_WORD:30 0.3571428571428571 +(byte*) current_piece_gfx#20 current_piece_gfx zp ZP_WORD:30 1.3333333333333333 +(byte*) current_piece_gfx#35 current_piece_gfx zp ZP_WORD:30 6.0 (byte*) current_piece_gfx#6 current_piece_gfx zp ZP_WORD:30 4.0 -(byte*) current_piece_gfx#62 current_piece_gfx#62 zp ZP_WORD:5 50.699999999999996 +(byte*) current_piece_gfx#63 current_piece_gfx#63 zp ZP_WORD:5 50.699999999999996 +(byte*) current_piece_gfx#7 current_piece_gfx zp ZP_WORD:30 0.24242424242424243 (byte) current_xpos -(byte) current_xpos#113 current_xpos zp ZP_BYTE:32 20.75925925925926 -(byte~) current_xpos#124 current_xpos#124 zp ZP_BYTE:10 1.3333333333333333 -(byte~) current_xpos#125 current_xpos#125 zp ZP_BYTE:10 7.333333333333333 -(byte) current_xpos#17 current_xpos zp ZP_BYTE:32 7.055555555555554 -(byte) current_xpos#20 current_xpos zp ZP_BYTE:32 0.7692307692307692 -(byte) current_xpos#24 current_xpos zp ZP_BYTE:32 0.4666666666666666 -(byte) current_xpos#28 current_xpos zp ZP_BYTE:32 0.43478260869565216 -(byte) current_xpos#41 current_xpos zp ZP_BYTE:32 6.0 +(byte) current_xpos#102 current_xpos zp ZP_BYTE:32 0.3125 +(byte) current_xpos#121 current_xpos zp ZP_BYTE:32 20.75925925925926 +(byte~) current_xpos#132 current_xpos#132 zp ZP_BYTE:10 1.3333333333333333 +(byte~) current_xpos#133 current_xpos#133 zp ZP_BYTE:10 7.333333333333333 +(byte) current_xpos#18 current_xpos zp ZP_BYTE:32 6.047619047619047 +(byte) current_xpos#21 current_xpos zp ZP_BYTE:32 0.7692307692307692 +(byte) current_xpos#25 current_xpos zp ZP_BYTE:32 0.4666666666666666 +(byte) current_xpos#43 current_xpos zp ZP_BYTE:32 6.0 (byte) current_xpos#5 current_xpos zp ZP_BYTE:32 4.0 -(byte) current_xpos#57 current_xpos#57 zp ZP_BYTE:10 5.7 +(byte) current_xpos#58 current_xpos#58 zp ZP_BYTE:10 5.7 (byte) current_xpos#7 current_xpos zp ZP_BYTE:32 4.0 (byte) current_ypos -(byte~) current_ypos#100 reg byte y 1.0 -(byte~) current_ypos#101 reg byte y 4.4 -(byte) current_ypos#11 reg byte y 15.0 -(byte) current_ypos#17 current_ypos zp ZP_BYTE:16 1.7500000000000007 +(byte) current_ypos#10 current_ypos zp ZP_BYTE:16 3.297297297297297 +(byte~) current_ypos#108 reg byte y 1.0 +(byte~) current_ypos#109 reg byte y 4.4 +(byte) current_ypos#12 reg byte y 15.0 +(byte) current_ypos#18 current_ypos zp ZP_BYTE:16 1.683544303797468 (byte) current_ypos#2 current_ypos zp ZP_BYTE:16 4.0 -(byte) current_ypos#22 current_ypos zp ZP_BYTE:16 0.4545454545454546 -(byte) current_ypos#25 current_ypos zp ZP_BYTE:16 3.297297297297297 -(byte) current_ypos#36 current_ypos zp ZP_BYTE:16 6.0 +(byte) current_ypos#38 current_ypos zp ZP_BYTE:16 6.0 +(byte) current_ypos#5 current_ypos zp ZP_BYTE:16 0.3225806451612903 (byte) game_over -(byte) game_over#14 game_over zp ZP_BYTE:33 3.371428571428571 -(byte) game_over#15 game_over zp ZP_BYTE:33 0.46153846153846156 -(byte) game_over#19 game_over zp ZP_BYTE:33 4.804347826086958 -(byte) game_over#26 game_over zp ZP_BYTE:33 6.0 -(byte) game_over#70 game_over zp ZP_BYTE:33 0.19047619047619047 +(byte) game_over#10 game_over zp ZP_BYTE:34 4.804347826086958 +(byte) game_over#15 game_over zp ZP_BYTE:34 3.1052631578947376 +(byte) game_over#28 game_over zp ZP_BYTE:34 6.0 +(byte) game_over#52 game_over zp ZP_BYTE:34 0.3333333333333333 +(byte) game_over#65 game_over zp ZP_BYTE:34 0.4 (byte) irq_cnt -(byte) irq_cnt#0 irq_cnt zp ZP_BYTE:39 0.17391304347826086 -(byte) irq_cnt#1 irq_cnt zp ZP_BYTE:39 3.0 -(byte) irq_cnt#2 irq_cnt zp ZP_BYTE:39 20.0 +(byte) irq_cnt#0 irq_cnt zp ZP_BYTE:40 0.17391304347826086 +(byte) irq_cnt#1 irq_cnt zp ZP_BYTE:40 3.0 +(byte) irq_cnt#2 irq_cnt zp ZP_BYTE:40 20.0 (byte) irq_raster_next -(byte) irq_raster_next#0 irq_raster_next zp ZP_BYTE:35 0.3076923076923077 -(byte) irq_raster_next#1 irq_raster_next zp ZP_BYTE:35 1.0 -(byte) irq_raster_next#2 irq_raster_next zp ZP_BYTE:35 1.3333333333333333 -(byte) irq_raster_next#3 irq_raster_next zp ZP_BYTE:35 1.3333333333333333 -(byte) irq_raster_next#4 irq_raster_next zp ZP_BYTE:35 8.0 +(byte) irq_raster_next#0 irq_raster_next zp ZP_BYTE:36 0.3076923076923077 +(byte) irq_raster_next#1 irq_raster_next zp ZP_BYTE:36 1.0 +(byte) irq_raster_next#2 irq_raster_next zp ZP_BYTE:36 1.3333333333333333 +(byte) irq_raster_next#3 irq_raster_next zp ZP_BYTE:36 1.3333333333333333 +(byte) irq_raster_next#4 irq_raster_next zp ZP_BYTE:36 8.0 (byte) irq_sprite_ptr -(byte) irq_sprite_ptr#0 irq_sprite_ptr zp ZP_BYTE:38 0.25806451612903225 -(byte) irq_sprite_ptr#1 irq_sprite_ptr zp ZP_BYTE:38 20.0 -(byte) irq_sprite_ptr#2 irq_sprite_ptr zp ZP_BYTE:38 20.0 -(byte) irq_sprite_ptr#3 irq_sprite_ptr zp ZP_BYTE:38 20.0 +(byte) irq_sprite_ptr#0 irq_sprite_ptr zp ZP_BYTE:39 0.25806451612903225 +(byte) irq_sprite_ptr#1 irq_sprite_ptr zp ZP_BYTE:39 20.0 +(byte) irq_sprite_ptr#2 irq_sprite_ptr zp ZP_BYTE:39 20.0 +(byte) irq_sprite_ptr#3 irq_sprite_ptr zp ZP_BYTE:39 20.0 (byte) irq_sprite_ypos -(byte) irq_sprite_ypos#0 irq_sprite_ypos zp ZP_BYTE:37 0.27586206896551724 -(byte) irq_sprite_ypos#1 irq_sprite_ypos zp ZP_BYTE:37 20.0 -(byte) irq_sprite_ypos#2 irq_sprite_ypos zp ZP_BYTE:37 20.0 -(byte) irq_sprite_ypos#3 irq_sprite_ypos zp ZP_BYTE:37 20.0 +(byte) irq_sprite_ypos#0 irq_sprite_ypos zp ZP_BYTE:38 0.27586206896551724 +(byte) irq_sprite_ypos#1 irq_sprite_ypos zp ZP_BYTE:38 20.0 +(byte) irq_sprite_ypos#2 irq_sprite_ypos zp ZP_BYTE:38 20.0 +(byte) irq_sprite_ypos#3 irq_sprite_ypos zp ZP_BYTE:38 20.0 (byte[]) keyboard_char_keycodes (byte()) keyboard_event_get() (label) keyboard_event_get::@3 @@ -456,15 +458,15 @@ (byte[8]) keyboard_events (const byte[8]) keyboard_events#0 keyboard_events = { fill( 8, 0) } (byte) keyboard_events_size -(byte) keyboard_events_size#1 keyboard_events_size zp ZP_BYTE:34 20002.0 -(byte) keyboard_events_size#10 keyboard_events_size zp ZP_BYTE:34 8100.9000000000015 -(byte) keyboard_events_size#13 keyboard_events_size zp ZP_BYTE:34 97.06451612903226 -(byte) keyboard_events_size#16 keyboard_events_size zp ZP_BYTE:34 5.043478260869566 -(byte) keyboard_events_size#19 keyboard_events_size zp ZP_BYTE:34 18.999999999999996 -(byte) keyboard_events_size#2 keyboard_events_size zp ZP_BYTE:34 20002.0 -(byte) keyboard_events_size#29 keyboard_events_size zp ZP_BYTE:34 429.2857142857143 -(byte) keyboard_events_size#30 keyboard_events_size zp ZP_BYTE:34 10201.2 -(byte) keyboard_events_size#4 keyboard_events_size zp ZP_BYTE:34 3.0 +(byte) keyboard_events_size#1 keyboard_events_size zp ZP_BYTE:35 20002.0 +(byte) keyboard_events_size#10 keyboard_events_size zp ZP_BYTE:35 8100.9000000000015 +(byte) keyboard_events_size#13 keyboard_events_size zp ZP_BYTE:35 97.06451612903226 +(byte) keyboard_events_size#16 keyboard_events_size zp ZP_BYTE:35 4.461538461538461 +(byte) keyboard_events_size#19 keyboard_events_size zp ZP_BYTE:35 18.999999999999996 +(byte) keyboard_events_size#2 keyboard_events_size zp ZP_BYTE:35 20002.0 +(byte) keyboard_events_size#29 keyboard_events_size zp ZP_BYTE:35 429.2857142857143 +(byte) keyboard_events_size#30 keyboard_events_size zp ZP_BYTE:35 10201.2 +(byte) keyboard_events_size#4 keyboard_events_size zp ZP_BYTE:35 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) @@ -488,20 +490,20 @@ (const byte[8]) keyboard_scan_values#0 keyboard_scan_values = { fill( 8, 0) } (byte) level (byte) level#10 level zp ZP_BYTE:23 2.140350877192983 -(byte) level#16 level zp ZP_BYTE:23 3.314285714285714 +(byte) level#16 level zp ZP_BYTE:23 3.052631578947369 (byte) level#18 level zp ZP_BYTE:23 1.3333333333333333 (byte) level#20 level zp ZP_BYTE:23 0.4444444444444444 (byte) level#31 level zp ZP_BYTE:23 6.0 (byte) level_bcd (byte) level_bcd#11 level_bcd zp ZP_BYTE:25 2.0 -(byte) level_bcd#17 level_bcd zp ZP_BYTE:25 2.0701754385964914 +(byte) level_bcd#17 level_bcd zp ZP_BYTE:25 1.966666666666667 (byte) level_bcd#19 level_bcd zp ZP_BYTE:25 1.3333333333333333 (byte) level_bcd#21 level_bcd zp ZP_BYTE:25 2.6666666666666665 (byte) level_bcd#32 level_bcd zp ZP_BYTE:25 6.0 (byte) level_bcd#64 level_bcd zp ZP_BYTE:25 0.6000000000000001 (byte) level_bcd#8 level_bcd zp ZP_BYTE:25 4.0 (word) lines_bcd -(word) lines_bcd#15 lines_bcd zp ZP_WORD:17 2.105263157894737 +(word) lines_bcd#15 lines_bcd zp ZP_WORD:17 2.0000000000000004 (word) lines_bcd#17 lines_bcd zp ZP_WORD:17 1.3333333333333333 (word) lines_bcd#19 lines_bcd zp ZP_WORD:17 2.4400000000000004 (word) lines_bcd#27 lines_bcd zp ZP_WORD:17 6.0 @@ -517,14 +519,17 @@ (label) main::@29 (label) main::@30 (label) main::@31 +(label) main::@32 (label) main::@33 -(label) main::@34 (label) main::@35 (label) main::@36 (label) main::@37 (label) main::@38 (label) main::@39 (label) main::@4 +(label) main::@40 +(label) main::@41 +(label) main::@42 (label) main::@6 (label) main::@7 (label) main::@9 @@ -532,6 +537,14 @@ (byte) main::key_event#0 reg byte x 101.0 (byte) main::render (byte) main::render#1 reg byte a 202.0 +(byte) next_piece_idx +(byte) next_piece_idx#10 next_piece_idx zp ZP_BYTE:33 2.608695652173914 +(byte) next_piece_idx#12 reg byte y 3.4 +(byte) next_piece_idx#16 next_piece_idx zp ZP_BYTE:33 3.3421052631578956 +(byte) next_piece_idx#17 next_piece_idx zp ZP_BYTE:33 6.0 +(byte) next_piece_idx#31 next_piece_idx zp ZP_BYTE:33 6.0 +(byte~) next_piece_idx#84 reg byte y 4.0 +(byte~) next_piece_idx#85 reg byte y 22.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 (label) play_collision::@1 @@ -553,7 +566,7 @@ (byte) play_collision::col#2 col zp ZP_BYTE:15 6375.75 (byte~) play_collision::col#9 col zp ZP_BYTE:15 2002.0 (byte) play_collision::i -(byte) play_collision::i#1 i zp ZP_BYTE:41 1615.6153846153845 +(byte) play_collision::i#1 i zp ZP_BYTE:42 1615.6153846153845 (byte~) play_collision::i#11 i#11 zp ZP_BYTE:14 2002.0 (byte~) play_collision::i#13 i#13 zp ZP_BYTE:14 20002.0 (byte) play_collision::i#2 i#2 zp ZP_BYTE:14 15502.0 @@ -740,7 +753,7 @@ (label) play_movement::@7 (label) play_movement::@return (byte) play_movement::key_event -(byte) play_movement::key_event#0 key_event zp ZP_BYTE:40 8.916666666666664 +(byte) play_movement::key_event#0 key_event zp ZP_BYTE:41 8.916666666666664 (byte) play_movement::render (byte) play_movement::render#1 render zp ZP_BYTE:9 1.0 (byte) play_movement::render#2 render zp ZP_BYTE:9 0.8 @@ -789,9 +802,9 @@ (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 (void()) play_spawn_current() -(byte~) play_spawn_current::$1 reg byte a 2002.0 -(byte~) play_spawn_current::$3 $3 zp ZP_BYTE:4 0.08333333333333333 -(byte~) play_spawn_current::$5 reg byte a 4.0 +(byte~) play_spawn_current::$0 $0 zp ZP_BYTE:4 0.06060606060606061 +(byte~) play_spawn_current::$2 reg byte a 4.0 +(byte~) play_spawn_current::$6 reg byte a 2002.0 (label) play_spawn_current::@1 (label) play_spawn_current::@10 (label) play_spawn_current::@11 @@ -799,9 +812,11 @@ (label) play_spawn_current::@3 (label) play_spawn_current::@9 (label) play_spawn_current::@return +(byte) play_spawn_current::current_piece_idx +(byte) play_spawn_current::current_piece_idx#0 reg byte x 2.0 (byte) play_spawn_current::piece_idx -(byte) play_spawn_current::piece_idx#1 reg byte x 2002.0 -(byte) play_spawn_current::piece_idx#2 reg byte x 334.99999999999994 +(byte) play_spawn_current::piece_idx#1 piece_idx zp ZP_BYTE:33 2002.0 +(byte) play_spawn_current::piece_idx#2 piece_idx zp ZP_BYTE:33 111.66666666666667 (void()) play_update_score((byte) play_update_score::removed) (byte~) play_update_score::$2 reg byte a 4.0 (byte~) play_update_score::$4 reg byte a 4.0 @@ -810,7 +825,7 @@ (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:42 1.3333333333333333 +(dword) play_update_score::add_bcd#0 add_bcd zp ZP_DWORD:43 1.3333333333333333 (byte) play_update_score::lines_after (byte) play_update_score::lines_after#0 reg byte a 4.0 (byte) play_update_score::lines_before @@ -920,6 +935,40 @@ (byte) render_moving::ypos2#0 ypos2 zp ZP_BYTE:11 4.0 (byte) render_moving::ypos2#1 ypos2 zp ZP_BYTE:11 67.33333333333333 (byte) render_moving::ypos2#2 ypos2 zp ZP_BYTE:11 27.06666666666667 +(void()) render_next() +(byte~) render_next::$6 reg byte x 1.0 +(label) render_next::@11 +(label) render_next::@2 +(label) render_next::@3 +(label) render_next::@4 +(label) render_next::@5 +(label) render_next::@6 +(label) render_next::@7 +(label) render_next::@9 +(label) render_next::@return +(byte) render_next::c +(byte) render_next::c#1 reg byte x 1501.5 +(byte) render_next::c#2 reg byte x 286.0 +(byte) render_next::cell +(byte) render_next::cell#0 reg byte a 1001.0 +(byte) render_next::l +(byte) render_next::l#1 l zp ZP_BYTE:9 151.5 +(byte) render_next::l#7 l zp ZP_BYTE:9 18.363636363636363 +(word) render_next::next_area_offset +(const word) render_next::next_area_offset#0 next_area_offset = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 12+(byte/signed byte/word/signed word/dword/signed dword) 24+(byte/signed byte/word/signed word/dword/signed dword) 4 +(byte) render_next::next_piece_char +(byte) render_next::next_piece_char#0 next_piece_char zp ZP_BYTE:10 66.86666666666667 +(byte*) render_next::next_piece_gfx +(byte*) render_next::next_piece_gfx#1 next_piece_gfx zp ZP_WORD:5 210.29999999999998 +(byte*) render_next::next_piece_gfx#2 next_piece_gfx zp ZP_WORD:5 1552.0 +(byte*) render_next::next_piece_gfx#3 next_piece_gfx zp ZP_WORD:5 204.0 +(byte*~) render_next::next_piece_gfx#9 next_piece_gfx zp ZP_WORD:5 4.0 +(byte*) render_next::screen_next_area +(byte*) render_next::screen_next_area#10 screen_next_area zp ZP_WORD:7 0.5 +(byte*) render_next::screen_next_area#2 screen_next_area zp ZP_WORD:7 701.0 +(byte*) render_next::screen_next_area#3 screen_next_area zp ZP_WORD:7 67.33333333333333 +(byte*) render_next::screen_next_area#4 screen_next_area zp ZP_WORD:7 684.1666666666667 +(byte*) render_next::screen_next_area#9 screen_next_area zp ZP_WORD:7 204.0 (void()) render_playfield() (byte~) render_playfield::$2 reg byte a 202.0 (byte~) render_playfield::$3 reg byte a 202.0 @@ -1006,17 +1055,19 @@ (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.7551020408163266 -(byte) render_screen_render#21 reg byte x 8.615384615384615 -(byte) render_screen_render#30 render_screen_render#30 zp ZP_BYTE:9 5.6 -(byte~) render_screen_render#64 render_screen_render#64 zp ZP_BYTE:9 5.5 -(byte~) render_screen_render#65 reg byte x 22.0 +(byte) render_screen_render#15 reg byte a 13.0 +(byte) render_screen_render#18 render_screen_render zp ZP_BYTE:3 0.923076923076923 +(byte) render_screen_render#22 reg byte x 8.615384615384615 +(byte) render_screen_render#33 render_screen_render#33 zp ZP_BYTE:9 5.6 +(byte~) render_screen_render#68 reg byte a 11.0 +(byte~) render_screen_render#69 render_screen_render#69 zp ZP_BYTE:9 5.5 +(byte~) render_screen_render#70 reg byte x 22.0 (byte) render_screen_show (byte) render_screen_show#13 render_screen_show zp ZP_BYTE:2 4.333333333333333 -(byte) render_screen_show#16 render_screen_show zp ZP_BYTE:2 0.48571428571428577 +(byte) render_screen_show#16 render_screen_show zp ZP_BYTE:2 0.4473684210526316 (byte) render_screen_showing -(byte) render_screen_showing#0 render_screen_showing zp ZP_BYTE:36 0.4 -(byte) render_screen_showing#1 render_screen_showing zp ZP_BYTE:36 20.0 +(byte) render_screen_showing#0 render_screen_showing zp ZP_BYTE:37 0.4 +(byte) render_screen_showing#1 render_screen_showing zp ZP_BYTE:37 20.0 (void()) render_screen_swap() (label) render_screen_swap::@return (void()) render_show() @@ -1055,7 +1106,7 @@ (dword[5]) score_add_bcd (const dword[5]) score_add_bcd#0 score_add_bcd = { fill( 5, 0) } (dword) score_bcd -(dword) score_bcd#14 score_bcd zp ZP_DWORD:19 3.314285714285714 +(dword) score_bcd#14 score_bcd zp ZP_DWORD:19 3.052631578947369 (dword) score_bcd#16 score_bcd zp ZP_DWORD:19 1.3333333333333333 (dword) score_bcd#18 score_bcd zp ZP_DWORD:19 2.352941176470588 (dword) score_bcd#27 score_bcd zp ZP_DWORD:19 6.0 @@ -1103,7 +1154,7 @@ interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() (byte) sprites_irq::ptr#3 reg byte a 2.6666666666666665 (byte) sprites_irq::ptr#4 reg byte a 4.0 (byte) sprites_irq::raster_sprite_gfx_modify -(byte) sprites_irq::raster_sprite_gfx_modify#0 raster_sprite_gfx_modify zp ZP_BYTE:46 6.5 +(byte) sprites_irq::raster_sprite_gfx_modify#0 raster_sprite_gfx_modify zp ZP_BYTE:47 6.5 (label) sprites_irq::toSpritePtr2 (word~) sprites_irq::toSpritePtr2_$0 (word~) sprites_irq::toSpritePtr2_$1 @@ -1124,42 +1175,45 @@ interrupt(HARDWARE_CLOBBER)(void()) sprites_irq() (byte*) toSpritePtr1_sprite zp ZP_BYTE:2 [ render_screen_show#16 render_screen_show#13 play_init::idx#2 play_init::idx#1 sprites_init::xpos#2 sprites_init::xpos#1 render_screen_original::y#6 render_screen_original::y#1 ] -zp ZP_BYTE:3 [ render_screen_render#17 render_screen_render#11 ] -zp ZP_BYTE:4 [ current_movedown_counter#16 current_movedown_counter#14 current_movedown_counter#12 play_remove_lines::y#8 play_remove_lines::y#1 play_lock_current::l#6 play_lock_current::l#1 play_spawn_current::$3 play_update_score::lines_before#0 ] -zp ZP_WORD:5 [ render_score::screen#2 render_bcd::screen#6 render_bcd::screen#0 render_bcd::screen#1 render_bcd::screen#2 render_bcd::screen#3 render_bcd::screen#4 render_bcd::screen#5 current_piece_gfx#62 current_piece_gfx#114 current_piece_gfx#115 render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 current_piece#16 current_piece#90 current_piece#91 current_piece#92 current_piece#93 current_piece#94 play_collision::piece_gfx#0 play_init::pli#2 play_init::pli#1 render_init::li_1#2 render_init::li_1#1 render_screen_original::oscr#2 render_screen_original::oscr#4 render_screen_original::oscr#1 play_lock_current::playfield_line#0 ] -zp ZP_WORD:7 [ render_bcd::offset#6 render_bcd::screen_pos#3 render_bcd::screen_pos#0 render_bcd::screen_pos#2 render_bcd::screen_pos#1 render_init::li_2#2 render_init::li_2#1 render_screen_original::ocols#2 render_screen_original::ocols#4 render_screen_original::ocols#1 render_moving::screen_line#0 play_collision::playfield_line#0 ] +zp ZP_BYTE:3 [ render_screen_render#18 render_screen_render#11 ] +zp ZP_BYTE:4 [ current_movedown_counter#16 current_movedown_counter#14 current_movedown_counter#12 play_remove_lines::y#8 play_remove_lines::y#1 play_lock_current::l#6 play_lock_current::l#1 play_spawn_current::$0 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 render_next::next_piece_gfx#2 render_next::next_piece_gfx#3 render_next::next_piece_gfx#1 render_next::next_piece_gfx#9 current_piece_gfx#63 current_piece_gfx#122 current_piece_gfx#123 render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 current_piece#17 current_piece#98 current_piece#99 current_piece#100 current_piece#101 current_piece#102 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_next::screen_next_area#4 render_next::screen_next_area#9 render_next::screen_next_area#3 render_next::screen_next_area#10 render_next::screen_next_area#2 render_init::li_2#2 render_init::li_2#1 render_screen_original::ocols#2 render_screen_original::ocols#4 render_screen_original::ocols#1 render_moving::screen_line#0 play_collision::playfield_line#0 ] reg byte y [ render_bcd::only_low#6 ] reg byte x [ render_bcd::bcd#6 render_bcd::bcd#0 render_bcd::bcd#1 render_bcd::bcd#2 render_bcd::bcd#3 render_bcd::bcd#4 render_bcd::bcd#5 ] -reg byte y [ current_ypos#11 current_ypos#100 current_ypos#101 ] -zp ZP_BYTE:9 [ render_screen_render#30 render_screen_render#64 render_playfield::l#2 render_playfield::l#1 play_movement::return#2 play_movement::render#1 play_movement::return#0 play_movement::render#2 play_remove_lines::removed#11 play_remove_lines::removed#7 play_remove_lines::removed#1 play_lock_current::i#2 play_lock_current::i#3 play_lock_current::i#7 play_lock_current::i#9 keyboard_event_pressed::keycode#5 keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] -zp ZP_BYTE:10 [ current_xpos#57 current_xpos#124 current_xpos#125 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 play_remove_lines::x#2 play_remove_lines::x#1 play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 keyboard_event_scan::keycode#15 keyboard_event_pressed::row_bits#0 ] -reg byte x [ current_piece_char#64 current_piece_char#102 current_piece_char#103 ] +reg byte a [ render_screen_render#15 render_screen_render#68 ] +reg byte y [ next_piece_idx#12 next_piece_idx#84 next_piece_idx#85 ] +zp ZP_BYTE:9 [ render_next::l#7 render_next::l#1 render_screen_render#33 render_screen_render#69 render_playfield::l#2 render_playfield::l#1 play_movement::return#2 play_movement::render#1 play_movement::return#0 play_movement::render#2 play_remove_lines::removed#11 play_remove_lines::removed#7 play_remove_lines::removed#1 play_lock_current::i#2 play_lock_current::i#3 play_lock_current::i#7 play_lock_current::i#9 keyboard_event_pressed::keycode#5 keyboard_event_scan::row#2 keyboard_event_scan::row#1 ] +reg byte x [ render_next::c#2 render_next::c#1 ] +reg byte y [ current_ypos#12 current_ypos#108 current_ypos#109 ] +zp ZP_BYTE:10 [ current_xpos#58 current_xpos#132 current_xpos#133 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 play_remove_lines::x#2 play_remove_lines::x#1 play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 keyboard_event_scan::keycode#15 render_next::next_piece_char#0 keyboard_event_pressed::row_bits#0 ] +reg byte x [ current_piece_char#67 current_piece_char#110 current_piece_char#111 ] zp ZP_BYTE:11 [ render_moving::ypos2#2 render_moving::ypos2#0 render_moving::ypos2#1 render_playfield::c#2 render_playfield::c#1 play_collision::ypos#5 play_collision::ypos#0 play_collision::ypos#1 play_collision::ypos#2 play_collision::ypos#3 play_collision::ypos#4 play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 play_remove_lines::full#4 play_remove_lines::full#2 play_lock_current::i#1 keyboard_event_scan::row_scan#0 ] zp ZP_BYTE:12 [ render_moving::l#4 render_moving::l#1 play_collision::xpos#6 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 play_collision::xpos#4 play_remove_lines::c#0 ] zp ZP_BYTE:13 [ render_moving::i#4 render_moving::i#3 render_moving::i#8 render_moving::i#2 render_moving::i#1 play_collision::l#6 play_collision::l#1 ] zp ZP_BYTE:14 [ render_moving::xpos#2 render_moving::xpos#0 render_moving::xpos#1 play_collision::i#2 play_collision::i#3 play_collision::i#11 play_collision::i#13 ] zp ZP_BYTE:15 [ render_moving::c#2 render_moving::c#1 play_collision::col#2 play_collision::col#9 play_collision::col#1 ] -reg byte x [ render_screen_render#21 render_screen_render#65 ] +reg byte x [ render_screen_render#22 render_screen_render#70 ] reg byte a [ play_move_rotate::return#2 ] reg byte x [ play_collision::orientation#5 play_collision::orientation#0 play_collision::orientation#1 play_collision::orientation#2 play_collision::orientation#3 ] reg byte x [ play_collision::c#2 play_collision::c#1 ] reg byte a [ play_collision::return#15 ] reg byte a [ play_move_leftright::return#2 ] 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:16 [ current_ypos#36 current_ypos#25 current_ypos#17 current_ypos#22 current_ypos#2 play_lock_current::ypos2#2 play_lock_current::ypos2#0 play_lock_current::ypos2#1 ] +zp ZP_BYTE:16 [ current_ypos#38 current_ypos#10 current_ypos#18 current_ypos#5 current_ypos#2 play_lock_current::ypos2#2 play_lock_current::ypos2#0 play_lock_current::ypos2#1 ] zp ZP_WORD:17 [ lines_bcd#27 lines_bcd#17 lines_bcd#19 lines_bcd#15 lines_bcd#30 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#27 score_bcd#16 score_bcd#18 score_bcd#14 score_bcd#30 ] zp ZP_BYTE:23 [ level#31 level#18 level#10 level#16 level#20 ] zp ZP_BYTE:24 [ current_movedown_slow#38 current_movedown_slow#23 current_movedown_slow#14 current_movedown_slow#21 current_movedown_slow#1 current_movedown_slow#69 current_movedown_slow#10 ] zp ZP_BYTE:25 [ level_bcd#32 level_bcd#19 level_bcd#11 level_bcd#17 level_bcd#64 level_bcd#21 level_bcd#8 ] -zp ZP_WORD:26 [ current_piece#27 current_piece#95 current_piece#20 current_piece#14 current_piece#88 render_screen_original::cols#6 render_screen_original::cols#5 render_screen_original::cols#4 render_screen_original::cols#7 render_screen_original::cols#3 render_screen_original::cols#1 render_screen_original::cols#2 ] -zp ZP_BYTE:28 [ current_piece_char#27 current_piece_char#19 current_piece_char#14 current_piece_char#16 ] -zp ZP_BYTE:29 [ current_orientation#36 current_orientation#12 current_orientation#16 current_orientation#19 current_orientation#24 current_orientation#7 ] -zp ZP_WORD:30 [ current_piece_gfx#33 current_piece_gfx#103 current_piece_gfx#16 current_piece_gfx#21 current_piece_gfx#18 current_piece_gfx#19 current_piece_gfx#6 ] -zp ZP_BYTE:32 [ current_xpos#41 current_xpos#113 current_xpos#17 current_xpos#28 current_xpos#20 current_xpos#24 current_xpos#7 current_xpos#5 ] +zp ZP_WORD:26 [ current_piece#29 current_piece#103 current_piece#10 current_piece#15 current_piece#96 render_screen_original::cols#6 render_screen_original::cols#5 render_screen_original::cols#4 render_screen_original::cols#7 render_screen_original::cols#3 render_screen_original::cols#1 render_screen_original::cols#2 ] +zp ZP_BYTE:28 [ current_piece_char#29 current_piece_char#21 current_piece_char#15 current_piece_char#4 ] +zp ZP_BYTE:29 [ current_orientation#38 current_orientation#13 current_orientation#17 current_orientation#20 current_orientation#25 current_orientation#7 ] +zp ZP_WORD:30 [ current_piece_gfx#35 current_piece_gfx#111 current_piece_gfx#17 current_piece_gfx#7 current_piece_gfx#19 current_piece_gfx#20 current_piece_gfx#6 ] +zp ZP_BYTE:32 [ current_xpos#43 current_xpos#121 current_xpos#18 current_xpos#102 current_xpos#21 current_xpos#25 current_xpos#7 current_xpos#5 ] reg byte x [ play_move_down::return#3 ] -zp ZP_BYTE:33 [ game_over#70 game_over#26 game_over#19 game_over#14 game_over#15 ] -reg byte x [ play_spawn_current::piece_idx#2 play_spawn_current::piece_idx#1 ] +zp ZP_BYTE:33 [ next_piece_idx#17 next_piece_idx#31 next_piece_idx#10 next_piece_idx#16 play_spawn_current::piece_idx#2 play_spawn_current::piece_idx#1 ] +zp ZP_BYTE:34 [ game_over#65 game_over#28 game_over#10 game_over#15 game_over#52 ] reg byte x [ play_increase_level::b#2 play_increase_level::b#1 ] 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 ] @@ -1167,27 +1221,29 @@ reg byte x [ play_lock_current::c#2 play_lock_current::c#1 ] reg byte x [ 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:34 [ keyboard_events_size#10 keyboard_events_size#29 keyboard_events_size#19 keyboard_events_size#16 keyboard_events_size#13 keyboard_events_size#4 keyboard_events_size#30 keyboard_events_size#2 keyboard_events_size#1 ] +zp ZP_BYTE:35 [ 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 [ play_init::b#2 play_init::b#1 ] reg byte x [ sprites_init::s#2 sprites_init::s#1 ] reg byte x [ render_init::i#2 render_init::i#1 ] reg byte x [ render_screen_original::x#6 render_screen_original::x#5 render_screen_original::x#4 render_screen_original::x#1 render_screen_original::x#2 render_screen_original::x#3 ] -zp ZP_BYTE:35 [ irq_raster_next#4 irq_raster_next#3 irq_raster_next#1 irq_raster_next#2 irq_raster_next#0 ] -zp ZP_BYTE:36 [ render_screen_showing#0 render_screen_showing#1 ] -zp ZP_BYTE:37 [ irq_sprite_ypos#0 irq_sprite_ypos#3 irq_sprite_ypos#2 irq_sprite_ypos#1 ] -zp ZP_BYTE:38 [ irq_sprite_ptr#0 irq_sprite_ptr#3 irq_sprite_ptr#2 irq_sprite_ptr#1 ] -zp ZP_BYTE:39 [ irq_cnt#0 irq_cnt#1 irq_cnt#2 ] +zp ZP_BYTE:36 [ irq_raster_next#4 irq_raster_next#3 irq_raster_next#1 irq_raster_next#2 irq_raster_next#0 ] +zp ZP_BYTE:37 [ render_screen_showing#0 render_screen_showing#1 ] +zp ZP_BYTE:38 [ irq_sprite_ypos#0 irq_sprite_ypos#3 irq_sprite_ypos#2 irq_sprite_ypos#1 ] +zp ZP_BYTE:39 [ irq_sprite_ptr#0 irq_sprite_ptr#3 irq_sprite_ptr#2 irq_sprite_ptr#1 ] +zp ZP_BYTE:40 [ irq_cnt#0 irq_cnt#1 irq_cnt#2 ] reg byte x [ keyboard_event_get::return#3 ] reg byte x [ main::key_event#0 ] -zp ZP_BYTE:40 [ play_movement::key_event#0 ] +zp ZP_BYTE:41 [ play_movement::key_event#0 ] reg byte a [ play_movement::return#3 ] reg byte a [ main::render#1 ] 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 x [ render_next::$6 ] +reg byte a [ render_next::cell#0 ] reg byte a [ render_moving::$2 ] reg byte a [ render_moving::current_cell#0 ] reg byte a [ render_playfield::$2 ] @@ -1205,7 +1261,7 @@ reg byte a [ play_move_rotate::$2 ] reg byte a [ play_collision::return#14 ] reg byte a [ play_move_rotate::$6 ] reg byte a [ play_move_rotate::$4 ] -zp ZP_BYTE:41 [ play_collision::i#1 ] +zp ZP_BYTE:42 [ play_collision::i#1 ] reg byte a [ play_collision::$7 ] reg byte a [ play_collision::return#13 ] reg byte a [ play_move_leftright::$4 ] @@ -1218,14 +1274,15 @@ 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 x [ play_update_score::removed#0 ] +reg byte x [ play_spawn_current::current_piece_idx#0 ] reg byte a [ play_collision::return#10 ] -reg byte a [ play_spawn_current::$5 ] +reg byte a [ play_spawn_current::$2 ] reg byte a [ sid_rnd::return#2 ] -reg byte a [ play_spawn_current::$1 ] +reg byte a [ play_spawn_current::$6 ] reg byte a [ sid_rnd::return#0 ] reg byte a [ play_update_score::$2 ] reg byte a [ play_update_score::$4 ] -zp ZP_DWORD:42 [ play_update_score::add_bcd#0 ] +zp ZP_DWORD:43 [ play_update_score::add_bcd#0 ] reg byte a [ play_update_score::$5 ] reg byte a [ play_update_score::lines_after#0 ] reg byte a [ play_increase_level::$1 ] @@ -1256,7 +1313,7 @@ reg byte a [ render_init::$13 ] reg byte a [ render_init::$14 ] reg byte a [ sprites_irq::ypos#0 ] reg byte x [ sprites_irq::$0 ] -zp ZP_BYTE:46 [ sprites_irq::raster_sprite_gfx_modify#0 ] +zp ZP_BYTE:47 [ sprites_irq::raster_sprite_gfx_modify#0 ] reg byte x [ sprites_irq::ptr#0 ] reg byte a [ sprites_irq::ptr#3 ] reg byte a [ sprites_irq::ptr#4 ]