mirror of
https://gitlab.com/camelot/kickc.git
synced 2024-09-08 02:54:41 +00:00
Working on Tetris.
This commit is contained in:
parent
44e2075896
commit
eaa8d0c3fc
@ -49,7 +49,7 @@ public class TestPrograms {
|
||||
compileAndCompare("examples/tetris/tetris");
|
||||
}
|
||||
|
||||
/*
|
||||
/*
|
||||
@Test
|
||||
public void testVarInitProblem() throws IOException, URISyntaxException {
|
||||
compileAndCompare("var-init-problem");
|
||||
@ -64,8 +64,8 @@ public class TestPrograms {
|
||||
public void testTetrisNullPointer() throws IOException, URISyntaxException {
|
||||
compileAndCompare("tetris-npe");
|
||||
}
|
||||
*/
|
||||
|
||||
*/
|
||||
@Test
|
||||
public void testFastMultiply8() throws IOException, URISyntaxException {
|
||||
compileAndCompare("examples/fastmultiply/fastmultiply8.kc");
|
||||
|
@ -60,8 +60,9 @@ void main() {
|
||||
keyboard_event_scan();
|
||||
byte key_event = keyboard_event_get();
|
||||
byte render = 0;
|
||||
render += play_movedown(key_event);
|
||||
render += play_moveother(key_event);
|
||||
render += play_move_down(key_event);
|
||||
render += play_move_leftright(key_event);
|
||||
render += play_move_rotate(key_event);
|
||||
if(render!=0) {
|
||||
(*BORDERCOL)++;
|
||||
render_playfield();
|
||||
@ -74,7 +75,7 @@ void main() {
|
||||
|
||||
// Move down the current piece
|
||||
// Return non-zero if a render is needed
|
||||
byte play_movedown(byte key_event) {
|
||||
byte play_move_down(byte key_event) {
|
||||
// Handle moving down current piece
|
||||
++current_movedown_counter;
|
||||
byte movedown = 0;
|
||||
@ -94,7 +95,7 @@ byte play_movedown(byte key_event) {
|
||||
}
|
||||
// Attempt movedown
|
||||
if(movedown!=0) {
|
||||
if(collision(current_ypos+1, current_xpos)==COLLISION_NONE) {
|
||||
if(collision(current_xpos,current_ypos+1,current_piece_orientation)==COLLISION_NONE) {
|
||||
// Move current piece down
|
||||
current_ypos++;
|
||||
} else {
|
||||
@ -109,6 +110,44 @@ byte play_movedown(byte key_event) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
// Move left/right or rotate the current piece
|
||||
// Return non-zero if a render is needed
|
||||
byte play_move_leftright(byte key_event) {
|
||||
// Handle keyboard events
|
||||
if(key_event==KEY_COMMA) {
|
||||
if(collision(current_xpos-1,current_ypos,current_piece_orientation)==COLLISION_NONE) {
|
||||
current_xpos--;
|
||||
return 1;
|
||||
}
|
||||
} else if(key_event==KEY_DOT) {
|
||||
if(collision(current_xpos+1,current_ypos,current_piece_orientation)==COLLISION_NONE) {
|
||||
current_xpos++;
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
// Rotate the current piece based on key-presses
|
||||
// Return non-zero if a render is needed
|
||||
byte play_move_rotate(byte key_event) {
|
||||
// Handle keyboard events
|
||||
byte orientation = $80;
|
||||
if(key_event==KEY_Z) {
|
||||
orientation = (current_piece_orientation-$10)&$3f;
|
||||
} else if(key_event==KEY_X) {
|
||||
orientation = (current_piece_orientation+$10)&$3f;
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
if((collision(current_xpos, current_ypos, orientation) & (COLLISION_LEFT|COLLISION_RIGHT)) == 0) {
|
||||
current_piece_orientation = orientation;
|
||||
current_piece_gfx = current_piece + current_piece_orientation;
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
// No collision
|
||||
const byte COLLISION_NONE = 0;
|
||||
// Playfield piece collision (cell on top of other cell on the playfield)
|
||||
@ -122,18 +161,19 @@ const byte COLLISION_RIGHT = 8;
|
||||
|
||||
// Test if there is a collision between the current piece moved to (x, y) and anything on the playfield or the playfield boundaries
|
||||
// Returns information about the type of the collision detected
|
||||
byte collision(byte ypos, byte xpos) {
|
||||
byte collision(byte xpos, byte ypos, byte orientation) {
|
||||
byte* piece_gfx = current_piece + orientation;
|
||||
byte i = 0;
|
||||
for(byte l:0..3) {
|
||||
byte line = ypos + l;
|
||||
byte* playfield_line = playfield_lines[line<<1];
|
||||
byte ypos2 = ypos<<1;
|
||||
for(byte l:0..3) {
|
||||
byte* playfield_line = playfield_lines[ypos2];
|
||||
byte col = xpos;
|
||||
for(byte c:0..3) {
|
||||
if(current_piece_gfx[i++]!=0) {
|
||||
if(line>=PLAYFIELD_LINES) {
|
||||
if(piece_gfx[i++]!=0) {
|
||||
if(ypos2>=2*PLAYFIELD_LINES) {
|
||||
// Below the playfield bottom
|
||||
return COLLISION_BOTTOM;
|
||||
}
|
||||
byte col = xpos+c;
|
||||
if((col&$80)!=0) {
|
||||
// Beyond left side of the playfield
|
||||
return COLLISION_LEFT;
|
||||
@ -147,7 +187,9 @@ byte collision(byte ypos, byte xpos) {
|
||||
return COLLISION_PLAYFIELD;
|
||||
}
|
||||
}
|
||||
col++;
|
||||
}
|
||||
ypos2 += 2;
|
||||
}
|
||||
return COLLISION_NONE;
|
||||
}
|
||||
@ -178,36 +220,6 @@ void spawn_current() {
|
||||
current_ypos = 0;
|
||||
}
|
||||
|
||||
// Move left/right or rotate the current piece
|
||||
// Return non-zero if a render is needed
|
||||
byte play_moveother(byte key_event) {
|
||||
byte render = 0;
|
||||
// Handle other keyboard events
|
||||
if((key_event&$80)==0) {
|
||||
// New keyboard event
|
||||
if(key_event==KEY_COMMA) {
|
||||
if(collision(current_ypos,current_xpos-1)==COLLISION_NONE) {
|
||||
current_xpos--;
|
||||
render++;
|
||||
}
|
||||
} else if(key_event==KEY_DOT) {
|
||||
if(collision(current_ypos,current_xpos+1)==COLLISION_NONE) {
|
||||
current_xpos++;
|
||||
render++;
|
||||
}
|
||||
} else if(key_event==KEY_Z) {
|
||||
current_piece_orientation = (current_piece_orientation-$10)&$3f;
|
||||
current_piece_gfx = current_piece + current_piece_orientation;
|
||||
render++;
|
||||
} else if(key_event==KEY_X) {
|
||||
current_piece_orientation = (current_piece_orientation+$10)&$3f;
|
||||
current_piece_gfx = current_piece + current_piece_orientation;
|
||||
render++;
|
||||
}
|
||||
}
|
||||
return render;
|
||||
}
|
||||
|
||||
// Initialize the screen and data tables
|
||||
void init() {
|
||||
// Clear the screen
|
||||
@ -242,33 +254,33 @@ void render_playfield() {
|
||||
for(byte l:0..PLAYFIELD_LINES-1) {
|
||||
byte* line = screen_lines[l<<1];
|
||||
for(byte c:0..PLAYFIELD_COLS-1) {
|
||||
*(line+c) = playfield[i++];
|
||||
*(line++) = playfield[i++];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Render the current moving piece at position (current_xpos, current_ypos)
|
||||
void render_current() {
|
||||
byte i = 0;
|
||||
byte ypos2 = current_ypos<<1;
|
||||
for(byte l:0..3) {
|
||||
byte line = current_ypos + l;
|
||||
if(line<PLAYFIELD_LINES) {
|
||||
byte* screen_line = screen_lines[line<<1];
|
||||
if(ypos2<2*PLAYFIELD_LINES) {
|
||||
byte* screen_line = screen_lines[ypos2];
|
||||
byte xpos = current_xpos;
|
||||
for(byte c:0..3) {
|
||||
byte current_cell = current_piece_gfx[i++];
|
||||
if(current_cell!=0) {
|
||||
byte xpos = current_xpos+c;
|
||||
if(xpos<PLAYFIELD_COLS) {
|
||||
screen_line[xpos] = current_piece_color;
|
||||
}
|
||||
}
|
||||
xpos++;
|
||||
}
|
||||
}
|
||||
ypos2 += 2;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// The T-piece
|
||||
align($40) byte[4*4*4] piece_t = {
|
||||
1, 1, 1, 0,
|
||||
|
@ -28,44 +28,42 @@
|
||||
.const COLLISION_BOTTOM = 2
|
||||
.const COLLISION_LEFT = 4
|
||||
.const COLLISION_RIGHT = 8
|
||||
.label keyboard_events_size = $12
|
||||
.label keyboard_events_size = $13
|
||||
.label current_ypos = 2
|
||||
.label current_piece_orientation = $d
|
||||
.label current_piece_gfx = $e
|
||||
.label current_xpos = $11
|
||||
.label current_piece = $b
|
||||
.label current_piece_color = $10
|
||||
.label current_xpos = $12
|
||||
.label current_piece_orientation = $e
|
||||
.label current_piece_gfx = $f
|
||||
.label current_piece = $c
|
||||
.label current_piece_color = $11
|
||||
.label current_movedown_counter = 3
|
||||
.label current_ypos_35 = 4
|
||||
.label current_piece_gfx_46 = 5
|
||||
.label current_piece_gfx_75 = 5
|
||||
.label current_xpos_81 = 7
|
||||
.label current_piece_color_62 = 8
|
||||
.label current_ypos_75 = 4
|
||||
.label current_piece_gfx_99 = 5
|
||||
.label current_xpos_91 = 7
|
||||
.label current_piece_color_69 = 8
|
||||
.label current_piece_gfx_108 = 5
|
||||
.label current_piece_gfx_109 = 5
|
||||
.label current_piece_gfx_110 = 5
|
||||
.label current_piece_15 = 5
|
||||
.label current_xpos_62 = 4
|
||||
.label current_piece_gfx_61 = 5
|
||||
.label current_piece_color_63 = 7
|
||||
.label current_xpos_92 = 4
|
||||
.label current_piece_gfx_82 = 5
|
||||
.label current_piece_color_70 = 7
|
||||
.label current_piece_67 = 5
|
||||
.label current_piece_68 = 5
|
||||
.label current_piece_69 = 5
|
||||
.label current_piece_70 = 5
|
||||
jsr main
|
||||
main: {
|
||||
.label key_event = $a
|
||||
.label render = $13
|
||||
.label key_event = $14
|
||||
.label render = $15
|
||||
sei
|
||||
jsr init
|
||||
jsr spawn_current
|
||||
jsr render_playfield
|
||||
lda #GREEN
|
||||
sta current_piece_color_62
|
||||
lda #3
|
||||
sta current_xpos_81
|
||||
sta current_piece_color_63
|
||||
lda #<piece_t
|
||||
sta current_piece_gfx_75
|
||||
sta current_piece_gfx_61
|
||||
lda #>piece_t
|
||||
sta current_piece_gfx_75+1
|
||||
lda #0
|
||||
sta current_ypos_35
|
||||
sta current_piece_gfx_61+1
|
||||
lda #3
|
||||
sta current_xpos_62
|
||||
ldx #0
|
||||
jsr render_current
|
||||
lda #0
|
||||
sta current_movedown_counter
|
||||
@ -97,29 +95,33 @@ main: {
|
||||
jsr keyboard_event_scan
|
||||
jsr keyboard_event_get
|
||||
sta key_event
|
||||
jsr play_movedown
|
||||
jsr play_move_down
|
||||
txa
|
||||
clc
|
||||
adc #0
|
||||
sta render
|
||||
ldx key_event
|
||||
jsr play_moveother
|
||||
lda key_event
|
||||
jsr play_move_leftright
|
||||
clc
|
||||
adc render
|
||||
sta render
|
||||
lda key_event
|
||||
jsr play_move_rotate
|
||||
clc
|
||||
adc render
|
||||
cmp #0
|
||||
beq b10
|
||||
inc BORDERCOL
|
||||
jsr render_playfield
|
||||
lda current_ypos
|
||||
sta current_ypos_75
|
||||
lda current_piece_gfx
|
||||
sta current_piece_gfx_99
|
||||
lda current_piece_gfx+1
|
||||
sta current_piece_gfx_99+1
|
||||
ldx current_ypos
|
||||
lda current_xpos
|
||||
sta current_xpos_91
|
||||
sta current_xpos_92
|
||||
lda current_piece_gfx
|
||||
sta current_piece_gfx_82
|
||||
lda current_piece_gfx+1
|
||||
sta current_piece_gfx_82+1
|
||||
lda current_piece_color
|
||||
sta current_piece_color_69
|
||||
sta current_piece_color_70
|
||||
jsr render_current
|
||||
dec BORDERCOL
|
||||
b10:
|
||||
@ -127,44 +129,51 @@ main: {
|
||||
jmp b4
|
||||
}
|
||||
render_current: {
|
||||
.label ypos2 = 8
|
||||
.label l = 9
|
||||
.label screen_line = $14
|
||||
.label screen_line = $16
|
||||
.label xpos = $b
|
||||
.label i = $a
|
||||
txa
|
||||
asl
|
||||
sta ypos2
|
||||
lda #0
|
||||
sta i
|
||||
sta l
|
||||
b1:
|
||||
lda current_ypos_35
|
||||
clc
|
||||
adc l
|
||||
cmp #PLAYFIELD_LINES
|
||||
lda ypos2
|
||||
cmp #2*PLAYFIELD_LINES
|
||||
bcs b2
|
||||
asl
|
||||
tay
|
||||
lda screen_lines,y
|
||||
sta screen_line
|
||||
lda screen_lines+1,y
|
||||
sta screen_line+1
|
||||
lda current_xpos_62
|
||||
sta xpos
|
||||
ldx #0
|
||||
b3:
|
||||
ldy i
|
||||
lda (current_piece_gfx_75),y
|
||||
lda (current_piece_gfx_61),y
|
||||
inc i
|
||||
cmp #0
|
||||
beq b4
|
||||
txa
|
||||
clc
|
||||
adc current_xpos_81
|
||||
lda xpos
|
||||
cmp #PLAYFIELD_COLS
|
||||
bcs b4
|
||||
tay
|
||||
lda current_piece_color_62
|
||||
lda current_piece_color_63
|
||||
ldy xpos
|
||||
sta (screen_line),y
|
||||
b4:
|
||||
inc xpos
|
||||
inx
|
||||
cpx #4
|
||||
bne b3
|
||||
b2:
|
||||
lda ypos2
|
||||
clc
|
||||
adc #2
|
||||
sta ypos2
|
||||
inc l
|
||||
lda l
|
||||
cmp #4
|
||||
@ -172,7 +181,6 @@ render_current: {
|
||||
rts
|
||||
}
|
||||
render_playfield: {
|
||||
.label _3 = $14
|
||||
.label line = 5
|
||||
.label i = 7
|
||||
.label l = 4
|
||||
@ -189,17 +197,14 @@ render_playfield: {
|
||||
sta line+1
|
||||
ldx #0
|
||||
b2:
|
||||
txa
|
||||
clc
|
||||
adc line
|
||||
sta _3
|
||||
lda #0
|
||||
adc line+1
|
||||
sta _3+1
|
||||
ldy i
|
||||
lda playfield,y
|
||||
ldy #0
|
||||
sta (_3),y
|
||||
sta (line),y
|
||||
inc line
|
||||
bne !+
|
||||
inc line+1
|
||||
!:
|
||||
inc i
|
||||
inx
|
||||
cpx #PLAYFIELD_COLS-1+1
|
||||
@ -210,23 +215,36 @@ render_playfield: {
|
||||
bne b1
|
||||
rts
|
||||
}
|
||||
play_moveother: {
|
||||
txa
|
||||
and #$80
|
||||
cmp #0
|
||||
bne b6
|
||||
cpx #KEY_COMMA
|
||||
play_move_rotate: {
|
||||
.label orientation = 4
|
||||
cmp #KEY_Z
|
||||
beq b1
|
||||
cmp #KEY_X
|
||||
beq b2
|
||||
cpx #KEY_DOT
|
||||
beq b3
|
||||
cpx #KEY_Z
|
||||
beq b4
|
||||
cpx #KEY_X
|
||||
bne b6
|
||||
b3:
|
||||
lda #0
|
||||
breturn:
|
||||
rts
|
||||
b2:
|
||||
lda #$10
|
||||
clc
|
||||
adc current_piece_orientation
|
||||
and #$3f
|
||||
sta orientation
|
||||
b4:
|
||||
lda current_xpos
|
||||
sta collision.xpos
|
||||
ldy current_ypos
|
||||
ldx orientation
|
||||
lda current_piece
|
||||
sta current_piece_70
|
||||
lda current_piece+1
|
||||
sta current_piece_70+1
|
||||
jsr collision
|
||||
and #COLLISION_LEFT|COLLISION_RIGHT
|
||||
cmp #0
|
||||
bne b3
|
||||
lda orientation
|
||||
sta current_piece_orientation
|
||||
clc
|
||||
adc current_piece
|
||||
@ -234,123 +252,93 @@ play_moveother: {
|
||||
lda #0
|
||||
adc current_piece+1
|
||||
sta current_piece_gfx+1
|
||||
b5:
|
||||
lda #1
|
||||
jmp b1
|
||||
b6:
|
||||
lda #0
|
||||
jmp breturn
|
||||
b1:
|
||||
rts
|
||||
b4:
|
||||
lda current_piece_orientation
|
||||
sec
|
||||
sbc #$10
|
||||
and #$3f
|
||||
sta current_piece_orientation
|
||||
clc
|
||||
adc current_piece
|
||||
sta current_piece_gfx
|
||||
lda #0
|
||||
adc current_piece+1
|
||||
sta current_piece_gfx+1
|
||||
jmp b5
|
||||
b3:
|
||||
ldy current_xpos
|
||||
iny
|
||||
sty collision.xpos
|
||||
lda current_ypos
|
||||
sta collision.ypos
|
||||
lda current_piece_gfx
|
||||
sta current_piece_gfx_110
|
||||
lda current_piece_gfx+1
|
||||
sta current_piece_gfx_110+1
|
||||
jsr collision
|
||||
cmp #COLLISION_NONE
|
||||
bne b6
|
||||
inc current_xpos
|
||||
jmp b5
|
||||
b2:
|
||||
ldx current_xpos
|
||||
dex
|
||||
stx collision.xpos
|
||||
lda current_ypos
|
||||
sta collision.ypos
|
||||
lda current_piece_gfx
|
||||
sta current_piece_gfx_109
|
||||
lda current_piece_gfx+1
|
||||
sta current_piece_gfx_109+1
|
||||
jsr collision
|
||||
cmp #COLLISION_NONE
|
||||
bne b6
|
||||
dec current_xpos
|
||||
jmp b5
|
||||
sta orientation
|
||||
jmp b4
|
||||
}
|
||||
collision: {
|
||||
.label ypos = 4
|
||||
.label xpos = 7
|
||||
.label line = $16
|
||||
.label playfield_line = $14
|
||||
.label i = $17
|
||||
.label l = 8
|
||||
.label i_2 = 9
|
||||
.label i_3 = 9
|
||||
.label i_11 = 9
|
||||
.label i_13 = 9
|
||||
lda #0
|
||||
sta i_3
|
||||
sta l
|
||||
b1:
|
||||
lda ypos
|
||||
.label piece_gfx = 5
|
||||
.label ypos2 = 8
|
||||
.label playfield_line = $16
|
||||
.label i = $18
|
||||
.label col = $b
|
||||
.label l = 9
|
||||
.label i_2 = $a
|
||||
.label i_3 = $a
|
||||
.label i_11 = $a
|
||||
.label i_13 = $a
|
||||
txa
|
||||
clc
|
||||
adc l
|
||||
sta line
|
||||
adc piece_gfx
|
||||
sta piece_gfx
|
||||
lda #0
|
||||
adc piece_gfx+1
|
||||
sta piece_gfx+1
|
||||
tya
|
||||
asl
|
||||
tay
|
||||
sta ypos2
|
||||
lda #0
|
||||
sta l
|
||||
sta i_3
|
||||
b1:
|
||||
ldy ypos2
|
||||
lda playfield_lines,y
|
||||
sta playfield_line
|
||||
lda playfield_lines+1,y
|
||||
sta playfield_line+1
|
||||
lda xpos
|
||||
sta col
|
||||
ldx #0
|
||||
b2:
|
||||
ldy i_2
|
||||
iny
|
||||
sty i
|
||||
ldy i_2
|
||||
lda (current_piece_gfx_46),y
|
||||
lda (piece_gfx),y
|
||||
cmp #0
|
||||
beq b3
|
||||
lda line
|
||||
cmp #PLAYFIELD_LINES
|
||||
lda ypos2
|
||||
cmp #2*PLAYFIELD_LINES
|
||||
bcc b4
|
||||
lda #COLLISION_BOTTOM
|
||||
breturn:
|
||||
rts
|
||||
b4:
|
||||
txa
|
||||
clc
|
||||
adc xpos
|
||||
tay
|
||||
tya
|
||||
and #$80
|
||||
lda #$80
|
||||
and col
|
||||
cmp #0
|
||||
beq b5
|
||||
lda #COLLISION_LEFT
|
||||
jmp breturn
|
||||
b5:
|
||||
cpy #PLAYFIELD_COLS
|
||||
lda col
|
||||
cmp #PLAYFIELD_COLS
|
||||
bcc b6
|
||||
lda #COLLISION_RIGHT
|
||||
jmp breturn
|
||||
b6:
|
||||
ldy col
|
||||
lda (playfield_line),y
|
||||
cmp #0
|
||||
beq b3
|
||||
lda #COLLISION_PLAYFIELD
|
||||
jmp breturn
|
||||
b3:
|
||||
inc col
|
||||
inx
|
||||
cpx #4
|
||||
bne b21
|
||||
lda ypos2
|
||||
clc
|
||||
adc #2
|
||||
sta ypos2
|
||||
inc l
|
||||
lda l
|
||||
cmp #4
|
||||
@ -366,7 +354,48 @@ collision: {
|
||||
sta i_13
|
||||
jmp b2
|
||||
}
|
||||
play_movedown: {
|
||||
play_move_leftright: {
|
||||
cmp #KEY_COMMA
|
||||
beq b1
|
||||
cmp #KEY_DOT
|
||||
bne b3
|
||||
ldy current_xpos
|
||||
iny
|
||||
sty collision.xpos
|
||||
ldy current_ypos
|
||||
ldx current_piece_orientation
|
||||
lda current_piece
|
||||
sta current_piece_69
|
||||
lda current_piece+1
|
||||
sta current_piece_69+1
|
||||
jsr collision
|
||||
cmp #COLLISION_NONE
|
||||
bne b3
|
||||
inc current_xpos
|
||||
b2:
|
||||
lda #1
|
||||
jmp breturn
|
||||
b3:
|
||||
lda #0
|
||||
breturn:
|
||||
rts
|
||||
b1:
|
||||
ldx current_xpos
|
||||
dex
|
||||
stx collision.xpos
|
||||
ldy current_ypos
|
||||
ldx current_piece_orientation
|
||||
lda current_piece
|
||||
sta current_piece_68
|
||||
lda current_piece+1
|
||||
sta current_piece_68+1
|
||||
jsr collision
|
||||
cmp #COLLISION_NONE
|
||||
bne b3
|
||||
dec current_xpos
|
||||
jmp b2
|
||||
}
|
||||
play_move_down: {
|
||||
inc current_movedown_counter
|
||||
cmp #KEY_SPACE
|
||||
bne b3
|
||||
@ -394,13 +423,13 @@ play_movedown: {
|
||||
beq b5
|
||||
ldy current_ypos
|
||||
iny
|
||||
sty collision.ypos
|
||||
lda current_xpos
|
||||
sta collision.xpos
|
||||
lda current_piece_gfx
|
||||
sta current_piece_gfx_108
|
||||
lda current_piece_gfx+1
|
||||
sta current_piece_gfx_108+1
|
||||
ldx current_piece_orientation
|
||||
lda current_piece
|
||||
sta current_piece_67
|
||||
lda current_piece+1
|
||||
sta current_piece_67+1
|
||||
jsr collision
|
||||
cmp #COLLISION_NONE
|
||||
beq b6
|
||||
@ -593,7 +622,7 @@ keyboard_matrix_read: {
|
||||
rts
|
||||
}
|
||||
init: {
|
||||
.label _13 = $b
|
||||
.label _13 = $c
|
||||
.label li = 5
|
||||
.label pli = 5
|
||||
.label line = 5
|
||||
@ -692,7 +721,7 @@ init: {
|
||||
rts
|
||||
}
|
||||
fill: {
|
||||
.label end = $b
|
||||
.label end = $c
|
||||
.label addr = 5
|
||||
lda addr
|
||||
clc
|
||||
|
@ -1,13 +1,13 @@
|
||||
@begin: scope:[] from
|
||||
[0] phi()
|
||||
to:@20
|
||||
@20: scope:[] from @begin
|
||||
to:@21
|
||||
@21: scope:[] from @begin
|
||||
[1] phi()
|
||||
[2] call main
|
||||
to:@end
|
||||
@end: scope:[] from @20
|
||||
@end: scope:[] from @21
|
||||
[3] phi()
|
||||
main: scope:[main] from @20
|
||||
main: scope:[main] from @21
|
||||
asm { sei }
|
||||
[5] call init
|
||||
to:main::@21
|
||||
@ -27,10 +27,10 @@ main::@1: scope:[main] from main::@10 main::@23
|
||||
[12] (byte) current_movedown_counter#15 ← phi( main::@10/(byte) current_movedown_counter#12 main::@23/(byte/signed byte/word/signed word/dword/signed dword) 0 )
|
||||
[12] (byte) keyboard_events_size#19 ← phi( main::@10/(byte) keyboard_events_size#16 main::@23/(byte/signed byte/word/signed word/dword/signed dword) 0 )
|
||||
[12] (byte) current_ypos#12 ← phi( main::@10/(byte) current_ypos#16 main::@23/(byte/signed byte/word/signed word/dword/signed dword) 0 )
|
||||
[12] (byte) current_xpos#16 ← phi( main::@10/(byte) current_xpos#11 main::@23/(byte/signed byte/word/signed word/dword/signed dword) 3 )
|
||||
[12] (byte) current_xpos#16 ← phi( main::@10/(byte) current_xpos#23 main::@23/(byte/signed byte/word/signed word/dword/signed dword) 3 )
|
||||
[12] (byte) current_piece_color#11 ← phi( main::@10/(byte) current_piece_color#13 main::@23/(const byte) GREEN#0 )
|
||||
[12] (byte*) current_piece_gfx#16 ← phi( main::@10/(byte*) current_piece_gfx#11 main::@23/(const byte[4*4*4]) piece_t#0 )
|
||||
[12] (byte) current_piece_orientation#16 ← phi( main::@10/(byte) current_piece_orientation#11 main::@23/(byte/signed byte/word/signed word/dword/signed dword) 0 )
|
||||
[12] (byte*) current_piece_gfx#15 ← phi( main::@10/(byte*) current_piece_gfx#18 main::@23/(const byte[4*4*4]) piece_t#0 )
|
||||
[12] (byte) current_piece_orientation#15 ← phi( main::@10/(byte) current_piece_orientation#23 main::@23/(byte/signed byte/word/signed word/dword/signed dword) 0 )
|
||||
[12] (byte*) current_piece#11 ← phi( main::@10/(byte*) current_piece#13 main::@23/(const byte[4*4*4]) piece_t#0 )
|
||||
to:main::@4
|
||||
main::@4: scope:[main] from main::@1 main::@4
|
||||
@ -50,524 +50,557 @@ main::@25: scope:[main] from main::@9
|
||||
to:main::@26
|
||||
main::@26: scope:[main] from main::@25
|
||||
[20] (byte) main::key_event#0 ← (byte) keyboard_event_get::return#3
|
||||
[21] (byte) play_movedown::key_event#0 ← (byte) main::key_event#0
|
||||
[22] call play_movedown
|
||||
[23] (byte) play_movedown::return#0 ← (byte) play_movedown::return#3
|
||||
[21] (byte) play_move_down::key_event#0 ← (byte) main::key_event#0
|
||||
[22] call play_move_down
|
||||
[23] (byte) play_move_down::return#0 ← (byte) play_move_down::return#3
|
||||
to:main::@27
|
||||
main::@27: scope:[main] from main::@26
|
||||
[24] (byte~) main::$8 ← (byte) play_movedown::return#0
|
||||
[24] (byte~) main::$8 ← (byte) play_move_down::return#0
|
||||
[25] (byte) main::render#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0 + (byte~) main::$8
|
||||
[26] (byte) play_moveother::key_event#0 ← (byte) main::key_event#0
|
||||
[27] call play_moveother
|
||||
[28] (byte) play_moveother::return#0 ← (byte) play_moveother::return#1
|
||||
[26] (byte) play_move_leftright::key_event#0 ← (byte) main::key_event#0
|
||||
[27] call play_move_leftright
|
||||
[28] (byte) play_move_leftright::return#0 ← (byte) play_move_leftright::return#2
|
||||
to:main::@28
|
||||
main::@28: scope:[main] from main::@27
|
||||
[29] (byte~) main::$9 ← (byte) play_moveother::return#0
|
||||
[29] (byte~) main::$9 ← (byte) play_move_leftright::return#0
|
||||
[30] (byte) main::render#2 ← (byte) main::render#1 + (byte~) main::$9
|
||||
[31] if((byte) main::render#2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@10
|
||||
to:main::@19
|
||||
main::@19: scope:[main] from main::@28
|
||||
[32] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0)
|
||||
[33] call render_playfield
|
||||
[31] (byte) play_move_rotate::key_event#0 ← (byte) main::key_event#0
|
||||
[32] call play_move_rotate
|
||||
[33] (byte) play_move_rotate::return#0 ← (byte) play_move_rotate::return#2
|
||||
to:main::@29
|
||||
main::@29: scope:[main] from main::@19
|
||||
[34] (byte~) current_ypos#75 ← (byte) current_ypos#16
|
||||
[35] (byte*~) current_piece_gfx#99 ← (byte*) current_piece_gfx#11
|
||||
[36] (byte~) current_xpos#91 ← (byte) current_xpos#11
|
||||
[37] (byte~) current_piece_color#69 ← (byte) current_piece_color#13
|
||||
[38] call render_current
|
||||
main::@29: scope:[main] from main::@28
|
||||
[34] (byte~) main::$10 ← (byte) play_move_rotate::return#0
|
||||
[35] (byte) main::render#3 ← (byte) main::render#2 + (byte~) main::$10
|
||||
[36] 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::@29
|
||||
[37] *((const byte*) BORDERCOL#0) ← ++ *((const byte*) BORDERCOL#0)
|
||||
[38] call render_playfield
|
||||
to:main::@30
|
||||
main::@30: scope:[main] from main::@29
|
||||
[39] *((const byte*) BORDERCOL#0) ← -- *((const byte*) BORDERCOL#0)
|
||||
main::@30: scope:[main] from main::@19
|
||||
[39] (byte~) current_ypos#72 ← (byte) current_ypos#16
|
||||
[40] (byte~) current_xpos#92 ← (byte) current_xpos#23
|
||||
[41] (byte*~) current_piece_gfx#82 ← (byte*) current_piece_gfx#18
|
||||
[42] (byte~) current_piece_color#70 ← (byte) current_piece_color#13
|
||||
[43] call render_current
|
||||
to:main::@31
|
||||
main::@31: scope:[main] from main::@30
|
||||
[44] *((const byte*) BORDERCOL#0) ← -- *((const byte*) BORDERCOL#0)
|
||||
to:main::@10
|
||||
main::@10: scope:[main] from main::@28 main::@30
|
||||
[40] *((const byte*) BORDERCOL#0) ← -- *((const byte*) BORDERCOL#0)
|
||||
main::@10: scope:[main] from main::@29 main::@31
|
||||
[45] *((const byte*) BORDERCOL#0) ← -- *((const byte*) BORDERCOL#0)
|
||||
to:main::@1
|
||||
render_current: scope:[render_current] from main::@23 main::@29
|
||||
[41] (byte) current_piece_color#62 ← phi( main::@23/(const byte) GREEN#0 main::@29/(byte~) current_piece_color#69 )
|
||||
[41] (byte) current_xpos#81 ← phi( main::@23/(byte/signed byte/word/signed word/dword/signed dword) 3 main::@29/(byte~) current_xpos#91 )
|
||||
[41] (byte*) current_piece_gfx#75 ← phi( main::@23/(const byte[4*4*4]) piece_t#0 main::@29/(byte*~) current_piece_gfx#99 )
|
||||
[41] (byte) current_ypos#35 ← phi( main::@23/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@29/(byte~) current_ypos#75 )
|
||||
render_current: scope:[render_current] from main::@23 main::@30
|
||||
[46] (byte) current_piece_color#63 ← phi( main::@23/(const byte) GREEN#0 main::@30/(byte~) current_piece_color#70 )
|
||||
[46] (byte*) current_piece_gfx#61 ← phi( main::@23/(const byte[4*4*4]) piece_t#0 main::@30/(byte*~) current_piece_gfx#82 )
|
||||
[46] (byte) current_xpos#62 ← phi( main::@23/(byte/signed byte/word/signed word/dword/signed dword) 3 main::@30/(byte~) current_xpos#92 )
|
||||
[46] (byte) current_ypos#22 ← phi( main::@23/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@30/(byte~) current_ypos#72 )
|
||||
[47] (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
|
||||
[42] (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 )
|
||||
[42] (byte) render_current::l#2 ← phi( render_current/(byte/signed byte/word/signed word/dword/signed dword) 0 render_current::@2/(byte) render_current::l#1 )
|
||||
[43] (byte) render_current::line#0 ← (byte) current_ypos#35 + (byte) render_current::l#2
|
||||
[44] if((byte) render_current::line#0>=(const byte) PLAYFIELD_LINES#0) goto render_current::@2
|
||||
[48] (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 )
|
||||
[48] (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 )
|
||||
[48] (byte) render_current::ypos2#2 ← phi( render_current/(byte) render_current::ypos2#0 render_current::@2/(byte) render_current::ypos2#1 )
|
||||
[49] 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
|
||||
[45] (byte~) render_current::$3 ← (byte) render_current::line#0 << (byte/signed byte/word/signed word/dword/signed dword) 1
|
||||
[46] (byte*) render_current::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte~) render_current::$3)
|
||||
[50] (byte*) render_current::screen_line#0 ← *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte) render_current::ypos2#2)
|
||||
[51] (byte) render_current::xpos#0 ← (byte) current_xpos#62
|
||||
to:render_current::@3
|
||||
render_current::@3: scope:[render_current] from render_current::@4 render_current::@6
|
||||
[47] (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 )
|
||||
[47] (byte) render_current::i#2 ← phi( render_current::@4/(byte) render_current::i#1 render_current::@6/(byte) render_current::i#4 )
|
||||
[48] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#75 + (byte) render_current::i#2)
|
||||
[49] (byte) render_current::i#1 ← ++ (byte) render_current::i#2
|
||||
[50] if((byte) render_current::current_cell#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto render_current::@4
|
||||
[52] (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 )
|
||||
[52] (byte) render_current::xpos#2 ← phi( render_current::@4/(byte) render_current::xpos#1 render_current::@6/(byte) render_current::xpos#0 )
|
||||
[52] (byte) render_current::i#2 ← phi( render_current::@4/(byte) render_current::i#1 render_current::@6/(byte) render_current::i#4 )
|
||||
[53] (byte) render_current::current_cell#0 ← *((byte*) current_piece_gfx#61 + (byte) render_current::i#2)
|
||||
[54] (byte) render_current::i#1 ← ++ (byte) render_current::i#2
|
||||
[55] 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
|
||||
[51] (byte) render_current::xpos#0 ← (byte) current_xpos#81 + (byte) render_current::c#2
|
||||
[52] if((byte) render_current::xpos#0>=(const byte) PLAYFIELD_COLS#0) goto render_current::@4
|
||||
[56] 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
|
||||
[53] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#0) ← (byte) current_piece_color#62
|
||||
[57] *((byte*) render_current::screen_line#0 + (byte) render_current::xpos#2) ← (byte) current_piece_color#63
|
||||
to:render_current::@4
|
||||
render_current::@4: scope:[render_current] from render_current::@3 render_current::@7 render_current::@8
|
||||
[54] (byte) render_current::c#1 ← ++ (byte) render_current::c#2
|
||||
[55] if((byte) render_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@3
|
||||
[58] (byte) render_current::xpos#1 ← ++ (byte) render_current::xpos#2
|
||||
[59] (byte) render_current::c#1 ← ++ (byte) render_current::c#2
|
||||
[60] 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
|
||||
[56] (byte) render_current::i#8 ← phi( render_current::@1/(byte) render_current::i#4 render_current::@4/(byte) render_current::i#1 )
|
||||
[57] (byte) render_current::l#1 ← ++ (byte) render_current::l#2
|
||||
[58] if((byte) render_current::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_current::@1
|
||||
[61] (byte) render_current::i#8 ← phi( render_current::@1/(byte) render_current::i#4 render_current::@4/(byte) render_current::i#1 )
|
||||
[62] (byte) render_current::ypos2#1 ← (byte) render_current::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2
|
||||
[63] (byte) render_current::l#1 ← ++ (byte) render_current::l#3
|
||||
[64] 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
|
||||
[59] return
|
||||
[65] return
|
||||
to:@return
|
||||
render_playfield: scope:[render_playfield] from main::@19 main::@22
|
||||
[60] phi()
|
||||
[66] phi()
|
||||
to:render_playfield::@1
|
||||
render_playfield::@1: scope:[render_playfield] from render_playfield render_playfield::@3
|
||||
[61] (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 )
|
||||
[61] (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 )
|
||||
[62] (byte~) render_playfield::$1 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1
|
||||
[63] (byte*) render_playfield::line#0 ← *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte~) render_playfield::$1)
|
||||
[67] (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 )
|
||||
[67] (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 )
|
||||
[68] (byte~) render_playfield::$1 ← (byte) render_playfield::l#2 << (byte/signed byte/word/signed word/dword/signed dword) 1
|
||||
[69] (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
|
||||
[64] (byte) render_playfield::i#2 ← phi( render_playfield::@1/(byte) render_playfield::i#3 render_playfield::@2/(byte) render_playfield::i#1 )
|
||||
[64] (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 )
|
||||
[65] (byte*~) render_playfield::$3 ← (byte*) render_playfield::line#0 + (byte) render_playfield::c#2
|
||||
[66] *((byte*~) render_playfield::$3) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2)
|
||||
[67] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2
|
||||
[68] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2
|
||||
[69] 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
|
||||
[70] (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 )
|
||||
[70] (byte*) render_playfield::line#2 ← phi( render_playfield::@1/(byte*) render_playfield::line#0 render_playfield::@2/(byte*) render_playfield::line#1 )
|
||||
[70] (byte) render_playfield::i#2 ← phi( render_playfield::@1/(byte) render_playfield::i#3 render_playfield::@2/(byte) render_playfield::i#1 )
|
||||
[71] *((byte*) render_playfield::line#2) ← *((const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 + (byte) render_playfield::i#2)
|
||||
[72] (byte*) render_playfield::line#1 ← ++ (byte*) render_playfield::line#2
|
||||
[73] (byte) render_playfield::i#1 ← ++ (byte) render_playfield::i#2
|
||||
[74] (byte) render_playfield::c#1 ← ++ (byte) render_playfield::c#2
|
||||
[75] 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
|
||||
[70] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2
|
||||
[71] 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
|
||||
[76] (byte) render_playfield::l#1 ← ++ (byte) render_playfield::l#2
|
||||
[77] 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
|
||||
[72] return
|
||||
[78] return
|
||||
to:@return
|
||||
play_moveother: scope:[play_moveother] from main::@27
|
||||
[73] (byte~) play_moveother::$0 ← (byte) play_moveother::key_event#0 & (byte/word/signed word/dword/signed dword) 128
|
||||
[74] if((byte~) play_moveother::$0!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_moveother::@1
|
||||
to:play_moveother::@11
|
||||
play_moveother::@11: scope:[play_moveother] from play_moveother
|
||||
[75] if((byte) play_moveother::key_event#0==(const byte) KEY_COMMA#0) goto play_moveother::@2
|
||||
to:play_moveother::@12
|
||||
play_moveother::@12: scope:[play_moveother] from play_moveother::@11
|
||||
[76] if((byte) play_moveother::key_event#0==(const byte) KEY_DOT#0) goto play_moveother::@3
|
||||
to:play_moveother::@13
|
||||
play_moveother::@13: scope:[play_moveother] from play_moveother::@12
|
||||
[77] if((byte) play_moveother::key_event#0==(const byte) KEY_Z#0) goto play_moveother::@4
|
||||
to:play_moveother::@14
|
||||
play_moveother::@14: scope:[play_moveother] from play_moveother::@13
|
||||
[78] if((byte) play_moveother::key_event#0!=(const byte) KEY_X#0) goto play_moveother::@1
|
||||
to:play_moveother::@15
|
||||
play_moveother::@15: scope:[play_moveother] from play_moveother::@14
|
||||
[79] (byte/signed word/word/dword/signed dword~) play_moveother::$8 ← (byte) current_piece_orientation#18 + (byte/signed byte/word/signed word/dword/signed dword) 16
|
||||
[80] (byte) current_piece_orientation#10 ← (byte/signed word/word/dword/signed dword~) play_moveother::$8 & (byte/signed byte/word/signed word/dword/signed dword) 63
|
||||
[81] (byte*) current_piece_gfx#10 ← (byte*) current_piece#13 + (byte) current_piece_orientation#10
|
||||
to:play_moveother::@1
|
||||
play_moveother::@1: scope:[play_moveother] from play_moveother play_moveother::@14 play_moveother::@15 play_moveother::@18 play_moveother::@20 play_moveother::@22 play_moveother::@23 play_moveother::@4
|
||||
[82] (byte) current_xpos#11 ← phi( play_moveother/(byte) current_xpos#19 play_moveother::@22/(byte) current_xpos#19 play_moveother::@15/(byte) current_xpos#19 play_moveother::@18/(byte) current_xpos#9 play_moveother::@20/(byte) current_xpos#10 play_moveother::@4/(byte) current_xpos#19 play_moveother::@14/(byte) current_xpos#19 play_moveother::@23/(byte) current_xpos#19 )
|
||||
[82] (byte*) current_piece_gfx#11 ← phi( play_moveother/(byte*) current_piece_gfx#18 play_moveother::@22/(byte*) current_piece_gfx#18 play_moveother::@15/(byte*) current_piece_gfx#10 play_moveother::@18/(byte*) current_piece_gfx#18 play_moveother::@20/(byte*) current_piece_gfx#18 play_moveother::@4/(byte*) current_piece_gfx#9 play_moveother::@14/(byte*) current_piece_gfx#18 play_moveother::@23/(byte*) current_piece_gfx#18 )
|
||||
[82] (byte) current_piece_orientation#11 ← phi( play_moveother/(byte) current_piece_orientation#18 play_moveother::@22/(byte) current_piece_orientation#18 play_moveother::@15/(byte) current_piece_orientation#10 play_moveother::@18/(byte) current_piece_orientation#18 play_moveother::@20/(byte) current_piece_orientation#18 play_moveother::@4/(byte) current_piece_orientation#9 play_moveother::@14/(byte) current_piece_orientation#18 play_moveother::@23/(byte) current_piece_orientation#18 )
|
||||
[82] (byte) play_moveother::return#1 ← phi( play_moveother/(byte/signed byte/word/signed word/dword/signed dword) 0 play_moveother::@22/(byte/signed byte/word/signed word/dword/signed dword) 0 play_moveother::@15/(byte/signed byte/word/signed word/dword/signed dword) 1 play_moveother::@18/(byte/signed byte/word/signed word/dword/signed dword) 1 play_moveother::@20/(byte/signed byte/word/signed word/dword/signed dword) 1 play_moveother::@4/(byte/signed byte/word/signed word/dword/signed dword) 1 play_moveother::@14/(byte/signed byte/word/signed word/dword/signed dword) 0 play_moveother::@23/(byte/signed byte/word/signed word/dword/signed dword) 0 )
|
||||
to:play_moveother::@return
|
||||
play_moveother::@return: scope:[play_moveother] from play_moveother::@1
|
||||
[83] return
|
||||
play_move_rotate: scope:[play_move_rotate] from main::@28
|
||||
[79] 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
|
||||
[80] 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
|
||||
[81] (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 )
|
||||
[81] (byte) current_piece_orientation#23 ← phi( play_move_rotate::@11/(byte) current_piece_orientation#8 play_move_rotate::@14/(byte) current_piece_orientation#18 play_move_rotate::@6/(byte) current_piece_orientation#18 )
|
||||
[81] (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 )
|
||||
[82] return
|
||||
to:@return
|
||||
play_moveother::@4: scope:[play_moveother] from play_moveother::@13
|
||||
[84] (byte/signed word/word/dword/signed dword~) play_moveother::$11 ← (byte) current_piece_orientation#18 - (byte/signed byte/word/signed word/dword/signed dword) 16
|
||||
[85] (byte) current_piece_orientation#9 ← (byte/signed word/word/dword/signed dword~) play_moveother::$11 & (byte/signed byte/word/signed word/dword/signed dword) 63
|
||||
[86] (byte*) current_piece_gfx#9 ← (byte*) current_piece#13 + (byte) current_piece_orientation#9
|
||||
to:play_moveother::@1
|
||||
play_moveother::@3: scope:[play_moveother] from play_moveother::@12
|
||||
[87] (byte) collision::xpos#2 ← (byte) current_xpos#19 + (byte/signed byte/word/signed word/dword/signed dword) 1
|
||||
[88] (byte) collision::ypos#2 ← (byte) current_ypos#16
|
||||
[89] (byte*~) current_piece_gfx#110 ← (byte*) current_piece_gfx#18
|
||||
play_move_rotate::@2: scope:[play_move_rotate] from play_move_rotate::@6
|
||||
[83] (byte/signed word/word/dword/signed dword~) play_move_rotate::$2 ← (byte) current_piece_orientation#18 + (byte/signed byte/word/signed word/dword/signed dword) 16
|
||||
[84] (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
|
||||
[85] (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 )
|
||||
[86] (byte) collision::xpos#3 ← (byte) current_xpos#23
|
||||
[87] (byte) collision::ypos#3 ← (byte) current_ypos#16
|
||||
[88] (byte) collision::orientation#3 ← (byte) play_move_rotate::orientation#3
|
||||
[89] (byte*~) current_piece#70 ← (byte*) current_piece#13
|
||||
[90] call collision
|
||||
[91] (byte) collision::return#12 ← (byte) collision::return#10
|
||||
to:play_moveother::@23
|
||||
play_moveother::@23: scope:[play_moveother] from play_moveother::@3
|
||||
[92] (byte~) play_moveother::$15 ← (byte) collision::return#12
|
||||
[93] if((byte~) play_moveother::$15!=(const byte) COLLISION_NONE#0) goto play_moveother::@1
|
||||
to:play_moveother::@18
|
||||
play_moveother::@18: scope:[play_moveother] from play_moveother::@23
|
||||
[94] (byte) current_xpos#9 ← ++ (byte) current_xpos#19
|
||||
to:play_moveother::@1
|
||||
play_moveother::@2: scope:[play_moveother] from play_moveother::@11
|
||||
[95] (byte) collision::xpos#1 ← (byte) current_xpos#19 - (byte/signed byte/word/signed word/dword/signed dword) 1
|
||||
[96] (byte) collision::ypos#1 ← (byte) current_ypos#16
|
||||
[97] (byte*~) current_piece_gfx#109 ← (byte*) current_piece_gfx#18
|
||||
[98] call collision
|
||||
[99] (byte) collision::return#11 ← (byte) collision::return#10
|
||||
to:play_moveother::@22
|
||||
play_moveother::@22: scope:[play_moveother] from play_moveother::@2
|
||||
[100] (byte~) play_moveother::$19 ← (byte) collision::return#11
|
||||
[101] if((byte~) play_moveother::$19!=(const byte) COLLISION_NONE#0) goto play_moveother::@1
|
||||
to:play_moveother::@20
|
||||
play_moveother::@20: scope:[play_moveother] from play_moveother::@22
|
||||
[102] (byte) current_xpos#10 ← -- (byte) current_xpos#19
|
||||
to:play_moveother::@1
|
||||
collision: scope:[collision] from play_movedown::@12 play_moveother::@2 play_moveother::@3
|
||||
[103] (byte) collision::xpos#8 ← phi( play_movedown::@12/(byte) collision::xpos#0 play_moveother::@2/(byte) collision::xpos#1 play_moveother::@3/(byte) collision::xpos#2 )
|
||||
[103] (byte*) current_piece_gfx#46 ← phi( play_movedown::@12/(byte*~) current_piece_gfx#108 play_moveother::@2/(byte*~) current_piece_gfx#109 play_moveother::@3/(byte*~) current_piece_gfx#110 )
|
||||
[103] (byte) collision::ypos#4 ← phi( play_movedown::@12/(byte) collision::ypos#0 play_moveother::@2/(byte) collision::ypos#1 play_moveother::@3/(byte) collision::ypos#2 )
|
||||
[91] (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
|
||||
[92] (byte~) play_move_rotate::$6 ← (byte) collision::return#13
|
||||
[93] (byte~) play_move_rotate::$8 ← (byte~) play_move_rotate::$6 & (const byte) COLLISION_LEFT#0|(const byte) COLLISION_RIGHT#0
|
||||
[94] if((byte~) play_move_rotate::$8!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_move_rotate::@return
|
||||
to:play_move_rotate::@11
|
||||
play_move_rotate::@11: scope:[play_move_rotate] from play_move_rotate::@14
|
||||
[95] (byte) current_piece_orientation#8 ← (byte) play_move_rotate::orientation#3
|
||||
[96] (byte*) current_piece_gfx#8 ← (byte*) current_piece#13 + (byte) current_piece_orientation#8
|
||||
to:play_move_rotate::@return
|
||||
play_move_rotate::@1: scope:[play_move_rotate] from play_move_rotate
|
||||
[97] (byte/signed word/word/dword/signed dword~) play_move_rotate::$4 ← (byte) current_piece_orientation#18 - (byte/signed byte/word/signed word/dword/signed dword) 16
|
||||
[98] (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
|
||||
[99] (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 )
|
||||
[99] (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 )
|
||||
[99] (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 )
|
||||
[99] (byte*) current_piece#15 ← phi( play_move_down::@12/(byte*~) current_piece#67 play_move_leftright::@1/(byte*~) current_piece#68 play_move_leftright::@7/(byte*~) current_piece#69 play_move_rotate::@4/(byte*~) current_piece#70 )
|
||||
[100] (byte*) collision::piece_gfx#0 ← (byte*) current_piece#15 + (byte) collision::orientation#4
|
||||
[101] (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
|
||||
[104] (byte) collision::i#3 ← phi( collision/(byte/signed byte/word/signed word/dword/signed dword) 0 collision::@20/(byte~) collision::i#11 )
|
||||
[104] (byte) collision::l#2 ← phi( collision/(byte/signed byte/word/signed word/dword/signed dword) 0 collision::@20/(byte) collision::l#1 )
|
||||
[105] (byte) collision::line#0 ← (byte) collision::ypos#4 + (byte) collision::l#2
|
||||
[106] (byte~) collision::$1 ← (byte) collision::line#0 << (byte/signed byte/word/signed word/dword/signed dword) 1
|
||||
[107] (byte*) collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) collision::$1)
|
||||
[102] (byte) collision::l#6 ← phi( collision/(byte/signed byte/word/signed word/dword/signed dword) 0 collision::@20/(byte) collision::l#1 )
|
||||
[102] (byte) collision::i#3 ← phi( collision/(byte/signed byte/word/signed word/dword/signed dword) 0 collision::@20/(byte~) collision::i#11 )
|
||||
[102] (byte) collision::ypos2#2 ← phi( collision/(byte) collision::ypos2#0 collision::@20/(byte) collision::ypos2#1 )
|
||||
[103] (byte*) collision::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte) collision::ypos2#2)
|
||||
[104] (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::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*) current_piece_gfx#46 + (byte) collision::i#2)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto collision::@3
|
||||
[105] (byte) collision::c#2 ← phi( collision::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 collision::@21/(byte) collision::c#1 )
|
||||
[105] (byte) collision::col#2 ← phi( collision::@1/(byte~) collision::col#9 collision::@21/(byte) collision::col#1 )
|
||||
[105] (byte) collision::i#2 ← phi( collision::@1/(byte) collision::i#3 collision::@21/(byte~) collision::i#13 )
|
||||
[106] (byte) collision::i#1 ← ++ (byte) collision::i#2
|
||||
[107] 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::line#0<(const byte) PLAYFIELD_LINES#0) goto collision::@4
|
||||
[108] 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#10 ← 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
|
||||
[109] (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 )
|
||||
[110] return
|
||||
to:@return
|
||||
collision::@4: scope:[collision] from collision::@8
|
||||
[114] (byte) collision::col#0 ← (byte) collision::xpos#8 + (byte) collision::c#2
|
||||
[115] (byte~) collision::$7 ← (byte) collision::col#0 & (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
|
||||
[111] (byte~) collision::$7 ← (byte) collision::col#2 & (byte/word/signed word/dword/signed dword) 128
|
||||
[112] 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
|
||||
[117] if((byte) collision::col#0<(const byte) PLAYFIELD_COLS#0) goto collision::@6
|
||||
[113] if((byte) collision::col#2<(const byte) PLAYFIELD_COLS#0) goto collision::@6
|
||||
to:collision::@return
|
||||
collision::@6: scope:[collision] from collision::@5
|
||||
[118] if(*((byte*) collision::playfield_line#0 + (byte) collision::col#0)==(byte/signed byte/word/signed word/dword/signed dword) 0) goto collision::@3
|
||||
[114] 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
|
||||
[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
|
||||
[115] (byte) collision::col#1 ← ++ (byte) collision::col#2
|
||||
[116] (byte) collision::c#1 ← ++ (byte) collision::c#2
|
||||
[117] 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::l#1 ← ++ (byte) collision::l#2
|
||||
[122] if((byte) collision::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto collision::@20
|
||||
[118] (byte) collision::ypos2#1 ← (byte) collision::ypos2#2 + (byte/signed byte/word/signed word/dword/signed dword) 2
|
||||
[119] (byte) collision::l#1 ← ++ (byte) collision::l#6
|
||||
[120] 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
|
||||
[123] (byte~) collision::i#11 ← (byte) collision::i#1
|
||||
[121] (byte~) collision::i#11 ← (byte) collision::i#1
|
||||
to:collision::@1
|
||||
collision::@21: scope:[collision] from collision::@3
|
||||
[124] (byte~) collision::i#13 ← (byte) collision::i#1
|
||||
[122] (byte~) collision::i#13 ← (byte) collision::i#1
|
||||
to:collision::@2
|
||||
play_movedown: scope:[play_movedown] from main::@26
|
||||
[125] (byte) current_movedown_counter#10 ← ++ (byte) current_movedown_counter#15
|
||||
[126] if((byte) play_movedown::key_event#0!=(const byte) KEY_SPACE#0) goto play_movedown::@1
|
||||
to:play_movedown::@8
|
||||
play_movedown::@8: scope:[play_movedown] from play_movedown
|
||||
[127] phi()
|
||||
to:play_movedown::@1
|
||||
play_movedown::@1: scope:[play_movedown] from play_movedown play_movedown::@8
|
||||
[128] (byte) play_movedown::movedown#10 ← phi( play_movedown/(byte/signed byte/word/signed word/dword/signed dword) 0 play_movedown::@8/(byte/signed byte/word/signed word/dword/signed dword) 1 )
|
||||
[129] call keyboard_event_pressed
|
||||
[130] (byte) keyboard_event_pressed::return#12 ← (byte) keyboard_event_pressed::return#11
|
||||
to:play_movedown::@17
|
||||
play_movedown::@17: scope:[play_movedown] from play_movedown::@1
|
||||
[131] (byte~) play_movedown::$2 ← (byte) keyboard_event_pressed::return#12
|
||||
[132] if((byte~) play_movedown::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_movedown::@2
|
||||
to:play_movedown::@9
|
||||
play_movedown::@9: scope:[play_movedown] from play_movedown::@17
|
||||
[133] if((byte) current_movedown_counter#10<(const byte) current_movedown_rate_fast#0) goto play_movedown::@2
|
||||
to:play_movedown::@10
|
||||
play_movedown::@10: scope:[play_movedown] from play_movedown::@9
|
||||
[134] (byte) play_movedown::movedown#2 ← ++ (byte) play_movedown::movedown#10
|
||||
to:play_movedown::@2
|
||||
play_movedown::@2: scope:[play_movedown] from play_movedown::@10 play_movedown::@17 play_movedown::@9
|
||||
[135] (byte) play_movedown::movedown#7 ← phi( play_movedown::@10/(byte) play_movedown::movedown#2 play_movedown::@17/(byte) play_movedown::movedown#10 play_movedown::@9/(byte) play_movedown::movedown#10 )
|
||||
[136] if((byte) current_movedown_counter#10<(const byte) current_movedown_rate#0) goto play_movedown::@4
|
||||
to:play_movedown::@11
|
||||
play_movedown::@11: scope:[play_movedown] from play_movedown::@2
|
||||
[137] (byte) play_movedown::movedown#3 ← ++ (byte) play_movedown::movedown#7
|
||||
to:play_movedown::@4
|
||||
play_movedown::@4: scope:[play_movedown] from play_movedown::@11 play_movedown::@2
|
||||
[138] (byte) play_movedown::movedown#6 ← phi( play_movedown::@11/(byte) play_movedown::movedown#3 play_movedown::@2/(byte) play_movedown::movedown#7 )
|
||||
[139] if((byte) play_movedown::movedown#6==(byte/signed byte/word/signed word/dword/signed dword) 0) goto play_movedown::@return
|
||||
to:play_movedown::@12
|
||||
play_movedown::@12: scope:[play_movedown] from play_movedown::@4
|
||||
[140] (byte) collision::ypos#0 ← (byte) current_ypos#12 + (byte/signed byte/word/signed word/dword/signed dword) 1
|
||||
[141] (byte) collision::xpos#0 ← (byte) current_xpos#16
|
||||
[142] (byte*~) current_piece_gfx#108 ← (byte*) current_piece_gfx#16
|
||||
[143] call collision
|
||||
[144] (byte) collision::return#0 ← (byte) collision::return#10
|
||||
to:play_movedown::@18
|
||||
play_movedown::@18: scope:[play_movedown] from play_movedown::@12
|
||||
[145] (byte~) play_movedown::$12 ← (byte) collision::return#0
|
||||
[146] if((byte~) play_movedown::$12==(const byte) COLLISION_NONE#0) goto play_movedown::@6
|
||||
to:play_movedown::@13
|
||||
play_movedown::@13: scope:[play_movedown] from play_movedown::@18
|
||||
[147] phi()
|
||||
[148] call lock_current
|
||||
to:play_movedown::@19
|
||||
play_movedown::@19: scope:[play_movedown] from play_movedown::@13
|
||||
[149] phi()
|
||||
[150] call spawn_current
|
||||
to:play_movedown::@7
|
||||
play_movedown::@7: scope:[play_movedown] from play_movedown::@19 play_movedown::@6
|
||||
[151] (byte) current_xpos#35 ← phi( play_movedown::@19/(byte/signed byte/word/signed word/dword/signed dword) 3 play_movedown::@6/(byte) current_xpos#16 )
|
||||
[151] (byte) current_piece_color#23 ← phi( play_movedown::@19/(const byte) GREEN#0 play_movedown::@6/(byte) current_piece_color#11 )
|
||||
[151] (byte*) current_piece_gfx#30 ← phi( play_movedown::@19/(const byte[4*4*4]) piece_t#0 play_movedown::@6/(byte*) current_piece_gfx#16 )
|
||||
[151] (byte) current_piece_orientation#29 ← phi( play_movedown::@19/(byte/signed byte/word/signed word/dword/signed dword) 0 play_movedown::@6/(byte) current_piece_orientation#16 )
|
||||
[151] (byte*) current_piece#23 ← phi( play_movedown::@19/(const byte[4*4*4]) piece_t#0 play_movedown::@6/(byte*) current_piece#11 )
|
||||
[151] (byte) current_ypos#30 ← phi( play_movedown::@19/(byte/signed byte/word/signed word/dword/signed dword) 0 play_movedown::@6/(byte) current_ypos#4 )
|
||||
to:play_movedown::@return
|
||||
play_movedown::@return: scope:[play_movedown] from play_movedown::@4 play_movedown::@7
|
||||
[152] (byte) current_xpos#19 ← phi( play_movedown::@4/(byte) current_xpos#16 play_movedown::@7/(byte) current_xpos#35 )
|
||||
[152] (byte) current_piece_color#13 ← phi( play_movedown::@4/(byte) current_piece_color#11 play_movedown::@7/(byte) current_piece_color#23 )
|
||||
[152] (byte*) current_piece_gfx#18 ← phi( play_movedown::@4/(byte*) current_piece_gfx#16 play_movedown::@7/(byte*) current_piece_gfx#30 )
|
||||
[152] (byte) current_piece_orientation#18 ← phi( play_movedown::@4/(byte) current_piece_orientation#16 play_movedown::@7/(byte) current_piece_orientation#29 )
|
||||
[152] (byte*) current_piece#13 ← phi( play_movedown::@4/(byte*) current_piece#11 play_movedown::@7/(byte*) current_piece#23 )
|
||||
[152] (byte) current_ypos#16 ← phi( play_movedown::@4/(byte) current_ypos#12 play_movedown::@7/(byte) current_ypos#30 )
|
||||
[152] (byte) current_movedown_counter#12 ← phi( play_movedown::@4/(byte) current_movedown_counter#10 play_movedown::@7/(byte/signed byte/word/signed word/dword/signed dword) 0 )
|
||||
[152] (byte) play_movedown::return#3 ← phi( play_movedown::@4/(byte/signed byte/word/signed word/dword/signed dword) 0 play_movedown::@7/(byte/signed byte/word/signed word/dword/signed dword) 1 )
|
||||
[153] return
|
||||
play_move_leftright: scope:[play_move_leftright] from main::@27
|
||||
[123] 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
|
||||
[124] 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
|
||||
[125] (byte) collision::xpos#2 ← (byte) current_xpos#19 + (byte/signed byte/word/signed word/dword/signed dword) 1
|
||||
[126] (byte) collision::ypos#2 ← (byte) current_ypos#16
|
||||
[127] (byte) collision::orientation#2 ← (byte) current_piece_orientation#18
|
||||
[128] (byte*~) current_piece#69 ← (byte*) current_piece#13
|
||||
[129] call collision
|
||||
[130] (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
|
||||
[131] (byte~) play_move_leftright::$4 ← (byte) collision::return#12
|
||||
[132] 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
|
||||
[133] (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
|
||||
[134] (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 )
|
||||
[134] (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 )
|
||||
[135] return
|
||||
to:@return
|
||||
play_movedown::@6: scope:[play_movedown] from play_movedown::@18
|
||||
[154] (byte) current_ypos#4 ← ++ (byte) current_ypos#12
|
||||
to:play_movedown::@7
|
||||
spawn_current: scope:[spawn_current] from main::@21 play_movedown::@19
|
||||
[155] phi()
|
||||
play_move_leftright::@1: scope:[play_move_leftright] from play_move_leftright
|
||||
[136] (byte) collision::xpos#1 ← (byte) current_xpos#19 - (byte/signed byte/word/signed word/dword/signed dword) 1
|
||||
[137] (byte) collision::ypos#1 ← (byte) current_ypos#16
|
||||
[138] (byte) collision::orientation#1 ← (byte) current_piece_orientation#18
|
||||
[139] (byte*~) current_piece#68 ← (byte*) current_piece#13
|
||||
[140] call collision
|
||||
[141] (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
|
||||
[142] (byte~) play_move_leftright::$8 ← (byte) collision::return#1
|
||||
[143] 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
|
||||
[144] (byte) current_xpos#9 ← -- (byte) current_xpos#19
|
||||
to:play_move_leftright::@return
|
||||
play_move_down: scope:[play_move_down] from main::@26
|
||||
[145] (byte) current_movedown_counter#10 ← ++ (byte) current_movedown_counter#15
|
||||
[146] 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
|
||||
[147] phi()
|
||||
to:play_move_down::@1
|
||||
play_move_down::@1: scope:[play_move_down] from play_move_down play_move_down::@8
|
||||
[148] (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 )
|
||||
[149] call keyboard_event_pressed
|
||||
[150] (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
|
||||
[151] (byte~) play_move_down::$2 ← (byte) keyboard_event_pressed::return#12
|
||||
[152] 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
|
||||
[153] if((byte) current_movedown_counter#10<(const byte) current_movedown_rate_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
|
||||
[154] (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
|
||||
[155] (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 )
|
||||
[156] if((byte) current_movedown_counter#10<(const byte) current_movedown_rate#0) goto play_move_down::@4
|
||||
to:play_move_down::@11
|
||||
play_move_down::@11: scope:[play_move_down] from play_move_down::@2
|
||||
[157] (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
|
||||
[158] (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 )
|
||||
[159] 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
|
||||
[160] (byte) collision::ypos#0 ← (byte) current_ypos#12 + (byte/signed byte/word/signed word/dword/signed dword) 1
|
||||
[161] (byte) collision::xpos#0 ← (byte) current_xpos#16
|
||||
[162] (byte) collision::orientation#0 ← (byte) current_piece_orientation#15
|
||||
[163] (byte*~) current_piece#67 ← (byte*) current_piece#11
|
||||
[164] call collision
|
||||
[165] (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
|
||||
[166] (byte~) play_move_down::$12 ← (byte) collision::return#0
|
||||
[167] 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
|
||||
[168] phi()
|
||||
[169] call lock_current
|
||||
to:play_move_down::@19
|
||||
play_move_down::@19: scope:[play_move_down] from play_move_down::@13
|
||||
[170] phi()
|
||||
[171] call spawn_current
|
||||
to:play_move_down::@7
|
||||
play_move_down::@7: scope:[play_move_down] from play_move_down::@19 play_move_down::@6
|
||||
[172] (byte) current_xpos#36 ← phi( play_move_down::@19/(byte/signed byte/word/signed word/dword/signed dword) 3 play_move_down::@6/(byte) current_xpos#16 )
|
||||
[172] (byte) current_piece_color#23 ← phi( play_move_down::@19/(const byte) GREEN#0 play_move_down::@6/(byte) current_piece_color#11 )
|
||||
[172] (byte*) current_piece_gfx#29 ← phi( play_move_down::@19/(const byte[4*4*4]) piece_t#0 play_move_down::@6/(byte*) current_piece_gfx#15 )
|
||||
[172] (byte) current_piece_orientation#33 ← phi( play_move_down::@19/(byte/signed byte/word/signed word/dword/signed dword) 0 play_move_down::@6/(byte) current_piece_orientation#15 )
|
||||
[172] (byte*) current_piece#23 ← phi( play_move_down::@19/(const byte[4*4*4]) piece_t#0 play_move_down::@6/(byte*) current_piece#11 )
|
||||
[172] (byte) current_ypos#31 ← phi( play_move_down::@19/(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
|
||||
[173] (byte) current_xpos#19 ← phi( play_move_down::@4/(byte) current_xpos#16 play_move_down::@7/(byte) current_xpos#36 )
|
||||
[173] (byte) current_piece_color#13 ← phi( play_move_down::@4/(byte) current_piece_color#11 play_move_down::@7/(byte) current_piece_color#23 )
|
||||
[173] (byte*) current_piece_gfx#17 ← phi( play_move_down::@4/(byte*) current_piece_gfx#15 play_move_down::@7/(byte*) current_piece_gfx#29 )
|
||||
[173] (byte) current_piece_orientation#18 ← phi( play_move_down::@4/(byte) current_piece_orientation#15 play_move_down::@7/(byte) current_piece_orientation#33 )
|
||||
[173] (byte*) current_piece#13 ← phi( play_move_down::@4/(byte*) current_piece#11 play_move_down::@7/(byte*) current_piece#23 )
|
||||
[173] (byte) current_ypos#16 ← phi( play_move_down::@4/(byte) current_ypos#12 play_move_down::@7/(byte) current_ypos#31 )
|
||||
[173] (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 )
|
||||
[173] (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 )
|
||||
[174] return
|
||||
to:@return
|
||||
play_move_down::@6: scope:[play_move_down] from play_move_down::@18
|
||||
[175] (byte) current_ypos#4 ← ++ (byte) current_ypos#12
|
||||
to:play_move_down::@7
|
||||
spawn_current: scope:[spawn_current] from main::@21 play_move_down::@19
|
||||
[176] phi()
|
||||
to:spawn_current::@return
|
||||
spawn_current::@return: scope:[spawn_current] from spawn_current
|
||||
[156] return
|
||||
[177] return
|
||||
to:@return
|
||||
lock_current: scope:[lock_current] from play_movedown::@13
|
||||
[157] phi()
|
||||
lock_current: scope:[lock_current] from play_move_down::@13
|
||||
[178] phi()
|
||||
to:lock_current::@1
|
||||
lock_current::@1: scope:[lock_current] from lock_current lock_current::@5
|
||||
[158] (byte) lock_current::i#3 ← phi( lock_current/(byte/signed byte/word/signed word/dword/signed dword) 0 lock_current::@5/(byte) lock_current::i#1 )
|
||||
[158] (byte) lock_current::l#2 ← phi( lock_current/(byte/signed byte/word/signed word/dword/signed dword) 0 lock_current::@5/(byte) lock_current::l#1 )
|
||||
[159] (byte) lock_current::line#0 ← (byte) current_ypos#12 + (byte) lock_current::l#2
|
||||
[160] (byte~) lock_current::$1 ← (byte) lock_current::line#0 << (byte/signed byte/word/signed word/dword/signed dword) 1
|
||||
[161] (byte*) lock_current::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) lock_current::$1)
|
||||
[179] (byte) lock_current::i#3 ← phi( lock_current/(byte/signed byte/word/signed word/dword/signed dword) 0 lock_current::@5/(byte) lock_current::i#1 )
|
||||
[179] (byte) lock_current::l#2 ← phi( lock_current/(byte/signed byte/word/signed word/dword/signed dword) 0 lock_current::@5/(byte) lock_current::l#1 )
|
||||
[180] (byte) lock_current::line#0 ← (byte) current_ypos#12 + (byte) lock_current::l#2
|
||||
[181] (byte~) lock_current::$1 ← (byte) lock_current::line#0 << (byte/signed byte/word/signed word/dword/signed dword) 1
|
||||
[182] (byte*) lock_current::playfield_line#0 ← *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) lock_current::$1)
|
||||
to:lock_current::@2
|
||||
lock_current::@2: scope:[lock_current] from lock_current::@1 lock_current::@3
|
||||
[162] (byte) lock_current::c#2 ← phi( lock_current::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 lock_current::@3/(byte) lock_current::c#1 )
|
||||
[162] (byte) lock_current::i#2 ← phi( lock_current::@1/(byte) lock_current::i#3 lock_current::@3/(byte) lock_current::i#1 )
|
||||
[163] (byte) lock_current::cell#0 ← *((byte*) current_piece_gfx#16 + (byte) lock_current::i#2)
|
||||
[164] (byte) lock_current::i#1 ← ++ (byte) lock_current::i#2
|
||||
[165] if((byte) lock_current::cell#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto lock_current::@3
|
||||
[183] (byte) lock_current::c#2 ← phi( lock_current::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 lock_current::@3/(byte) lock_current::c#1 )
|
||||
[183] (byte) lock_current::i#2 ← phi( lock_current::@1/(byte) lock_current::i#3 lock_current::@3/(byte) lock_current::i#1 )
|
||||
[184] (byte) lock_current::cell#0 ← *((byte*) current_piece_gfx#15 + (byte) lock_current::i#2)
|
||||
[185] (byte) lock_current::i#1 ← ++ (byte) lock_current::i#2
|
||||
[186] if((byte) lock_current::cell#0==(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
|
||||
[166] (byte) lock_current::col#0 ← (byte) current_xpos#16 + (byte) lock_current::c#2
|
||||
[167] *((byte*) lock_current::playfield_line#0 + (byte) lock_current::col#0) ← (byte) current_piece_color#11
|
||||
[187] (byte) lock_current::col#0 ← (byte) current_xpos#16 + (byte) lock_current::c#2
|
||||
[188] *((byte*) lock_current::playfield_line#0 + (byte) lock_current::col#0) ← (byte) current_piece_color#11
|
||||
to:lock_current::@3
|
||||
lock_current::@3: scope:[lock_current] from lock_current::@2 lock_current::@4
|
||||
[168] (byte) lock_current::c#1 ← ++ (byte) lock_current::c#2
|
||||
[169] if((byte) lock_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto lock_current::@2
|
||||
[189] (byte) lock_current::c#1 ← ++ (byte) lock_current::c#2
|
||||
[190] if((byte) lock_current::c#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto lock_current::@2
|
||||
to:lock_current::@5
|
||||
lock_current::@5: scope:[lock_current] from lock_current::@3
|
||||
[170] (byte) lock_current::l#1 ← ++ (byte) lock_current::l#2
|
||||
[171] if((byte) lock_current::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto lock_current::@1
|
||||
[191] (byte) lock_current::l#1 ← ++ (byte) lock_current::l#2
|
||||
[192] if((byte) lock_current::l#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto lock_current::@1
|
||||
to:lock_current::@return
|
||||
lock_current::@return: scope:[lock_current] from lock_current::@5
|
||||
[172] return
|
||||
[193] return
|
||||
to:@return
|
||||
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_movedown::@1
|
||||
[173] (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_movedown::@1/(const byte) KEY_SPACE#0 )
|
||||
[174] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte/signed byte/word/signed word/dword/signed dword) 3
|
||||
[175] (byte) keyboard_event_pressed::row_bits#0 ← *((const byte[8]) keyboard_scan_values#0 + (byte~) keyboard_event_pressed::$0)
|
||||
[176] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte/signed byte/word/signed word/dword/signed dword) 7
|
||||
[177] (byte) keyboard_event_pressed::return#11 ← (byte) keyboard_event_pressed::row_bits#0 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte~) keyboard_event_pressed::$1)
|
||||
keyboard_event_pressed: 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
|
||||
[194] (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 )
|
||||
[195] (byte~) keyboard_event_pressed::$0 ← (byte) keyboard_event_pressed::keycode#5 >> (byte/signed byte/word/signed word/dword/signed dword) 3
|
||||
[196] (byte) keyboard_event_pressed::row_bits#0 ← *((const byte[8]) keyboard_scan_values#0 + (byte~) keyboard_event_pressed::$0)
|
||||
[197] (byte~) keyboard_event_pressed::$1 ← (byte) keyboard_event_pressed::keycode#5 & (byte/signed byte/word/signed word/dword/signed dword) 7
|
||||
[198] (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
|
||||
[178] return
|
||||
[199] return
|
||||
to:@return
|
||||
keyboard_event_get: scope:[keyboard_event_get] from main::@25
|
||||
[179] if((byte) keyboard_events_size#13==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_get::@return
|
||||
[200] 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
|
||||
[180] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13
|
||||
[181] (byte) keyboard_event_get::return#1 ← *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#4)
|
||||
[201] (byte) keyboard_events_size#4 ← -- (byte) keyboard_events_size#13
|
||||
[202] (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
|
||||
[182] (byte) keyboard_events_size#16 ← phi( keyboard_event_get/(byte) keyboard_events_size#13 keyboard_event_get::@3/(byte) keyboard_events_size#4 )
|
||||
[182] (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 )
|
||||
[183] return
|
||||
[203] (byte) keyboard_events_size#16 ← phi( keyboard_event_get/(byte) keyboard_events_size#13 keyboard_event_get::@3/(byte) keyboard_events_size#4 )
|
||||
[203] (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 )
|
||||
[204] return
|
||||
to:@return
|
||||
keyboard_event_scan: scope:[keyboard_event_scan] from main::@9
|
||||
[184] phi()
|
||||
[205] phi()
|
||||
to:keyboard_event_scan::@1
|
||||
keyboard_event_scan::@1: scope:[keyboard_event_scan] from keyboard_event_scan keyboard_event_scan::@3
|
||||
[185] (byte) keyboard_events_size#29 ← phi( keyboard_event_scan/(byte) keyboard_events_size#19 keyboard_event_scan::@3/(byte) keyboard_events_size#13 )
|
||||
[185] (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 )
|
||||
[185] (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 )
|
||||
[186] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2
|
||||
[187] call keyboard_matrix_read
|
||||
[188] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0
|
||||
[206] (byte) keyboard_events_size#29 ← phi( keyboard_event_scan/(byte) keyboard_events_size#19 keyboard_event_scan::@3/(byte) keyboard_events_size#13 )
|
||||
[206] (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 )
|
||||
[206] (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 )
|
||||
[207] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_event_scan::row#2
|
||||
[208] call keyboard_matrix_read
|
||||
[209] (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
|
||||
[189] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2
|
||||
[190] 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
|
||||
[210] (byte) keyboard_event_scan::row_scan#0 ← (byte) keyboard_matrix_read::return#2
|
||||
[211] 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
|
||||
[191] (byte) keyboard_event_scan::keycode#1 ← (byte) keyboard_event_scan::keycode#11 + (byte/signed byte/word/signed word/dword/signed dword) 8
|
||||
[212] (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
|
||||
[192] (byte) keyboard_events_size#13 ← phi( keyboard_event_scan::@13/(byte) keyboard_events_size#29 keyboard_event_scan::@19/(byte) keyboard_events_size#30 )
|
||||
[192] (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 )
|
||||
[193] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2
|
||||
[194] if((byte) keyboard_event_scan::row#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@1
|
||||
[213] (byte) keyboard_events_size#13 ← phi( keyboard_event_scan::@13/(byte) keyboard_events_size#29 keyboard_event_scan::@19/(byte) keyboard_events_size#30 )
|
||||
[213] (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 )
|
||||
[214] (byte) keyboard_event_scan::row#1 ← ++ (byte) keyboard_event_scan::row#2
|
||||
[215] 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
|
||||
[195] phi()
|
||||
[196] call keyboard_event_pressed
|
||||
[197] (byte) keyboard_event_pressed::return#0 ← (byte) keyboard_event_pressed::return#11
|
||||
[216] phi()
|
||||
[217] call keyboard_event_pressed
|
||||
[218] (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
|
||||
[198] (byte~) keyboard_event_scan::$14 ← (byte) keyboard_event_pressed::return#0
|
||||
[199] if((byte~) keyboard_event_scan::$14==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@9
|
||||
[219] (byte~) keyboard_event_scan::$14 ← (byte) keyboard_event_pressed::return#0
|
||||
[220] 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
|
||||
[200] phi()
|
||||
[221] phi()
|
||||
to:keyboard_event_scan::@9
|
||||
keyboard_event_scan::@9: scope:[keyboard_event_scan] from keyboard_event_scan::@21 keyboard_event_scan::@26
|
||||
[201] phi()
|
||||
[202] call keyboard_event_pressed
|
||||
[203] (byte) keyboard_event_pressed::return#1 ← (byte) keyboard_event_pressed::return#11
|
||||
[222] phi()
|
||||
[223] call keyboard_event_pressed
|
||||
[224] (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
|
||||
[204] (byte~) keyboard_event_scan::$18 ← (byte) keyboard_event_pressed::return#1
|
||||
[205] if((byte~) keyboard_event_scan::$18==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@10
|
||||
[225] (byte~) keyboard_event_scan::$18 ← (byte) keyboard_event_pressed::return#1
|
||||
[226] 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
|
||||
[206] phi()
|
||||
[227] phi()
|
||||
to:keyboard_event_scan::@10
|
||||
keyboard_event_scan::@10: scope:[keyboard_event_scan] from keyboard_event_scan::@22 keyboard_event_scan::@27
|
||||
[207] phi()
|
||||
[208] call keyboard_event_pressed
|
||||
[209] (byte) keyboard_event_pressed::return#2 ← (byte) keyboard_event_pressed::return#11
|
||||
[228] phi()
|
||||
[229] call keyboard_event_pressed
|
||||
[230] (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
|
||||
[210] (byte~) keyboard_event_scan::$22 ← (byte) keyboard_event_pressed::return#2
|
||||
[211] if((byte~) keyboard_event_scan::$22==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@11
|
||||
[231] (byte~) keyboard_event_scan::$22 ← (byte) keyboard_event_pressed::return#2
|
||||
[232] 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
|
||||
[212] phi()
|
||||
[233] phi()
|
||||
to:keyboard_event_scan::@11
|
||||
keyboard_event_scan::@11: scope:[keyboard_event_scan] from keyboard_event_scan::@23 keyboard_event_scan::@28
|
||||
[213] phi()
|
||||
[214] call keyboard_event_pressed
|
||||
[215] (byte) keyboard_event_pressed::return#10 ← (byte) keyboard_event_pressed::return#11
|
||||
[234] phi()
|
||||
[235] call keyboard_event_pressed
|
||||
[236] (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
|
||||
[216] (byte~) keyboard_event_scan::$26 ← (byte) keyboard_event_pressed::return#10
|
||||
[217] if((byte~) keyboard_event_scan::$26==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@return
|
||||
[237] (byte~) keyboard_event_scan::$26 ← (byte) keyboard_event_pressed::return#10
|
||||
[238] 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
|
||||
[218] phi()
|
||||
[239] phi()
|
||||
to:keyboard_event_scan::@return
|
||||
keyboard_event_scan::@return: scope:[keyboard_event_scan] from keyboard_event_scan::@24 keyboard_event_scan::@29
|
||||
[219] return
|
||||
[240] return
|
||||
to:@return
|
||||
keyboard_event_scan::@4: scope:[keyboard_event_scan] from keyboard_event_scan::@25 keyboard_event_scan::@5
|
||||
[220] (byte) keyboard_events_size#10 ← phi( keyboard_event_scan::@25/(byte) keyboard_events_size#29 keyboard_event_scan::@5/(byte) keyboard_events_size#30 )
|
||||
[220] (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 )
|
||||
[220] (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 )
|
||||
[221] (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)
|
||||
[222] (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2)
|
||||
[223] if((byte~) keyboard_event_scan::$4==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@5
|
||||
[241] (byte) keyboard_events_size#10 ← phi( keyboard_event_scan::@25/(byte) keyboard_events_size#29 keyboard_event_scan::@5/(byte) keyboard_events_size#30 )
|
||||
[241] (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 )
|
||||
[241] (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 )
|
||||
[242] (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)
|
||||
[243] (byte~) keyboard_event_scan::$4 ← (byte~) keyboard_event_scan::$3 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_event_scan::col#2)
|
||||
[244] 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
|
||||
[224] if((byte) keyboard_events_size#10==(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@5
|
||||
[245] 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
|
||||
[225] (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)
|
||||
[226] if((byte) keyboard_event_scan::event_type#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto keyboard_event_scan::@7
|
||||
[246] (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)
|
||||
[247] 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
|
||||
[227] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10
|
||||
[228] (byte) keyboard_events_size#2 ← ++ (byte) keyboard_events_size#10
|
||||
[248] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte) keyboard_event_scan::keycode#10
|
||||
[249] (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
|
||||
[229] (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 )
|
||||
[230] (byte) keyboard_event_scan::keycode#15 ← ++ (byte) keyboard_event_scan::keycode#10
|
||||
[231] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2
|
||||
[232] if((byte) keyboard_event_scan::col#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto keyboard_event_scan::@4
|
||||
[250] (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 )
|
||||
[251] (byte) keyboard_event_scan::keycode#15 ← ++ (byte) keyboard_event_scan::keycode#10
|
||||
[252] (byte) keyboard_event_scan::col#1 ← ++ (byte) keyboard_event_scan::col#2
|
||||
[253] 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
|
||||
[233] *((const byte[8]) keyboard_scan_values#0 + (byte) keyboard_event_scan::row#2) ← (byte) keyboard_event_scan::row_scan#0
|
||||
[254] *((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
|
||||
[234] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64
|
||||
[235] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte/word/dword~) keyboard_event_scan::$11
|
||||
[236] (byte) keyboard_events_size#1 ← ++ (byte) keyboard_events_size#10
|
||||
[255] (byte/word/dword~) keyboard_event_scan::$11 ← (byte) keyboard_event_scan::keycode#10 | (byte/signed byte/word/signed word/dword/signed dword) 64
|
||||
[256] *((const byte[8]) keyboard_events#0 + (byte) keyboard_events_size#10) ← (byte/word/dword~) keyboard_event_scan::$11
|
||||
[257] (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
|
||||
[237] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0)
|
||||
[238] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0)
|
||||
[258] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#0)
|
||||
[259] (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
|
||||
[239] return
|
||||
[260] return
|
||||
to:@return
|
||||
init: scope:[init] from main
|
||||
[240] phi()
|
||||
[241] call fill
|
||||
[261] phi()
|
||||
[262] call fill
|
||||
to:init::@9
|
||||
init::@9: scope:[init] from init
|
||||
[242] phi()
|
||||
[243] call fill
|
||||
[263] phi()
|
||||
[264] call fill
|
||||
to:init::@1
|
||||
init::@1: scope:[init] from init::@1 init::@9
|
||||
[244] (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 )
|
||||
[244] (byte) init::i#2 ← phi( init::@1/(byte) init::i#1 init::@9/(byte/signed byte/word/signed word/dword/signed dword) 0 )
|
||||
[245] (byte~) init::$5 ← (byte) init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1
|
||||
[246] *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte~) init::$5) ← (byte*) init::li#2
|
||||
[247] (byte*) init::li#1 ← (byte*) init::li#2 + (byte/signed byte/word/signed word/dword/signed dword) 40
|
||||
[248] (byte) init::i#1 ← ++ (byte) init::i#2
|
||||
[249] 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
|
||||
[265] (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 )
|
||||
[265] (byte) init::i#2 ← phi( init::@1/(byte) init::i#1 init::@9/(byte/signed byte/word/signed word/dword/signed dword) 0 )
|
||||
[266] (byte~) init::$5 ← (byte) init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1
|
||||
[267] *((const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 + (byte~) init::$5) ← (byte*) init::li#2
|
||||
[268] (byte*) init::li#1 ← (byte*) init::li#2 + (byte/signed byte/word/signed word/dword/signed dword) 40
|
||||
[269] (byte) init::i#1 ← ++ (byte) init::i#2
|
||||
[270] 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
|
||||
[250] (byte*) init::pli#2 ← phi( init::@2/(byte*) init::pli#1 init::@1/(const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 )
|
||||
[250] (byte) init::j#2 ← phi( init::@2/(byte) init::j#1 init::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 )
|
||||
[251] (byte~) init::$8 ← (byte) init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1
|
||||
[252] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) init::$8) ← (byte*) init::pli#2
|
||||
[253] (byte*) init::pli#1 ← (byte*) init::pli#2 + (byte/signed byte/word/signed word/dword/signed dword) 10
|
||||
[254] (byte) init::j#1 ← ++ (byte) init::j#2
|
||||
[255] 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
|
||||
[271] (byte*) init::pli#2 ← phi( init::@2/(byte*) init::pli#1 init::@1/(const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 )
|
||||
[271] (byte) init::j#2 ← phi( init::@2/(byte) init::j#1 init::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 )
|
||||
[272] (byte~) init::$8 ← (byte) init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1
|
||||
[273] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) init::$8) ← (byte*) init::pli#2
|
||||
[274] (byte*) init::pli#1 ← (byte*) init::pli#2 + (byte/signed byte/word/signed word/dword/signed dword) 10
|
||||
[275] (byte) init::j#1 ← ++ (byte) init::j#2
|
||||
[276] 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::@3
|
||||
init::@3: scope:[init] from init::@2 init::@7
|
||||
[256] (byte) init::l#4 ← phi( init::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 init::@7/(byte) init::l#1 )
|
||||
[256] (byte*) init::line#4 ← phi( init::@2/(const byte*) COLS#0+(byte/signed byte/word/signed word/dword/signed dword) 14 init::@7/(byte*) init::line#1 )
|
||||
[277] (byte) init::l#4 ← phi( init::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 init::@7/(byte) init::l#1 )
|
||||
[277] (byte*) init::line#4 ← phi( init::@2/(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
|
||||
[257] (byte) init::c#2 ← phi( init::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 init::@4/(byte) init::c#1 )
|
||||
[258] (byte*~) init::$13 ← (byte*) init::line#4 + (byte) init::c#2
|
||||
[259] *((byte*~) init::$13) ← (const byte) DARK_GREY#0
|
||||
[260] (byte) init::c#1 ← ++ (byte) init::c#2
|
||||
[261] 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
|
||||
[278] (byte) init::c#2 ← phi( init::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 init::@4/(byte) init::c#1 )
|
||||
[279] (byte*~) init::$13 ← (byte*) init::line#4 + (byte) init::c#2
|
||||
[280] *((byte*~) init::$13) ← (const byte) DARK_GREY#0
|
||||
[281] (byte) init::c#1 ← ++ (byte) init::c#2
|
||||
[282] 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
|
||||
[262] (byte*) init::line#1 ← (byte*) init::line#4 + (byte/signed byte/word/signed word/dword/signed dword) 40
|
||||
[263] (byte) init::l#1 ← ++ (byte) init::l#4
|
||||
[264] 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
|
||||
[283] (byte*) init::line#1 ← (byte*) init::line#4 + (byte/signed byte/word/signed word/dword/signed dword) 40
|
||||
[284] (byte) init::l#1 ← ++ (byte) init::l#4
|
||||
[285] 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
|
||||
[265] return
|
||||
[286] return
|
||||
to:@return
|
||||
fill: scope:[fill] from init init::@9
|
||||
[266] (byte) fill::val#3 ← phi( init/(byte/word/signed word/dword/signed dword) 160 init::@9/(const byte) BLACK#0 )
|
||||
[266] (byte*) fill::addr#0 ← phi( init/(const byte*) SCREEN#0 init::@9/(const byte*) COLS#0 )
|
||||
[267] (byte*) fill::end#0 ← (byte*) fill::addr#0 + (word/signed word/dword/signed dword) 1000
|
||||
[287] (byte) fill::val#3 ← phi( init/(byte/word/signed word/dword/signed dword) 160 init::@9/(const byte) BLACK#0 )
|
||||
[287] (byte*) fill::addr#0 ← phi( init/(const byte*) SCREEN#0 init::@9/(const byte*) COLS#0 )
|
||||
[288] (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
|
||||
[268] (byte*) fill::addr#2 ← phi( fill/(byte*) fill::addr#0 fill::@1/(byte*) fill::addr#1 )
|
||||
[269] *((byte*) fill::addr#2) ← (byte) fill::val#3
|
||||
[270] (byte*) fill::addr#1 ← ++ (byte*) fill::addr#2
|
||||
[271] if((byte*) fill::addr#1!=(byte*) fill::end#0) goto fill::@1
|
||||
[289] (byte*) fill::addr#2 ← phi( fill/(byte*) fill::addr#0 fill::@1/(byte*) fill::addr#1 )
|
||||
[290] *((byte*) fill::addr#2) ← (byte) fill::val#3
|
||||
[291] (byte*) fill::addr#1 ← ++ (byte*) fill::addr#2
|
||||
[292] if((byte*) fill::addr#1!=(byte*) fill::end#0) goto fill::@1
|
||||
to:fill::@return
|
||||
fill::@return: scope:[fill] from fill::@1
|
||||
[272] return
|
||||
[293] return
|
||||
to:@return
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,4 +1,4 @@
|
||||
(label) @20
|
||||
(label) @21
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte) BLACK
|
||||
@ -55,8 +55,7 @@
|
||||
(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) 53266
|
||||
(byte*) SCREEN
|
||||
(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024
|
||||
(byte()) collision((byte) collision::ypos , (byte) collision::xpos)
|
||||
(byte~) collision::$1 reg byte a 202.0
|
||||
(byte()) collision((byte) collision::xpos , (byte) collision::ypos , (byte) collision::orientation)
|
||||
(byte~) collision::$7 reg byte a 2002.0
|
||||
(label) collision::@1
|
||||
(label) collision::@17
|
||||
@ -71,91 +70,105 @@
|
||||
(label) collision::@return
|
||||
(byte) collision::c
|
||||
(byte) collision::c#1 reg byte x 1001.0
|
||||
(byte) collision::c#2 reg byte x 333.6666666666667
|
||||
(byte) collision::c#2 reg byte x 222.44444444444446
|
||||
(byte) collision::col
|
||||
(byte) collision::col#0 reg byte y 1001.0
|
||||
(byte) collision::col#1 col zp ZP_BYTE:11 500.5
|
||||
(byte) collision::col#2 col zp ZP_BYTE:11 638.25
|
||||
(byte~) collision::col#9 col zp ZP_BYTE:11 202.0
|
||||
(byte) collision::i
|
||||
(byte) collision::i#1 i zp ZP_BYTE:23 175.25
|
||||
(byte~) collision::i#11 i#11 zp ZP_BYTE:9 202.0
|
||||
(byte~) collision::i#13 i#13 zp ZP_BYTE:9 2002.0
|
||||
(byte) collision::i#2 i#2 zp ZP_BYTE:9 1552.0
|
||||
(byte) collision::i#3 i#3 zp ZP_BYTE:9 50.5
|
||||
(byte) collision::i#1 i zp ZP_BYTE:24 161.76923076923077
|
||||
(byte~) collision::i#11 i#11 zp ZP_BYTE:10 202.0
|
||||
(byte~) collision::i#13 i#13 zp ZP_BYTE:10 2002.0
|
||||
(byte) collision::i#2 i#2 zp ZP_BYTE:10 1552.0
|
||||
(byte) collision::i#3 i#3 zp ZP_BYTE:10 67.33333333333333
|
||||
(byte) collision::l
|
||||
(byte) collision::l#1 l zp ZP_BYTE:8 101.0
|
||||
(byte) collision::l#2 l zp ZP_BYTE:8 18.9375
|
||||
(byte) collision::line
|
||||
(byte) collision::line#0 line zp ZP_BYTE:22 80.2
|
||||
(byte) collision::l#1 l zp ZP_BYTE:9 101.0
|
||||
(byte) collision::l#6 l zp ZP_BYTE:9 12.625
|
||||
(byte) collision::orientation
|
||||
(byte) collision::orientation#0 reg byte x 2.0
|
||||
(byte) collision::orientation#1 reg byte x 2.0
|
||||
(byte) collision::orientation#2 reg byte x 2.0
|
||||
(byte) collision::orientation#3 reg byte x 2.0
|
||||
(byte) collision::orientation#4 reg byte x 10.0
|
||||
(byte*) collision::piece_gfx
|
||||
(byte*) collision::piece_gfx#0 piece_gfx zp ZP_WORD:5 47.76190476190476
|
||||
(byte*) collision::playfield_line
|
||||
(byte*) collision::playfield_line#0 playfield_line zp ZP_WORD:20 84.76923076923077
|
||||
(byte*) collision::playfield_line#0 playfield_line zp ZP_WORD:22 78.71428571428571
|
||||
(byte) collision::return
|
||||
(byte) collision::return#0 reg byte a 4.0
|
||||
(byte) collision::return#10 reg byte a 1.2000000000000002
|
||||
(byte) collision::return#11 reg byte a 4.0
|
||||
(byte) collision::return#1 reg byte a 4.0
|
||||
(byte) collision::return#12 reg byte a 4.0
|
||||
(byte) collision::return#13 reg byte a 4.0
|
||||
(byte) collision::return#14 reg byte a 1.3333333333333333
|
||||
(byte) collision::xpos
|
||||
(byte) collision::xpos#0 xpos zp ZP_BYTE:7 2.0
|
||||
(byte) collision::xpos#1 xpos zp ZP_BYTE:7 1.3333333333333333
|
||||
(byte) collision::xpos#2 xpos zp ZP_BYTE:7 1.3333333333333333
|
||||
(byte) collision::xpos#8 xpos zp ZP_BYTE:7 50.349999999999994
|
||||
(byte) collision::xpos#0 xpos zp ZP_BYTE:7 1.3333333333333333
|
||||
(byte) collision::xpos#1 xpos zp ZP_BYTE:7 1.0
|
||||
(byte) collision::xpos#2 xpos zp ZP_BYTE:7 1.0
|
||||
(byte) collision::xpos#3 xpos zp ZP_BYTE:7 1.0
|
||||
(byte) collision::xpos#5 xpos zp ZP_BYTE:7 4.954545454545454
|
||||
(byte) collision::ypos
|
||||
(byte) collision::ypos#0 ypos zp ZP_BYTE:4 1.3333333333333333
|
||||
(byte) collision::ypos#1 ypos zp ZP_BYTE:4 2.0
|
||||
(byte) collision::ypos#2 ypos zp ZP_BYTE:4 2.0
|
||||
(byte) collision::ypos#4 ypos zp ZP_BYTE:4 5.35
|
||||
(byte) collision::ypos#0 reg byte y 1.0
|
||||
(byte) collision::ypos#1 reg byte y 1.3333333333333333
|
||||
(byte) collision::ypos#2 reg byte y 1.3333333333333333
|
||||
(byte) collision::ypos#3 reg byte y 1.3333333333333333
|
||||
(byte) collision::ypos#4 reg byte y 5.0
|
||||
(byte) collision::ypos2
|
||||
(byte) collision::ypos2#0 ypos2 zp ZP_BYTE:8 4.0
|
||||
(byte) collision::ypos2#1 ypos2 zp ZP_BYTE:8 50.5
|
||||
(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.6190476190476191
|
||||
(byte) current_movedown_counter#12 current_movedown_counter zp ZP_BYTE:3 0.5
|
||||
(byte) current_movedown_counter#15 current_movedown_counter zp ZP_BYTE:3 1.3
|
||||
(byte) current_movedown_rate
|
||||
(const byte) current_movedown_rate#0 current_movedown_rate = (byte/signed byte/word/signed word/dword/signed dword) 50
|
||||
(byte) current_movedown_rate_fast
|
||||
(const byte) current_movedown_rate_fast#0 current_movedown_rate_fast = (byte/signed byte/word/signed word/dword/signed dword) 5
|
||||
(byte*) current_piece
|
||||
(byte*) current_piece#11 current_piece zp ZP_WORD:11 0.45454545454545453
|
||||
(byte*) current_piece#13 current_piece zp ZP_WORD:11 0.37254901960784303
|
||||
(byte*) current_piece#23 current_piece zp ZP_WORD:11 4.0
|
||||
(byte*) current_piece#11 current_piece zp ZP_WORD:12 0.5
|
||||
(byte*) current_piece#13 current_piece zp ZP_WORD:12 0.3382352941176471
|
||||
(byte*) current_piece#15 current_piece#15 zp ZP_WORD:5 10.0
|
||||
(byte*) current_piece#23 current_piece zp ZP_WORD:12 4.0
|
||||
(byte*~) current_piece#67 current_piece#67 zp ZP_WORD:5 4.0
|
||||
(byte*~) current_piece#68 current_piece#68 zp ZP_WORD:5 4.0
|
||||
(byte*~) current_piece#69 current_piece#69 zp ZP_WORD:5 4.0
|
||||
(byte*~) current_piece#70 current_piece#70 zp ZP_WORD:5 4.0
|
||||
(byte) current_piece_color
|
||||
(byte) current_piece_color#11 current_piece_color zp ZP_BYTE:16 20.73469387755102
|
||||
(byte) current_piece_color#13 current_piece_color zp ZP_BYTE:16 1.2380952380952381
|
||||
(byte) current_piece_color#23 current_piece_color zp ZP_BYTE:16 4.0
|
||||
(byte) current_piece_color#62 current_piece_color#62 zp ZP_BYTE:8 56.22222222222223
|
||||
(byte~) current_piece_color#69 current_piece_color#69 zp ZP_BYTE:8 22.0
|
||||
(byte) current_piece_color#11 current_piece_color zp ZP_BYTE:17 20.32
|
||||
(byte) current_piece_color#13 current_piece_color zp ZP_BYTE:17 1.0
|
||||
(byte) current_piece_color#23 current_piece_color zp ZP_BYTE:17 4.0
|
||||
(byte) current_piece_color#63 current_piece_color#63 zp ZP_BYTE:7 53.26315789473684
|
||||
(byte~) current_piece_color#70 current_piece_color#70 zp ZP_BYTE:7 22.0
|
||||
(byte*) current_piece_gfx
|
||||
(byte*) current_piece_gfx#10 current_piece_gfx zp ZP_WORD:14 4.0
|
||||
(byte*~) current_piece_gfx#108 current_piece_gfx#108 zp ZP_WORD:5 4.0
|
||||
(byte*~) current_piece_gfx#109 current_piece_gfx#109 zp ZP_WORD:5 4.0
|
||||
(byte*) current_piece_gfx#11 current_piece_gfx zp ZP_WORD:14 2.375
|
||||
(byte*~) current_piece_gfx#110 current_piece_gfx#110 zp ZP_WORD:5 4.0
|
||||
(byte*) current_piece_gfx#16 current_piece_gfx zp ZP_WORD:14 20.77551020408163
|
||||
(byte*) current_piece_gfx#18 current_piece_gfx zp ZP_WORD:14 0.6896551724137933
|
||||
(byte*) current_piece_gfx#30 current_piece_gfx zp ZP_WORD:14 4.0
|
||||
(byte*) current_piece_gfx#46 current_piece_gfx#46 zp ZP_WORD:5 50.349999999999994
|
||||
(byte*) current_piece_gfx#75 current_piece_gfx#75 zp ZP_WORD:5 56.22222222222223
|
||||
(byte*) current_piece_gfx#9 current_piece_gfx zp ZP_WORD:14 4.0
|
||||
(byte*~) current_piece_gfx#99 current_piece_gfx#99 zp ZP_WORD:5 7.333333333333333
|
||||
(byte*) current_piece_gfx#15 current_piece_gfx zp ZP_WORD:15 20.32
|
||||
(byte*) current_piece_gfx#17 current_piece_gfx zp ZP_WORD:15 0.2857142857142857
|
||||
(byte*) current_piece_gfx#18 current_piece_gfx zp ZP_WORD:15 1.75
|
||||
(byte*) current_piece_gfx#29 current_piece_gfx zp ZP_WORD:15 4.0
|
||||
(byte*) current_piece_gfx#61 current_piece_gfx#61 zp ZP_WORD:5 53.26315789473684
|
||||
(byte*) current_piece_gfx#8 current_piece_gfx zp ZP_WORD:15 4.0
|
||||
(byte*~) current_piece_gfx#82 current_piece_gfx#82 zp ZP_WORD:5 11.0
|
||||
(byte) current_piece_orientation
|
||||
(byte) current_piece_orientation#10 current_piece_orientation zp ZP_BYTE:13 3.0
|
||||
(byte) current_piece_orientation#11 current_piece_orientation zp ZP_BYTE:13 1.6875
|
||||
(byte) current_piece_orientation#16 current_piece_orientation zp ZP_BYTE:13 0.45454545454545453
|
||||
(byte) current_piece_orientation#18 current_piece_orientation zp ZP_BYTE:13 0.6896551724137933
|
||||
(byte) current_piece_orientation#29 current_piece_orientation zp ZP_BYTE:13 4.0
|
||||
(byte) current_piece_orientation#9 current_piece_orientation zp ZP_BYTE:13 3.0
|
||||
(byte) current_piece_orientation#15 current_piece_orientation zp ZP_BYTE:14 0.5
|
||||
(byte) current_piece_orientation#18 current_piece_orientation zp ZP_BYTE:14 0.32
|
||||
(byte) current_piece_orientation#23 current_piece_orientation zp ZP_BYTE:14 1.0625
|
||||
(byte) current_piece_orientation#33 current_piece_orientation zp ZP_BYTE:14 4.0
|
||||
(byte) current_piece_orientation#8 current_piece_orientation zp ZP_BYTE:14 3.0
|
||||
(byte) current_xpos
|
||||
(byte) current_xpos#10 current_xpos zp ZP_BYTE:17 4.0
|
||||
(byte) current_xpos#11 current_xpos zp ZP_BYTE:17 2.375
|
||||
(byte) current_xpos#16 current_xpos zp ZP_BYTE:17 20.77551020408163
|
||||
(byte) current_xpos#19 current_xpos zp ZP_BYTE:17 0.7272727272727271
|
||||
(byte) current_xpos#35 current_xpos zp ZP_BYTE:17 4.0
|
||||
(byte) current_xpos#81 current_xpos#81 zp ZP_BYTE:7 56.22222222222223
|
||||
(byte) current_xpos#9 current_xpos zp ZP_BYTE:17 4.0
|
||||
(byte~) current_xpos#91 current_xpos#91 zp ZP_BYTE:7 11.0
|
||||
(byte) current_xpos#16 current_xpos zp ZP_BYTE:18 20.36
|
||||
(byte) current_xpos#19 current_xpos zp ZP_BYTE:18 0.72
|
||||
(byte) current_xpos#23 current_xpos zp ZP_BYTE:18 0.8292682926829271
|
||||
(byte) current_xpos#36 current_xpos zp ZP_BYTE:18 4.0
|
||||
(byte) current_xpos#62 current_xpos#62 zp ZP_BYTE:4 5.894736842105264
|
||||
(byte) current_xpos#7 current_xpos zp ZP_BYTE:18 4.0
|
||||
(byte) current_xpos#9 current_xpos zp ZP_BYTE:18 4.0
|
||||
(byte~) current_xpos#92 current_xpos#92 zp ZP_BYTE:4 7.333333333333333
|
||||
(byte) current_ypos
|
||||
(byte) current_ypos#12 current_ypos zp ZP_BYTE:2 2.458333333333333
|
||||
(byte) current_ypos#16 current_ypos zp ZP_BYTE:2 0.588235294117647
|
||||
(byte) current_ypos#30 current_ypos zp ZP_BYTE:2 4.0
|
||||
(byte) current_ypos#35 current_ypos#35 zp ZP_BYTE:4 6.222222222222221
|
||||
(byte) current_ypos#12 current_ypos zp ZP_BYTE:2 2.4081632653061225
|
||||
(byte) current_ypos#16 current_ypos zp ZP_BYTE:2 0.4705882352941177
|
||||
(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#75 current_ypos#75 zp ZP_BYTE:4 5.5
|
||||
(byte~) current_ypos#72 reg byte x 5.5
|
||||
(void()) fill((byte*) fill::start , (word) fill::size , (byte) fill::val)
|
||||
(label) fill::@1
|
||||
(label) fill::@return
|
||||
@ -164,13 +177,13 @@
|
||||
(byte*) fill::addr#1 addr zp ZP_WORD:5 16.5
|
||||
(byte*) fill::addr#2 addr zp ZP_WORD:5 17.5
|
||||
(byte*) fill::end
|
||||
(byte*) fill::end#0 end zp ZP_WORD:11 2.6
|
||||
(byte*) fill::end#0 end zp ZP_WORD:12 2.6
|
||||
(word) fill::size
|
||||
(byte*) fill::start
|
||||
(byte) fill::val
|
||||
(byte) fill::val#3 reg byte x 1.8333333333333333
|
||||
(void()) init()
|
||||
(byte*~) init::$13 $13 zp ZP_WORD:11 202.0
|
||||
(byte*~) init::$13 $13 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
|
||||
@ -274,15 +287,15 @@
|
||||
(byte[8]) keyboard_events
|
||||
(const byte[8]) keyboard_events#0 keyboard_events = { fill( 8, 0) }
|
||||
(byte) keyboard_events_size
|
||||
(byte) keyboard_events_size#1 keyboard_events_size zp ZP_BYTE:18 2002.0
|
||||
(byte) keyboard_events_size#10 keyboard_events_size zp ZP_BYTE:18 810.9000000000001
|
||||
(byte) keyboard_events_size#13 keyboard_events_size zp ZP_BYTE:18 9.967741935483872
|
||||
(byte) keyboard_events_size#16 keyboard_events_size zp ZP_BYTE:18 0.6
|
||||
(byte) keyboard_events_size#19 keyboard_events_size zp ZP_BYTE:18 2.6
|
||||
(byte) keyboard_events_size#2 keyboard_events_size zp ZP_BYTE:18 2002.0
|
||||
(byte) keyboard_events_size#29 keyboard_events_size zp ZP_BYTE:18 43.57142857142858
|
||||
(byte) keyboard_events_size#30 keyboard_events_size zp ZP_BYTE:18 1021.2
|
||||
(byte) keyboard_events_size#4 keyboard_events_size zp ZP_BYTE:18 3.0
|
||||
(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#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
|
||||
(byte) keyboard_events_size#30 keyboard_events_size zp ZP_BYTE:19 1021.2
|
||||
(byte) keyboard_events_size#4 keyboard_events_size zp ZP_BYTE:19 3.0
|
||||
(byte[8]) keyboard_matrix_col_bitmask
|
||||
(const byte[8]) keyboard_matrix_col_bitmask#0 keyboard_matrix_col_bitmask = { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 16, (byte/signed byte/word/signed word/dword/signed dword) 32, (byte/signed byte/word/signed word/dword/signed dword) 64, (byte/word/signed word/dword/signed dword) 128 }
|
||||
(byte()) keyboard_matrix_read((byte) keyboard_matrix_read::rowid)
|
||||
@ -325,6 +338,7 @@
|
||||
(byte*) lock_current::playfield_line
|
||||
(byte*) lock_current::playfield_line#0 playfield_line zp ZP_WORD:5 122.44444444444446
|
||||
(void()) main()
|
||||
(byte~) main::$10 reg byte a 22.0
|
||||
(byte~) main::$8 reg byte a 22.0
|
||||
(byte~) main::$9 reg byte a 22.0
|
||||
(label) main::@1
|
||||
@ -339,77 +353,89 @@
|
||||
(label) main::@28
|
||||
(label) main::@29
|
||||
(label) main::@30
|
||||
(label) main::@31
|
||||
(label) main::@4
|
||||
(label) main::@7
|
||||
(label) main::@9
|
||||
(byte) main::key_event
|
||||
(byte) main::key_event#0 key_event zp ZP_BYTE:10 5.5
|
||||
(byte) main::key_event#0 key_event zp ZP_BYTE:20 4.0
|
||||
(byte) main::render
|
||||
(byte) main::render#1 render zp ZP_BYTE:19 4.4
|
||||
(byte) main::render#2 reg byte a 22.0
|
||||
(byte) main::render#1 render zp ZP_BYTE:21 4.4
|
||||
(byte) main::render#2 render zp ZP_BYTE:21 4.4
|
||||
(byte) main::render#3 reg byte a 22.0
|
||||
(byte[4*4*4]) piece_t
|
||||
(const byte[4*4*4]) piece_t#0 piece_t = { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0 }
|
||||
(byte()) play_movedown((byte) play_movedown::key_event)
|
||||
(byte~) play_movedown::$12 reg byte a 4.0
|
||||
(byte~) play_movedown::$2 reg byte a 4.0
|
||||
(label) play_movedown::@1
|
||||
(label) play_movedown::@10
|
||||
(label) play_movedown::@11
|
||||
(label) play_movedown::@12
|
||||
(label) play_movedown::@13
|
||||
(label) play_movedown::@17
|
||||
(label) play_movedown::@18
|
||||
(label) play_movedown::@19
|
||||
(label) play_movedown::@2
|
||||
(label) play_movedown::@4
|
||||
(label) play_movedown::@6
|
||||
(label) play_movedown::@7
|
||||
(label) play_movedown::@8
|
||||
(label) play_movedown::@9
|
||||
(label) play_movedown::@return
|
||||
(byte) play_movedown::key_event
|
||||
(byte) play_movedown::key_event#0 reg byte a 6.5
|
||||
(byte) play_movedown::movedown
|
||||
(byte) play_movedown::movedown#10 reg byte x 1.0
|
||||
(byte) play_movedown::movedown#2 reg byte x 4.0
|
||||
(byte) play_movedown::movedown#3 reg byte x 4.0
|
||||
(byte) play_movedown::movedown#6 reg byte x 6.0
|
||||
(byte) play_movedown::movedown#7 reg byte x 5.0
|
||||
(byte) play_movedown::return
|
||||
(byte) play_movedown::return#0 reg byte a 22.0
|
||||
(byte) play_movedown::return#3 reg byte x 3.6666666666666665
|
||||
(byte()) play_moveother((byte) play_moveother::key_event)
|
||||
(byte~) play_moveother::$0 reg byte a 4.0
|
||||
(byte/signed word/word/dword/signed dword~) play_moveother::$11 reg byte a 4.0
|
||||
(byte~) play_moveother::$15 reg byte a 4.0
|
||||
(byte~) play_moveother::$19 reg byte a 4.0
|
||||
(byte/signed word/word/dword/signed dword~) play_moveother::$8 reg byte a 4.0
|
||||
(label) play_moveother::@1
|
||||
(label) play_moveother::@11
|
||||
(label) play_moveother::@12
|
||||
(label) play_moveother::@13
|
||||
(label) play_moveother::@14
|
||||
(label) play_moveother::@15
|
||||
(label) play_moveother::@18
|
||||
(label) play_moveother::@2
|
||||
(label) play_moveother::@20
|
||||
(label) play_moveother::@22
|
||||
(label) play_moveother::@23
|
||||
(label) play_moveother::@3
|
||||
(label) play_moveother::@4
|
||||
(label) play_moveother::@return
|
||||
(byte) play_moveother::key_event
|
||||
(byte) play_moveother::key_event#0 reg byte x 3.5000000000000004
|
||||
(byte) play_moveother::render
|
||||
(byte) play_moveother::return
|
||||
(byte) play_moveother::return#0 reg byte a 22.0
|
||||
(byte) play_moveother::return#1 reg byte a 3.6666666666666665
|
||||
(byte()) play_move_down((byte) play_move_down::key_event)
|
||||
(byte~) play_move_down::$12 reg byte a 4.0
|
||||
(byte~) play_move_down::$2 reg byte a 4.0
|
||||
(label) play_move_down::@1
|
||||
(label) play_move_down::@10
|
||||
(label) play_move_down::@11
|
||||
(label) play_move_down::@12
|
||||
(label) play_move_down::@13
|
||||
(label) play_move_down::@17
|
||||
(label) play_move_down::@18
|
||||
(label) play_move_down::@19
|
||||
(label) play_move_down::@2
|
||||
(label) play_move_down::@4
|
||||
(label) play_move_down::@6
|
||||
(label) play_move_down::@7
|
||||
(label) play_move_down::@8
|
||||
(label) play_move_down::@9
|
||||
(label) play_move_down::@return
|
||||
(byte) play_move_down::key_event
|
||||
(byte) play_move_down::key_event#0 reg byte a 6.5
|
||||
(byte) play_move_down::movedown
|
||||
(byte) play_move_down::movedown#10 reg byte x 1.0
|
||||
(byte) play_move_down::movedown#2 reg byte x 4.0
|
||||
(byte) play_move_down::movedown#3 reg byte x 4.0
|
||||
(byte) play_move_down::movedown#6 reg byte x 6.0
|
||||
(byte) play_move_down::movedown#7 reg byte x 5.0
|
||||
(byte) play_move_down::return
|
||||
(byte) play_move_down::return#0 reg byte a 22.0
|
||||
(byte) play_move_down::return#3 reg byte x 3.6666666666666665
|
||||
(byte()) play_move_leftright((byte) play_move_leftright::key_event)
|
||||
(byte~) play_move_leftright::$4 reg byte a 4.0
|
||||
(byte~) play_move_leftright::$8 reg byte a 4.0
|
||||
(label) play_move_leftright::@1
|
||||
(label) play_move_leftright::@11
|
||||
(label) play_move_leftright::@14
|
||||
(label) play_move_leftright::@15
|
||||
(label) play_move_leftright::@6
|
||||
(label) play_move_leftright::@7
|
||||
(label) play_move_leftright::@8
|
||||
(label) play_move_leftright::@return
|
||||
(byte) play_move_leftright::key_event
|
||||
(byte) play_move_leftright::key_event#0 reg byte a 7.5
|
||||
(byte) play_move_leftright::return
|
||||
(byte) play_move_leftright::return#0 reg byte a 22.0
|
||||
(byte) play_move_leftright::return#2 reg byte a 3.6666666666666665
|
||||
(byte()) play_move_rotate((byte) play_move_rotate::key_event)
|
||||
(byte/signed word/word/dword/signed dword~) play_move_rotate::$2 reg byte a 4.0
|
||||
(byte/signed word/word/dword/signed dword~) play_move_rotate::$4 reg byte a 4.0
|
||||
(byte~) play_move_rotate::$6 reg byte a 4.0
|
||||
(byte~) play_move_rotate::$8 reg byte a 4.0
|
||||
(label) play_move_rotate::@1
|
||||
(label) play_move_rotate::@11
|
||||
(label) play_move_rotate::@14
|
||||
(label) play_move_rotate::@2
|
||||
(label) play_move_rotate::@4
|
||||
(label) play_move_rotate::@6
|
||||
(label) play_move_rotate::@return
|
||||
(byte) play_move_rotate::key_event
|
||||
(byte) play_move_rotate::key_event#0 reg byte a 7.5
|
||||
(byte) play_move_rotate::orientation
|
||||
(byte) play_move_rotate::orientation#1 orientation zp ZP_BYTE:4 4.0
|
||||
(byte) play_move_rotate::orientation#2 orientation zp ZP_BYTE:4 4.0
|
||||
(byte) play_move_rotate::orientation#3 orientation zp ZP_BYTE:4 0.8
|
||||
(byte) play_move_rotate::return
|
||||
(byte) play_move_rotate::return#0 reg byte a 22.0
|
||||
(byte) play_move_rotate::return#2 reg byte a 3.6666666666666665
|
||||
(byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield
|
||||
(const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 playfield = { fill( PLAYFIELD_LINES#0*PLAYFIELD_COLS#0, 0) }
|
||||
(byte*[PLAYFIELD_LINES#0]) playfield_lines
|
||||
(const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 playfield_lines = { fill( PLAYFIELD_LINES#0, 0) }
|
||||
(void()) render_current()
|
||||
(byte~) render_current::$3 reg byte a 202.0
|
||||
(label) render_current::@1
|
||||
(label) render_current::@2
|
||||
(label) render_current::@3
|
||||
@ -420,33 +446,36 @@
|
||||
(label) render_current::@return
|
||||
(byte) render_current::c
|
||||
(byte) render_current::c#1 reg byte x 1501.5
|
||||
(byte) render_current::c#2 reg byte x 429.0
|
||||
(byte) render_current::c#2 reg byte x 286.0
|
||||
(byte) render_current::current_cell
|
||||
(byte) render_current::current_cell#0 reg byte a 1001.0
|
||||
(byte) render_current::i
|
||||
(byte) render_current::i#1 i zp ZP_BYTE:10 429.0
|
||||
(byte) render_current::i#2 i zp ZP_BYTE:10 1552.0
|
||||
(byte) render_current::i#4 i zp ZP_BYTE:10 60.599999999999994
|
||||
(byte) render_current::i#8 i zp ZP_BYTE:10 401.0
|
||||
(byte) render_current::i#4 i zp ZP_BYTE:10 75.75
|
||||
(byte) render_current::i#8 i zp ZP_BYTE:10 300.75
|
||||
(byte) render_current::l
|
||||
(byte) render_current::l#1 l zp ZP_BYTE:9 151.5
|
||||
(byte) render_current::l#2 l zp ZP_BYTE:9 20.2
|
||||
(byte) render_current::line
|
||||
(byte) render_current::line#0 reg byte a 151.5
|
||||
(byte) render_current::l#3 l zp ZP_BYTE:9 13.466666666666667
|
||||
(byte*) render_current::screen_line
|
||||
(byte*) render_current::screen_line#0 screen_line zp ZP_WORD:20 110.19999999999999
|
||||
(byte*) render_current::screen_line#0 screen_line zp ZP_WORD:22 100.18181818181819
|
||||
(byte) render_current::xpos
|
||||
(byte) render_current::xpos#0 reg byte a 1501.5
|
||||
(byte) render_current::xpos#0 xpos zp ZP_BYTE:11 202.0
|
||||
(byte) render_current::xpos#1 xpos zp ZP_BYTE:11 667.3333333333334
|
||||
(byte) render_current::xpos#2 xpos zp ZP_BYTE:11 684.1666666666667
|
||||
(byte) render_current::ypos2
|
||||
(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_playfield()
|
||||
(byte~) render_playfield::$1 reg byte a 202.0
|
||||
(byte*~) render_playfield::$3 $3 zp ZP_WORD:20 2002.0
|
||||
(label) render_playfield::@1
|
||||
(label) render_playfield::@2
|
||||
(label) render_playfield::@3
|
||||
(label) render_playfield::@return
|
||||
(byte) render_playfield::c
|
||||
(byte) render_playfield::c#1 reg byte x 1501.5
|
||||
(byte) render_playfield::c#2 reg byte x 750.75
|
||||
(byte) render_playfield::c#2 reg byte x 500.5
|
||||
(byte) render_playfield::i
|
||||
(byte) render_playfield::i#1 i zp ZP_BYTE:7 420.59999999999997
|
||||
(byte) render_playfield::i#2 i zp ZP_BYTE:7 1034.6666666666667
|
||||
@ -455,71 +484,78 @@
|
||||
(byte) render_playfield::l#1 l zp ZP_BYTE:4 151.5
|
||||
(byte) render_playfield::l#2 l zp ZP_BYTE:4 33.666666666666664
|
||||
(byte*) render_playfield::line
|
||||
(byte*) render_playfield::line#0 line zp ZP_WORD:5 157.42857142857142
|
||||
(byte*) render_playfield::line#0 line zp ZP_WORD:5 202.0
|
||||
(byte*) render_playfield::line#1 line zp ZP_WORD:5 500.5
|
||||
(byte*) render_playfield::line#2 line zp ZP_WORD:5 1552.0
|
||||
(byte*[PLAYFIELD_LINES#0+3]) screen_lines
|
||||
(const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 screen_lines = { fill( PLAYFIELD_LINES#0+3, 0) }
|
||||
(void()) spawn_current()
|
||||
(label) spawn_current::@return
|
||||
|
||||
zp ZP_BYTE:2 [ current_ypos#12 current_ypos#16 current_ypos#30 current_ypos#4 init::l#4 init::l#1 ]
|
||||
zp ZP_BYTE:2 [ current_ypos#12 current_ypos#16 current_ypos#31 current_ypos#4 init::l#4 init::l#1 ]
|
||||
zp ZP_BYTE:3 [ current_movedown_counter#15 current_movedown_counter#12 current_movedown_counter#10 lock_current::l#2 lock_current::l#1 ]
|
||||
zp ZP_BYTE:4 [ current_ypos#35 current_ypos#75 render_playfield::l#2 render_playfield::l#1 collision::ypos#4 collision::ypos#0 collision::ypos#1 collision::ypos#2 lock_current::i#2 lock_current::i#3 lock_current::i#1 keyboard_event_pressed::keycode#5 keyboard_event_scan::row#2 keyboard_event_scan::row#1 ]
|
||||
zp ZP_WORD:5 [ current_piece_gfx#75 current_piece_gfx#99 current_piece_gfx#46 current_piece_gfx#108 current_piece_gfx#109 current_piece_gfx#110 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 render_playfield::line#0 lock_current::playfield_line#0 ]
|
||||
zp ZP_BYTE:7 [ current_xpos#81 current_xpos#91 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 collision::xpos#8 collision::xpos#0 collision::xpos#1 collision::xpos#2 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 [ current_piece_color#62 current_piece_color#69 collision::l#2 collision::l#1 keyboard_event_scan::row_scan#0 ]
|
||||
zp ZP_BYTE:9 [ render_current::l#2 render_current::l#1 collision::i#2 collision::i#3 collision::i#11 collision::i#13 ]
|
||||
zp ZP_BYTE:10 [ render_current::i#2 render_current::i#1 render_current::i#4 render_current::i#8 main::key_event#0 ]
|
||||
reg byte x [ current_ypos#22 current_ypos#72 ]
|
||||
zp ZP_BYTE:4 [ current_xpos#62 current_xpos#92 render_playfield::l#2 render_playfield::l#1 play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 lock_current::i#2 lock_current::i#3 lock_current::i#1 keyboard_event_pressed::keycode#5 keyboard_event_scan::row#2 keyboard_event_scan::row#1 ]
|
||||
zp ZP_WORD:5 [ current_piece_gfx#61 current_piece_gfx#82 render_playfield::line#2 render_playfield::line#0 render_playfield::line#1 current_piece#15 current_piece#67 current_piece#68 current_piece#69 current_piece#70 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#63 current_piece_color#70 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 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 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 ]
|
||||
reg byte x [ render_current::c#2 render_current::c#1 ]
|
||||
reg byte x [ render_playfield::c#2 render_playfield::c#1 ]
|
||||
reg byte a [ play_moveother::return#1 ]
|
||||
reg byte a [ play_move_rotate::return#2 ]
|
||||
reg byte x [ collision::orientation#4 collision::orientation#0 collision::orientation#1 collision::orientation#2 collision::orientation#3 ]
|
||||
reg byte y [ collision::ypos#4 collision::ypos#0 collision::ypos#1 collision::ypos#2 collision::ypos#3 ]
|
||||
reg byte x [ collision::c#2 collision::c#1 ]
|
||||
reg byte a [ collision::return#10 ]
|
||||
reg byte x [ play_movedown::movedown#6 play_movedown::movedown#3 play_movedown::movedown#7 play_movedown::movedown#2 play_movedown::movedown#10 ]
|
||||
zp ZP_WORD:11 [ current_piece#23 current_piece#11 current_piece#13 init::$13 fill::end#0 ]
|
||||
zp ZP_BYTE:13 [ current_piece_orientation#29 current_piece_orientation#16 current_piece_orientation#11 current_piece_orientation#18 current_piece_orientation#10 current_piece_orientation#9 ]
|
||||
zp ZP_WORD:14 [ current_piece_gfx#30 current_piece_gfx#16 current_piece_gfx#11 current_piece_gfx#18 current_piece_gfx#10 current_piece_gfx#9 ]
|
||||
zp ZP_BYTE:16 [ current_piece_color#23 current_piece_color#11 current_piece_color#13 ]
|
||||
zp ZP_BYTE:17 [ current_xpos#35 current_xpos#16 current_xpos#11 current_xpos#19 current_xpos#9 current_xpos#10 ]
|
||||
reg byte x [ play_movedown::return#3 ]
|
||||
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#11 current_piece#13 init::$13 fill::end#0 ]
|
||||
zp ZP_BYTE:14 [ current_piece_orientation#33 current_piece_orientation#15 current_piece_orientation#23 current_piece_orientation#8 current_piece_orientation#18 ]
|
||||
zp ZP_WORD:15 [ current_piece_gfx#29 current_piece_gfx#15 current_piece_gfx#18 current_piece_gfx#8 current_piece_gfx#17 ]
|
||||
zp ZP_BYTE:17 [ current_piece_color#23 current_piece_color#11 current_piece_color#13 ]
|
||||
zp ZP_BYTE:18 [ current_xpos#36 current_xpos#16 current_xpos#23 current_xpos#9 current_xpos#19 current_xpos#7 ]
|
||||
reg byte x [ play_move_down::return#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 ]
|
||||
zp ZP_BYTE:18 [ keyboard_events_size#10 keyboard_events_size#29 keyboard_events_size#19 keyboard_events_size#16 keyboard_events_size#13 keyboard_events_size#4 keyboard_events_size#30 keyboard_events_size#2 keyboard_events_size#1 ]
|
||||
zp ZP_BYTE: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 [ fill::val#3 ]
|
||||
reg byte a [ keyboard_event_get::return#3 ]
|
||||
reg byte a [ play_movedown::key_event#0 ]
|
||||
reg byte a [ play_movedown::return#0 ]
|
||||
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::$8 ]
|
||||
zp ZP_BYTE:19 [ main::render#1 ]
|
||||
reg byte x [ play_moveother::key_event#0 ]
|
||||
reg byte a [ play_moveother::return#0 ]
|
||||
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::$9 ]
|
||||
reg byte a [ main::render#2 ]
|
||||
reg byte a [ render_current::line#0 ]
|
||||
reg byte a [ render_current::$3 ]
|
||||
zp ZP_WORD:20 [ render_current::screen_line#0 render_playfield::$3 collision::playfield_line#0 ]
|
||||
reg byte a [ play_move_rotate::key_event#0 ]
|
||||
reg byte a [ play_move_rotate::return#0 ]
|
||||
reg byte a [ main::$10 ]
|
||||
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 ]
|
||||
reg byte a [ render_current::xpos#0 ]
|
||||
reg byte a [ render_playfield::$1 ]
|
||||
reg byte a [ play_moveother::$0 ]
|
||||
reg byte a [ play_moveother::$8 ]
|
||||
reg byte a [ play_moveother::$11 ]
|
||||
reg byte a [ collision::return#12 ]
|
||||
reg byte a [ play_moveother::$15 ]
|
||||
reg byte a [ collision::return#11 ]
|
||||
reg byte a [ play_moveother::$19 ]
|
||||
zp ZP_BYTE:22 [ collision::line#0 ]
|
||||
reg byte a [ collision::$1 ]
|
||||
zp ZP_BYTE:23 [ collision::i#1 ]
|
||||
reg byte y [ collision::col#0 ]
|
||||
reg byte a [ play_move_rotate::$2 ]
|
||||
reg byte a [ collision::return#13 ]
|
||||
reg byte a [ play_move_rotate::$6 ]
|
||||
reg byte a [ play_move_rotate::$8 ]
|
||||
reg byte a [ play_move_rotate::$4 ]
|
||||
zp ZP_BYTE:24 [ collision::i#1 ]
|
||||
reg byte a [ collision::$7 ]
|
||||
reg byte a [ collision::return#12 ]
|
||||
reg byte a [ play_move_leftright::$4 ]
|
||||
reg byte a [ collision::return#1 ]
|
||||
reg byte a [ play_move_leftright::$8 ]
|
||||
reg byte a [ keyboard_event_pressed::return#12 ]
|
||||
reg byte a [ play_movedown::$2 ]
|
||||
reg byte a [ play_move_down::$2 ]
|
||||
reg byte a [ collision::return#0 ]
|
||||
reg byte a [ play_movedown::$12 ]
|
||||
reg byte a [ play_move_down::$12 ]
|
||||
reg byte a [ lock_current::line#0 ]
|
||||
reg byte a [ lock_current::$1 ]
|
||||
reg byte a [ lock_current::cell#0 ]
|
||||
|
Loading…
Reference in New Issue
Block a user