1
0
mirror of https://gitlab.com/camelot/kickc.git synced 2024-10-10 20:23:47 +00:00

Minor refactoring.

This commit is contained in:
jespergravgaard 2018-12-06 17:24:46 +01:00
parent 7c74fd93d0
commit 468def2d6a
4 changed files with 4852 additions and 4762 deletions

View File

@ -45,31 +45,32 @@
.label current_piece_15 = 5
.label current_xpos_63 = 4
.label current_piece_gfx_63 = 5
.label current_piece_color_65 = 7
.label current_xpos_94 = 4
.label current_piece_gfx_85 = 5
.label current_piece_color_66 = 7
.label current_xpos_95 = 4
.label current_piece_gfx_86 = 5
.label current_piece_color_73 = 7
.label current_piece_gfx_87 = 5
.label current_piece_color_74 = 7
.label current_piece_70 = 5
.label current_piece_color_75 = 7
.label current_piece_71 = 5
.label current_piece_72 = 5
.label current_piece_73 = 5
.label current_piece_74 = 5
jsr main
main: {
.label key_event = $14
.label render = $15
jsr sid_rnd_init
sei
jsr init
jsr render_init
jsr tables_init
jsr spawn_current
jsr render_playfield
lda current_piece_gfx
sta current_piece_gfx_85
sta current_piece_gfx_86
lda current_piece_gfx+1
sta current_piece_gfx_85+1
sta current_piece_gfx_86+1
lda current_piece_color
sta current_piece_color_73
sta current_piece_color_74
lda #3
sta current_xpos_63
ldx #0
@ -115,19 +116,17 @@ main: {
adc render
cmp #0
beq b10
inc BORDERCOL
jsr render_playfield
ldx current_ypos
lda current_xpos
sta current_xpos_94
sta current_xpos_95
lda current_piece_gfx
sta current_piece_gfx_86
sta current_piece_gfx_87
lda current_piece_gfx+1
sta current_piece_gfx_86+1
sta current_piece_gfx_87+1
lda current_piece_color
sta current_piece_color_74
sta current_piece_color_75
jsr render_current
dec BORDERCOL
b10:
dec BORDERCOL
jmp b4
@ -165,7 +164,7 @@ render_current: {
lda xpos
cmp #PLAYFIELD_COLS
bcs b4
lda current_piece_color_65
lda current_piece_color_66
ldy xpos
sta (screen_line),y
b4:
@ -241,11 +240,11 @@ play_move_rotate: {
ldy current_ypos
ldx orientation
lda current_piece
sta current_piece_73
sta current_piece_74
lda current_piece+1
sta current_piece_73+1
sta current_piece_74+1
jsr collision
cmp #0
cmp #COLLISION_NONE
bne b3
lda orientation
sta current_orientation
@ -368,9 +367,9 @@ play_move_leftright: {
ldy current_ypos
ldx current_orientation
lda current_piece
sta current_piece_72
sta current_piece_73
lda current_piece+1
sta current_piece_72+1
sta current_piece_73+1
jsr collision
cmp #COLLISION_NONE
bne b3
@ -389,9 +388,9 @@ play_move_leftright: {
ldy current_ypos
ldx current_orientation
lda current_piece
sta current_piece_71
sta current_piece_72
lda current_piece+1
sta current_piece_71+1
sta current_piece_72+1
jsr collision
cmp #COLLISION_NONE
bne b3
@ -430,9 +429,9 @@ play_move_down: {
sta collision.xpos
ldx current_orientation
lda current_piece
sta current_piece_70
sta current_piece_71
lda current_piece+1
sta current_piece_70+1
sta current_piece_71+1
jsr collision
cmp #COLLISION_NONE
beq b6
@ -464,12 +463,10 @@ play_move_down: {
}
spawn_current: {
.label _3 = 2
inc BORDERCOL
ldx #7
b1:
cpx #7
beq b2
dec BORDERCOL
txa
asl
sta _3
@ -766,11 +763,47 @@ keyboard_matrix_read: {
eor #$ff
rts
}
init: {
.label _14 = $c
.label li = 5
tables_init: {
.label pli = 5
.label idx = 2
lda #0
sta idx
lda #<playfield
sta pli
lda #>playfield
sta pli+1
ldx #0
b1:
txa
asl
tay
lda pli
sta playfield_lines,y
lda pli+1
sta playfield_lines+1,y
lda idx
sta playfield_lines_idx,x
lda pli
clc
adc #PLAYFIELD_COLS
sta pli
bcc !+
inc pli+1
!:
lda #PLAYFIELD_COLS
clc
adc idx
sta idx
inx
cpx #PLAYFIELD_LINES-1+1
bne b1
lda #PLAYFIELD_COLS*PLAYFIELD_LINES
sta playfield_lines_idx+PLAYFIELD_LINES
rts
}
render_init: {
.label _10 = $c
.label li = 5
.label line = 5
.label l = 2
ldx #$a0
@ -809,60 +842,27 @@ init: {
cpx #PLAYFIELD_LINES+2+1
bne b1
lda #0
sta idx
lda #<playfield
sta pli
lda #>playfield
sta pli+1
ldx #0
b2:
txa
asl
tay
lda pli
sta playfield_lines,y
lda pli+1
sta playfield_lines+1,y
lda idx
sta playfield_lines_idx,x
lda pli
clc
adc #PLAYFIELD_COLS
sta pli
bcc !+
inc pli+1
!:
lda #PLAYFIELD_COLS
clc
adc idx
sta idx
inx
cpx #PLAYFIELD_LINES-1+1
bne b2
lda #PLAYFIELD_COLS*PLAYFIELD_LINES
sta playfield_lines_idx+PLAYFIELD_LINES
lda #0
sta l
lda #<COLS+$e
sta line
lda #>COLS+$e
sta line+1
b3:
b2:
ldx #0
b4:
b3:
txa
clc
adc line
sta _14
sta _10
lda #0
adc line+1
sta _14+1
sta _10+1
lda #DARK_GREY
ldy #0
sta (_14),y
sta (_10),y
inx
cpx #PLAYFIELD_COLS+1+1
bne b4
bne b3
lda line
clc
adc #$28
@ -873,7 +873,7 @@ init: {
inc l
lda l
cmp #PLAYFIELD_LINES+1+1
bne b3
bne b2
rts
}
fill: {

View File

@ -1,394 +1,394 @@
@begin: scope:[] from
[0] phi()
to:@26
@26: scope:[] from @begin
to:@27
@27: scope:[] from @begin
[1] phi()
[2] call main
to:@end
@end: scope:[] from @26
@end: scope:[] from @27
[3] phi()
main: scope:[main] from @26
main: scope:[main] from @27
[4] phi()
[5] call sid_rnd_init
to:main::@21
main::@21: scope:[main] from main
asm { sei }
[7] call init
[7] call render_init
to:main::@22
main::@22: scope:[main] from main::@21
[8] phi()
[9] call spawn_current
[9] call tables_init
to:main::@23
main::@23: scope:[main] from main::@22
[10] phi()
[11] call render_playfield
[11] call spawn_current
to:main::@24
main::@24: scope:[main] from main::@23
[12] (byte*~) current_piece_gfx#85 ← (byte*) current_piece_gfx#10
[13] (byte~) current_piece_color#73 ← (byte) current_piece_color#15
[14] call render_current
[15] (byte*~) current_piece#69 ← (byte*)*((const word[]) PIECES#0 + (byte~) spawn_current::$3)
[12] phi()
[13] call render_playfield
to:main::@25
main::@25: scope:[main] from main::@24
[14] (byte*~) current_piece_gfx#86 ← (byte*) current_piece_gfx#10
[15] (byte~) current_piece_color#74 ← (byte) current_piece_color#15
[16] call render_current
[17] (byte*~) current_piece#70 ← (byte*)*((const word[]) PIECES#0 + (byte~) spawn_current::$3)
to:main::@1
main::@1: scope:[main] from main::@10 main::@24
[16] (byte) current_movedown_counter#15 ← phi( main::@10/(byte) current_movedown_counter#12 main::@24/(byte/signed byte/word/signed word/dword/signed dword) 0 )
[16] (byte) keyboard_events_size#19 ← phi( main::@10/(byte) keyboard_events_size#16 main::@24/(byte/signed byte/word/signed word/dword/signed dword) 0 )
[16] (byte) current_piece_color#11 ← phi( main::@10/(byte) current_piece_color#13 main::@24/(byte) current_piece_color#15 )
[16] (byte) current_ypos#12 ← phi( main::@10/(byte) current_ypos#16 main::@24/(byte/signed byte/word/signed word/dword/signed dword) 0 )
[16] (byte) current_xpos#16 ← phi( main::@10/(byte) current_xpos#23 main::@24/(byte/signed byte/word/signed word/dword/signed dword) 3 )
[16] (byte*) current_piece_gfx#15 ← phi( main::@10/(byte*) current_piece_gfx#18 main::@24/(byte*) current_piece_gfx#10 )
[16] (byte) current_orientation#15 ← phi( main::@10/(byte) current_orientation#23 main::@24/(byte/signed byte/word/signed word/dword/signed dword) 0 )
[16] (byte*) current_piece#11 ← phi( main::@10/(byte*) current_piece#13 main::@24/(byte*~) current_piece#69 )
main::@1: scope:[main] from main::@10 main::@25
[18] (byte) current_movedown_counter#15 ← phi( main::@10/(byte) current_movedown_counter#12 main::@25/(byte/signed byte/word/signed word/dword/signed dword) 0 )
[18] (byte) keyboard_events_size#19 ← phi( main::@10/(byte) keyboard_events_size#16 main::@25/(byte/signed byte/word/signed word/dword/signed dword) 0 )
[18] (byte) current_piece_color#11 ← phi( main::@10/(byte) current_piece_color#13 main::@25/(byte) current_piece_color#15 )
[18] (byte) current_ypos#12 ← phi( main::@10/(byte) current_ypos#16 main::@25/(byte/signed byte/word/signed word/dword/signed dword) 0 )
[18] (byte) current_xpos#16 ← phi( main::@10/(byte) current_xpos#23 main::@25/(byte/signed byte/word/signed word/dword/signed dword) 3 )
[18] (byte*) current_piece_gfx#15 ← phi( main::@10/(byte*) current_piece_gfx#18 main::@25/(byte*) current_piece_gfx#10 )
[18] (byte) current_orientation#15 ← phi( main::@10/(byte) current_orientation#23 main::@25/(byte/signed byte/word/signed word/dword/signed dword) 0 )
[18] (byte*) current_piece#11 ← phi( main::@10/(byte*) current_piece#13 main::@25/(byte*~) current_piece#70 )
to:main::@4
main::@4: scope:[main] from main::@1 main::@4
[17] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4
[19] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4
to:main::@7
main::@7: scope:[main] from main::@4 main::@7
[18] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 254) goto main::@7
[20] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 254) goto main::@7
to:main::@9
main::@9: scope:[main] from main::@7
[19] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0)
[20] call keyboard_event_scan
to:main::@26
main::@26: scope:[main] from main::@9
[21] phi()
[22] call keyboard_event_get
[23] (byte) keyboard_event_get::return#3 ← (byte) keyboard_event_get::return#2
[21] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0)
[22] call keyboard_event_scan
to:main::@27
main::@27: scope:[main] from main::@26
[24] (byte) main::key_event#0 ← (byte) keyboard_event_get::return#3
[25] (byte) play_move_down::key_event#0 ← (byte) main::key_event#0
[26] call play_move_down
[27] (byte) play_move_down::return#0 ← (byte) play_move_down::return#3
main::@27: scope:[main] from main::@9
[23] phi()
[24] call keyboard_event_get
[25] (byte) keyboard_event_get::return#3 ← (byte) keyboard_event_get::return#2
to:main::@28
main::@28: scope:[main] from main::@27
[28] (byte~) main::$9 ← (byte) play_move_down::return#0
[29] (byte) main::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) main::$9
[30] (byte) play_move_leftright::key_event#0 ← (byte) main::key_event#0
[31] call play_move_leftright
[32] (byte) play_move_leftright::return#0 ← (byte) play_move_leftright::return#2
[26] (byte) main::key_event#0 ← (byte) keyboard_event_get::return#3
[27] (byte) play_move_down::key_event#0 ← (byte) main::key_event#0
[28] call play_move_down
[29] (byte) play_move_down::return#0 ← (byte) play_move_down::return#3
to:main::@29
main::@29: scope:[main] from main::@28
[33] (byte~) main::$10 ← (byte) play_move_leftright::return#0
[34] (byte) main::render#2 ← (byte) main::render#1 + (byte~) main::$10
[35] (byte) play_move_rotate::key_event#0 ← (byte) main::key_event#0
[36] call play_move_rotate
[37] (byte) play_move_rotate::return#0 ← (byte) play_move_rotate::return#2
[30] (byte~) main::$10 ← (byte) play_move_down::return#0
[31] (byte) main::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) main::$10
[32] (byte) play_move_leftright::key_event#0 ← (byte) main::key_event#0
[33] call play_move_leftright
[34] (byte) play_move_leftright::return#0 ← (byte) play_move_leftright::return#2
to:main::@30
main::@30: scope:[main] from main::@29
[38] (byte~) main::$11 ← (byte) play_move_rotate::return#0
[39] (byte) main::render#3 ← (byte) main::render#2 + (byte~) main::$11
[40] if((byte) main::render#3==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@10
to:main::@19
main::@19: scope:[main] from main::@30
[41] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0)
[42] call render_playfield
[35] (byte~) main::$11 ← (byte) play_move_leftright::return#0
[36] (byte) main::render#2 ← (byte) main::render#1 + (byte~) main::$11
[37] (byte) play_move_rotate::key_event#0 ← (byte) main::key_event#0
[38] call play_move_rotate
[39] (byte) play_move_rotate::return#0 ← (byte) play_move_rotate::return#2
to:main::@31
main::@31: scope:[main] from main::@19
[43] (byte~) current_ypos#69 ← (byte) current_ypos#16
[44] (byte~) current_xpos#94 ← (byte) current_xpos#23
[45] (byte*~) current_piece_gfx#86 ← (byte*) current_piece_gfx#18
[46] (byte~) current_piece_color#74 ← (byte) current_piece_color#13
[47] call render_current
main::@31: scope:[main] from main::@30
[40] (byte~) main::$12 ← (byte) play_move_rotate::return#0
[41] (byte) main::render#3 ← (byte) main::render#2 + (byte~) main::$12
[42] if((byte) main::render#3==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@10
to:main::@19
main::@19: scope:[main] from main::@31
[43] phi()
[44] call render_playfield
to:main::@32
main::@32: scope:[main] from main::@31
[48] *((const byte*) BORDERCOL#0) ← -- *((const byte*) BORDERCOL#0)
main::@32: scope:[main] from main::@19
[45] (byte~) current_ypos#70 ← (byte) current_ypos#16
[46] (byte~) current_xpos#95 ← (byte) current_xpos#23
[47] (byte*~) current_piece_gfx#87 ← (byte*) current_piece_gfx#18
[48] (byte~) current_piece_color#75 ← (byte) current_piece_color#13
[49] call render_current
to:main::@10
main::@10: scope:[main] from main::@30 main::@32
[49] *((const byte*) BORDERCOL#0) ← -- *((const byte*) BORDERCOL#0)
main::@10: scope:[main] from main::@31 main::@32
[50] *((const byte*) BORDERCOL#0) ← -- *((const byte*) BORDERCOL#0)
to:main::@1
render_current: scope:[render_current] from main::@24 main::@31
[50] (byte) current_piece_color#65 ← phi( main::@24/(byte~) current_piece_color#73 main::@31/(byte~) current_piece_color#74 )
[50] (byte*) current_piece_gfx#63 ← phi( main::@24/(byte*~) current_piece_gfx#85 main::@31/(byte*~) current_piece_gfx#86 )
[50] (byte) current_xpos#63 ← phi( main::@24/(byte/signed byte/word/signed word/dword/signed dword) 3 main::@31/(byte~) current_xpos#94 )
[50] (byte) current_ypos#22 ← phi( main::@24/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@31/(byte~) current_ypos#69 )
[51] (byte) render_current::ypos2#0 ← (byte) current_ypos#22 << (byte/signed byte/word/signed word/dword/signed dword) 1
render_current: scope:[render_current] from main::@25 main::@32
[51] (byte) current_piece_color#66 ← phi( main::@25/(byte~) current_piece_color#74 main::@32/(byte~) current_piece_color#75 )
[51] (byte*) current_piece_gfx#63 ← phi( main::@25/(byte*~) current_piece_gfx#86 main::@32/(byte*~) current_piece_gfx#87 )
[51] (byte) current_xpos#63 ← phi( main::@25/(byte/signed byte/word/signed word/dword/signed dword) 3 main::@32/(byte~) current_xpos#95 )
[51] (byte) current_ypos#22 ← phi( main::@25/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@32/(byte~) current_ypos#70 )
[52] (byte) render_current::ypos2#0 ← (byte) current_ypos#22 << (byte/signed byte/word/signed word/dword/signed dword) 1
to:render_current::@1
render_current::@1: scope:[render_current] from render_current render_current::@2
[52] (byte) render_current::i#4 ← phi( render_current/(byte/signed byte/word/signed word/dword/signed dword) 0 render_current::@2/(byte) render_current::i#8 )
[52] (byte) render_current::l#3 ← phi( render_current/(byte/signed byte/word/signed word/dword/signed dword) 0 render_current::@2/(byte) render_current::l#1 )
[52] (byte) render_current::ypos2#2 ← phi( render_current/(byte) render_current::ypos2#0 render_current::@2/(byte) render_current::ypos2#1 )
[53] if((byte) render_current::ypos2#2>=(byte/signed byte/word/signed word/dword/signed dword) 2*(const byte) PLAYFIELD_LINES#0) goto render_current::@2
[53] (byte) render_current::i#4 ← phi( render_current/(byte/signed byte/word/signed word/dword/signed dword) 0 render_current::@2/(byte) render_current::i#8 )
[53] (byte) render_current::l#3 ← phi( render_current/(byte/signed byte/word/signed word/dword/signed dword) 0 render_current::@2/(byte) render_current::l#1 )
[53] (byte) render_current::ypos2#2 ← phi( render_current/(byte) render_current::ypos2#0 render_current::@2/(byte) render_current::ypos2#1 )
[54] if((byte) render_current::ypos2#2>=(byte/signed byte/word/signed word/dword/signed dword) 2*(const byte) PLAYFIELD_LINES#0) goto render_current::@2
to:render_current::@6
render_current::@6: scope:[render_current] from render_current::@1
[54] (byte*) render_current::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte) render_current::ypos2#2)
[55] (byte) render_current::xpos#0 ← (byte) current_xpos#63
[55] (byte*) render_current::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte) render_current::ypos2#2)
[56] (byte) render_current::xpos#0 ← (byte) current_xpos#63
to:render_current::@3
render_current::@3: scope:[render_current] from render_current::@4 render_current::@6
[56] (byte) render_current::c#2 ← phi( render_current::@4/(byte) render_current::c#1 render_current::@6/(byte/signed byte/word/signed word/dword/signed dword) 0 )
[56] (byte) render_current::xpos#2 ← phi( render_current::@4/(byte) render_current::xpos#1 render_current::@6/(byte) render_current::xpos#0 )
[56] (byte) render_current::i#2 ← phi( render_current::@4/(byte) render_current::i#1 render_current::@6/(byte) render_current::i#4 )
[57] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#63 + (byte) render_current::i#2)
[58] (byte) render_current::i#1 ← ++ (byte) render_current::i#2
[59] if((byte) render_current::current_cell#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_current::@4
[57] (byte) render_current::c#2 ← phi( render_current::@4/(byte) render_current::c#1 render_current::@6/(byte/signed byte/word/signed word/dword/signed dword) 0 )
[57] (byte) render_current::xpos#2 ← phi( render_current::@4/(byte) render_current::xpos#1 render_current::@6/(byte) render_current::xpos#0 )
[57] (byte) render_current::i#2 ← phi( render_current::@4/(byte) render_current::i#1 render_current::@6/(byte) render_current::i#4 )
[58] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#63 + (byte) render_current::i#2)
[59] (byte) render_current::i#1 ← ++ (byte) render_current::i#2
[60] if((byte) render_current::current_cell#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_current::@4
to:render_current::@7
render_current::@7: scope:[render_current] from render_current::@3
[60] if((byte) render_current::xpos#2>=(const byte) PLAYFIELD_COLS#0) goto render_current::@4
[61] if((byte) render_current::xpos#2>=(const byte) PLAYFIELD_COLS#0) goto render_current::@4
to:render_current::@8
render_current::@8: scope:[render_current] from render_current::@7
[61] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_color#65
[62] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_color#66
to:render_current::@4
render_current::@4: scope:[render_current] from render_current::@3 render_current::@7 render_current::@8
[62] (byte) render_current::xpos#1 ← ++ (byte) render_current::xpos#2
[63] (byte) render_current::c#1 ← ++ (byte) render_current::c#2
[64] if((byte) render_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@3
[63] (byte) render_current::xpos#1 ← ++ (byte) render_current::xpos#2
[64] (byte) render_current::c#1 ← ++ (byte) render_current::c#2
[65] if((byte) render_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@3
to:render_current::@2
render_current::@2: scope:[render_current] from render_current::@1 render_current::@4
[65] (byte) render_current::i#8 ← phi( render_current::@1/(byte) render_current::i#4 render_current::@4/(byte) render_current::i#1 )
[66] (byte) render_current::ypos2#1 ← (byte) render_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2
[67] (byte) render_current::l#1 ← ++ (byte) render_current::l#3
[68] if((byte) render_current::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@1
[66] (byte) render_current::i#8 ← phi( render_current::@1/(byte) render_current::i#4 render_current::@4/(byte) render_current::i#1 )
[67] (byte) render_current::ypos2#1 ← (byte) render_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2
[68] (byte) render_current::l#1 ← ++ (byte) render_current::l#3
[69] if((byte) render_current::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@1
to:render_current::@return
render_current::@return: scope:[render_current] from render_current::@2
[69] return
[70] return
to:@return
render_playfield: scope:[render_playfield] from main::@19 main::@23
[70] phi()
render_playfield: scope:[render_playfield] from main::@19 main::@24
[71] phi()
to:render_playfield::@1
render_playfield::@1: scope:[render_playfield] from render_playfield render_playfield::@3
[71] (byte) render_playfield::i#3 ← phi( render_playfield/(byte/signed byte/word/signed word/dword/signed dword) 0 render_playfield::@3/(byte) render_playfield::i#1 )
[71] (byte) render_playfield::l#2 ← phi( render_playfield/(byte/signed byte/word/signed word/dword/signed dword) 0 render_playfield::@3/(byte) render_playfield::l#1 )
[72] (byte~) render_playfield::$1 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1
[73] (byte*) render_playfield::line#0 ← *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte~) render_playfield::$1)
[72] (byte) render_playfield::i#3 ← phi( render_playfield/(byte/signed byte/word/signed word/dword/signed dword) 0 render_playfield::@3/(byte) render_playfield::i#1 )
[72] (byte) render_playfield::l#2 ← phi( render_playfield/(byte/signed byte/word/signed word/dword/signed dword) 0 render_playfield::@3/(byte) render_playfield::l#1 )
[73] (byte~) render_playfield::$1 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1
[74] (byte*) render_playfield::line#0 ← *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte~) render_playfield::$1)
to:render_playfield::@2
render_playfield::@2: scope:[render_playfield] from render_playfield::@1 render_playfield::@2
[74] (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 )
[74] (byte*) render_playfield::line#2 ← phi( render_playfield::@1/(byte*) render_playfield::line#0 render_playfield::@2/(byte*) render_playfield::line#1 )
[74] (byte) render_playfield::i#2 ← phi( render_playfield::@1/(byte) render_playfield::i#3 render_playfield::@2/(byte) render_playfield::i#1 )
[75] *((byte*) render_playfield::line#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2)
[76] (byte*) render_playfield::line#1 ← ++ (byte*) render_playfield::line#2
[77] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2
[78] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2
[79] 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
[75] (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 )
[75] (byte*) render_playfield::line#2 ← phi( render_playfield::@1/(byte*) render_playfield::line#0 render_playfield::@2/(byte*) render_playfield::line#1 )
[75] (byte) render_playfield::i#2 ← phi( render_playfield::@1/(byte) render_playfield::i#3 render_playfield::@2/(byte) render_playfield::i#1 )
[76] *((byte*) render_playfield::line#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2)
[77] (byte*) render_playfield::line#1 ← ++ (byte*) render_playfield::line#2
[78] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2
[79] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2
[80] 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
[80] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2
[81] 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
[81] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2
[82] 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
[82] return
[83] return
to:@return
play_move_rotate: scope:[play_move_rotate] from main::@29
[83] if((byte) play_move_rotate::key_event#0==(const byte) KEY_Z#0) goto play_move_rotate::@1
play_move_rotate: scope:[play_move_rotate] from main::@30
[84] 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
[84] if((byte) play_move_rotate::key_event#0==(const byte) KEY_X#0) goto play_move_rotate::@2
[85] 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
[85] (byte*) current_piece_gfx#18 ← phi( play_move_rotate::@11/(byte*) current_piece_gfx#8 play_move_rotate::@14/(byte*) current_piece_gfx#17 play_move_rotate::@6/(byte*) current_piece_gfx#17 )
[85] (byte) current_orientation#23 ← phi( play_move_rotate::@11/(byte) current_orientation#8 play_move_rotate::@14/(byte) current_orientation#18 play_move_rotate::@6/(byte) current_orientation#18 )
[85] (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 )
[86] return
[86] (byte*) current_piece_gfx#18 ← phi( play_move_rotate::@11/(byte*) current_piece_gfx#8 play_move_rotate::@14/(byte*) current_piece_gfx#17 play_move_rotate::@6/(byte*) current_piece_gfx#17 )
[86] (byte) current_orientation#23 ← phi( play_move_rotate::@11/(byte) current_orientation#8 play_move_rotate::@14/(byte) current_orientation#18 play_move_rotate::@6/(byte) current_orientation#18 )
[86] (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 )
[87] return
to:@return
play_move_rotate::@2: scope:[play_move_rotate] from play_move_rotate::@6
[87] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#18 + (byte/signed byte/word/signed word/dword/signed dword) 16
[88] (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
[88] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_orientation#18 + (byte/signed byte/word/signed word/dword/signed dword) 16
[89] (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
[89] (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 )
[90] (byte) collision::xpos#3 ← (byte) current_xpos#23
[91] (byte) collision::ypos#3 ← (byte) current_ypos#16
[92] (byte) collision::orientation#3 ← (byte) play_move_rotate::orientation#3
[93] (byte*~) current_piece#73 ← (byte*) current_piece#13
[94] call collision
[95] (byte) collision::return#13 ← (byte) collision::return#14
[90] (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 )
[91] (byte) collision::xpos#3 ← (byte) current_xpos#23
[92] (byte) collision::ypos#3 ← (byte) current_ypos#16
[93] (byte) collision::orientation#3 ← (byte) play_move_rotate::orientation#3
[94] (byte*~) current_piece#74 ← (byte*) current_piece#13
[95] call collision
[96] (byte) collision::return#13 ← (byte) collision::return#14
to:play_move_rotate::@14
play_move_rotate::@14: scope:[play_move_rotate] from play_move_rotate::@4
[96] (byte~) play_move_rotate::$6 ← (byte) collision::return#13
[97] if((byte~) play_move_rotate::$6!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_rotate::@return
[97] (byte~) play_move_rotate::$6 ← (byte) collision::return#13
[98] 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
[98] (byte) current_orientation#8 ← (byte) play_move_rotate::orientation#3
[99] (byte*) current_piece_gfx#8 ← (byte*) current_piece#13 + (byte) current_orientation#8
[99] (byte) current_orientation#8 ← (byte) play_move_rotate::orientation#3
[100] (byte*) current_piece_gfx#8 ← (byte*) current_piece#13 + (byte) current_orientation#8
to:play_move_rotate::@return
play_move_rotate::@1: scope:[play_move_rotate] from play_move_rotate
[100] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#18 - (byte/signed byte/word/signed word/dword/signed dword) 16
[101] (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
[101] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_orientation#18 - (byte/signed byte/word/signed word/dword/signed dword) 16
[102] (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
collision: scope:[collision] from play_move_down::@12 play_move_leftright::@1 play_move_leftright::@7 play_move_rotate::@4
[102] (byte) collision::xpos#5 ← phi( play_move_down::@12/(byte) collision::xpos#0 play_move_leftright::@1/(byte) collision::xpos#1 play_move_leftright::@7/(byte) collision::xpos#2 play_move_rotate::@4/(byte) collision::xpos#3 )
[102] (byte) collision::ypos#4 ← phi( play_move_down::@12/(byte) collision::ypos#0 play_move_leftright::@1/(byte) collision::ypos#1 play_move_leftright::@7/(byte) collision::ypos#2 play_move_rotate::@4/(byte) collision::ypos#3 )
[102] (byte) collision::orientation#4 ← phi( play_move_down::@12/(byte) collision::orientation#0 play_move_leftright::@1/(byte) collision::orientation#1 play_move_leftright::@7/(byte) collision::orientation#2 play_move_rotate::@4/(byte) collision::orientation#3 )
[102] (byte*) current_piece#15 ← phi( play_move_down::@12/(byte*~) current_piece#70 play_move_leftright::@1/(byte*~) current_piece#71 play_move_leftright::@7/(byte*~) current_piece#72 play_move_rotate::@4/(byte*~) current_piece#73 )
[103] (byte*) collision::piece_gfx#0 ← (byte*) current_piece#15 + (byte) collision::orientation#4
[104] (byte) collision::ypos2#0 ← (byte) collision::ypos#4 << (byte/signed byte/word/signed word/dword/signed dword) 1
[103] (byte) collision::xpos#5 ← phi( play_move_down::@12/(byte) collision::xpos#0 play_move_leftright::@1/(byte) collision::xpos#1 play_move_leftright::@7/(byte) collision::xpos#2 play_move_rotate::@4/(byte) collision::xpos#3 )
[103] (byte) collision::ypos#4 ← phi( play_move_down::@12/(byte) collision::ypos#0 play_move_leftright::@1/(byte) collision::ypos#1 play_move_leftright::@7/(byte) collision::ypos#2 play_move_rotate::@4/(byte) collision::ypos#3 )
[103] (byte) collision::orientation#4 ← phi( play_move_down::@12/(byte) collision::orientation#0 play_move_leftright::@1/(byte) collision::orientation#1 play_move_leftright::@7/(byte) collision::orientation#2 play_move_rotate::@4/(byte) collision::orientation#3 )
[103] (byte*) current_piece#15 ← phi( play_move_down::@12/(byte*~) current_piece#71 play_move_leftright::@1/(byte*~) current_piece#72 play_move_leftright::@7/(byte*~) current_piece#73 play_move_rotate::@4/(byte*~) current_piece#74 )
[104] (byte*) collision::piece_gfx#0 ← (byte*) current_piece#15 + (byte) collision::orientation#4
[105] (byte) collision::ypos2#0 ← (byte) collision::ypos#4 << (byte/signed byte/word/signed word/dword/signed dword) 1
to:collision::@1
collision::@1: scope:[collision] from collision collision::@20
[105] (byte) collision::l#6 ← phi( collision/(byte/signed byte/word/signed word/dword/signed dword) 0 collision::@20/(byte) collision::l#1 )
[105] (byte) collision::i#3 ← phi( collision/(byte/signed byte/word/signed word/dword/signed dword) 0 collision::@20/(byte~) collision::i#11 )
[105] (byte) collision::ypos2#2 ← phi( collision/(byte) collision::ypos2#0 collision::@20/(byte) collision::ypos2#1 )
[106] (byte*) collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) collision::ypos2#2)
[107] (byte~) collision::col#9 ← (byte) collision::xpos#5
[106] (byte) collision::l#6 ← phi( collision/(byte/signed byte/word/signed word/dword/signed dword) 0 collision::@20/(byte) collision::l#1 )
[106] (byte) collision::i#3 ← phi( collision/(byte/signed byte/word/signed word/dword/signed dword) 0 collision::@20/(byte~) collision::i#11 )
[106] (byte) collision::ypos2#2 ← phi( collision/(byte) collision::ypos2#0 collision::@20/(byte) collision::ypos2#1 )
[107] (byte*) collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) collision::ypos2#2)
[108] (byte~) collision::col#9 ← (byte) collision::xpos#5
to:collision::@2
collision::@2: scope:[collision] from collision::@1 collision::@21
[108] (byte) collision::c#2 ← phi( collision::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 collision::@21/(byte) collision::c#1 )
[108] (byte) collision::col#2 ← phi( collision::@1/(byte~) collision::col#9 collision::@21/(byte) collision::col#1 )
[108] (byte) collision::i#2 ← phi( collision::@1/(byte) collision::i#3 collision::@21/(byte~) collision::i#13 )
[109] (byte) collision::i#1 ← ++ (byte) collision::i#2
[110] if(*((byte*) collision::piece_gfx#0 + (byte) collision::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto collision::@3
[109] (byte) collision::c#2 ← phi( collision::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 collision::@21/(byte) collision::c#1 )
[109] (byte) collision::col#2 ← phi( collision::@1/(byte~) collision::col#9 collision::@21/(byte) collision::col#1 )
[109] (byte) collision::i#2 ← phi( collision::@1/(byte) collision::i#3 collision::@21/(byte~) collision::i#13 )
[110] (byte) collision::i#1 ← ++ (byte) collision::i#2
[111] if(*((byte*) collision::piece_gfx#0 + (byte) collision::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto collision::@3
to:collision::@8
collision::@8: scope:[collision] from collision::@2
[111] if((byte) collision::ypos2#2<(byte/signed byte/word/signed word/dword/signed dword) 2*(const byte) PLAYFIELD_LINES#0) goto collision::@4
[112] if((byte) collision::ypos2#2<(byte/signed byte/word/signed word/dword/signed dword) 2*(const byte) PLAYFIELD_LINES#0) goto collision::@4
to:collision::@return
collision::@return: scope:[collision] from collision::@17 collision::@4 collision::@5 collision::@6 collision::@8
[112] (byte) collision::return#14 ← phi( collision::@4/(const byte) COLLISION_LEFT#0 collision::@5/(const byte) COLLISION_RIGHT#0 collision::@6/(const byte) COLLISION_PLAYFIELD#0 collision::@17/(const byte) COLLISION_NONE#0 collision::@8/(const byte) COLLISION_BOTTOM#0 )
[113] return
[113] (byte) collision::return#14 ← phi( collision::@4/(const byte) COLLISION_LEFT#0 collision::@5/(const byte) COLLISION_RIGHT#0 collision::@6/(const byte) COLLISION_PLAYFIELD#0 collision::@17/(const byte) COLLISION_NONE#0 collision::@8/(const byte) COLLISION_BOTTOM#0 )
[114] return
to:@return
collision::@4: scope:[collision] from collision::@8
[114] (byte~) collision::$7 ← (byte) collision::col#2 & (byte/word/signed word/dword/signed dword) 128
[115] if((byte~) collision::$7==(byte/signed byte/word/signed word/dword/signed dword) 0) goto collision::@5
[115] (byte~) collision::$7 ← (byte) collision::col#2 & (byte/word/signed word/dword/signed dword) 128
[116] if((byte~) collision::$7==(byte/signed byte/word/signed word/dword/signed dword) 0) goto collision::@5
to:collision::@return
collision::@5: scope:[collision] from collision::@4
[116] if((byte) collision::col#2<(const byte) PLAYFIELD_COLS#0) goto collision::@6
[117] if((byte) collision::col#2<(const byte) PLAYFIELD_COLS#0) goto collision::@6
to:collision::@return
collision::@6: scope:[collision] from collision::@5
[117] if(*((byte*) collision::playfield_line#0 + (byte) collision::col#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto collision::@3
[118] if(*((byte*) collision::playfield_line#0 + (byte) collision::col#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto collision::@3
to:collision::@return
collision::@3: scope:[collision] from collision::@2 collision::@6
[118] (byte) collision::col#1 ← ++ (byte) collision::col#2
[119] (byte) collision::c#1 ← ++ (byte) collision::c#2
[120] if((byte) collision::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto collision::@21
[119] (byte) collision::col#1 ← ++ (byte) collision::col#2
[120] (byte) collision::c#1 ← ++ (byte) collision::c#2
[121] if((byte) collision::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto collision::@21
to:collision::@17
collision::@17: scope:[collision] from collision::@3
[121] (byte) collision::ypos2#1 ← (byte) collision::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2
[122] (byte) collision::l#1 ← ++ (byte) collision::l#6
[123] if((byte) collision::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto collision::@20
[122] (byte) collision::ypos2#1 ← (byte) collision::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2
[123] (byte) collision::l#1 ← ++ (byte) collision::l#6
[124] if((byte) collision::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto collision::@20
to:collision::@return
collision::@20: scope:[collision] from collision::@17
[124] (byte~) collision::i#11 ← (byte) collision::i#1
[125] (byte~) collision::i#11 ← (byte) collision::i#1
to:collision::@1
collision::@21: scope:[collision] from collision::@3
[125] (byte~) collision::i#13 ← (byte) collision::i#1
[126] (byte~) collision::i#13 ← (byte) collision::i#1
to:collision::@2
play_move_leftright: scope:[play_move_leftright] from main::@28
[126] if((byte) play_move_leftright::key_event#0==(const byte) KEY_COMMA#0) goto play_move_leftright::@1
play_move_leftright: scope:[play_move_leftright] from main::@29
[127] 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
[127] if((byte) play_move_leftright::key_event#0!=(const byte) KEY_DOT#0) goto play_move_leftright::@return
[128] 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
[128] (byte) collision::xpos#2 ← (byte) current_xpos#19 + (byte/signed byte/word/signed word/dword/signed dword) 1
[129] (byte) collision::ypos#2 ← (byte) current_ypos#16
[130] (byte) collision::orientation#2 ← (byte) current_orientation#18
[131] (byte*~) current_piece#72 ← (byte*) current_piece#13
[132] call collision
[133] (byte) collision::return#12 ← (byte) collision::return#14
[129] (byte) collision::xpos#2 ← (byte) current_xpos#19 + (byte/signed byte/word/signed word/dword/signed dword) 1
[130] (byte) collision::ypos#2 ← (byte) current_ypos#16
[131] (byte) collision::orientation#2 ← (byte) current_orientation#18
[132] (byte*~) current_piece#73 ← (byte*) current_piece#13
[133] call collision
[134] (byte) collision::return#12 ← (byte) collision::return#14
to:play_move_leftright::@15
play_move_leftright::@15: scope:[play_move_leftright] from play_move_leftright::@7
[134] (byte~) play_move_leftright::$4 ← (byte) collision::return#12
[135] if((byte~) play_move_leftright::$4!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return
[135] (byte~) play_move_leftright::$4 ← (byte) collision::return#12
[136] 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
[136] (byte) current_xpos#7 ← ++ (byte) current_xpos#19
[137] (byte) current_xpos#7 ← ++ (byte) current_xpos#19
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
[137] (byte) current_xpos#23 ← phi( play_move_leftright::@11/(byte) current_xpos#9 play_move_leftright::@15/(byte) current_xpos#19 play_move_leftright::@8/(byte) current_xpos#7 play_move_leftright::@14/(byte) current_xpos#19 play_move_leftright::@6/(byte) current_xpos#19 )
[137] (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 )
[138] return
[138] (byte) current_xpos#23 ← phi( play_move_leftright::@11/(byte) current_xpos#9 play_move_leftright::@15/(byte) current_xpos#19 play_move_leftright::@8/(byte) current_xpos#7 play_move_leftright::@14/(byte) current_xpos#19 play_move_leftright::@6/(byte) current_xpos#19 )
[138] (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 )
[139] return
to:@return
play_move_leftright::@1: scope:[play_move_leftright] from play_move_leftright
[139] (byte) collision::xpos#1 ← (byte) current_xpos#19 - (byte/signed byte/word/signed word/dword/signed dword) 1
[140] (byte) collision::ypos#1 ← (byte) current_ypos#16
[141] (byte) collision::orientation#1 ← (byte) current_orientation#18
[142] (byte*~) current_piece#71 ← (byte*) current_piece#13
[143] call collision
[144] (byte) collision::return#1 ← (byte) collision::return#14
[140] (byte) collision::xpos#1 ← (byte) current_xpos#19 - (byte/signed byte/word/signed word/dword/signed dword) 1
[141] (byte) collision::ypos#1 ← (byte) current_ypos#16
[142] (byte) collision::orientation#1 ← (byte) current_orientation#18
[143] (byte*~) current_piece#72 ← (byte*) current_piece#13
[144] call collision
[145] (byte) collision::return#1 ← (byte) collision::return#14
to:play_move_leftright::@14
play_move_leftright::@14: scope:[play_move_leftright] from play_move_leftright::@1
[145] (byte~) play_move_leftright::$8 ← (byte) collision::return#1
[146] if((byte~) play_move_leftright::$8!=(const byte) COLLISION_NONE#0) goto play_move_leftright::@return
[146] (byte~) play_move_leftright::$8 ← (byte) collision::return#1
[147] 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
[147] (byte) current_xpos#9 ← -- (byte) current_xpos#19
[148] (byte) current_xpos#9 ← -- (byte) current_xpos#19
to:play_move_leftright::@return
play_move_down: scope:[play_move_down] from main::@27
[148] (byte) current_movedown_counter#10 ← ++ (byte) current_movedown_counter#15
[149] if((byte) play_move_down::key_event#0!=(const byte) KEY_SPACE#0) goto play_move_down::@1
play_move_down: scope:[play_move_down] from main::@28
[149] (byte) current_movedown_counter#10 ← ++ (byte) current_movedown_counter#15
[150] 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
[150] phi()
[151] phi()
to:play_move_down::@1
play_move_down::@1: scope:[play_move_down] from play_move_down play_move_down::@8
[151] (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 )
[152] call keyboard_event_pressed
[153] (byte) keyboard_event_pressed::return#12 ← (byte) keyboard_event_pressed::return#11
[152] (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 )
[153] call keyboard_event_pressed
[154] (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
[154] (byte~) play_move_down::$2 ← (byte) keyboard_event_pressed::return#12
[155] if((byte~) play_move_down::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@2
[155] (byte~) play_move_down::$2 ← (byte) keyboard_event_pressed::return#12
[156] 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
[156] if((byte) current_movedown_counter#10<(const byte) current_movedown_fast#0) goto play_move_down::@2
[157] if((byte) current_movedown_counter#10<(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
[157] (byte) play_move_down::movedown#2 ← ++ (byte) play_move_down::movedown#10
[158] (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
[158] (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 )
[159] if((byte) current_movedown_counter#10<(const byte) current_movedown_slow#0) goto play_move_down::@4
[159] (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 )
[160] if((byte) current_movedown_counter#10<(const byte) current_movedown_slow#0) goto play_move_down::@4
to:play_move_down::@11
play_move_down::@11: scope:[play_move_down] from play_move_down::@2
[160] (byte) play_move_down::movedown#3 ← ++ (byte) play_move_down::movedown#7
[161] (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
[161] (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 )
[162] if((byte) play_move_down::movedown#6==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_down::@return
[162] (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 )
[163] 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
[163] (byte) collision::ypos#0 ← (byte) current_ypos#12 + (byte/signed byte/word/signed word/dword/signed dword) 1
[164] (byte) collision::xpos#0 ← (byte) current_xpos#16
[165] (byte) collision::orientation#0 ← (byte) current_orientation#15
[166] (byte*~) current_piece#70 ← (byte*) current_piece#11
[167] call collision
[168] (byte) collision::return#0 ← (byte) collision::return#14
[164] (byte) collision::ypos#0 ← (byte) current_ypos#12 + (byte/signed byte/word/signed word/dword/signed dword) 1
[165] (byte) collision::xpos#0 ← (byte) current_xpos#16
[166] (byte) collision::orientation#0 ← (byte) current_orientation#15
[167] (byte*~) current_piece#71 ← (byte*) current_piece#11
[168] call collision
[169] (byte) collision::return#0 ← (byte) collision::return#14
to:play_move_down::@18
play_move_down::@18: scope:[play_move_down] from play_move_down::@12
[169] (byte~) play_move_down::$12 ← (byte) collision::return#0
[170] if((byte~) play_move_down::$12==(const byte) COLLISION_NONE#0) goto play_move_down::@6
[170] (byte~) play_move_down::$12 ← (byte) collision::return#0
[171] 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
[171] phi()
[172] call lock_current
[172] phi()
[173] call lock_current
to:play_move_down::@19
play_move_down::@19: scope:[play_move_down] from play_move_down::@13
[173] phi()
[174] call remove_lines
[174] phi()
[175] call remove_lines
to:play_move_down::@20
play_move_down::@20: scope:[play_move_down] from play_move_down::@19
[175] phi()
[176] call spawn_current
[177] (byte*~) current_piece#74 ← (byte*)*((const word[]) PIECES#0 + (byte~) spawn_current::$3)
[176] phi()
[177] call spawn_current
[178] (byte*~) current_piece#75 ← (byte*)*((const word[]) PIECES#0 + (byte~) spawn_current::$3)
to:play_move_down::@7
play_move_down::@7: scope:[play_move_down] from play_move_down::@20 play_move_down::@6
[178] (byte) current_piece_color#23 ← phi( play_move_down::@20/(byte) current_piece_color#15 play_move_down::@6/(byte) current_piece_color#11 )
[178] (byte) current_xpos#36 ← phi( play_move_down::@20/(byte/signed byte/word/signed word/dword/signed dword) 3 play_move_down::@6/(byte) current_xpos#16 )
[178] (byte*) current_piece_gfx#29 ← phi( play_move_down::@20/(byte*) current_piece_gfx#10 play_move_down::@6/(byte*) current_piece_gfx#15 )
[178] (byte) current_orientation#33 ← phi( play_move_down::@20/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_down::@6/(byte) current_orientation#15 )
[178] (byte*) current_piece#23 ← phi( play_move_down::@20/(byte*~) current_piece#74 play_move_down::@6/(byte*) current_piece#11 )
[178] (byte) current_ypos#31 ← phi( play_move_down::@20/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_down::@6/(byte) current_ypos#4 )
[179] (byte) current_piece_color#23 ← phi( play_move_down::@20/(byte) current_piece_color#15 play_move_down::@6/(byte) current_piece_color#11 )
[179] (byte) current_xpos#36 ← phi( play_move_down::@20/(byte/signed byte/word/signed word/dword/signed dword) 3 play_move_down::@6/(byte) current_xpos#16 )
[179] (byte*) current_piece_gfx#29 ← phi( play_move_down::@20/(byte*) current_piece_gfx#10 play_move_down::@6/(byte*) current_piece_gfx#15 )
[179] (byte) current_orientation#33 ← phi( play_move_down::@20/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_down::@6/(byte) current_orientation#15 )
[179] (byte*) current_piece#23 ← phi( play_move_down::@20/(byte*~) current_piece#75 play_move_down::@6/(byte*) current_piece#11 )
[179] (byte) current_ypos#31 ← phi( play_move_down::@20/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_down::@6/(byte) current_ypos#4 )
to:play_move_down::@return
play_move_down::@return: scope:[play_move_down] from play_move_down::@4 play_move_down::@7
[179] (byte) current_piece_color#13 ← phi( play_move_down::@4/(byte) current_piece_color#11 play_move_down::@7/(byte) current_piece_color#23 )
[179] (byte) current_xpos#19 ← phi( play_move_down::@4/(byte) current_xpos#16 play_move_down::@7/(byte) current_xpos#36 )
[179] (byte*) current_piece_gfx#17 ← phi( play_move_down::@4/(byte*) current_piece_gfx#15 play_move_down::@7/(byte*) current_piece_gfx#29 )
[179] (byte) current_orientation#18 ← phi( play_move_down::@4/(byte) current_orientation#15 play_move_down::@7/(byte) current_orientation#33 )
[179] (byte*) current_piece#13 ← phi( play_move_down::@4/(byte*) current_piece#11 play_move_down::@7/(byte*) current_piece#23 )
[179] (byte) current_ypos#16 ← phi( play_move_down::@4/(byte) current_ypos#12 play_move_down::@7/(byte) current_ypos#31 )
[179] (byte) current_movedown_counter#12 ← phi( play_move_down::@4/(byte) current_movedown_counter#10 play_move_down::@7/(byte/signed byte/word/signed word/dword/signed dword) 0 )
[179] (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 )
[180] return
[180] (byte) current_piece_color#13 ← phi( play_move_down::@4/(byte) current_piece_color#11 play_move_down::@7/(byte) current_piece_color#23 )
[180] (byte) current_xpos#19 ← phi( play_move_down::@4/(byte) current_xpos#16 play_move_down::@7/(byte) current_xpos#36 )
[180] (byte*) current_piece_gfx#17 ← phi( play_move_down::@4/(byte*) current_piece_gfx#15 play_move_down::@7/(byte*) current_piece_gfx#29 )
[180] (byte) current_orientation#18 ← phi( play_move_down::@4/(byte) current_orientation#15 play_move_down::@7/(byte) current_orientation#33 )
[180] (byte*) current_piece#13 ← phi( play_move_down::@4/(byte*) current_piece#11 play_move_down::@7/(byte*) current_piece#23 )
[180] (byte) current_ypos#16 ← phi( play_move_down::@4/(byte) current_ypos#12 play_move_down::@7/(byte) current_ypos#31 )
[180] (byte) current_movedown_counter#12 ← phi( play_move_down::@4/(byte) current_movedown_counter#10 play_move_down::@7/(byte/signed byte/word/signed word/dword/signed dword) 0 )
[180] (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 )
[181] return
to:@return
play_move_down::@6: scope:[play_move_down] from play_move_down::@18
[181] (byte) current_ypos#4 ← ++ (byte) current_ypos#12
[182] (byte) current_ypos#4 ← ++ (byte) current_ypos#12
to:play_move_down::@7
spawn_current: scope:[spawn_current] from main::@22 play_move_down::@20
[182] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0)
spawn_current: scope:[spawn_current] from main::@23 play_move_down::@20
[183] phi()
to:spawn_current::@1
spawn_current::@1: scope:[spawn_current] from spawn_current spawn_current::@7
[183] (byte) spawn_current::piece_idx#2 ← phi( spawn_current/(byte/signed byte/word/signed word/dword/signed dword) 7 spawn_current::@7/(byte) spawn_current::piece_idx#1 )
[184] if((byte) spawn_current::piece_idx#2==(byte/signed byte/word/signed word/dword/signed dword) 7) goto spawn_current::@2
[184] (byte) spawn_current::piece_idx#2 ← phi( spawn_current/(byte/signed byte/word/signed word/dword/signed dword) 7 spawn_current::@7/(byte) spawn_current::piece_idx#1 )
[185] if((byte) spawn_current::piece_idx#2==(byte/signed byte/word/signed word/dword/signed dword) 7) goto spawn_current::@2
to:spawn_current::@3
spawn_current::@3: scope:[spawn_current] from spawn_current::@1
[185] *((const byte*) BORDERCOL#0) ← -- *((const byte*) BORDERCOL#0)
[186] (byte~) spawn_current::$3 ← (byte) spawn_current::piece_idx#2 << (byte/signed byte/word/signed word/dword/signed dword) 1
[187] (byte*) current_piece_gfx#10 ← (byte*)*((const word[]) PIECES#0 + (byte~) spawn_current::$3) + (byte/signed byte/word/signed word/dword/signed dword) 0
[188] (byte) current_piece_color#15 ← *((const byte[]) PIECES_COLORS#0 + (byte) spawn_current::piece_idx#2)
@ -549,7 +549,7 @@ keyboard_event_pressed: scope:[keyboard_event_pressed] from keyboard_event_scan
keyboard_event_pressed::@return: scope:[keyboard_event_pressed] from keyboard_event_pressed
[259] return
to:@return
keyboard_event_get: scope:[keyboard_event_get] from main::@26
keyboard_event_get: scope:[keyboard_event_get] from main::@27
[260] 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
@ -676,75 +676,81 @@ keyboard_matrix_read: scope:[keyboard_matrix_read] from keyboard_event_scan::@1
keyboard_matrix_read::@return: scope:[keyboard_matrix_read] from keyboard_matrix_read
[320] return
to:@return
init: scope:[init] from main::@21
tables_init: scope:[tables_init] from main::@22
[321] phi()
[322] call fill
to:init::@9
init::@9: scope:[init] from init
[323] phi()
[324] call fill
to:init::@1
init::@1: scope:[init] from init::@1 init::@9
[325] (byte*) init::li#2 ← phi( init::@1/(byte*) init::li#1 init::@9/(const byte*) COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 15 )
[325] (byte) init::i#2 ← phi( init::@1/(byte) init::i#1 init::@9/(byte/signed byte/word/signed word/dword/signed dword) 0 )
[326] (byte~) init::$5 ← (byte) init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1
[327] *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte~) init::$5) ← (byte*) init::li#2
[328] (byte*) init::li#1 ← (byte*) init::li#2 + (byte/signed byte/word/signed word/dword/signed dword) 40
[329] (byte) init::i#1 ← ++ (byte) init::i#2
[330] if((byte) init::i#1!=(const byte) PLAYFIELD_LINES#0+(byte/signed byte/word/signed word/dword/signed dword) 2+(byte/signed byte/word/signed word/dword/signed dword) 1) goto init::@1
to:init::@2
init::@2: scope:[init] from init::@1 init::@2
[331] (byte) init::idx#2 ← phi( init::@2/(byte) init::idx#1 init::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 )
[331] (byte*) init::pli#2 ← phi( init::@2/(byte*) init::pli#1 init::@1/(const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 )
[331] (byte) init::j#2 ← phi( init::@2/(byte) init::j#1 init::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 )
[332] (byte~) init::$8 ← (byte) init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1
[333] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) init::$8) ← (byte*) init::pli#2
[334] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) init::j#2) ← (byte) init::idx#2
[335] (byte*) init::pli#1 ← (byte*) init::pli#2 + (const byte) PLAYFIELD_COLS#0
[336] (byte) init::idx#1 ← (byte) init::idx#2 + (const byte) PLAYFIELD_COLS#0
[337] (byte) init::j#1 ← ++ (byte) init::j#2
[338] if((byte) 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 init::@2
to:init::@6
init::@6: scope:[init] from init::@2
[339] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0+(const byte) PLAYFIELD_LINES#0) ← (const byte) PLAYFIELD_COLS#0*(const byte) PLAYFIELD_LINES#0
to:init::@3
init::@3: scope:[init] from init::@6 init::@7
[340] (byte) init::l#4 ← phi( init::@6/(byte/signed byte/word/signed word/dword/signed dword) 0 init::@7/(byte) init::l#1 )
[340] (byte*) init::line#4 ← phi( init::@6/(const byte*) COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 14 init::@7/(byte*) init::line#1 )
to:init::@4
init::@4: scope:[init] from init::@3 init::@4
[341] (byte) init::c#2 ← phi( init::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 init::@4/(byte) init::c#1 )
[342] (byte*~) init::$14 ← (byte*) init::line#4 + (byte) init::c#2
[343] *((byte*~) init::$14) ← (const byte) DARK_GREY#0
[344] (byte) init::c#1 ← ++ (byte) init::c#2
[345] if((byte) init::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 init::@4
to:init::@7
init::@7: scope:[init] from init::@4
[346] (byte*) init::line#1 ← (byte*) init::line#4 + (byte/signed byte/word/signed word/dword/signed dword) 40
[347] (byte) init::l#1 ← ++ (byte) init::l#4
[348] if((byte) init::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 init::@3
to:init::@return
init::@return: scope:[init] from init::@7
[349] return
to:tables_init::@1
tables_init::@1: scope:[tables_init] from tables_init tables_init::@1
[322] (byte) tables_init::idx#2 ← phi( tables_init/(byte/signed byte/word/signed word/dword/signed dword) 0 tables_init::@1/(byte) tables_init::idx#1 )
[322] (byte*) tables_init::pli#2 ← phi( tables_init/(const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 tables_init::@1/(byte*) tables_init::pli#1 )
[322] (byte) tables_init::j#2 ← phi( tables_init/(byte/signed byte/word/signed word/dword/signed dword) 0 tables_init::@1/(byte) tables_init::j#1 )
[323] (byte~) tables_init::$1 ← (byte) tables_init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1
[324] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) tables_init::$1) ← (byte*) tables_init::pli#2
[325] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) tables_init::j#2) ← (byte) tables_init::idx#2
[326] (byte*) tables_init::pli#1 ← (byte*) tables_init::pli#2 + (const byte) PLAYFIELD_COLS#0
[327] (byte) tables_init::idx#1 ← (byte) tables_init::idx#2 + (const byte) PLAYFIELD_COLS#0
[328] (byte) tables_init::j#1 ← ++ (byte) tables_init::j#2
[329] if((byte) tables_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 tables_init::@1
to:tables_init::@2
tables_init::@2: scope:[tables_init] from tables_init::@1
[330] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0+(const byte) PLAYFIELD_LINES#0) ← (const byte) PLAYFIELD_COLS#0*(const byte) PLAYFIELD_LINES#0
to:tables_init::@return
tables_init::@return: scope:[tables_init] from tables_init::@2
[331] return
to:@return
fill: scope:[fill] from init init::@9
[350] (byte) fill::val#3 ← phi( init/(byte/word/signed word/dword/signed dword) 160 init::@9/(const byte) BLACK#0 )
[350] (byte*) fill::addr#0 ← phi( init/(const byte*) SCREEN#0 init::@9/(const byte*) COLS#0 )
[351] (byte*) fill::end#0 ← (byte*) fill::addr#0 + (word/signed word/dword/signed dword) 1000
render_init: scope:[render_init] from main::@21
[332] phi()
[333] call fill
to:render_init::@7
render_init::@7: scope:[render_init] from render_init
[334] phi()
[335] call fill
to:render_init::@1
render_init::@1: scope:[render_init] from render_init::@1 render_init::@7
[336] (byte*) render_init::li#2 ← phi( render_init::@1/(byte*) render_init::li#1 render_init::@7/(const byte*) COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 15 )
[336] (byte) render_init::i#2 ← phi( render_init::@1/(byte) render_init::i#1 render_init::@7/(byte/signed byte/word/signed word/dword/signed dword) 0 )
[337] (byte~) render_init::$5 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1
[338] *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte~) render_init::$5) ← (byte*) render_init::li#2
[339] (byte*) render_init::li#1 ← (byte*) render_init::li#2 + (byte/signed byte/word/signed word/dword/signed dword) 40
[340] (byte) render_init::i#1 ← ++ (byte) render_init::i#2
[341] if((byte) render_init::i#1!=(const byte) PLAYFIELD_LINES#0+(byte/signed byte/word/signed word/dword/signed dword) 2+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@1
to:render_init::@2
render_init::@2: scope:[render_init] from render_init::@1 render_init::@5
[342] (byte) render_init::l#4 ← phi( render_init::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 render_init::@5/(byte) render_init::l#1 )
[342] (byte*) render_init::line#4 ← phi( render_init::@1/(const byte*) COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 14 render_init::@5/(byte*) render_init::line#1 )
to:render_init::@3
render_init::@3: scope:[render_init] from render_init::@2 render_init::@3
[343] (byte) render_init::c#2 ← phi( render_init::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 render_init::@3/(byte) render_init::c#1 )
[344] (byte*~) render_init::$10 ← (byte*) render_init::line#4 + (byte) render_init::c#2
[345] *((byte*~) render_init::$10) ← (const byte) DARK_GREY#0
[346] (byte) render_init::c#1 ← ++ (byte) render_init::c#2
[347] if((byte) render_init::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_init::@3
to:render_init::@5
render_init::@5: scope:[render_init] from render_init::@3
[348] (byte*) render_init::line#1 ← (byte*) render_init::line#4 + (byte/signed byte/word/signed word/dword/signed dword) 40
[349] (byte) render_init::l#1 ← ++ (byte) render_init::l#4
[350] if((byte) render_init::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_init::@2
to:render_init::@return
render_init::@return: scope:[render_init] from render_init::@5
[351] return
to:@return
fill: scope:[fill] from render_init render_init::@7
[352] (byte) fill::val#3 ← phi( render_init/(byte/word/signed word/dword/signed dword) 160 render_init::@7/(const byte) BLACK#0 )
[352] (byte*) fill::addr#0 ← phi( render_init/(const byte*) SCREEN#0 render_init::@7/(const byte*) COLS#0 )
[353] (byte*) fill::end#0 ← (byte*) fill::addr#0 + (word/signed word/dword/signed dword) 1000
to:fill::@1
fill::@1: scope:[fill] from fill fill::@1
[352] (byte*) fill::addr#2 ← phi( fill/(byte*) fill::addr#0 fill::@1/(byte*) fill::addr#1 )
[353] *((byte*) fill::addr#2) ← (byte) fill::val#3
[354] (byte*) fill::addr#1 ← ++ (byte*) fill::addr#2
[355] if((byte*) fill::addr#1!=(byte*) fill::end#0) goto fill::@1
[354] (byte*) fill::addr#2 ← phi( fill/(byte*) fill::addr#0 fill::@1/(byte*) fill::addr#1 )
[355] *((byte*) fill::addr#2) ← (byte) fill::val#3
[356] (byte*) fill::addr#1 ← ++ (byte*) fill::addr#2
[357] if((byte*) fill::addr#1!=(byte*) fill::end#0) goto fill::@1
to:fill::@return
fill::@return: scope:[fill] from fill::@1
[356] return
[358] return
to:@return
sid_rnd_init: scope:[sid_rnd_init] from main
[357] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535
[358] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0
[359] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535
[360] *((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
[359] return
[361] return
to:@return

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,4 @@
(label) @26
(label) @27
(label) @begin
(label) @end
(byte) BLACK
@ -148,7 +148,7 @@
(byte) collision::ypos2#2 ypos2 zp ZP_BYTE:8 87.06666666666668
(byte) current_movedown_counter
(byte) current_movedown_counter#10 current_movedown_counter zp ZP_BYTE:3 0.5333333333333333
(byte) current_movedown_counter#12 current_movedown_counter zp ZP_BYTE:3 0.5
(byte) current_movedown_counter#12 current_movedown_counter zp ZP_BYTE:3 0.52
(byte) current_movedown_counter#15 current_movedown_counter zp ZP_BYTE:3 1.3
(byte) current_movedown_fast
(const byte) current_movedown_fast#0 current_movedown_fast = (byte/signed byte/word/signed word/dword/signed dword) 5
@ -157,54 +157,54 @@
(byte) current_orientation
(byte) current_orientation#15 current_orientation zp ZP_BYTE:14 0.5
(byte) current_orientation#18 current_orientation zp ZP_BYTE:14 0.32653061224489793
(byte) current_orientation#23 current_orientation zp ZP_BYTE:14 1.0625
(byte) current_orientation#23 current_orientation zp ZP_BYTE:14 1.1333333333333333
(byte) current_orientation#33 current_orientation zp ZP_BYTE:14 4.0
(byte) current_orientation#8 current_orientation zp ZP_BYTE:14 3.0
(byte*) current_piece
(byte*) current_piece#11 current_piece zp ZP_WORD:12 0.5588235294117647
(byte*) current_piece#13 current_piece zp ZP_WORD:12 0.3432835820895522
(byte*) current_piece#13 current_piece zp ZP_WORD:12 0.3484848484848484
(byte*) current_piece#15 current_piece#15 zp ZP_WORD:5 10.0
(byte*) current_piece#23 current_piece zp ZP_WORD:12 6.0
(byte*~) current_piece#69 current_piece zp ZP_WORD:12 4.0
(byte*~) current_piece#70 current_piece#70 zp ZP_WORD:5 4.0
(byte*~) current_piece#70 current_piece zp ZP_WORD:12 4.0
(byte*~) current_piece#71 current_piece#71 zp ZP_WORD:5 4.0
(byte*~) current_piece#72 current_piece#72 zp ZP_WORD:5 4.0
(byte*~) current_piece#73 current_piece#73 zp ZP_WORD:5 4.0
(byte*~) current_piece#74 current_piece zp ZP_WORD:12 4.0
(byte*~) current_piece#74 current_piece#74 zp ZP_WORD:5 4.0
(byte*~) current_piece#75 current_piece zp ZP_WORD:12 4.0
(byte) current_piece_color
(byte) current_piece_color#11 current_piece_color zp ZP_BYTE:18 19.96078431372549
(byte) current_piece_color#13 current_piece_color zp ZP_BYTE:18 1.0
(byte) current_piece_color#13 current_piece_color zp ZP_BYTE:18 1.04
(byte) current_piece_color#15 current_piece_color zp ZP_BYTE:18 0.7272727272727273
(byte) current_piece_color#23 current_piece_color zp ZP_BYTE:18 6.0
(byte) current_piece_color#65 current_piece_color#65 zp ZP_BYTE:7 53.368421052631575
(byte~) current_piece_color#73 current_piece_color#73 zp ZP_BYTE:7 4.0
(byte~) current_piece_color#74 current_piece_color#74 zp ZP_BYTE:7 22.0
(byte) current_piece_color#66 current_piece_color#66 zp ZP_BYTE:7 53.368421052631575
(byte~) current_piece_color#74 current_piece_color#74 zp ZP_BYTE:7 4.0
(byte~) current_piece_color#75 current_piece_color#75 zp ZP_BYTE:7 22.0
(byte*) current_piece_gfx
(byte*) current_piece_gfx#10 current_piece_gfx zp ZP_WORD:15 0.6666666666666666
(byte*) current_piece_gfx#15 current_piece_gfx zp ZP_WORD:15 19.96078431372549
(byte*) current_piece_gfx#17 current_piece_gfx zp ZP_WORD:15 0.2962962962962963
(byte*) current_piece_gfx#18 current_piece_gfx zp ZP_WORD:15 1.75
(byte*) current_piece_gfx#18 current_piece_gfx zp ZP_WORD:15 1.8666666666666665
(byte*) current_piece_gfx#29 current_piece_gfx zp ZP_WORD:15 6.0
(byte*) current_piece_gfx#63 current_piece_gfx#63 zp ZP_WORD:5 53.368421052631575
(byte*) current_piece_gfx#8 current_piece_gfx zp ZP_WORD:15 4.0
(byte*~) current_piece_gfx#85 current_piece_gfx#85 zp ZP_WORD:5 2.0
(byte*~) current_piece_gfx#86 current_piece_gfx#86 zp ZP_WORD:5 11.0
(byte*~) current_piece_gfx#86 current_piece_gfx#86 zp ZP_WORD:5 2.0
(byte*~) current_piece_gfx#87 current_piece_gfx#87 zp ZP_WORD:5 11.0
(byte) current_xpos
(byte) current_xpos#16 current_xpos zp ZP_BYTE:17 2.313725490196078
(byte) current_xpos#19 current_xpos zp ZP_BYTE:17 0.72
(byte) current_xpos#23 current_xpos zp ZP_BYTE:17 0.8500000000000003
(byte) current_xpos#23 current_xpos zp ZP_BYTE:17 0.871794871794872
(byte) current_xpos#36 current_xpos zp ZP_BYTE:17 4.0
(byte) current_xpos#63 current_xpos#63 zp ZP_BYTE:4 5.894736842105264
(byte) current_xpos#7 current_xpos zp ZP_BYTE:17 4.0
(byte) current_xpos#9 current_xpos zp ZP_BYTE:17 4.0
(byte~) current_xpos#94 current_xpos#94 zp ZP_BYTE:4 7.333333333333333
(byte~) current_xpos#95 current_xpos#95 zp ZP_BYTE:4 7.333333333333333
(byte) current_ypos
(byte) current_ypos#12 current_ypos zp ZP_BYTE:2 0.5588235294117647
(byte) current_ypos#16 current_ypos zp ZP_BYTE:2 0.47761194029850734
(byte) current_ypos#16 current_ypos zp ZP_BYTE:2 0.48484848484848475
(byte) current_ypos#22 reg byte x 13.0
(byte) current_ypos#31 current_ypos zp ZP_BYTE:2 4.0
(byte) current_ypos#4 current_ypos zp ZP_BYTE:2 4.0
(byte~) current_ypos#69 reg byte x 5.5
(byte~) current_ypos#70 reg byte x 5.5
(void()) fill((byte*) fill::start , (word) fill::size , (byte) fill::val)
(label) fill::@1
(label) fill::@return
@ -246,42 +246,6 @@
(byte) find_line::y
(byte) find_line::y#1 y zp ZP_BYTE:7 1001.0
(byte) find_line::y#8 y zp ZP_BYTE:7 300.29999999999995
(void()) init()
(byte*~) init::$14 $14 zp ZP_WORD:12 202.0
(byte~) init::$5 reg byte a 22.0
(byte~) init::$8 reg byte a 22.0
(label) init::@1
(label) init::@2
(label) init::@3
(label) init::@4
(label) init::@6
(label) init::@7
(label) init::@9
(label) init::@return
(byte) init::c
(byte) init::c#1 reg byte x 151.5
(byte) init::c#2 reg byte x 101.0
(byte) init::i
(byte) init::i#1 reg byte x 16.5
(byte) init::i#2 reg byte x 8.25
(byte) init::idx
(byte) init::idx#1 idx zp ZP_BYTE:2 7.333333333333333
(byte) init::idx#2 idx zp ZP_BYTE:2 6.6000000000000005
(byte) init::j
(byte) init::j#1 reg byte x 16.5
(byte) init::j#2 reg byte x 7.333333333333333
(byte) init::l
(byte) init::l#1 l zp ZP_BYTE:2 16.5
(byte) init::l#4 l zp ZP_BYTE:2 3.142857142857143
(byte*) init::li
(byte*) init::li#1 li zp ZP_WORD:5 7.333333333333333
(byte*) init::li#2 li zp ZP_WORD:5 11.0
(byte*) init::line
(byte*) init::line#1 line zp ZP_WORD:5 7.333333333333333
(byte*) init::line#4 line zp ZP_WORD:5 20.499999999999996
(byte*) init::pli
(byte*) init::pli#1 pli zp ZP_WORD:5 5.5
(byte*) init::pli#2 pli zp ZP_WORD:5 8.25
(byte()) keyboard_event_get()
(label) keyboard_event_get::@3
(label) keyboard_event_get::@return
@ -358,7 +322,7 @@
(byte) keyboard_events_size#1 keyboard_events_size zp ZP_BYTE:19 2002.0
(byte) keyboard_events_size#10 keyboard_events_size zp ZP_BYTE:19 810.9000000000001
(byte) keyboard_events_size#13 keyboard_events_size zp ZP_BYTE:19 9.967741935483872
(byte) keyboard_events_size#16 keyboard_events_size zp ZP_BYTE:19 0.49999999999999994
(byte) keyboard_events_size#16 keyboard_events_size zp ZP_BYTE:19 0.5172413793103449
(byte) keyboard_events_size#19 keyboard_events_size zp ZP_BYTE:19 2.6
(byte) keyboard_events_size#2 keyboard_events_size zp ZP_BYTE:19 2002.0
(byte) keyboard_events_size#29 keyboard_events_size zp ZP_BYTE:19 43.57142857142858
@ -413,7 +377,7 @@
(void()) main()
(byte~) main::$10 reg byte a 22.0
(byte~) main::$11 reg byte a 22.0
(byte~) main::$9 reg byte a 22.0
(byte~) main::$12 reg byte a 22.0
(label) main::@1
(label) main::@10
(label) main::@19
@ -421,7 +385,7 @@
(label) main::@22
(label) main::@23
(label) main::@24
(label) main::@26
(label) main::@25
(label) main::@27
(label) main::@28
(label) main::@29
@ -576,6 +540,30 @@
(byte) render_current::ypos2#0 ypos2 zp ZP_BYTE:8 4.0
(byte) render_current::ypos2#1 ypos2 zp ZP_BYTE:8 67.33333333333333
(byte) render_current::ypos2#2 ypos2 zp ZP_BYTE:8 29.000000000000004
(void()) render_init()
(byte*~) render_init::$10 $10 zp ZP_WORD:12 202.0
(byte~) render_init::$5 reg byte a 22.0
(label) render_init::@1
(label) render_init::@2
(label) render_init::@3
(label) render_init::@5
(label) render_init::@7
(label) render_init::@return
(byte) render_init::c
(byte) render_init::c#1 reg byte x 151.5
(byte) render_init::c#2 reg byte x 101.0
(byte) render_init::i
(byte) render_init::i#1 reg byte x 16.5
(byte) render_init::i#2 reg byte x 8.25
(byte) render_init::l
(byte) render_init::l#1 l zp ZP_BYTE:2 16.5
(byte) render_init::l#4 l zp ZP_BYTE:2 3.142857142857143
(byte*) render_init::li
(byte*) render_init::li#1 li zp ZP_WORD:5 7.333333333333333
(byte*) render_init::li#2 li zp ZP_WORD:5 11.0
(byte*) render_init::line
(byte*) render_init::line#1 line zp ZP_WORD:5 7.333333333333333
(byte*) render_init::line#4 line zp ZP_WORD:5 20.499999999999996
(void()) render_playfield()
(byte~) render_playfield::$1 reg byte a 202.0
(label) render_playfield::@1
@ -615,14 +603,28 @@
(label) spawn_current::@return
(byte) spawn_current::piece_idx
(byte) spawn_current::piece_idx#1 reg byte x 202.0
(byte) spawn_current::piece_idx#2 reg byte x 41.199999999999996
(byte) spawn_current::piece_idx#2 reg byte x 51.5
(void()) tables_init()
(byte~) tables_init::$1 reg byte a 22.0
(label) tables_init::@1
(label) tables_init::@2
(label) tables_init::@return
(byte) tables_init::idx
(byte) tables_init::idx#1 idx zp ZP_BYTE:2 7.333333333333333
(byte) tables_init::idx#2 idx zp ZP_BYTE:2 6.6000000000000005
(byte) tables_init::j
(byte) tables_init::j#1 reg byte x 16.5
(byte) tables_init::j#2 reg byte x 7.333333333333333
(byte*) tables_init::pli
(byte*) tables_init::pli#1 pli zp ZP_WORD:5 5.5
(byte*) tables_init::pli#2 pli zp ZP_WORD:5 8.25
zp ZP_BYTE:2 [ current_ypos#12 current_ypos#16 current_ypos#31 current_ypos#4 lock_current::ypos2#2 lock_current::ypos2#0 lock_current::ypos2#1 remove_lines::done#3 remove_lines::done#2 init::idx#2 init::idx#1 init::l#4 init::l#1 spawn_current::$3 ]
zp ZP_BYTE:2 [ current_ypos#12 current_ypos#16 current_ypos#31 current_ypos#4 lock_current::ypos2#2 lock_current::ypos2#0 lock_current::ypos2#1 remove_lines::done#3 remove_lines::done#2 tables_init::idx#2 tables_init::idx#1 render_init::l#4 render_init::l#1 spawn_current::$3 ]
zp ZP_BYTE:3 [ current_movedown_counter#15 current_movedown_counter#12 current_movedown_counter#10 remove_line::y#4 remove_line::ypos#0 remove_line::y#1 find_line::i#2 find_line::i#3 find_line::i#8 find_line::i#10 lock_current::l#6 lock_current::l#1 ]
reg byte x [ current_ypos#22 current_ypos#69 ]
zp ZP_BYTE:4 [ current_xpos#63 current_xpos#94 render_playfield::l#2 render_playfield::l#1 play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 remove_line::x#2 remove_line::x#1 find_line::filled#4 find_line::filled#2 lock_current::i#2 lock_current::i#3 lock_current::i#7 lock_current::i#9 keyboard_event_pressed::keycode#5 keyboard_event_scan::row#2 keyboard_event_scan::row#1 ]
zp ZP_WORD:5 [ current_piece_gfx#63 current_piece_gfx#85 current_piece_gfx#86 render_playfield::line#2 render_playfield::line#0 render_playfield::line#1 current_piece#15 current_piece#70 current_piece#71 current_piece#72 current_piece#73 collision::piece_gfx#0 init::li#2 init::li#1 init::pli#2 init::pli#1 init::line#4 init::line#1 fill::addr#2 fill::addr#0 fill::addr#1 lock_current::playfield_line#0 ]
zp ZP_BYTE:7 [ current_piece_color#65 current_piece_color#73 current_piece_color#74 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 collision::xpos#5 collision::xpos#0 collision::xpos#1 collision::xpos#2 collision::xpos#3 find_line::return#2 find_line::y#8 find_line::y#1 lock_current::col#2 lock_current::col#0 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_ypos#22 current_ypos#70 ]
zp ZP_BYTE:4 [ current_xpos#63 current_xpos#95 render_playfield::l#2 render_playfield::l#1 play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 remove_line::x#2 remove_line::x#1 find_line::filled#4 find_line::filled#2 lock_current::i#2 lock_current::i#3 lock_current::i#7 lock_current::i#9 keyboard_event_pressed::keycode#5 keyboard_event_scan::row#2 keyboard_event_scan::row#1 ]
zp ZP_WORD:5 [ current_piece_gfx#63 current_piece_gfx#86 current_piece_gfx#87 render_playfield::line#2 render_playfield::line#0 render_playfield::line#1 current_piece#15 current_piece#71 current_piece#72 current_piece#73 current_piece#74 collision::piece_gfx#0 tables_init::pli#2 tables_init::pli#1 render_init::li#2 render_init::li#1 render_init::line#4 render_init::line#1 fill::addr#2 fill::addr#0 fill::addr#1 lock_current::playfield_line#0 ]
zp ZP_BYTE:7 [ current_piece_color#66 current_piece_color#74 current_piece_color#75 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 collision::xpos#5 collision::xpos#0 collision::xpos#1 collision::xpos#2 collision::xpos#3 find_line::return#2 find_line::y#8 find_line::y#1 lock_current::col#2 lock_current::col#0 lock_current::col#1 keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 keyboard_event_scan::keycode#15 keyboard_event_pressed::row_bits#0 ]
zp ZP_BYTE:8 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 collision::ypos2#2 collision::ypos2#0 collision::ypos2#1 find_line::i#1 lock_current::i#1 keyboard_event_scan::row_scan#0 ]
zp ZP_BYTE:9 [ render_current::l#3 render_current::l#1 collision::l#6 collision::l#1 ]
zp ZP_BYTE:10 [ render_current::i#2 render_current::i#1 render_current::i#4 render_current::i#8 collision::i#2 collision::i#3 collision::i#11 collision::i#13 ]
@ -636,7 +638,7 @@ reg byte x [ collision::c#2 collision::c#1 ]
reg byte a [ collision::return#14 ]
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_WORD:12 [ current_piece#23 current_piece#74 current_piece#11 current_piece#13 current_piece#69 init::$14 fill::end#0 ]
zp ZP_WORD:12 [ current_piece#23 current_piece#75 current_piece#11 current_piece#13 current_piece#70 render_init::$10 fill::end#0 ]
zp ZP_BYTE:14 [ current_orientation#33 current_orientation#15 current_orientation#23 current_orientation#8 current_orientation#18 ]
zp ZP_WORD:15 [ current_piece_gfx#29 current_piece_gfx#15 current_piece_gfx#18 current_piece_gfx#10 current_piece_gfx#8 current_piece_gfx#17 ]
zp ZP_BYTE:17 [ current_xpos#36 current_xpos#16 current_xpos#23 current_xpos#9 current_xpos#19 current_xpos#7 ]
@ -650,22 +652,22 @@ reg byte x [ lock_current::c#2 lock_current::c#1 ]
reg byte a [ keyboard_event_get::return#2 keyboard_event_get::return#1 ]
reg byte x [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ]
zp ZP_BYTE:19 [ 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 x [ init::i#2 init::i#1 ]
reg byte x [ init::j#2 init::j#1 ]
reg byte x [ init::c#2 init::c#1 ]
reg byte x [ tables_init::j#2 tables_init::j#1 ]
reg byte x [ render_init::i#2 render_init::i#1 ]
reg byte x [ render_init::c#2 render_init::c#1 ]
reg byte x [ fill::val#3 ]
reg byte a [ keyboard_event_get::return#3 ]
zp ZP_BYTE:20 [ main::key_event#0 ]
reg byte a [ play_move_down::key_event#0 ]
reg byte a [ play_move_down::return#0 ]
reg byte a [ main::$9 ]
reg byte a [ main::$10 ]
zp ZP_BYTE:21 [ main::render#1 main::render#2 ]
reg byte a [ play_move_leftright::key_event#0 ]
reg byte a [ play_move_leftright::return#0 ]
reg byte a [ main::$10 ]
reg byte a [ main::$11 ]
reg byte a [ play_move_rotate::key_event#0 ]
reg byte a [ play_move_rotate::return#0 ]
reg byte a [ main::$11 ]
reg byte a [ main::$12 ]
reg byte a [ main::render#3 ]
zp ZP_WORD:22 [ render_current::screen_line#0 collision::playfield_line#0 ]
reg byte a [ render_current::current_cell#0 ]
@ -708,5 +710,5 @@ reg byte a [ keyboard_event_scan::$4 ]
reg byte a [ keyboard_event_scan::event_type#0 ]
reg byte a [ keyboard_event_scan::$11 ]
reg byte a [ keyboard_matrix_read::return#0 ]
reg byte a [ init::$5 ]
reg byte a [ init::$8 ]
reg byte a [ tables_init::$1 ]
reg byte a [ render_init::$5 ]