mirror of
https://gitlab.com/camelot/kickc.git
synced 2024-09-08 17:54:40 +00:00
Improved remove lines implementation
This commit is contained in:
parent
468def2d6a
commit
45b03818e4
@ -1,2 +1,3 @@
|
||||
lda {z1}
|
||||
cmp #0
|
||||
bne {la1}
|
||||
|
@ -45,12 +45,6 @@ const byte current_movedown_fast = 5;
|
||||
// Counts up to the next movedown of current piece
|
||||
byte current_movedown_counter = 0;
|
||||
|
||||
// The screen
|
||||
byte* SCREEN = $400;
|
||||
|
||||
// Pointers to the screen address for rendering each playfield line
|
||||
byte*[PLAYFIELD_LINES+3] screen_lines;
|
||||
|
||||
void main() {
|
||||
sid_rnd_init();
|
||||
asm { sei }
|
||||
@ -235,44 +229,32 @@ void spawn_current() {
|
||||
}
|
||||
|
||||
// Look through the playfield for lines - and remove any lines found
|
||||
// Utilizes two cursors on the playfield - one reading cells and one writing cells
|
||||
// Whenever a full line is detected the writing cursor is instructed to write to the same line once more.
|
||||
void remove_lines() {
|
||||
byte done = 0;
|
||||
do {
|
||||
byte line_ypos = find_line();
|
||||
if(line_ypos!=$ff) {
|
||||
remove_line(line_ypos);
|
||||
} else {
|
||||
done = 1;
|
||||
}
|
||||
} while(done==0);
|
||||
}
|
||||
// Start both cursors at the end of the playfield
|
||||
byte r = PLAYFIELD_LINES*PLAYFIELD_COLS-1;
|
||||
byte w = PLAYFIELD_LINES*PLAYFIELD_COLS-1;
|
||||
|
||||
// Look through the playfield for lines - and return the ypos of any filled line.
|
||||
// Returns $ff if no line was found
|
||||
byte find_line() {
|
||||
byte i = 0;
|
||||
// Read all lines and rewrite them
|
||||
for(byte y:0..PLAYFIELD_LINES-1) {
|
||||
byte filled = 1;
|
||||
byte full = 1;
|
||||
for(byte x:0..PLAYFIELD_COLS-1) {
|
||||
if(playfield[i++]==0) {
|
||||
filled = 0;
|
||||
byte c = playfield[r--];
|
||||
if(c==0) {
|
||||
full = 0;
|
||||
}
|
||||
playfield[w--] = c;
|
||||
}
|
||||
if(filled==1) {
|
||||
return y;
|
||||
// If the line is full then re-write it.
|
||||
if(full==1) {
|
||||
w = w + PLAYFIELD_COLS;
|
||||
}
|
||||
}
|
||||
return $ff;
|
||||
}
|
||||
|
||||
// Remove a single line by scrolling all lines above it down and emptying the top line
|
||||
void remove_line(byte ypos) {
|
||||
byte i2 = playfield_lines_idx[ypos+1]-1;
|
||||
byte i1 = playfield_lines_idx[ypos]-1;
|
||||
for(byte y=ypos;y!=1;y--) {
|
||||
for(byte x:0..PLAYFIELD_COLS-1) {
|
||||
playfield[i2--] = playfield[i1--];
|
||||
}
|
||||
// Write zeros in the rest of the lines
|
||||
while(w!=$ff) {
|
||||
playfield[w--] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
@ -291,6 +273,12 @@ void tables_init() {
|
||||
|
||||
}
|
||||
|
||||
// The screen
|
||||
byte* SCREEN = $400;
|
||||
|
||||
// Pointers to the screen address for rendering each playfield line
|
||||
byte*[PLAYFIELD_LINES+3] screen_lines;
|
||||
|
||||
// Initialize rendering
|
||||
void render_init() {
|
||||
// Clear the screen
|
||||
|
@ -28,12 +28,12 @@
|
||||
.const PLAYFIELD_COLS = $a
|
||||
.const current_movedown_slow = $32
|
||||
.const current_movedown_fast = 5
|
||||
.label SCREEN = $400
|
||||
.const COLLISION_NONE = 0
|
||||
.const COLLISION_PLAYFIELD = 1
|
||||
.const COLLISION_BOTTOM = 2
|
||||
.const COLLISION_LEFT = 4
|
||||
.const COLLISION_RIGHT = 8
|
||||
.label SCREEN = $400
|
||||
.label keyboard_events_size = $13
|
||||
.label current_ypos = 2
|
||||
.label current_xpos = $11
|
||||
@ -44,17 +44,17 @@
|
||||
.label current_movedown_counter = 3
|
||||
.label current_piece_15 = 5
|
||||
.label current_xpos_63 = 4
|
||||
.label current_piece_gfx_63 = 5
|
||||
.label current_piece_color_66 = 7
|
||||
.label current_xpos_95 = 4
|
||||
.label current_piece_gfx_86 = 5
|
||||
.label current_piece_gfx_64 = 5
|
||||
.label current_piece_color_67 = 7
|
||||
.label current_xpos_96 = 4
|
||||
.label current_piece_gfx_87 = 5
|
||||
.label current_piece_color_74 = 7
|
||||
.label current_piece_gfx_88 = 5
|
||||
.label current_piece_color_75 = 7
|
||||
.label current_piece_71 = 5
|
||||
.label current_piece_color_76 = 7
|
||||
.label current_piece_72 = 5
|
||||
.label current_piece_73 = 5
|
||||
.label current_piece_74 = 5
|
||||
.label current_piece_75 = 5
|
||||
jsr main
|
||||
main: {
|
||||
.label key_event = $14
|
||||
@ -66,11 +66,11 @@ main: {
|
||||
jsr spawn_current
|
||||
jsr render_playfield
|
||||
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
|
||||
lda #3
|
||||
sta current_xpos_63
|
||||
ldx #0
|
||||
@ -119,13 +119,13 @@ main: {
|
||||
jsr render_playfield
|
||||
ldx current_ypos
|
||||
lda current_xpos
|
||||
sta current_xpos_95
|
||||
sta current_xpos_96
|
||||
lda current_piece_gfx
|
||||
sta current_piece_gfx_87
|
||||
sta current_piece_gfx_88
|
||||
lda current_piece_gfx+1
|
||||
sta current_piece_gfx_87+1
|
||||
sta current_piece_gfx_88+1
|
||||
lda current_piece_color
|
||||
sta current_piece_color_75
|
||||
sta current_piece_color_76
|
||||
jsr render_current
|
||||
b10:
|
||||
dec BORDERCOL
|
||||
@ -157,14 +157,14 @@ render_current: {
|
||||
ldx #0
|
||||
b3:
|
||||
ldy i
|
||||
lda (current_piece_gfx_63),y
|
||||
lda (current_piece_gfx_64),y
|
||||
inc i
|
||||
cmp #0
|
||||
beq b4
|
||||
lda xpos
|
||||
cmp #PLAYFIELD_COLS
|
||||
bcs b4
|
||||
lda current_piece_color_66
|
||||
lda current_piece_color_67
|
||||
ldy xpos
|
||||
sta (screen_line),y
|
||||
b4:
|
||||
@ -240,9 +240,9 @@ play_move_rotate: {
|
||||
ldy current_ypos
|
||||
ldx orientation
|
||||
lda current_piece
|
||||
sta current_piece_74
|
||||
sta current_piece_75
|
||||
lda current_piece+1
|
||||
sta current_piece_74+1
|
||||
sta current_piece_75+1
|
||||
jsr collision
|
||||
cmp #COLLISION_NONE
|
||||
bne b3
|
||||
@ -367,9 +367,9 @@ play_move_leftright: {
|
||||
ldy current_ypos
|
||||
ldx current_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 #COLLISION_NONE
|
||||
bne b3
|
||||
@ -388,9 +388,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
|
||||
@ -429,9 +429,9 @@ play_move_down: {
|
||||
sta collision.xpos
|
||||
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
|
||||
beq b6
|
||||
@ -489,108 +489,56 @@ sid_rnd: {
|
||||
rts
|
||||
}
|
||||
remove_lines: {
|
||||
.label done = 2
|
||||
.label c = 7
|
||||
.label x = 3
|
||||
.label y = 2
|
||||
.label full = 4
|
||||
lda #0
|
||||
sta done
|
||||
sta y
|
||||
ldx #PLAYFIELD_LINES*PLAYFIELD_COLS-1
|
||||
ldy #PLAYFIELD_LINES*PLAYFIELD_COLS-1
|
||||
b1:
|
||||
jsr find_line
|
||||
lda find_line.return
|
||||
cmp #$ff
|
||||
bne b2
|
||||
lda #1
|
||||
sta done
|
||||
b3:
|
||||
lda done
|
||||
cmp #0
|
||||
beq b1
|
||||
rts
|
||||
b2:
|
||||
sta remove_line.ypos
|
||||
jsr remove_line
|
||||
jmp b3
|
||||
}
|
||||
remove_line: {
|
||||
.label ypos = 3
|
||||
.label x = 4
|
||||
.label y = 3
|
||||
lda ypos
|
||||
tay
|
||||
lda playfield_lines_idx+1,y
|
||||
tay
|
||||
dey
|
||||
ldx ypos
|
||||
lda playfield_lines_idx,x
|
||||
tax
|
||||
dex
|
||||
b1:
|
||||
sta full
|
||||
lda #0
|
||||
sta x
|
||||
b2:
|
||||
lda playfield,x
|
||||
sta playfield,y
|
||||
lda playfield,y
|
||||
sta c
|
||||
dey
|
||||
cmp #0
|
||||
bne b3
|
||||
lda #0
|
||||
sta full
|
||||
b3:
|
||||
lda c
|
||||
sta playfield,x
|
||||
dex
|
||||
inc x
|
||||
lda x
|
||||
cmp #PLAYFIELD_COLS-1+1
|
||||
bne b2
|
||||
dec y
|
||||
lda y
|
||||
cmp #1
|
||||
bne b1
|
||||
rts
|
||||
}
|
||||
find_line: {
|
||||
.label i = 8
|
||||
.label y = 7
|
||||
.label return = 7
|
||||
.label i_2 = 3
|
||||
.label filled = 4
|
||||
.label i_3 = 3
|
||||
.label i_8 = 3
|
||||
.label i_10 = 3
|
||||
lda #0
|
||||
sta y
|
||||
sta i_3
|
||||
b1:
|
||||
lda #1
|
||||
sta filled
|
||||
ldx #0
|
||||
b2:
|
||||
ldy i_2
|
||||
iny
|
||||
sty i
|
||||
ldy i_2
|
||||
lda playfield,y
|
||||
cmp #0
|
||||
bne b3
|
||||
lda #0
|
||||
sta filled
|
||||
b3:
|
||||
inx
|
||||
cpx #PLAYFIELD_COLS-1+1
|
||||
bne b12
|
||||
lda filled
|
||||
lda full
|
||||
cmp #1
|
||||
bne b4
|
||||
breturn:
|
||||
rts
|
||||
txa
|
||||
clc
|
||||
adc #PLAYFIELD_COLS
|
||||
tax
|
||||
b4:
|
||||
inc y
|
||||
lda y
|
||||
cmp #PLAYFIELD_LINES-1+1
|
||||
bne b11
|
||||
lda #$ff
|
||||
sta return
|
||||
jmp breturn
|
||||
b11:
|
||||
lda i
|
||||
sta i_8
|
||||
jmp b1
|
||||
b12:
|
||||
lda i
|
||||
sta i_10
|
||||
jmp b2
|
||||
bne b1
|
||||
b5:
|
||||
cpx #$ff
|
||||
bne b6
|
||||
rts
|
||||
b6:
|
||||
lda #0
|
||||
sta playfield,x
|
||||
dex
|
||||
jmp b5
|
||||
}
|
||||
lock_current: {
|
||||
.label ypos2 = 2
|
||||
|
@ -1,13 +1,13 @@
|
||||
@begin: scope:[] from
|
||||
[0] phi()
|
||||
to:@27
|
||||
@27: scope:[] from @begin
|
||||
to:@25
|
||||
@25: scope:[] from @begin
|
||||
[1] phi()
|
||||
[2] call main
|
||||
to:@end
|
||||
@end: scope:[] from @27
|
||||
@end: scope:[] from @25
|
||||
[3] phi()
|
||||
main: scope:[main] from @27
|
||||
main: scope:[main] from @25
|
||||
[4] phi()
|
||||
[5] call sid_rnd_init
|
||||
to:main::@21
|
||||
@ -28,10 +28,10 @@ main::@24: scope:[main] from main::@23
|
||||
[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
|
||||
[14] (byte*~) current_piece_gfx#87 ← (byte*) current_piece_gfx#10
|
||||
[15] (byte~) current_piece_color#75 ← (byte) current_piece_color#15
|
||||
[16] call render_current
|
||||
[17] (byte*~) current_piece#70 ← (byte*)*((const word[]) PIECES#0 + (byte~) spawn_current::$3)
|
||||
[17] (byte*~) current_piece#71 ← (byte*)*((const word[]) PIECES#0 + (byte~) spawn_current::$3)
|
||||
to:main::@1
|
||||
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 )
|
||||
@ -41,7 +41,7 @@ main::@1: scope:[main] from main::@10 main::@25
|
||||
[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 )
|
||||
[18] (byte*) current_piece#11 ← phi( main::@10/(byte*) current_piece#13 main::@25/(byte*~) current_piece#71 )
|
||||
to:main::@4
|
||||
main::@4: scope:[main] from main::@1 main::@4
|
||||
[19] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@4
|
||||
@ -88,20 +88,20 @@ main::@19: scope:[main] from main::@31
|
||||
[44] call render_playfield
|
||||
to:main::@32
|
||||
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
|
||||
[45] (byte~) current_ypos#71 ← (byte) current_ypos#16
|
||||
[46] (byte~) current_xpos#96 ← (byte) current_xpos#23
|
||||
[47] (byte*~) current_piece_gfx#88 ← (byte*) current_piece_gfx#18
|
||||
[48] (byte~) current_piece_color#76 ← (byte) current_piece_color#13
|
||||
[49] call render_current
|
||||
to:main::@10
|
||||
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::@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 )
|
||||
[51] (byte) current_piece_color#67 ← phi( main::@25/(byte~) current_piece_color#75 main::@32/(byte~) current_piece_color#76 )
|
||||
[51] (byte*) current_piece_gfx#64 ← phi( main::@25/(byte*~) current_piece_gfx#87 main::@32/(byte*~) current_piece_gfx#88 )
|
||||
[51] (byte) current_xpos#63 ← phi( main::@25/(byte/signed byte/word/signed word/dword/signed dword) 3 main::@32/(byte~) current_xpos#96 )
|
||||
[51] (byte) current_ypos#22 ← phi( main::@25/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@32/(byte~) current_ypos#71 )
|
||||
[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
|
||||
@ -118,7 +118,7 @@ render_current::@3: scope:[render_current] from render_current::@4 render_curre
|
||||
[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)
|
||||
[58] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#64 + (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
|
||||
@ -126,7 +126,7 @@ render_current::@7: scope:[render_current] from render_current::@3
|
||||
[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
|
||||
[62] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_color#66
|
||||
[62] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_color#67
|
||||
to:render_current::@4
|
||||
render_current::@4: scope:[render_current] from render_current::@3 render_current::@7 render_current::@8
|
||||
[63] (byte) render_current::xpos#1 ← ++ (byte) render_current::xpos#2
|
||||
@ -189,7 +189,7 @@ play_move_rotate::@4: scope:[play_move_rotate] from play_move_rotate::@1 play_m
|
||||
[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
|
||||
[94] (byte*~) current_piece#75 ← (byte*) current_piece#13
|
||||
[95] call collision
|
||||
[96] (byte) collision::return#13 ← (byte) collision::return#14
|
||||
to:play_move_rotate::@14
|
||||
@ -209,7 +209,7 @@ collision: scope:[collision] from play_move_down::@12 play_move_leftright::@1 p
|
||||
[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 )
|
||||
[103] (byte*) current_piece#15 ← phi( play_move_down::@12/(byte*~) current_piece#72 play_move_leftright::@1/(byte*~) current_piece#73 play_move_leftright::@7/(byte*~) current_piece#74 play_move_rotate::@4/(byte*~) current_piece#75 )
|
||||
[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
|
||||
@ -270,7 +270,7 @@ play_move_leftright::@7: scope:[play_move_leftright] from play_move_leftright::
|
||||
[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
|
||||
[132] (byte*~) current_piece#74 ← (byte*) current_piece#13
|
||||
[133] call collision
|
||||
[134] (byte) collision::return#12 ← (byte) collision::return#14
|
||||
to:play_move_leftright::@15
|
||||
@ -290,7 +290,7 @@ play_move_leftright::@1: scope:[play_move_leftright] from play_move_leftright
|
||||
[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
|
||||
[143] (byte*~) current_piece#73 ← (byte*) current_piece#13
|
||||
[144] call collision
|
||||
[145] (byte) collision::return#1 ← (byte) collision::return#14
|
||||
to:play_move_leftright::@14
|
||||
@ -338,7 +338,7 @@ play_move_down::@12: scope:[play_move_down] from play_move_down::@4
|
||||
[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
|
||||
[167] (byte*~) current_piece#72 ← (byte*) current_piece#11
|
||||
[168] call collision
|
||||
[169] (byte) collision::return#0 ← (byte) collision::return#14
|
||||
to:play_move_down::@18
|
||||
@ -357,14 +357,14 @@ play_move_down::@19: scope:[play_move_down] from play_move_down::@13
|
||||
play_move_down::@20: scope:[play_move_down] from play_move_down::@19
|
||||
[176] phi()
|
||||
[177] call spawn_current
|
||||
[178] (byte*~) current_piece#75 ← (byte*)*((const word[]) PIECES#0 + (byte~) spawn_current::$3)
|
||||
[178] (byte*~) current_piece#76 ← (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
|
||||
[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_piece#23 ← phi( play_move_down::@20/(byte*~) current_piece#76 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
|
||||
@ -414,343 +414,303 @@ sid_rnd::@return: scope:[sid_rnd] from sid_rnd
|
||||
remove_lines: scope:[remove_lines] from play_move_down::@19
|
||||
[197] phi()
|
||||
to:remove_lines::@1
|
||||
remove_lines::@1: scope:[remove_lines] from remove_lines remove_lines::@3
|
||||
[198] (byte) remove_lines::done#3 ← phi( remove_lines/(byte/signed byte/word/signed word/dword/signed dword) 0 remove_lines::@3/(byte) remove_lines::done#2 )
|
||||
[199] call find_line
|
||||
[200] (byte) find_line::return#0 ← (byte) find_line::return#2
|
||||
to:remove_lines::@7
|
||||
remove_lines::@7: scope:[remove_lines] from remove_lines::@1
|
||||
[201] (byte) remove_lines::line_ypos#0 ← (byte) find_line::return#0
|
||||
[202] if((byte) remove_lines::line_ypos#0!=(byte/word/signed word/dword/signed dword) 255) goto remove_lines::@2
|
||||
remove_lines::@1: scope:[remove_lines] from remove_lines remove_lines::@4
|
||||
[198] (byte) remove_lines::y#8 ← phi( remove_lines/(byte/signed byte/word/signed word/dword/signed dword) 0 remove_lines::@4/(byte) remove_lines::y#1 )
|
||||
[198] (byte) remove_lines::w#12 ← phi( remove_lines/(const byte) PLAYFIELD_LINES#0*(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1 remove_lines::@4/(byte) remove_lines::w#11 )
|
||||
[198] (byte) remove_lines::r#3 ← phi( remove_lines/(const byte) PLAYFIELD_LINES#0*(const byte) PLAYFIELD_COLS#0-(byte/signed byte/word/signed word/dword/signed dword) 1 remove_lines::@4/(byte) remove_lines::r#1 )
|
||||
to:remove_lines::@2
|
||||
remove_lines::@2: scope:[remove_lines] from remove_lines::@1 remove_lines::@3
|
||||
[199] (byte) remove_lines::full#4 ← phi( remove_lines::@1/(byte/signed byte/word/signed word/dword/signed dword) 1 remove_lines::@3/(byte) remove_lines::full#2 )
|
||||
[199] (byte) remove_lines::x#2 ← phi( remove_lines::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 remove_lines::@3/(byte) remove_lines::x#1 )
|
||||
[199] (byte) remove_lines::w#4 ← phi( remove_lines::@1/(byte) remove_lines::w#12 remove_lines::@3/(byte) remove_lines::w#1 )
|
||||
[199] (byte) remove_lines::r#2 ← phi( remove_lines::@1/(byte) remove_lines::r#3 remove_lines::@3/(byte) remove_lines::r#1 )
|
||||
[200] (byte) remove_lines::c#0 ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) remove_lines::r#2)
|
||||
[201] (byte) remove_lines::r#1 ← -- (byte) remove_lines::r#2
|
||||
[202] if((byte) remove_lines::c#0!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto remove_lines::@17
|
||||
to:remove_lines::@3
|
||||
remove_lines::@3: scope:[remove_lines] from remove_lines::@2 remove_lines::@7
|
||||
[203] (byte) remove_lines::done#2 ← phi( remove_lines::@7/(byte/signed byte/word/signed word/dword/signed dword) 1 remove_lines::@2/(byte) remove_lines::done#3 )
|
||||
[204] if((byte) remove_lines::done#2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto remove_lines::@1
|
||||
remove_lines::@3: scope:[remove_lines] from remove_lines::@17 remove_lines::@2
|
||||
[203] (byte) remove_lines::full#2 ← phi( remove_lines::@17/(byte) remove_lines::full#4 remove_lines::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 )
|
||||
[204] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) remove_lines::w#4) ← (byte) remove_lines::c#0
|
||||
[205] (byte) remove_lines::w#1 ← -- (byte) remove_lines::w#4
|
||||
[206] (byte) remove_lines::x#1 ← ++ (byte) remove_lines::x#2
|
||||
[207] if((byte) 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 remove_lines::@2
|
||||
to:remove_lines::@9
|
||||
remove_lines::@9: scope:[remove_lines] from remove_lines::@3
|
||||
[208] if((byte) remove_lines::full#2!=(byte/signed byte/word/signed word/dword/signed dword) 1) goto remove_lines::@4
|
||||
to:remove_lines::@10
|
||||
remove_lines::@10: scope:[remove_lines] from remove_lines::@9
|
||||
[209] (byte) remove_lines::w#2 ← (byte) remove_lines::w#1 + (const byte) PLAYFIELD_COLS#0
|
||||
to:remove_lines::@4
|
||||
remove_lines::@4: scope:[remove_lines] from remove_lines::@10 remove_lines::@9
|
||||
[210] (byte) remove_lines::w#11 ← phi( remove_lines::@10/(byte) remove_lines::w#2 remove_lines::@9/(byte) remove_lines::w#1 )
|
||||
[211] (byte) remove_lines::y#1 ← ++ (byte) remove_lines::y#8
|
||||
[212] if((byte) 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 remove_lines::@1
|
||||
to:remove_lines::@5
|
||||
remove_lines::@5: scope:[remove_lines] from remove_lines::@4 remove_lines::@6
|
||||
[213] (byte) remove_lines::w#6 ← phi( remove_lines::@4/(byte) remove_lines::w#11 remove_lines::@6/(byte) remove_lines::w#3 )
|
||||
[214] if((byte) remove_lines::w#6!=(byte/word/signed word/dword/signed dword) 255) goto remove_lines::@6
|
||||
to:remove_lines::@return
|
||||
remove_lines::@return: scope:[remove_lines] from remove_lines::@3
|
||||
[205] return
|
||||
remove_lines::@return: scope:[remove_lines] from remove_lines::@5
|
||||
[215] return
|
||||
to:@return
|
||||
remove_lines::@2: scope:[remove_lines] from remove_lines::@7
|
||||
[206] (byte) remove_line::ypos#0 ← (byte) remove_lines::line_ypos#0
|
||||
[207] call remove_line
|
||||
remove_lines::@6: scope:[remove_lines] from remove_lines::@5
|
||||
[216] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) remove_lines::w#6) ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
[217] (byte) remove_lines::w#3 ← -- (byte) remove_lines::w#6
|
||||
to:remove_lines::@5
|
||||
remove_lines::@17: scope:[remove_lines] from remove_lines::@2
|
||||
[218] phi()
|
||||
to:remove_lines::@3
|
||||
remove_line: scope:[remove_line] from remove_lines::@2
|
||||
[208] (byte~) remove_line::$0 ← (byte) remove_line::ypos#0
|
||||
[209] (byte) remove_line::i2#0 ← *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0+(byte/signed byte/word/signed word/dword/signed dword) 1 + (byte~) remove_line::$0) - (byte/signed byte/word/signed word/dword/signed dword) 1
|
||||
[210] (byte) remove_line::i1#0 ← *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) remove_line::ypos#0) - (byte/signed byte/word/signed word/dword/signed dword) 1
|
||||
to:remove_line::@1
|
||||
remove_line::@1: scope:[remove_line] from remove_line remove_line::@3
|
||||
[211] (byte) remove_line::y#4 ← phi( remove_line/(byte) remove_line::ypos#0 remove_line::@3/(byte) remove_line::y#1 )
|
||||
[211] (byte) remove_line::i2#3 ← phi( remove_line/(byte) remove_line::i2#0 remove_line::@3/(byte) remove_line::i2#1 )
|
||||
[211] (byte) remove_line::i1#3 ← phi( remove_line/(byte) remove_line::i1#0 remove_line::@3/(byte) remove_line::i1#1 )
|
||||
to:remove_line::@2
|
||||
remove_line::@2: scope:[remove_line] from remove_line::@1 remove_line::@2
|
||||
[212] (byte) remove_line::x#2 ← phi( remove_line::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 remove_line::@2/(byte) remove_line::x#1 )
|
||||
[212] (byte) remove_line::i2#2 ← phi( remove_line::@1/(byte) remove_line::i2#3 remove_line::@2/(byte) remove_line::i2#1 )
|
||||
[212] (byte) remove_line::i1#2 ← phi( remove_line::@1/(byte) remove_line::i1#3 remove_line::@2/(byte) remove_line::i1#1 )
|
||||
[213] *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) remove_line::i2#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) remove_line::i1#2)
|
||||
[214] (byte) remove_line::i2#1 ← -- (byte) remove_line::i2#2
|
||||
[215] (byte) remove_line::i1#1 ← -- (byte) remove_line::i1#2
|
||||
[216] (byte) remove_line::x#1 ← ++ (byte) remove_line::x#2
|
||||
[217] if((byte) remove_line::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 remove_line::@2
|
||||
to:remove_line::@3
|
||||
remove_line::@3: scope:[remove_line] from remove_line::@2
|
||||
[218] (byte) remove_line::y#1 ← -- (byte) remove_line::y#4
|
||||
[219] if((byte) remove_line::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 1) goto remove_line::@1
|
||||
to:remove_line::@return
|
||||
remove_line::@return: scope:[remove_line] from remove_line::@3
|
||||
[220] return
|
||||
to:@return
|
||||
find_line: scope:[find_line] from remove_lines::@1
|
||||
[221] phi()
|
||||
to:find_line::@1
|
||||
find_line::@1: scope:[find_line] from find_line find_line::@11
|
||||
[222] (byte) find_line::y#8 ← phi( find_line/(byte/signed byte/word/signed word/dword/signed dword) 0 find_line::@11/(byte) find_line::y#1 )
|
||||
[222] (byte) find_line::i#3 ← phi( find_line/(byte/signed byte/word/signed word/dword/signed dword) 0 find_line::@11/(byte~) find_line::i#8 )
|
||||
to:find_line::@2
|
||||
find_line::@2: scope:[find_line] from find_line::@1 find_line::@12
|
||||
[223] (byte) find_line::filled#4 ← phi( find_line::@1/(byte/signed byte/word/signed word/dword/signed dword) 1 find_line::@12/(byte) find_line::filled#2 )
|
||||
[223] (byte) find_line::x#2 ← phi( find_line::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 find_line::@12/(byte) find_line::x#1 )
|
||||
[223] (byte) find_line::i#2 ← phi( find_line::@1/(byte) find_line::i#3 find_line::@12/(byte~) find_line::i#10 )
|
||||
[224] (byte) find_line::i#1 ← ++ (byte) find_line::i#2
|
||||
[225] if(*((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) find_line::i#2)!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto find_line::@13
|
||||
to:find_line::@3
|
||||
find_line::@3: scope:[find_line] from find_line::@13 find_line::@2
|
||||
[226] (byte) find_line::filled#2 ← phi( find_line::@13/(byte) find_line::filled#4 find_line::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 )
|
||||
[227] (byte) find_line::x#1 ← ++ (byte) find_line::x#2
|
||||
[228] if((byte) find_line::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 find_line::@12
|
||||
to:find_line::@6
|
||||
find_line::@6: scope:[find_line] from find_line::@3
|
||||
[229] if((byte) find_line::filled#2!=(byte/signed byte/word/signed word/dword/signed dword) 1) goto find_line::@4
|
||||
to:find_line::@return
|
||||
find_line::@return: scope:[find_line] from find_line::@4 find_line::@6
|
||||
[230] (byte) find_line::return#2 ← phi( find_line::@6/(byte) find_line::y#8 find_line::@4/(byte/word/signed word/dword/signed dword) 255 )
|
||||
[231] return
|
||||
to:@return
|
||||
find_line::@4: scope:[find_line] from find_line::@6
|
||||
[232] (byte) find_line::y#1 ← ++ (byte) find_line::y#8
|
||||
[233] if((byte) find_line::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 find_line::@11
|
||||
to:find_line::@return
|
||||
find_line::@11: scope:[find_line] from find_line::@4
|
||||
[234] (byte~) find_line::i#8 ← (byte) find_line::i#1
|
||||
to:find_line::@1
|
||||
find_line::@12: scope:[find_line] from find_line::@3
|
||||
[235] (byte~) find_line::i#10 ← (byte) find_line::i#1
|
||||
to:find_line::@2
|
||||
find_line::@13: scope:[find_line] from find_line::@2
|
||||
[236] phi()
|
||||
to:find_line::@3
|
||||
lock_current: scope:[lock_current] from play_move_down::@13
|
||||
[237] (byte) lock_current::ypos2#0 ← (byte) current_ypos#12 << (byte/signed byte/word/signed word/dword/signed dword) 1
|
||||
[219] (byte) lock_current::ypos2#0 ← (byte) current_ypos#12 << (byte/signed byte/word/signed word/dword/signed dword) 1
|
||||
to:lock_current::@1
|
||||
lock_current::@1: scope:[lock_current] from lock_current lock_current::@7
|
||||
[238] (byte) lock_current::l#6 ← phi( lock_current/(byte/signed byte/word/signed word/dword/signed dword) 0 lock_current::@7/(byte) lock_current::l#1 )
|
||||
[238] (byte) lock_current::i#3 ← phi( lock_current/(byte/signed byte/word/signed word/dword/signed dword) 0 lock_current::@7/(byte~) lock_current::i#7 )
|
||||
[238] (byte) lock_current::ypos2#2 ← phi( lock_current/(byte) lock_current::ypos2#0 lock_current::@7/(byte) lock_current::ypos2#1 )
|
||||
[239] (byte*) lock_current::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) lock_current::ypos2#2)
|
||||
[240] (byte) lock_current::col#0 ← (byte) current_xpos#16
|
||||
[220] (byte) lock_current::l#6 ← phi( lock_current/(byte/signed byte/word/signed word/dword/signed dword) 0 lock_current::@7/(byte) lock_current::l#1 )
|
||||
[220] (byte) lock_current::i#3 ← phi( lock_current/(byte/signed byte/word/signed word/dword/signed dword) 0 lock_current::@7/(byte~) lock_current::i#7 )
|
||||
[220] (byte) lock_current::ypos2#2 ← phi( lock_current/(byte) lock_current::ypos2#0 lock_current::@7/(byte) lock_current::ypos2#1 )
|
||||
[221] (byte*) lock_current::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) lock_current::ypos2#2)
|
||||
[222] (byte) lock_current::col#0 ← (byte) current_xpos#16
|
||||
to:lock_current::@2
|
||||
lock_current::@2: scope:[lock_current] from lock_current::@1 lock_current::@8
|
||||
[241] (byte) lock_current::c#2 ← phi( lock_current::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 lock_current::@8/(byte) lock_current::c#1 )
|
||||
[241] (byte) lock_current::col#2 ← phi( lock_current::@1/(byte) lock_current::col#0 lock_current::@8/(byte) lock_current::col#1 )
|
||||
[241] (byte) lock_current::i#2 ← phi( lock_current::@1/(byte) lock_current::i#3 lock_current::@8/(byte~) lock_current::i#9 )
|
||||
[242] (byte) lock_current::i#1 ← ++ (byte) lock_current::i#2
|
||||
[243] if(*((byte*) current_piece_gfx#15 + (byte) lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto lock_current::@3
|
||||
[223] (byte) lock_current::c#2 ← phi( lock_current::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 lock_current::@8/(byte) lock_current::c#1 )
|
||||
[223] (byte) lock_current::col#2 ← phi( lock_current::@1/(byte) lock_current::col#0 lock_current::@8/(byte) lock_current::col#1 )
|
||||
[223] (byte) lock_current::i#2 ← phi( lock_current::@1/(byte) lock_current::i#3 lock_current::@8/(byte~) lock_current::i#9 )
|
||||
[224] (byte) lock_current::i#1 ← ++ (byte) lock_current::i#2
|
||||
[225] if(*((byte*) current_piece_gfx#15 + (byte) lock_current::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto lock_current::@3
|
||||
to:lock_current::@4
|
||||
lock_current::@4: scope:[lock_current] from lock_current::@2
|
||||
[244] *((byte*) lock_current::playfield_line#0 + (byte) lock_current::col#2) ← (byte) current_piece_color#11
|
||||
[226] *((byte*) lock_current::playfield_line#0 + (byte) lock_current::col#2) ← (byte) current_piece_color#11
|
||||
to:lock_current::@3
|
||||
lock_current::@3: scope:[lock_current] from lock_current::@2 lock_current::@4
|
||||
[245] (byte) lock_current::col#1 ← ++ (byte) lock_current::col#2
|
||||
[246] (byte) lock_current::c#1 ← ++ (byte) lock_current::c#2
|
||||
[247] if((byte) lock_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto lock_current::@8
|
||||
[227] (byte) lock_current::col#1 ← ++ (byte) lock_current::col#2
|
||||
[228] (byte) lock_current::c#1 ← ++ (byte) lock_current::c#2
|
||||
[229] if((byte) lock_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto lock_current::@8
|
||||
to:lock_current::@5
|
||||
lock_current::@5: scope:[lock_current] from lock_current::@3
|
||||
[248] (byte) lock_current::ypos2#1 ← (byte) lock_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2
|
||||
[249] (byte) lock_current::l#1 ← ++ (byte) lock_current::l#6
|
||||
[250] if((byte) lock_current::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto lock_current::@7
|
||||
[230] (byte) lock_current::ypos2#1 ← (byte) lock_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2
|
||||
[231] (byte) lock_current::l#1 ← ++ (byte) lock_current::l#6
|
||||
[232] if((byte) lock_current::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto lock_current::@7
|
||||
to:lock_current::@return
|
||||
lock_current::@return: scope:[lock_current] from lock_current::@5
|
||||
[251] return
|
||||
[233] return
|
||||
to:@return
|
||||
lock_current::@7: scope:[lock_current] from lock_current::@5
|
||||
[252] (byte~) lock_current::i#7 ← (byte) lock_current::i#1
|
||||
[234] (byte~) lock_current::i#7 ← (byte) lock_current::i#1
|
||||
to:lock_current::@1
|
||||
lock_current::@8: scope:[lock_current] from lock_current::@3
|
||||
[253] (byte~) lock_current::i#9 ← (byte) lock_current::i#1
|
||||
[235] (byte~) lock_current::i#9 ← (byte) lock_current::i#1
|
||||
to: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
|
||||
[254] (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 )
|
||||
[255] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte/signed byte/word/signed word/dword/signed dword) 3
|
||||
[256] (byte) keyboard_event_pressed::row_bits#0 ← *((const byte[8]) keyboard_scan_values#0 + (byte~) keyboard_event_pressed::$0)
|
||||
[257] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte/signed byte/word/signed word/dword/signed dword) 7
|
||||
[258] (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)
|
||||
[236] (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 )
|
||||
[237] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte/signed byte/word/signed word/dword/signed dword) 3
|
||||
[238] (byte) keyboard_event_pressed::row_bits#0 ← *((const byte[8]) keyboard_scan_values#0 + (byte~) keyboard_event_pressed::$0)
|
||||
[239] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte/signed byte/word/signed word/dword/signed dword) 7
|
||||
[240] (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
|
||||
[259] return
|
||||
[241] return
|
||||
to:@return
|
||||
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
|
||||
[242] 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
|
||||
[261] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13
|
||||
[262] (byte) keyboard_event_get::return#1 ← *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#4)
|
||||
[243] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13
|
||||
[244] (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
|
||||
[263] (byte) keyboard_events_size#16 ← phi( keyboard_event_get/(byte) keyboard_events_size#13 keyboard_event_get::@3/(byte) keyboard_events_size#4 )
|
||||
[263] (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 )
|
||||
[264] return
|
||||
[245] (byte) keyboard_events_size#16 ← phi( keyboard_event_get/(byte) keyboard_events_size#13 keyboard_event_get::@3/(byte) keyboard_events_size#4 )
|
||||
[245] (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 )
|
||||
[246] return
|
||||
to:@return
|
||||
keyboard_event_scan: scope:[keyboard_event_scan] from main::@9
|
||||
[265] phi()
|
||||
[247] phi()
|
||||
to:keyboard_event_scan::@1
|
||||
keyboard_event_scan::@1: scope:[keyboard_event_scan] from keyboard_event_scan keyboard_event_scan::@3
|
||||
[266] (byte) keyboard_events_size#29 ← phi( keyboard_event_scan/(byte) keyboard_events_size#19 keyboard_event_scan::@3/(byte) keyboard_events_size#13 )
|
||||
[266] (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 )
|
||||
[266] (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 )
|
||||
[267] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2
|
||||
[268] call keyboard_matrix_read
|
||||
[269] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0
|
||||
[248] (byte) keyboard_events_size#29 ← phi( keyboard_event_scan/(byte) keyboard_events_size#19 keyboard_event_scan::@3/(byte) keyboard_events_size#13 )
|
||||
[248] (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 )
|
||||
[248] (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 )
|
||||
[249] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2
|
||||
[250] call keyboard_matrix_read
|
||||
[251] (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
|
||||
[270] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2
|
||||
[271] 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
|
||||
[252] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2
|
||||
[253] 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
|
||||
[272] (byte) keyboard_event_scan::keycode#1 ← (byte) keyboard_event_scan::keycode#11 + (byte/signed byte/word/signed word/dword/signed dword) 8
|
||||
[254] (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
|
||||
[273] (byte) keyboard_events_size#13 ← phi( keyboard_event_scan::@13/(byte) keyboard_events_size#29 keyboard_event_scan::@19/(byte) keyboard_events_size#30 )
|
||||
[273] (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 )
|
||||
[274] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2
|
||||
[275] if((byte) keyboard_event_scan::row#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@1
|
||||
[255] (byte) keyboard_events_size#13 ← phi( keyboard_event_scan::@13/(byte) keyboard_events_size#29 keyboard_event_scan::@19/(byte) keyboard_events_size#30 )
|
||||
[255] (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 )
|
||||
[256] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2
|
||||
[257] 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
|
||||
[276] phi()
|
||||
[277] call keyboard_event_pressed
|
||||
[278] (byte) keyboard_event_pressed::return#0 ← (byte) keyboard_event_pressed::return#11
|
||||
[258] phi()
|
||||
[259] call keyboard_event_pressed
|
||||
[260] (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
|
||||
[279] (byte~) keyboard_event_scan::$14 ← (byte) keyboard_event_pressed::return#0
|
||||
[280] if((byte~) keyboard_event_scan::$14==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@9
|
||||
[261] (byte~) keyboard_event_scan::$14 ← (byte) keyboard_event_pressed::return#0
|
||||
[262] 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
|
||||
[281] phi()
|
||||
[263] phi()
|
||||
to:keyboard_event_scan::@9
|
||||
keyboard_event_scan::@9: scope:[keyboard_event_scan] from keyboard_event_scan::@21 keyboard_event_scan::@26
|
||||
[282] phi()
|
||||
[283] call keyboard_event_pressed
|
||||
[284] (byte) keyboard_event_pressed::return#1 ← (byte) keyboard_event_pressed::return#11
|
||||
[264] phi()
|
||||
[265] call keyboard_event_pressed
|
||||
[266] (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
|
||||
[285] (byte~) keyboard_event_scan::$18 ← (byte) keyboard_event_pressed::return#1
|
||||
[286] if((byte~) keyboard_event_scan::$18==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@10
|
||||
[267] (byte~) keyboard_event_scan::$18 ← (byte) keyboard_event_pressed::return#1
|
||||
[268] 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
|
||||
[287] phi()
|
||||
[269] phi()
|
||||
to:keyboard_event_scan::@10
|
||||
keyboard_event_scan::@10: scope:[keyboard_event_scan] from keyboard_event_scan::@22 keyboard_event_scan::@27
|
||||
[288] phi()
|
||||
[289] call keyboard_event_pressed
|
||||
[290] (byte) keyboard_event_pressed::return#2 ← (byte) keyboard_event_pressed::return#11
|
||||
[270] phi()
|
||||
[271] call keyboard_event_pressed
|
||||
[272] (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
|
||||
[291] (byte~) keyboard_event_scan::$22 ← (byte) keyboard_event_pressed::return#2
|
||||
[292] if((byte~) keyboard_event_scan::$22==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@11
|
||||
[273] (byte~) keyboard_event_scan::$22 ← (byte) keyboard_event_pressed::return#2
|
||||
[274] 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
|
||||
[293] phi()
|
||||
[275] phi()
|
||||
to:keyboard_event_scan::@11
|
||||
keyboard_event_scan::@11: scope:[keyboard_event_scan] from keyboard_event_scan::@23 keyboard_event_scan::@28
|
||||
[294] phi()
|
||||
[295] call keyboard_event_pressed
|
||||
[296] (byte) keyboard_event_pressed::return#10 ← (byte) keyboard_event_pressed::return#11
|
||||
[276] phi()
|
||||
[277] call keyboard_event_pressed
|
||||
[278] (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
|
||||
[297] (byte~) keyboard_event_scan::$26 ← (byte) keyboard_event_pressed::return#10
|
||||
[298] if((byte~) keyboard_event_scan::$26==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@return
|
||||
[279] (byte~) keyboard_event_scan::$26 ← (byte) keyboard_event_pressed::return#10
|
||||
[280] 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
|
||||
[299] phi()
|
||||
[281] phi()
|
||||
to:keyboard_event_scan::@return
|
||||
keyboard_event_scan::@return: scope:[keyboard_event_scan] from keyboard_event_scan::@24 keyboard_event_scan::@29
|
||||
[300] return
|
||||
[282] return
|
||||
to:@return
|
||||
keyboard_event_scan::@4: scope:[keyboard_event_scan] from keyboard_event_scan::@25 keyboard_event_scan::@5
|
||||
[301] (byte) keyboard_events_size#10 ← phi( keyboard_event_scan::@25/(byte) keyboard_events_size#29 keyboard_event_scan::@5/(byte) keyboard_events_size#30 )
|
||||
[301] (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 )
|
||||
[301] (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 )
|
||||
[302] (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)
|
||||
[303] (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2)
|
||||
[304] if((byte~) keyboard_event_scan::$4==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@5
|
||||
[283] (byte) keyboard_events_size#10 ← phi( keyboard_event_scan::@25/(byte) keyboard_events_size#29 keyboard_event_scan::@5/(byte) keyboard_events_size#30 )
|
||||
[283] (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 )
|
||||
[283] (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 )
|
||||
[284] (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)
|
||||
[285] (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2)
|
||||
[286] 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
|
||||
[305] if((byte) keyboard_events_size#10==(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@5
|
||||
[287] 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
|
||||
[306] (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)
|
||||
[307] if((byte) keyboard_event_scan::event_type#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@7
|
||||
[288] (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)
|
||||
[289] 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
|
||||
[308] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10
|
||||
[309] (byte) keyboard_events_size#2 ← ++ (byte) keyboard_events_size#10
|
||||
[290] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10
|
||||
[291] (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
|
||||
[310] (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 )
|
||||
[311] (byte) keyboard_event_scan::keycode#15 ← ++ (byte) keyboard_event_scan::keycode#10
|
||||
[312] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2
|
||||
[313] if((byte) keyboard_event_scan::col#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@4
|
||||
[292] (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 )
|
||||
[293] (byte) keyboard_event_scan::keycode#15 ← ++ (byte) keyboard_event_scan::keycode#10
|
||||
[294] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2
|
||||
[295] 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
|
||||
[314] *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0
|
||||
[296] *((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
|
||||
[315] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64
|
||||
[316] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte/word/dword~) keyboard_event_scan::$11
|
||||
[317] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#10
|
||||
[297] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64
|
||||
[298] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte/word/dword~) keyboard_event_scan::$11
|
||||
[299] (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
|
||||
[318] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0)
|
||||
[319] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0)
|
||||
[300] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0)
|
||||
[301] (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
|
||||
[320] return
|
||||
[302] return
|
||||
to:@return
|
||||
tables_init: scope:[tables_init] from main::@22
|
||||
[321] phi()
|
||||
[303] phi()
|
||||
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
|
||||
[304] (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 )
|
||||
[304] (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 )
|
||||
[304] (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 )
|
||||
[305] (byte~) tables_init::$1 ← (byte) tables_init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1
|
||||
[306] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) tables_init::$1) ← (byte*) tables_init::pli#2
|
||||
[307] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) tables_init::j#2) ← (byte) tables_init::idx#2
|
||||
[308] (byte*) tables_init::pli#1 ← (byte*) tables_init::pli#2 + (const byte) PLAYFIELD_COLS#0
|
||||
[309] (byte) tables_init::idx#1 ← (byte) tables_init::idx#2 + (const byte) PLAYFIELD_COLS#0
|
||||
[310] (byte) tables_init::j#1 ← ++ (byte) tables_init::j#2
|
||||
[311] 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
|
||||
[312] *((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
|
||||
[313] return
|
||||
to:@return
|
||||
render_init: scope:[render_init] from main::@21
|
||||
[332] phi()
|
||||
[333] call fill
|
||||
[314] phi()
|
||||
[315] call fill
|
||||
to:render_init::@7
|
||||
render_init::@7: scope:[render_init] from render_init
|
||||
[334] phi()
|
||||
[335] call fill
|
||||
[316] phi()
|
||||
[317] 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
|
||||
[318] (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 )
|
||||
[318] (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 )
|
||||
[319] (byte~) render_init::$5 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1
|
||||
[320] *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte~) render_init::$5) ← (byte*) render_init::li#2
|
||||
[321] (byte*) render_init::li#1 ← (byte*) render_init::li#2 + (byte/signed byte/word/signed word/dword/signed dword) 40
|
||||
[322] (byte) render_init::i#1 ← ++ (byte) render_init::i#2
|
||||
[323] 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 )
|
||||
[324] (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 )
|
||||
[324] (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
|
||||
[325] (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 )
|
||||
[326] (byte*~) render_init::$10 ← (byte*) render_init::line#4 + (byte) render_init::c#2
|
||||
[327] *((byte*~) render_init::$10) ← (const byte) DARK_GREY#0
|
||||
[328] (byte) render_init::c#1 ← ++ (byte) render_init::c#2
|
||||
[329] 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
|
||||
[330] (byte*) render_init::line#1 ← (byte*) render_init::line#4 + (byte/signed byte/word/signed word/dword/signed dword) 40
|
||||
[331] (byte) render_init::l#1 ← ++ (byte) render_init::l#4
|
||||
[332] 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
|
||||
[333] 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
|
||||
[334] (byte) fill::val#3 ← phi( render_init/(byte/word/signed word/dword/signed dword) 160 render_init::@7/(const byte) BLACK#0 )
|
||||
[334] (byte*) fill::addr#0 ← phi( render_init/(const byte*) SCREEN#0 render_init::@7/(const byte*) COLS#0 )
|
||||
[335] (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
|
||||
[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
|
||||
[336] (byte*) fill::addr#2 ← phi( fill/(byte*) fill::addr#0 fill::@1/(byte*) fill::addr#1 )
|
||||
[337] *((byte*) fill::addr#2) ← (byte) fill::val#3
|
||||
[338] (byte*) fill::addr#1 ← ++ (byte*) fill::addr#2
|
||||
[339] if((byte*) fill::addr#1!=(byte*) fill::end#0) goto fill::@1
|
||||
to:fill::@return
|
||||
fill::@return: scope:[fill] from fill::@1
|
||||
[358] return
|
||||
[340] return
|
||||
to:@return
|
||||
sid_rnd_init: scope:[sid_rnd_init] from main
|
||||
[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
|
||||
[341] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535
|
||||
[342] *((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
|
||||
[361] return
|
||||
[343] return
|
||||
to:@return
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,4 +1,4 @@
|
||||
(label) @27
|
||||
(label) @25
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte) BLACK
|
||||
@ -165,30 +165,30 @@
|
||||
(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#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#71 current_piece zp ZP_WORD:12 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#74 zp ZP_WORD:5 4.0
|
||||
(byte*~) current_piece#75 current_piece zp ZP_WORD:12 4.0
|
||||
(byte*~) current_piece#75 current_piece#75 zp ZP_WORD:5 4.0
|
||||
(byte*~) current_piece#76 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.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#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_color#67 current_piece_color#67 zp ZP_BYTE:7 53.368421052631575
|
||||
(byte~) current_piece_color#75 current_piece_color#75 zp ZP_BYTE:7 4.0
|
||||
(byte~) current_piece_color#76 current_piece_color#76 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.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#64 current_piece_gfx#64 zp ZP_WORD:5 53.368421052631575
|
||||
(byte*) current_piece_gfx#8 current_piece_gfx zp ZP_WORD:15 4.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_piece_gfx#87 current_piece_gfx#87 zp ZP_WORD:5 2.0
|
||||
(byte*~) current_piece_gfx#88 current_piece_gfx#88 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
|
||||
@ -197,14 +197,14 @@
|
||||
(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#95 current_xpos#95 zp ZP_BYTE:4 7.333333333333333
|
||||
(byte~) current_xpos#96 current_xpos#96 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.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#70 reg byte x 5.5
|
||||
(byte~) current_ypos#71 reg byte x 5.5
|
||||
(void()) fill((byte*) fill::start , (word) fill::size , (byte) fill::val)
|
||||
(label) fill::@1
|
||||
(label) fill::@return
|
||||
@ -218,34 +218,6 @@
|
||||
(byte*) fill::start
|
||||
(byte) fill::val
|
||||
(byte) fill::val#3 reg byte x 1.8333333333333333
|
||||
(byte()) find_line()
|
||||
(label) find_line::@1
|
||||
(label) find_line::@11
|
||||
(label) find_line::@12
|
||||
(label) find_line::@13
|
||||
(label) find_line::@2
|
||||
(label) find_line::@3
|
||||
(label) find_line::@4
|
||||
(label) find_line::@6
|
||||
(label) find_line::@return
|
||||
(byte) find_line::filled
|
||||
(byte) find_line::filled#2 filled zp ZP_BYTE:4 5250.75
|
||||
(byte) find_line::filled#4 filled zp ZP_BYTE:4 5000.5
|
||||
(byte) find_line::i
|
||||
(byte) find_line::i#1 i zp ZP_BYTE:8 2333.6666666666665
|
||||
(byte~) find_line::i#10 i#10 zp ZP_BYTE:3 20002.0
|
||||
(byte) find_line::i#2 i#2 zp ZP_BYTE:3 15502.0
|
||||
(byte) find_line::i#3 i#3 zp ZP_BYTE:3 2002.0
|
||||
(byte~) find_line::i#8 i#8 zp ZP_BYTE:3 2002.0
|
||||
(byte) find_line::return
|
||||
(byte) find_line::return#0 reg byte a 202.0
|
||||
(byte) find_line::return#2 return zp ZP_BYTE:7 367.33333333333337
|
||||
(byte) find_line::x
|
||||
(byte) find_line::x#1 reg byte x 10001.0
|
||||
(byte) find_line::x#2 reg byte x 4000.4
|
||||
(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
|
||||
(byte()) keyboard_event_get()
|
||||
(label) keyboard_event_get::@3
|
||||
(label) keyboard_event_get::@return
|
||||
@ -473,41 +445,40 @@
|
||||
(const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 playfield_lines = { fill( PLAYFIELD_LINES#0, 0) }
|
||||
(byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx
|
||||
(const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 playfield_lines_idx = { fill( PLAYFIELD_LINES#0+1, 0) }
|
||||
(void()) remove_line((byte) remove_line::ypos)
|
||||
(byte~) remove_line::$0 reg byte a 4.0
|
||||
(label) remove_line::@1
|
||||
(label) remove_line::@2
|
||||
(label) remove_line::@3
|
||||
(label) remove_line::@return
|
||||
(byte) remove_line::i1
|
||||
(byte) remove_line::i1#0 reg byte x 4.0
|
||||
(byte) remove_line::i1#1 reg byte x 4200.6
|
||||
(byte) remove_line::i1#2 reg byte x 10334.666666666666
|
||||
(byte) remove_line::i1#3 reg byte x 2004.0
|
||||
(byte) remove_line::i2
|
||||
(byte) remove_line::i2#0 reg byte y 2.0
|
||||
(byte) remove_line::i2#1 reg byte y 3500.5
|
||||
(byte) remove_line::i2#2 reg byte y 15502.0
|
||||
(byte) remove_line::i2#3 reg byte y 2004.0
|
||||
(byte) remove_line::x
|
||||
(byte) remove_line::x#1 x zp ZP_BYTE:4 15001.5
|
||||
(byte) remove_line::x#2 x zp ZP_BYTE:4 5000.5
|
||||
(byte) remove_line::y
|
||||
(byte) remove_line::y#1 y zp ZP_BYTE:3 1501.5
|
||||
(byte) remove_line::y#4 y zp ZP_BYTE:3 286.2857142857143
|
||||
(byte) remove_line::ypos
|
||||
(byte) remove_line::ypos#0 ypos zp ZP_BYTE:3 26.75
|
||||
(void()) remove_lines()
|
||||
(label) remove_lines::@1
|
||||
(label) remove_lines::@10
|
||||
(label) remove_lines::@17
|
||||
(label) remove_lines::@2
|
||||
(label) remove_lines::@3
|
||||
(label) remove_lines::@7
|
||||
(label) remove_lines::@4
|
||||
(label) remove_lines::@5
|
||||
(label) remove_lines::@6
|
||||
(label) remove_lines::@9
|
||||
(label) remove_lines::@return
|
||||
(byte) remove_lines::done
|
||||
(byte) remove_lines::done#2 done zp ZP_BYTE:2 151.5
|
||||
(byte) remove_lines::done#3 done zp ZP_BYTE:2 28.857142857142858
|
||||
(byte) remove_lines::line_ypos
|
||||
(byte) remove_lines::line_ypos#0 reg byte a 151.5
|
||||
(byte) remove_lines::c
|
||||
(byte) remove_lines::c#0 c zp ZP_BYTE:7 600.5999999999999
|
||||
(byte) remove_lines::full
|
||||
(byte) remove_lines::full#2 full zp ZP_BYTE:4 420.59999999999997
|
||||
(byte) remove_lines::full#4 full zp ZP_BYTE:4 400.4
|
||||
(byte) remove_lines::r
|
||||
(byte) remove_lines::r#1 reg byte y 161.76923076923077
|
||||
(byte) remove_lines::r#2 reg byte y 1552.0
|
||||
(byte) remove_lines::r#3 reg byte y 202.0
|
||||
(byte) remove_lines::w
|
||||
(byte) remove_lines::w#1 reg byte x 551.0
|
||||
(byte) remove_lines::w#11 reg byte x 134.66666666666666
|
||||
(byte) remove_lines::w#12 reg byte x 202.0
|
||||
(byte) remove_lines::w#2 reg byte x 202.0
|
||||
(byte) remove_lines::w#3 reg byte x 202.0
|
||||
(byte) remove_lines::w#4 reg byte x 443.42857142857144
|
||||
(byte) remove_lines::w#6 reg byte x 168.33333333333331
|
||||
(byte) remove_lines::x
|
||||
(byte) remove_lines::x#1 x zp ZP_BYTE:3 1501.5
|
||||
(byte) remove_lines::x#2 x zp ZP_BYTE:3 250.25
|
||||
(byte) remove_lines::y
|
||||
(byte) remove_lines::y#1 y zp ZP_BYTE:2 151.5
|
||||
(byte) remove_lines::y#8 y zp ZP_BYTE:2 14.428571428571429
|
||||
(void()) render_current()
|
||||
(label) render_current::@1
|
||||
(label) render_current::@2
|
||||
@ -619,13 +590,13 @@
|
||||
(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 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#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: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::y#8 remove_lines::y#1 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_lines::x#2 remove_lines::x#1 lock_current::l#6 lock_current::l#1 ]
|
||||
reg byte x [ current_ypos#22 current_ypos#71 ]
|
||||
zp ZP_BYTE:4 [ current_xpos#63 current_xpos#96 render_playfield::l#2 render_playfield::l#1 play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 remove_lines::full#4 remove_lines::full#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#64 current_piece_gfx#87 current_piece_gfx#88 render_playfield::line#2 render_playfield::line#0 render_playfield::line#1 current_piece#15 current_piece#72 current_piece#73 current_piece#74 current_piece#75 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#67 current_piece_color#75 current_piece_color#76 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 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 remove_lines::c#0 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 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 ]
|
||||
zp ZP_BYTE:11 [ render_current::xpos#2 render_current::xpos#1 render_current::xpos#0 collision::col#2 collision::col#9 collision::col#1 ]
|
||||
@ -638,16 +609,15 @@ 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#75 current_piece#11 current_piece#13 current_piece#70 render_init::$10 fill::end#0 ]
|
||||
zp ZP_WORD:12 [ current_piece#23 current_piece#76 current_piece#11 current_piece#13 current_piece#71 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 ]
|
||||
zp ZP_BYTE:18 [ current_piece_color#23 current_piece_color#11 current_piece_color#13 current_piece_color#15 ]
|
||||
reg byte x [ play_move_down::return#3 ]
|
||||
reg byte x [ spawn_current::piece_idx#2 spawn_current::piece_idx#1 ]
|
||||
reg byte x [ remove_line::i1#2 remove_line::i1#3 remove_line::i1#0 remove_line::i1#1 ]
|
||||
reg byte y [ remove_line::i2#2 remove_line::i2#3 remove_line::i2#0 remove_line::i2#1 ]
|
||||
reg byte x [ find_line::x#2 find_line::x#1 ]
|
||||
reg byte y [ remove_lines::r#2 remove_lines::r#3 remove_lines::r#1 ]
|
||||
reg byte x [ remove_lines::w#6 remove_lines::w#4 remove_lines::w#12 remove_lines::w#11 remove_lines::w#1 remove_lines::w#2 remove_lines::w#3 ]
|
||||
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 ]
|
||||
@ -689,9 +659,6 @@ reg byte a [ play_move_down::$12 ]
|
||||
reg byte a [ sid_rnd::return#2 ]
|
||||
reg byte a [ spawn_current::$1 ]
|
||||
reg byte a [ sid_rnd::return#0 ]
|
||||
reg byte a [ find_line::return#0 ]
|
||||
reg byte a [ remove_lines::line_ypos#0 ]
|
||||
reg byte a [ remove_line::$0 ]
|
||||
reg byte a [ keyboard_event_pressed::$0 ]
|
||||
reg byte a [ keyboard_event_pressed::$1 ]
|
||||
reg byte a [ keyboard_event_pressed::return#11 ]
|
||||
|
Loading…
Reference in New Issue
Block a user