mirror of
https://gitlab.com/camelot/kickc.git
synced 2025-02-23 04:29:05 +00:00
Working on Tetris. Added colors and random piece selection (from SID voice 3 noice). Moved some code to separate files.
This commit is contained in:
parent
eaa8d0c3fc
commit
4724d7707c
4
src/main/fragment/pbuz1=pptc1_derefidx_vbuxx_plus_0.asm
Normal file
4
src/main/fragment/pbuz1=pptc1_derefidx_vbuxx_plus_0.asm
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
lda {c1},x
|
||||||
|
sta {z1}
|
||||||
|
lda {c1}+1,x
|
||||||
|
sta {z1}+1
|
4
src/main/fragment/pbuz1=pptc1_derefidx_vbuyy_plus_0.asm
Normal file
4
src/main/fragment/pbuz1=pptc1_derefidx_vbuyy_plus_0.asm
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
lda {c1},y
|
||||||
|
sta {z1}
|
||||||
|
lda {c1}+1,y
|
||||||
|
sta {z1}+1
|
@ -65,6 +65,13 @@ public class TestPrograms {
|
|||||||
compileAndCompare("tetris-npe");
|
compileAndCompare("tetris-npe");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//@Test
|
||||||
|
//public void testUnrollCall() throws IOException, URISyntaxException {
|
||||||
|
// compileAndCompare("unroll-call");
|
||||||
|
//}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
*/
|
*/
|
||||||
@Test
|
@Test
|
||||||
public void testFastMultiply8() throws IOException, URISyntaxException {
|
public void testFastMultiply8() throws IOException, URISyntaxException {
|
||||||
@ -106,11 +113,6 @@ public class TestPrograms {
|
|||||||
compileAndCompare("bitwise-not");
|
compileAndCompare("bitwise-not");
|
||||||
}
|
}
|
||||||
|
|
||||||
//@Test
|
|
||||||
//public void testUnrollCall() throws IOException, URISyntaxException {
|
|
||||||
// compileAndCompare("unroll-call");
|
|
||||||
//}
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testUnrollInfinite() throws IOException, URISyntaxException {
|
public void testUnrollInfinite() throws IOException, URISyntaxException {
|
||||||
assertError("unroll-infinite", "Loop cannot be unrolled.");
|
assertError("unroll-infinite", "Loop cannot be unrolled.");
|
||||||
|
174
src/test/kc/examples/tetris/pieces.kc
Normal file
174
src/test/kc/examples/tetris/pieces.kc
Normal file
@ -0,0 +1,174 @@
|
|||||||
|
// The tetris pieces
|
||||||
|
|
||||||
|
// The T-piece
|
||||||
|
align($40) byte[4*4*4] PIECE_T = {
|
||||||
|
1, 1, 1, 0,
|
||||||
|
0, 1, 0, 0,
|
||||||
|
0, 0, 0, 0,
|
||||||
|
0, 0, 0, 0,
|
||||||
|
|
||||||
|
0, 0, 1, 0,
|
||||||
|
0, 1, 1, 0,
|
||||||
|
0, 0, 1, 0,
|
||||||
|
0, 0, 0, 0,
|
||||||
|
|
||||||
|
0, 0, 0, 0,
|
||||||
|
0, 1, 0, 0,
|
||||||
|
1, 1, 1, 0,
|
||||||
|
0, 0, 0, 0,
|
||||||
|
|
||||||
|
1, 0, 0, 0,
|
||||||
|
1, 1, 0, 0,
|
||||||
|
1, 0, 0, 0,
|
||||||
|
0, 0, 0, 0
|
||||||
|
};
|
||||||
|
|
||||||
|
// The S-piece
|
||||||
|
align($40) byte[4*4*4] PIECE_S = {
|
||||||
|
0, 0, 0, 0,
|
||||||
|
0, 1, 1, 0,
|
||||||
|
1, 1, 0, 0,
|
||||||
|
0, 0, 0, 0,
|
||||||
|
|
||||||
|
1, 0, 0, 0,
|
||||||
|
1, 1, 0, 0,
|
||||||
|
0, 1, 0, 0,
|
||||||
|
0, 0, 0, 0,
|
||||||
|
|
||||||
|
0, 0, 0, 0,
|
||||||
|
0, 1, 1, 0,
|
||||||
|
1, 1, 0, 0,
|
||||||
|
0, 0, 0, 0,
|
||||||
|
|
||||||
|
1, 0, 0, 0,
|
||||||
|
1, 1, 0, 0,
|
||||||
|
0, 1, 0, 0,
|
||||||
|
0, 0, 0, 0
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
// The Z-piece
|
||||||
|
align($40) byte[4*4*4] PIECE_Z = {
|
||||||
|
0, 0, 0, 0,
|
||||||
|
1, 1, 0, 0,
|
||||||
|
0, 1, 1, 0,
|
||||||
|
0, 0, 0, 0,
|
||||||
|
|
||||||
|
0, 1, 0, 0,
|
||||||
|
1, 1, 0, 0,
|
||||||
|
1, 0, 0, 0,
|
||||||
|
0, 0, 0, 0,
|
||||||
|
|
||||||
|
0, 0, 0, 0,
|
||||||
|
1, 1, 0, 0,
|
||||||
|
0, 1, 1, 0,
|
||||||
|
0, 0, 0, 0,
|
||||||
|
|
||||||
|
0, 1, 0, 0,
|
||||||
|
1, 1, 0, 0,
|
||||||
|
1, 0, 0, 0,
|
||||||
|
0, 0, 0, 0
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
// The L-piece
|
||||||
|
align($40) byte[4*4*4] PIECE_L = {
|
||||||
|
0, 0, 0, 0,
|
||||||
|
1, 1, 1, 0,
|
||||||
|
1, 0, 0, 0,
|
||||||
|
0, 0, 0, 0,
|
||||||
|
|
||||||
|
1, 1, 0, 0,
|
||||||
|
0, 1, 0, 0,
|
||||||
|
0, 1, 0, 0,
|
||||||
|
0, 0, 0, 0,
|
||||||
|
|
||||||
|
0, 0, 1, 0,
|
||||||
|
1, 1, 1, 0,
|
||||||
|
0, 0, 0, 0,
|
||||||
|
0, 0, 0, 0,
|
||||||
|
|
||||||
|
0, 1, 0, 0,
|
||||||
|
0, 1, 0, 0,
|
||||||
|
0, 1, 1, 0,
|
||||||
|
0, 0, 0, 0
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
// The J-piece
|
||||||
|
align($40) byte[4*4*4] PIECE_J = {
|
||||||
|
1, 0, 0, 0,
|
||||||
|
1, 1, 1, 0,
|
||||||
|
0, 0, 0, 0,
|
||||||
|
0, 0, 0, 0,
|
||||||
|
|
||||||
|
0, 1, 1, 0,
|
||||||
|
0, 1, 0, 0,
|
||||||
|
0, 1, 0, 0,
|
||||||
|
0, 0, 0, 0,
|
||||||
|
|
||||||
|
0, 0, 0, 0,
|
||||||
|
1, 1, 1, 0,
|
||||||
|
0, 0, 1, 0,
|
||||||
|
0, 0, 0, 0,
|
||||||
|
|
||||||
|
0, 1, 0, 0,
|
||||||
|
0, 1, 0, 0,
|
||||||
|
1, 1, 0, 0,
|
||||||
|
0, 0, 0, 0
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
// The O-piece
|
||||||
|
align($40) byte[4*4*4] PIECE_O = {
|
||||||
|
1, 1, 0, 0,
|
||||||
|
1, 1, 0, 0,
|
||||||
|
0, 0, 0, 0,
|
||||||
|
0, 0, 0, 0,
|
||||||
|
|
||||||
|
1, 1, 0, 0,
|
||||||
|
1, 1, 0, 0,
|
||||||
|
0, 0, 0, 0,
|
||||||
|
0, 0, 0, 0,
|
||||||
|
|
||||||
|
1, 1, 0, 0,
|
||||||
|
1, 1, 0, 0,
|
||||||
|
0, 0, 0, 0,
|
||||||
|
0, 0, 0, 0,
|
||||||
|
|
||||||
|
1, 1, 0, 0,
|
||||||
|
1, 1, 0, 0,
|
||||||
|
0, 0, 0, 0,
|
||||||
|
0, 0, 0, 0
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
// The I-piece
|
||||||
|
align($40) byte[4*4*4] PIECE_I = {
|
||||||
|
0, 0, 0, 0,
|
||||||
|
0, 0, 0, 0,
|
||||||
|
1, 1, 1, 1,
|
||||||
|
0, 0, 0, 0,
|
||||||
|
|
||||||
|
0, 1, 0, 0,
|
||||||
|
0, 1, 0, 0,
|
||||||
|
0, 1, 0, 0,
|
||||||
|
0, 1, 0, 0,
|
||||||
|
|
||||||
|
0, 0, 0, 0,
|
||||||
|
0, 0, 0, 0,
|
||||||
|
1, 1, 1, 1,
|
||||||
|
0, 0, 0, 0,
|
||||||
|
|
||||||
|
0, 1, 0, 0,
|
||||||
|
0, 1, 0, 0,
|
||||||
|
0, 1, 0, 0,
|
||||||
|
0, 1, 0, 0
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
// The different pieces
|
||||||
|
word[] PIECES = { (word)PIECE_T, (word)PIECE_S, (word)PIECE_Z, (word)PIECE_J, (word)PIECE_O, (word)PIECE_I, (word)PIECE_L };
|
||||||
|
|
||||||
|
// The colors to use for the pieces
|
||||||
|
byte[] PIECES_COLORS = { WHITE, LIGHT_GREY, GREEN, LIGHT_GREY, WHITE, WHITE, GREEN };
|
27
src/test/kc/examples/tetris/sid.kc
Normal file
27
src/test/kc/examples/tetris/sid.kc
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
// SID registers for random number generation
|
||||||
|
const word* SID_VOICE3_FREQ = $d40e;
|
||||||
|
const byte* SID_VOICE3_FREQ_LOW = $d40e;
|
||||||
|
const byte* SID_VOICE3_FREQ_HIGH = $d40f;
|
||||||
|
const byte* SID_VOICE3_CONTROL = $d412;
|
||||||
|
const byte SID_CONTROL_NOISE = $80;
|
||||||
|
const byte SID_CONTROL_PULSE = $40;
|
||||||
|
const byte SID_CONTROL_SAWTOOTH = $20;
|
||||||
|
const byte SID_CONTROL_TRIANGLE = $10;
|
||||||
|
const byte SID_CONTROL_TEST = $08;
|
||||||
|
const byte SID_CONTROL_RING = $04;
|
||||||
|
const byte SID_CONTROL_SYNC = $02;
|
||||||
|
const byte SID_CONTROL_GATE = $01;
|
||||||
|
const byte* SID_VOICE3_OSC = $d41b;
|
||||||
|
|
||||||
|
// Initialize SID voice 3 for random number generation
|
||||||
|
void sid_rnd_init() {
|
||||||
|
*SID_VOICE3_FREQ = $ffff;
|
||||||
|
*SID_VOICE3_CONTROL = SID_CONTROL_NOISE;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get a random number from the SID voice 3,
|
||||||
|
// Must be initialized with sid_rnd_init()
|
||||||
|
byte sid_rnd() {
|
||||||
|
return *SID_VOICE3_OSC;
|
||||||
|
}
|
||||||
|
|
@ -2,8 +2,8 @@
|
|||||||
import "c64"
|
import "c64"
|
||||||
import "memory"
|
import "memory"
|
||||||
import "keyboard"
|
import "keyboard"
|
||||||
|
import "sid"
|
||||||
byte* SCREEN = $400;
|
import "pieces"
|
||||||
|
|
||||||
// The size of the playfield
|
// The size of the playfield
|
||||||
const byte PLAYFIELD_LINES = 22;
|
const byte PLAYFIELD_LINES = 22;
|
||||||
@ -13,9 +13,6 @@ const byte PLAYFIELD_COLS = 10;
|
|||||||
// The playfield is layed out line by line, meaning the first 10 bytes are line 1, the next 10 line 2 and so forth,
|
// The playfield is layed out line by line, meaning the first 10 bytes are line 1, the next 10 line 2 and so forth,
|
||||||
byte[PLAYFIELD_LINES*PLAYFIELD_COLS] playfield;
|
byte[PLAYFIELD_LINES*PLAYFIELD_COLS] playfield;
|
||||||
|
|
||||||
// Pointers to the screen address for rendering each playfield line
|
|
||||||
byte*[PLAYFIELD_LINES+3] screen_lines;
|
|
||||||
|
|
||||||
// Pointers to the playfield address for each playfield line
|
// Pointers to the playfield address for each playfield line
|
||||||
byte*[PLAYFIELD_LINES] playfield_lines;
|
byte*[PLAYFIELD_LINES] playfield_lines;
|
||||||
|
|
||||||
@ -24,9 +21,9 @@ byte* current_piece = 0;
|
|||||||
|
|
||||||
// The curent piece orientation - each piece have 4 orientations (00/$10/$20/$30).
|
// The curent piece orientation - each piece have 4 orientations (00/$10/$20/$30).
|
||||||
// The orientation chooses one of the 4 sub-graphics of the piece.
|
// The orientation chooses one of the 4 sub-graphics of the piece.
|
||||||
byte current_piece_orientation = 0;
|
byte current_orientation = 0;
|
||||||
|
|
||||||
// Pointer to the current piece in the current orientation. Updated each time current_piece_orientation is updated.
|
// Pointer to the current piece in the current orientation. Updated each time current_orientation is updated.
|
||||||
byte* current_piece_gfx = 0;
|
byte* current_piece_gfx = 0;
|
||||||
|
|
||||||
// The color of the current piece
|
// The color of the current piece
|
||||||
@ -37,15 +34,22 @@ byte current_xpos = 3;
|
|||||||
byte current_ypos = 0;
|
byte current_ypos = 0;
|
||||||
|
|
||||||
// The rate of moving down the current piece (number of frames between moves if movedown is not not forced)
|
// The rate of moving down the current piece (number of frames between moves if movedown is not not forced)
|
||||||
const byte current_movedown_rate = 50;
|
const byte current_movedown_slow = 50;
|
||||||
|
|
||||||
// The rate of moving down the current piece fast (number of frames between moves if movedown is not not forced)
|
// The rate of moving down the current piece fast (number of frames between moves if movedown is not not forced)
|
||||||
const byte current_movedown_rate_fast = 5;
|
const byte current_movedown_fast = 5;
|
||||||
|
|
||||||
// Counts down til next movedown of current piece
|
// Counts down til next movedown of current piece
|
||||||
byte current_movedown_counter = 0;
|
byte current_movedown_counter = 0;
|
||||||
|
|
||||||
|
// The screen
|
||||||
|
byte* SCREEN = $400;
|
||||||
|
|
||||||
|
// Pointers to the screen address for rendering each playfield line
|
||||||
|
byte*[PLAYFIELD_LINES+3] screen_lines;
|
||||||
|
|
||||||
void main() {
|
void main() {
|
||||||
|
sid_rnd_init();
|
||||||
asm { sei }
|
asm { sei }
|
||||||
init();
|
init();
|
||||||
spawn_current();
|
spawn_current();
|
||||||
@ -85,17 +89,17 @@ byte play_move_down(byte key_event) {
|
|||||||
}
|
}
|
||||||
// While space is held down move down faster
|
// While space is held down move down faster
|
||||||
if(keyboard_event_pressed(KEY_SPACE)!=0) {
|
if(keyboard_event_pressed(KEY_SPACE)!=0) {
|
||||||
if(current_movedown_counter>=current_movedown_rate_fast) {
|
if(current_movedown_counter>=current_movedown_fast) {
|
||||||
movedown++;
|
movedown++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Move down slowly otherwise
|
// Move down slowly otherwise
|
||||||
if(current_movedown_counter>=current_movedown_rate) {
|
if(current_movedown_counter>=current_movedown_slow) {
|
||||||
movedown++;
|
movedown++;
|
||||||
}
|
}
|
||||||
// Attempt movedown
|
// Attempt movedown
|
||||||
if(movedown!=0) {
|
if(movedown!=0) {
|
||||||
if(collision(current_xpos,current_ypos+1,current_piece_orientation)==COLLISION_NONE) {
|
if(collision(current_xpos,current_ypos+1,current_orientation)==COLLISION_NONE) {
|
||||||
// Move current piece down
|
// Move current piece down
|
||||||
current_ypos++;
|
current_ypos++;
|
||||||
} else {
|
} else {
|
||||||
@ -115,12 +119,12 @@ byte play_move_down(byte key_event) {
|
|||||||
byte play_move_leftright(byte key_event) {
|
byte play_move_leftright(byte key_event) {
|
||||||
// Handle keyboard events
|
// Handle keyboard events
|
||||||
if(key_event==KEY_COMMA) {
|
if(key_event==KEY_COMMA) {
|
||||||
if(collision(current_xpos-1,current_ypos,current_piece_orientation)==COLLISION_NONE) {
|
if(collision(current_xpos-1,current_ypos,current_orientation)==COLLISION_NONE) {
|
||||||
current_xpos--;
|
current_xpos--;
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
} else if(key_event==KEY_DOT) {
|
} else if(key_event==KEY_DOT) {
|
||||||
if(collision(current_xpos+1,current_ypos,current_piece_orientation)==COLLISION_NONE) {
|
if(collision(current_xpos+1,current_ypos,current_orientation)==COLLISION_NONE) {
|
||||||
current_xpos++;
|
current_xpos++;
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
@ -134,15 +138,15 @@ byte play_move_rotate(byte key_event) {
|
|||||||
// Handle keyboard events
|
// Handle keyboard events
|
||||||
byte orientation = $80;
|
byte orientation = $80;
|
||||||
if(key_event==KEY_Z) {
|
if(key_event==KEY_Z) {
|
||||||
orientation = (current_piece_orientation-$10)&$3f;
|
orientation = (current_orientation-$10)&$3f;
|
||||||
} else if(key_event==KEY_X) {
|
} else if(key_event==KEY_X) {
|
||||||
orientation = (current_piece_orientation+$10)&$3f;
|
orientation = (current_orientation+$10)&$3f;
|
||||||
} else {
|
} else {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
if((collision(current_xpos, current_ypos, orientation) & (COLLISION_LEFT|COLLISION_RIGHT)) == 0) {
|
if(collision(current_xpos, current_ypos, orientation) == 0) {
|
||||||
current_piece_orientation = orientation;
|
current_orientation = orientation;
|
||||||
current_piece_gfx = current_piece + current_piece_orientation;
|
current_piece_gfx = current_piece + current_orientation;
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
@ -197,27 +201,35 @@ byte collision(byte xpos, byte ypos, byte orientation) {
|
|||||||
// Lock the current piece onto the playfield
|
// Lock the current piece onto the playfield
|
||||||
void lock_current() {
|
void lock_current() {
|
||||||
byte i = 0;
|
byte i = 0;
|
||||||
|
byte ypos2 = current_ypos<<1;
|
||||||
for(byte l:0..3) {
|
for(byte l:0..3) {
|
||||||
byte line = current_ypos + l;
|
byte* playfield_line = playfield_lines[ypos2];
|
||||||
byte* playfield_line = playfield_lines[line<<1];
|
byte col = current_xpos;
|
||||||
for(byte c:0..3) {
|
for(byte c:0..3) {
|
||||||
byte cell = current_piece_gfx[i++];
|
if(current_piece_gfx[i++]!=0) {
|
||||||
if(cell!=0) {
|
|
||||||
byte col = current_xpos + c;
|
|
||||||
playfield_line[col] = current_piece_color;
|
playfield_line[col] = current_piece_color;
|
||||||
}
|
}
|
||||||
|
col++;
|
||||||
}
|
}
|
||||||
|
ypos2 += 2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Spawn a new piece
|
// Spawn a new piece
|
||||||
void spawn_current() {
|
void spawn_current() {
|
||||||
current_piece = piece_t;
|
// Pick a random piece
|
||||||
current_piece_orientation = 0;
|
(*BORDERCOL)++;
|
||||||
current_piece_gfx = current_piece + current_piece_orientation;
|
byte piece_idx = 7;
|
||||||
current_piece_color = GREEN;
|
while(piece_idx==7) {
|
||||||
|
piece_idx = sid_rnd()&7;
|
||||||
|
}
|
||||||
|
(*BORDERCOL)--;
|
||||||
|
current_piece = PIECES[piece_idx<<1];
|
||||||
|
current_orientation = 0;
|
||||||
|
current_piece_gfx = current_piece + current_orientation;
|
||||||
current_xpos = 3;
|
current_xpos = 3;
|
||||||
current_ypos = 0;
|
current_ypos = 0;
|
||||||
|
current_piece_color = PIECES_COLORS[piece_idx];
|
||||||
}
|
}
|
||||||
|
|
||||||
// Initialize the screen and data tables
|
// Initialize the screen and data tables
|
||||||
@ -280,170 +292,3 @@ void render_current() {
|
|||||||
ypos2 += 2;
|
ypos2 += 2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// The T-piece
|
|
||||||
align($40) byte[4*4*4] piece_t = {
|
|
||||||
1, 1, 1, 0,
|
|
||||||
0, 1, 0, 0,
|
|
||||||
0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0,
|
|
||||||
|
|
||||||
0, 0, 1, 0,
|
|
||||||
0, 1, 1, 0,
|
|
||||||
0, 0, 1, 0,
|
|
||||||
0, 0, 0, 0,
|
|
||||||
|
|
||||||
0, 0, 0, 0,
|
|
||||||
0, 1, 0, 0,
|
|
||||||
1, 1, 1, 0,
|
|
||||||
0, 0, 0, 0,
|
|
||||||
|
|
||||||
1, 0, 0, 0,
|
|
||||||
1, 1, 0, 0,
|
|
||||||
1, 0, 0, 0,
|
|
||||||
0, 0, 0, 0
|
|
||||||
};
|
|
||||||
|
|
||||||
// The S-piece
|
|
||||||
align($40) byte[4*4*4] piece_s = {
|
|
||||||
0, 0, 0, 0,
|
|
||||||
0, 1, 1, 0,
|
|
||||||
1, 1, 0, 0,
|
|
||||||
0, 0, 0, 0,
|
|
||||||
|
|
||||||
1, 0, 0, 0,
|
|
||||||
1, 1, 0, 0,
|
|
||||||
0, 1, 0, 0,
|
|
||||||
0, 0, 0, 0,
|
|
||||||
|
|
||||||
0, 0, 0, 0,
|
|
||||||
0, 1, 1, 0,
|
|
||||||
1, 1, 0, 0,
|
|
||||||
0, 0, 0, 0,
|
|
||||||
|
|
||||||
1, 0, 0, 0,
|
|
||||||
1, 1, 0, 0,
|
|
||||||
0, 1, 0, 0,
|
|
||||||
0, 0, 0, 0
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
// The Z-piece
|
|
||||||
align($40) byte[4*4*4] piece_z = {
|
|
||||||
0, 0, 0, 0,
|
|
||||||
1, 1, 0, 0,
|
|
||||||
0, 1, 1, 0,
|
|
||||||
0, 0, 0, 0,
|
|
||||||
|
|
||||||
0, 1, 0, 0,
|
|
||||||
1, 1, 0, 0,
|
|
||||||
1, 0, 0, 0,
|
|
||||||
0, 0, 0, 0,
|
|
||||||
|
|
||||||
0, 0, 0, 0,
|
|
||||||
1, 1, 0, 0,
|
|
||||||
0, 1, 1, 0,
|
|
||||||
0, 0, 0, 0,
|
|
||||||
|
|
||||||
0, 1, 0, 0,
|
|
||||||
1, 1, 0, 0,
|
|
||||||
1, 0, 0, 0,
|
|
||||||
0, 0, 0, 0
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
// The L-piece
|
|
||||||
align($40) byte[4*4*4] piece_l = {
|
|
||||||
0, 0, 0, 0,
|
|
||||||
1, 1, 1, 0,
|
|
||||||
1, 0, 0, 0,
|
|
||||||
0, 0, 0, 0,
|
|
||||||
|
|
||||||
1, 1, 0, 0,
|
|
||||||
0, 1, 0, 0,
|
|
||||||
0, 1, 0, 0,
|
|
||||||
0, 0, 0, 0,
|
|
||||||
|
|
||||||
0, 0, 1, 0,
|
|
||||||
1, 1, 1, 0,
|
|
||||||
0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0,
|
|
||||||
|
|
||||||
0, 1, 0, 0,
|
|
||||||
0, 1, 0, 0,
|
|
||||||
0, 1, 1, 0,
|
|
||||||
0, 0, 0, 0
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
// The J-piece
|
|
||||||
align($40) byte[4*4*4] piece_j = {
|
|
||||||
1, 0, 0, 0,
|
|
||||||
1, 1, 1, 0,
|
|
||||||
0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0,
|
|
||||||
|
|
||||||
0, 1, 1, 0,
|
|
||||||
0, 1, 0, 0,
|
|
||||||
0, 1, 0, 0,
|
|
||||||
0, 0, 0, 0,
|
|
||||||
|
|
||||||
0, 0, 0, 0,
|
|
||||||
1, 1, 1, 0,
|
|
||||||
0, 0, 1, 0,
|
|
||||||
0, 0, 0, 0,
|
|
||||||
|
|
||||||
0, 1, 0, 0,
|
|
||||||
0, 1, 0, 0,
|
|
||||||
1, 1, 0, 0,
|
|
||||||
0, 0, 0, 0
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
// The O-piece
|
|
||||||
align($40) byte[4*4*4] piece_o = {
|
|
||||||
1, 1, 0, 0,
|
|
||||||
1, 1, 0, 0,
|
|
||||||
0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0,
|
|
||||||
|
|
||||||
1, 1, 0, 0,
|
|
||||||
1, 1, 0, 0,
|
|
||||||
0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0,
|
|
||||||
|
|
||||||
1, 1, 0, 0,
|
|
||||||
1, 1, 0, 0,
|
|
||||||
0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0,
|
|
||||||
|
|
||||||
1, 1, 0, 0,
|
|
||||||
1, 1, 0, 0,
|
|
||||||
0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
// The I-piece
|
|
||||||
align($40) byte[4*4*4] piece_i = {
|
|
||||||
0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0,
|
|
||||||
1, 1, 1, 1,
|
|
||||||
0, 0, 0, 0,
|
|
||||||
|
|
||||||
0, 1, 0, 0,
|
|
||||||
0, 1, 0, 0,
|
|
||||||
0, 1, 0, 0,
|
|
||||||
0, 1, 0, 0,
|
|
||||||
|
|
||||||
0, 0, 0, 0,
|
|
||||||
0, 0, 0, 0,
|
|
||||||
1, 1, 1, 1,
|
|
||||||
0, 0, 0, 0,
|
|
||||||
|
|
||||||
0, 1, 0, 0,
|
|
||||||
0, 1, 0, 0,
|
|
||||||
0, 1, 0, 0,
|
|
||||||
0, 1, 0, 0
|
|
||||||
|
|
||||||
};
|
|
||||||
|
@ -7,8 +7,10 @@
|
|||||||
.label CIA1_PORT_A = $dc00
|
.label CIA1_PORT_A = $dc00
|
||||||
.label CIA1_PORT_B = $dc01
|
.label CIA1_PORT_B = $dc01
|
||||||
.const BLACK = 0
|
.const BLACK = 0
|
||||||
|
.const WHITE = 1
|
||||||
.const GREEN = 5
|
.const GREEN = 5
|
||||||
.const DARK_GREY = $b
|
.const DARK_GREY = $b
|
||||||
|
.const LIGHT_GREY = $f
|
||||||
.const KEY_Z = $c
|
.const KEY_Z = $c
|
||||||
.const KEY_LSHIFT = $f
|
.const KEY_LSHIFT = $f
|
||||||
.const KEY_X = $17
|
.const KEY_X = $17
|
||||||
@ -18,11 +20,15 @@
|
|||||||
.const KEY_CTRL = $3a
|
.const KEY_CTRL = $3a
|
||||||
.const KEY_SPACE = $3c
|
.const KEY_SPACE = $3c
|
||||||
.const KEY_COMMODORE = $3d
|
.const KEY_COMMODORE = $3d
|
||||||
.label SCREEN = $400
|
.label SID_VOICE3_FREQ = $d40e
|
||||||
|
.label SID_VOICE3_CONTROL = $d412
|
||||||
|
.const SID_CONTROL_NOISE = $80
|
||||||
|
.label SID_VOICE3_OSC = $d41b
|
||||||
.const PLAYFIELD_LINES = $16
|
.const PLAYFIELD_LINES = $16
|
||||||
.const PLAYFIELD_COLS = $a
|
.const PLAYFIELD_COLS = $a
|
||||||
.const current_movedown_rate = $32
|
.const current_movedown_slow = $32
|
||||||
.const current_movedown_rate_fast = 5
|
.const current_movedown_fast = 5
|
||||||
|
.label SCREEN = $400
|
||||||
.const COLLISION_NONE = 0
|
.const COLLISION_NONE = 0
|
||||||
.const COLLISION_PLAYFIELD = 1
|
.const COLLISION_PLAYFIELD = 1
|
||||||
.const COLLISION_BOTTOM = 2
|
.const COLLISION_BOTTOM = 2
|
||||||
@ -30,59 +36,57 @@
|
|||||||
.const COLLISION_RIGHT = 8
|
.const COLLISION_RIGHT = 8
|
||||||
.label keyboard_events_size = $13
|
.label keyboard_events_size = $13
|
||||||
.label current_ypos = 2
|
.label current_ypos = 2
|
||||||
.label current_xpos = $12
|
.label current_xpos = $11
|
||||||
.label current_piece_orientation = $e
|
.label current_orientation = $e
|
||||||
.label current_piece_gfx = $f
|
.label current_piece_gfx = $f
|
||||||
.label current_piece = $c
|
.label current_piece = $c
|
||||||
.label current_piece_color = $11
|
.label current_piece_color = $12
|
||||||
.label current_movedown_counter = 3
|
.label current_movedown_counter = 3
|
||||||
.label current_piece_15 = 5
|
.label current_piece_15 = 5
|
||||||
.label current_xpos_62 = 4
|
.label current_xpos_62 = 4
|
||||||
.label current_piece_gfx_61 = 5
|
.label current_piece_gfx_62 = 5
|
||||||
.label current_piece_color_63 = 7
|
.label current_piece_color_64 = 7
|
||||||
.label current_xpos_92 = 4
|
.label current_xpos_93 = 4
|
||||||
.label current_piece_gfx_82 = 5
|
.label current_piece_gfx_84 = 5
|
||||||
.label current_piece_color_70 = 7
|
.label current_piece_gfx_85 = 5
|
||||||
.label current_piece_67 = 5
|
.label current_piece_color_72 = 7
|
||||||
.label current_piece_68 = 5
|
.label current_piece_color_73 = 7
|
||||||
.label current_piece_69 = 5
|
.label current_piece_69 = 5
|
||||||
.label current_piece_70 = 5
|
.label current_piece_70 = 5
|
||||||
|
.label current_piece_71 = 5
|
||||||
|
.label current_piece_72 = 5
|
||||||
jsr main
|
jsr main
|
||||||
main: {
|
main: {
|
||||||
.label key_event = $14
|
.label key_event = $14
|
||||||
.label render = $15
|
.label render = $15
|
||||||
|
jsr sid_rnd_init
|
||||||
sei
|
sei
|
||||||
jsr init
|
jsr init
|
||||||
jsr spawn_current
|
jsr spawn_current
|
||||||
jsr render_playfield
|
jsr render_playfield
|
||||||
lda #GREEN
|
lda current_piece_gfx
|
||||||
sta current_piece_color_63
|
sta current_piece_gfx_84
|
||||||
lda #<piece_t
|
lda current_piece_gfx+1
|
||||||
sta current_piece_gfx_61
|
sta current_piece_gfx_84+1
|
||||||
lda #>piece_t
|
lda current_piece_color
|
||||||
sta current_piece_gfx_61+1
|
sta current_piece_color_72
|
||||||
lda #3
|
lda #3
|
||||||
sta current_xpos_62
|
sta current_xpos_62
|
||||||
ldx #0
|
ldx #0
|
||||||
jsr render_current
|
jsr render_current
|
||||||
|
ldy spawn_current._3
|
||||||
|
lda PIECES,y
|
||||||
|
sta current_piece
|
||||||
|
lda PIECES+1,y
|
||||||
|
sta current_piece+1
|
||||||
lda #0
|
lda #0
|
||||||
sta current_movedown_counter
|
sta current_movedown_counter
|
||||||
sta keyboard_events_size
|
sta keyboard_events_size
|
||||||
sta current_ypos
|
sta current_ypos
|
||||||
lda #3
|
lda #3
|
||||||
sta current_xpos
|
sta current_xpos
|
||||||
lda #GREEN
|
|
||||||
sta current_piece_color
|
|
||||||
lda #<piece_t
|
|
||||||
sta current_piece_gfx
|
|
||||||
lda #>piece_t
|
|
||||||
sta current_piece_gfx+1
|
|
||||||
lda #0
|
lda #0
|
||||||
sta current_piece_orientation
|
sta current_orientation
|
||||||
lda #<piece_t
|
|
||||||
sta current_piece
|
|
||||||
lda #>piece_t
|
|
||||||
sta current_piece+1
|
|
||||||
b4:
|
b4:
|
||||||
lda RASTER
|
lda RASTER
|
||||||
cmp #$ff
|
cmp #$ff
|
||||||
@ -115,13 +119,13 @@ main: {
|
|||||||
jsr render_playfield
|
jsr render_playfield
|
||||||
ldx current_ypos
|
ldx current_ypos
|
||||||
lda current_xpos
|
lda current_xpos
|
||||||
sta current_xpos_92
|
sta current_xpos_93
|
||||||
lda current_piece_gfx
|
lda current_piece_gfx
|
||||||
sta current_piece_gfx_82
|
sta current_piece_gfx_85
|
||||||
lda current_piece_gfx+1
|
lda current_piece_gfx+1
|
||||||
sta current_piece_gfx_82+1
|
sta current_piece_gfx_85+1
|
||||||
lda current_piece_color
|
lda current_piece_color
|
||||||
sta current_piece_color_70
|
sta current_piece_color_73
|
||||||
jsr render_current
|
jsr render_current
|
||||||
dec BORDERCOL
|
dec BORDERCOL
|
||||||
b10:
|
b10:
|
||||||
@ -154,14 +158,14 @@ render_current: {
|
|||||||
ldx #0
|
ldx #0
|
||||||
b3:
|
b3:
|
||||||
ldy i
|
ldy i
|
||||||
lda (current_piece_gfx_61),y
|
lda (current_piece_gfx_62),y
|
||||||
inc i
|
inc i
|
||||||
cmp #0
|
cmp #0
|
||||||
beq b4
|
beq b4
|
||||||
lda xpos
|
lda xpos
|
||||||
cmp #PLAYFIELD_COLS
|
cmp #PLAYFIELD_COLS
|
||||||
bcs b4
|
bcs b4
|
||||||
lda current_piece_color_63
|
lda current_piece_color_64
|
||||||
ldy xpos
|
ldy xpos
|
||||||
sta (screen_line),y
|
sta (screen_line),y
|
||||||
b4:
|
b4:
|
||||||
@ -228,7 +232,7 @@ play_move_rotate: {
|
|||||||
b2:
|
b2:
|
||||||
lda #$10
|
lda #$10
|
||||||
clc
|
clc
|
||||||
adc current_piece_orientation
|
adc current_orientation
|
||||||
and #$3f
|
and #$3f
|
||||||
sta orientation
|
sta orientation
|
||||||
b4:
|
b4:
|
||||||
@ -237,15 +241,14 @@ play_move_rotate: {
|
|||||||
ldy current_ypos
|
ldy current_ypos
|
||||||
ldx orientation
|
ldx orientation
|
||||||
lda current_piece
|
lda current_piece
|
||||||
sta current_piece_70
|
sta current_piece_72
|
||||||
lda current_piece+1
|
lda current_piece+1
|
||||||
sta current_piece_70+1
|
sta current_piece_72+1
|
||||||
jsr collision
|
jsr collision
|
||||||
and #COLLISION_LEFT|COLLISION_RIGHT
|
|
||||||
cmp #0
|
cmp #0
|
||||||
bne b3
|
bne b3
|
||||||
lda orientation
|
lda orientation
|
||||||
sta current_piece_orientation
|
sta current_orientation
|
||||||
clc
|
clc
|
||||||
adc current_piece
|
adc current_piece
|
||||||
sta current_piece_gfx
|
sta current_piece_gfx
|
||||||
@ -255,7 +258,7 @@ play_move_rotate: {
|
|||||||
lda #1
|
lda #1
|
||||||
jmp breturn
|
jmp breturn
|
||||||
b1:
|
b1:
|
||||||
lda current_piece_orientation
|
lda current_orientation
|
||||||
sec
|
sec
|
||||||
sbc #$10
|
sbc #$10
|
||||||
and #$3f
|
and #$3f
|
||||||
@ -363,11 +366,11 @@ play_move_leftright: {
|
|||||||
iny
|
iny
|
||||||
sty collision.xpos
|
sty collision.xpos
|
||||||
ldy current_ypos
|
ldy current_ypos
|
||||||
ldx current_piece_orientation
|
ldx current_orientation
|
||||||
lda current_piece
|
lda current_piece
|
||||||
sta current_piece_69
|
sta current_piece_71
|
||||||
lda current_piece+1
|
lda current_piece+1
|
||||||
sta current_piece_69+1
|
sta current_piece_71+1
|
||||||
jsr collision
|
jsr collision
|
||||||
cmp #COLLISION_NONE
|
cmp #COLLISION_NONE
|
||||||
bne b3
|
bne b3
|
||||||
@ -384,11 +387,11 @@ play_move_leftright: {
|
|||||||
dex
|
dex
|
||||||
stx collision.xpos
|
stx collision.xpos
|
||||||
ldy current_ypos
|
ldy current_ypos
|
||||||
ldx current_piece_orientation
|
ldx current_orientation
|
||||||
lda current_piece
|
lda current_piece
|
||||||
sta current_piece_68
|
sta current_piece_70
|
||||||
lda current_piece+1
|
lda current_piece+1
|
||||||
sta current_piece_68+1
|
sta current_piece_70+1
|
||||||
jsr collision
|
jsr collision
|
||||||
cmp #COLLISION_NONE
|
cmp #COLLISION_NONE
|
||||||
bne b3
|
bne b3
|
||||||
@ -410,12 +413,12 @@ play_move_down: {
|
|||||||
cmp #0
|
cmp #0
|
||||||
beq b2
|
beq b2
|
||||||
lda current_movedown_counter
|
lda current_movedown_counter
|
||||||
cmp #current_movedown_rate_fast
|
cmp #current_movedown_fast
|
||||||
bcc b2
|
bcc b2
|
||||||
inx
|
inx
|
||||||
b2:
|
b2:
|
||||||
lda current_movedown_counter
|
lda current_movedown_counter
|
||||||
cmp #current_movedown_rate
|
cmp #current_movedown_slow
|
||||||
bcc b4
|
bcc b4
|
||||||
inx
|
inx
|
||||||
b4:
|
b4:
|
||||||
@ -425,31 +428,25 @@ play_move_down: {
|
|||||||
iny
|
iny
|
||||||
lda current_xpos
|
lda current_xpos
|
||||||
sta collision.xpos
|
sta collision.xpos
|
||||||
ldx current_piece_orientation
|
ldx current_orientation
|
||||||
lda current_piece
|
lda current_piece
|
||||||
sta current_piece_67
|
sta current_piece_69
|
||||||
lda current_piece+1
|
lda current_piece+1
|
||||||
sta current_piece_67+1
|
sta current_piece_69+1
|
||||||
jsr collision
|
jsr collision
|
||||||
cmp #COLLISION_NONE
|
cmp #COLLISION_NONE
|
||||||
beq b6
|
beq b6
|
||||||
jsr lock_current
|
jsr lock_current
|
||||||
jsr spawn_current
|
jsr spawn_current
|
||||||
|
ldy spawn_current._3
|
||||||
|
lda PIECES,y
|
||||||
|
sta current_piece
|
||||||
|
lda PIECES+1,y
|
||||||
|
sta current_piece+1
|
||||||
lda #3
|
lda #3
|
||||||
sta current_xpos
|
sta current_xpos
|
||||||
lda #GREEN
|
|
||||||
sta current_piece_color
|
|
||||||
lda #<piece_t
|
|
||||||
sta current_piece_gfx
|
|
||||||
lda #>piece_t
|
|
||||||
sta current_piece_gfx+1
|
|
||||||
lda #0
|
|
||||||
sta current_piece_orientation
|
|
||||||
lda #<piece_t
|
|
||||||
sta current_piece
|
|
||||||
lda #>piece_t
|
|
||||||
sta current_piece+1
|
|
||||||
lda #0
|
lda #0
|
||||||
|
sta current_orientation
|
||||||
sta current_ypos
|
sta current_ypos
|
||||||
b7:
|
b7:
|
||||||
lda #0
|
lda #0
|
||||||
@ -465,47 +462,90 @@ play_move_down: {
|
|||||||
jmp b7
|
jmp b7
|
||||||
}
|
}
|
||||||
spawn_current: {
|
spawn_current: {
|
||||||
|
.label _3 = 2
|
||||||
|
inc BORDERCOL
|
||||||
|
ldx #7
|
||||||
|
b1:
|
||||||
|
cpx #7
|
||||||
|
beq b2
|
||||||
|
dec BORDERCOL
|
||||||
|
txa
|
||||||
|
asl
|
||||||
|
sta _3
|
||||||
|
tay
|
||||||
|
lda PIECES,y
|
||||||
|
sta current_piece_gfx
|
||||||
|
lda PIECES+1,y
|
||||||
|
sta current_piece_gfx+1
|
||||||
|
lda PIECES_COLORS,x
|
||||||
|
sta current_piece_color
|
||||||
|
rts
|
||||||
|
b2:
|
||||||
|
jsr sid_rnd
|
||||||
|
and #7
|
||||||
|
tax
|
||||||
|
jmp b1
|
||||||
|
}
|
||||||
|
sid_rnd: {
|
||||||
|
lda SID_VOICE3_OSC
|
||||||
rts
|
rts
|
||||||
}
|
}
|
||||||
lock_current: {
|
lock_current: {
|
||||||
|
.label ypos2 = 2
|
||||||
.label playfield_line = 5
|
.label playfield_line = 5
|
||||||
.label i = 4
|
.label col = 7
|
||||||
|
.label i = 8
|
||||||
.label l = 3
|
.label l = 3
|
||||||
|
.label i_2 = 4
|
||||||
|
.label i_3 = 4
|
||||||
|
.label i_7 = 4
|
||||||
|
.label i_9 = 4
|
||||||
|
asl ypos2
|
||||||
lda #0
|
lda #0
|
||||||
sta i
|
|
||||||
sta l
|
sta l
|
||||||
|
sta i_3
|
||||||
b1:
|
b1:
|
||||||
lda current_ypos
|
ldy ypos2
|
||||||
clc
|
|
||||||
adc l
|
|
||||||
asl
|
|
||||||
tay
|
|
||||||
lda playfield_lines,y
|
lda playfield_lines,y
|
||||||
sta playfield_line
|
sta playfield_line
|
||||||
lda playfield_lines+1,y
|
lda playfield_lines+1,y
|
||||||
sta playfield_line+1
|
sta playfield_line+1
|
||||||
|
lda current_xpos
|
||||||
|
sta col
|
||||||
ldx #0
|
ldx #0
|
||||||
b2:
|
b2:
|
||||||
ldy i
|
ldy i_2
|
||||||
|
iny
|
||||||
|
sty i
|
||||||
|
ldy i_2
|
||||||
lda (current_piece_gfx),y
|
lda (current_piece_gfx),y
|
||||||
inc i
|
|
||||||
cmp #0
|
cmp #0
|
||||||
beq b3
|
beq b3
|
||||||
txa
|
|
||||||
clc
|
|
||||||
adc current_xpos
|
|
||||||
tay
|
|
||||||
lda current_piece_color
|
lda current_piece_color
|
||||||
|
ldy col
|
||||||
sta (playfield_line),y
|
sta (playfield_line),y
|
||||||
b3:
|
b3:
|
||||||
|
inc col
|
||||||
inx
|
inx
|
||||||
cpx #4
|
cpx #4
|
||||||
bne b2
|
bne b8
|
||||||
|
lda ypos2
|
||||||
|
clc
|
||||||
|
adc #2
|
||||||
|
sta ypos2
|
||||||
inc l
|
inc l
|
||||||
lda l
|
lda l
|
||||||
cmp #4
|
cmp #4
|
||||||
bne b1
|
bne b7
|
||||||
rts
|
rts
|
||||||
|
b7:
|
||||||
|
lda i
|
||||||
|
sta i_7
|
||||||
|
jmp b1
|
||||||
|
b8:
|
||||||
|
lda i
|
||||||
|
sta i_9
|
||||||
|
jmp b2
|
||||||
}
|
}
|
||||||
keyboard_event_pressed: {
|
keyboard_event_pressed: {
|
||||||
.label row_bits = 7
|
.label row_bits = 7
|
||||||
@ -745,13 +785,36 @@ fill: {
|
|||||||
cmp end
|
cmp end
|
||||||
bne b1
|
bne b1
|
||||||
rts
|
rts
|
||||||
|
}
|
||||||
|
sid_rnd_init: {
|
||||||
|
lda #<$ffff
|
||||||
|
sta SID_VOICE3_FREQ
|
||||||
|
lda #>$ffff
|
||||||
|
sta SID_VOICE3_FREQ+1
|
||||||
|
lda #SID_CONTROL_NOISE
|
||||||
|
sta SID_VOICE3_CONTROL
|
||||||
|
rts
|
||||||
}
|
}
|
||||||
keyboard_matrix_row_bitmask: .byte $fe, $fd, $fb, $f7, $ef, $df, $bf, $7f
|
keyboard_matrix_row_bitmask: .byte $fe, $fd, $fb, $f7, $ef, $df, $bf, $7f
|
||||||
keyboard_matrix_col_bitmask: .byte 1, 2, 4, 8, $10, $20, $40, $80
|
keyboard_matrix_col_bitmask: .byte 1, 2, 4, 8, $10, $20, $40, $80
|
||||||
keyboard_events: .fill 8, 0
|
keyboard_events: .fill 8, 0
|
||||||
keyboard_scan_values: .fill 8, 0
|
keyboard_scan_values: .fill 8, 0
|
||||||
.align $40
|
.align $40
|
||||||
piece_t: .byte 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0
|
PIECE_T: .byte 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0
|
||||||
|
.align $40
|
||||||
|
PIECE_S: .byte 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0
|
||||||
|
.align $40
|
||||||
|
PIECE_Z: .byte 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0
|
||||||
|
.align $40
|
||||||
|
PIECE_L: .byte 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0
|
||||||
|
.align $40
|
||||||
|
PIECE_J: .byte 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0
|
||||||
|
.align $40
|
||||||
|
PIECE_O: .byte 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
||||||
|
.align $40
|
||||||
|
PIECE_I: .byte 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0
|
||||||
|
PIECES_COLORS: .byte WHITE, LIGHT_GREY, GREEN, LIGHT_GREY, WHITE, WHITE, GREEN
|
||||||
playfield_lines: .fill 2*PLAYFIELD_LINES, 0
|
playfield_lines: .fill 2*PLAYFIELD_LINES, 0
|
||||||
|
PIECES: .word PIECE_T, PIECE_S, PIECE_Z, PIECE_J, PIECE_O, PIECE_I, PIECE_L
|
||||||
playfield: .fill PLAYFIELD_LINES*PLAYFIELD_COLS, 0
|
playfield: .fill PLAYFIELD_LINES*PLAYFIELD_COLS, 0
|
||||||
screen_lines: .fill 2*(PLAYFIELD_LINES+3), 0
|
screen_lines: .fill 2*(PLAYFIELD_LINES+3), 0
|
||||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,4 +1,4 @@
|
|||||||
(label) @21
|
(label) @23
|
||||||
(label) @begin
|
(label) @begin
|
||||||
(label) @end
|
(label) @end
|
||||||
(byte) BLACK
|
(byte) BLACK
|
||||||
@ -47,6 +47,26 @@
|
|||||||
(const byte) KEY_X#0 KEY_X = (byte/signed byte/word/signed word/dword/signed dword) 23
|
(const byte) KEY_X#0 KEY_X = (byte/signed byte/word/signed word/dword/signed dword) 23
|
||||||
(byte) KEY_Z
|
(byte) KEY_Z
|
||||||
(const byte) KEY_Z#0 KEY_Z = (byte/signed byte/word/signed word/dword/signed dword) 12
|
(const byte) KEY_Z#0 KEY_Z = (byte/signed byte/word/signed word/dword/signed dword) 12
|
||||||
|
(byte) LIGHT_GREY
|
||||||
|
(const byte) LIGHT_GREY#0 LIGHT_GREY = (byte/signed byte/word/signed word/dword/signed dword) 15
|
||||||
|
(word[]) PIECES
|
||||||
|
(const word[]) PIECES#0 PIECES = { ((word))(const byte[4*4*4]) PIECE_T#0, ((word))(const byte[4*4*4]) PIECE_S#0, ((word))(const byte[4*4*4]) PIECE_Z#0, ((word))(const byte[4*4*4]) PIECE_J#0, ((word))(const byte[4*4*4]) PIECE_O#0, ((word))(const byte[4*4*4]) PIECE_I#0, ((word))(const byte[4*4*4]) PIECE_L#0 }
|
||||||
|
(byte[]) PIECES_COLORS
|
||||||
|
(const byte[]) PIECES_COLORS#0 PIECES_COLORS = { (const byte) WHITE#0, (const byte) LIGHT_GREY#0, (const byte) GREEN#0, (const byte) LIGHT_GREY#0, (const byte) WHITE#0, (const byte) WHITE#0, (const byte) GREEN#0 }
|
||||||
|
(byte[4*4*4]) PIECE_I
|
||||||
|
(const byte[4*4*4]) PIECE_I#0 PIECE_I = { (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) 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) 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) 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) 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) 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) 0, (byte/signed byte/word/signed word/dword/signed dword) 0 }
|
||||||
|
(byte[4*4*4]) PIECE_J
|
||||||
|
(const byte[4*4*4]) PIECE_J#0 PIECE_J = { (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) 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) 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) 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) 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) 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) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0 }
|
||||||
|
(byte[4*4*4]) PIECE_L
|
||||||
|
(const byte[4*4*4]) PIECE_L#0 PIECE_L = { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 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) 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) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 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) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0 }
|
||||||
|
(byte[4*4*4]) PIECE_O
|
||||||
|
(const byte[4*4*4]) PIECE_O#0 PIECE_O = { (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) 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) 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) 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) 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) 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) 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) 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[4*4*4]) PIECE_S
|
||||||
|
(const byte[4*4*4]) PIECE_S#0 PIECE_S = { (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) 1, (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) 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) 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) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/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) 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) 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[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[4*4*4]) PIECE_Z
|
||||||
|
(const byte[4*4*4]) PIECE_Z#0 PIECE_Z = { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 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) 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) 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) 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) 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) 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) 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) PLAYFIELD_COLS
|
(byte) PLAYFIELD_COLS
|
||||||
(const byte) PLAYFIELD_COLS#0 PLAYFIELD_COLS = (byte/signed byte/word/signed word/dword/signed dword) 10
|
(const byte) PLAYFIELD_COLS#0 PLAYFIELD_COLS = (byte/signed byte/word/signed word/dword/signed dword) 10
|
||||||
(byte) PLAYFIELD_LINES
|
(byte) PLAYFIELD_LINES
|
||||||
@ -55,6 +75,16 @@
|
|||||||
(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) 53266
|
(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) 53266
|
||||||
(byte*) SCREEN
|
(byte*) SCREEN
|
||||||
(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024
|
(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024
|
||||||
|
(byte) SID_CONTROL_NOISE
|
||||||
|
(const byte) SID_CONTROL_NOISE#0 SID_CONTROL_NOISE = (byte/word/signed word/dword/signed dword) 128
|
||||||
|
(byte*) SID_VOICE3_CONTROL
|
||||||
|
(const byte*) SID_VOICE3_CONTROL#0 SID_VOICE3_CONTROL = ((byte*))(word/dword/signed dword) 54290
|
||||||
|
(word*) SID_VOICE3_FREQ
|
||||||
|
(const word*) SID_VOICE3_FREQ#0 SID_VOICE3_FREQ = ((word*))(word/dword/signed dword) 54286
|
||||||
|
(byte*) SID_VOICE3_OSC
|
||||||
|
(const byte*) SID_VOICE3_OSC#0 SID_VOICE3_OSC = ((byte*))(word/dword/signed dword) 54299
|
||||||
|
(byte) WHITE
|
||||||
|
(const byte) WHITE#0 WHITE = (byte/signed byte/word/signed word/dword/signed dword) 1
|
||||||
(byte()) collision((byte) collision::xpos , (byte) collision::ypos , (byte) collision::orientation)
|
(byte()) collision((byte) collision::xpos , (byte) collision::ypos , (byte) collision::orientation)
|
||||||
(byte~) collision::$7 reg byte a 2002.0
|
(byte~) collision::$7 reg byte a 2002.0
|
||||||
(label) collision::@1
|
(label) collision::@1
|
||||||
@ -120,55 +150,61 @@
|
|||||||
(byte) current_movedown_counter#10 current_movedown_counter zp ZP_BYTE:3 0.5333333333333333
|
(byte) current_movedown_counter#10 current_movedown_counter zp ZP_BYTE:3 0.5333333333333333
|
||||||
(byte) current_movedown_counter#12 current_movedown_counter zp ZP_BYTE:3 0.5
|
(byte) current_movedown_counter#12 current_movedown_counter zp ZP_BYTE:3 0.5
|
||||||
(byte) current_movedown_counter#15 current_movedown_counter zp ZP_BYTE:3 1.3
|
(byte) current_movedown_counter#15 current_movedown_counter zp ZP_BYTE:3 1.3
|
||||||
(byte) current_movedown_rate
|
(byte) current_movedown_fast
|
||||||
(const byte) current_movedown_rate#0 current_movedown_rate = (byte/signed byte/word/signed word/dword/signed dword) 50
|
(const byte) current_movedown_fast#0 current_movedown_fast = (byte/signed byte/word/signed word/dword/signed dword) 5
|
||||||
(byte) current_movedown_rate_fast
|
(byte) current_movedown_slow
|
||||||
(const byte) current_movedown_rate_fast#0 current_movedown_rate_fast = (byte/signed byte/word/signed word/dword/signed dword) 5
|
(const byte) current_movedown_slow#0 current_movedown_slow = (byte/signed byte/word/signed word/dword/signed dword) 50
|
||||||
|
(byte) current_orientation
|
||||||
|
(byte) current_orientation#15 current_orientation zp ZP_BYTE:14 0.5
|
||||||
|
(byte) current_orientation#18 current_orientation zp ZP_BYTE:14 0.32653061224489793
|
||||||
|
(byte) current_orientation#23 current_orientation zp ZP_BYTE:14 1.0625
|
||||||
|
(byte) current_orientation#33 current_orientation zp ZP_BYTE:14 4.0
|
||||||
|
(byte) current_orientation#8 current_orientation zp ZP_BYTE:14 3.0
|
||||||
(byte*) current_piece
|
(byte*) current_piece
|
||||||
(byte*) current_piece#11 current_piece zp ZP_WORD:12 0.5
|
(byte*) current_piece#11 current_piece zp ZP_WORD:12 0.5588235294117647
|
||||||
(byte*) current_piece#13 current_piece zp ZP_WORD:12 0.3382352941176471
|
(byte*) current_piece#13 current_piece zp ZP_WORD:12 0.3432835820895522
|
||||||
(byte*) current_piece#15 current_piece#15 zp ZP_WORD:5 10.0
|
(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#23 current_piece zp ZP_WORD:12 6.0
|
||||||
(byte*~) current_piece#67 current_piece#67 zp ZP_WORD:5 4.0
|
(byte*~) current_piece#68 current_piece zp ZP_WORD:12 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#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#70 current_piece#70 zp ZP_WORD:5 4.0
|
||||||
|
(byte*~) current_piece#71 current_piece#71 zp ZP_WORD:5 4.0
|
||||||
|
(byte*~) current_piece#72 current_piece#72 zp ZP_WORD:5 4.0
|
||||||
|
(byte*~) current_piece#73 current_piece zp ZP_WORD:12 4.0
|
||||||
(byte) current_piece_color
|
(byte) current_piece_color
|
||||||
(byte) current_piece_color#11 current_piece_color zp ZP_BYTE:17 20.32
|
(byte) current_piece_color#11 current_piece_color zp ZP_BYTE:18 19.96078431372549
|
||||||
(byte) current_piece_color#13 current_piece_color zp ZP_BYTE:17 1.0
|
(byte) current_piece_color#13 current_piece_color zp ZP_BYTE:18 1.0
|
||||||
(byte) current_piece_color#23 current_piece_color zp ZP_BYTE:17 4.0
|
(byte) current_piece_color#15 current_piece_color zp ZP_BYTE:18 0.7272727272727273
|
||||||
(byte) current_piece_color#63 current_piece_color#63 zp ZP_BYTE:7 53.26315789473684
|
(byte) current_piece_color#23 current_piece_color zp ZP_BYTE:18 6.0
|
||||||
(byte~) current_piece_color#70 current_piece_color#70 zp ZP_BYTE:7 22.0
|
(byte) current_piece_color#64 current_piece_color#64 zp ZP_BYTE:7 53.368421052631575
|
||||||
|
(byte~) current_piece_color#72 current_piece_color#72 zp ZP_BYTE:7 4.0
|
||||||
|
(byte~) current_piece_color#73 current_piece_color#73 zp ZP_BYTE:7 22.0
|
||||||
(byte*) current_piece_gfx
|
(byte*) current_piece_gfx
|
||||||
(byte*) current_piece_gfx#15 current_piece_gfx zp ZP_WORD:15 20.32
|
(byte*) current_piece_gfx#10 current_piece_gfx zp ZP_WORD:15 0.6666666666666666
|
||||||
(byte*) current_piece_gfx#17 current_piece_gfx zp ZP_WORD:15 0.2857142857142857
|
(byte*) current_piece_gfx#15 current_piece_gfx zp ZP_WORD:15 19.96078431372549
|
||||||
|
(byte*) current_piece_gfx#17 current_piece_gfx zp ZP_WORD:15 0.2962962962962963
|
||||||
(byte*) current_piece_gfx#18 current_piece_gfx zp ZP_WORD:15 1.75
|
(byte*) current_piece_gfx#18 current_piece_gfx zp ZP_WORD:15 1.75
|
||||||
(byte*) current_piece_gfx#29 current_piece_gfx zp ZP_WORD:15 4.0
|
(byte*) current_piece_gfx#29 current_piece_gfx zp ZP_WORD:15 6.0
|
||||||
(byte*) current_piece_gfx#61 current_piece_gfx#61 zp ZP_WORD:5 53.26315789473684
|
(byte*) current_piece_gfx#62 current_piece_gfx#62 zp ZP_WORD:5 53.368421052631575
|
||||||
(byte*) current_piece_gfx#8 current_piece_gfx zp ZP_WORD:15 4.0
|
(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_gfx#84 current_piece_gfx#84 zp ZP_WORD:5 2.0
|
||||||
(byte) current_piece_orientation
|
(byte*~) current_piece_gfx#85 current_piece_gfx#85 zp ZP_WORD:5 11.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
|
||||||
(byte) current_xpos#16 current_xpos zp ZP_BYTE:18 20.36
|
(byte) current_xpos#16 current_xpos zp ZP_BYTE:17 2.313725490196078
|
||||||
(byte) current_xpos#19 current_xpos zp ZP_BYTE:18 0.72
|
(byte) current_xpos#19 current_xpos zp ZP_BYTE:17 0.72
|
||||||
(byte) current_xpos#23 current_xpos zp ZP_BYTE:18 0.8292682926829271
|
(byte) current_xpos#23 current_xpos zp ZP_BYTE:17 0.8500000000000003
|
||||||
(byte) current_xpos#36 current_xpos zp ZP_BYTE:18 4.0
|
(byte) current_xpos#36 current_xpos zp ZP_BYTE:17 4.0
|
||||||
(byte) current_xpos#62 current_xpos#62 zp ZP_BYTE:4 5.894736842105264
|
(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#7 current_xpos zp ZP_BYTE:17 4.0
|
||||||
(byte) current_xpos#9 current_xpos zp ZP_BYTE:18 4.0
|
(byte) current_xpos#9 current_xpos zp ZP_BYTE:17 4.0
|
||||||
(byte~) current_xpos#92 current_xpos#92 zp ZP_BYTE:4 7.333333333333333
|
(byte~) current_xpos#93 current_xpos#93 zp ZP_BYTE:4 7.333333333333333
|
||||||
(byte) current_ypos
|
(byte) current_ypos
|
||||||
(byte) current_ypos#12 current_ypos zp ZP_BYTE:2 2.4081632653061225
|
(byte) current_ypos#12 current_ypos zp ZP_BYTE:2 0.5588235294117647
|
||||||
(byte) current_ypos#16 current_ypos zp ZP_BYTE:2 0.4705882352941177
|
(byte) current_ypos#16 current_ypos zp ZP_BYTE:2 0.47761194029850734
|
||||||
(byte) current_ypos#22 reg byte x 13.0
|
(byte) current_ypos#22 reg byte x 13.0
|
||||||
(byte) current_ypos#31 current_ypos zp ZP_BYTE:2 4.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#4 current_ypos zp ZP_BYTE:2 4.0
|
||||||
(byte~) current_ypos#72 reg byte x 5.5
|
(byte~) current_ypos#68 reg byte x 5.5
|
||||||
(void()) fill((byte*) fill::start , (word) fill::size , (byte) fill::val)
|
(void()) fill((byte*) fill::start , (word) fill::size , (byte) fill::val)
|
||||||
(label) fill::@1
|
(label) fill::@1
|
||||||
(label) fill::@return
|
(label) fill::@return
|
||||||
@ -312,34 +348,39 @@
|
|||||||
(byte[8]) keyboard_scan_values
|
(byte[8]) keyboard_scan_values
|
||||||
(const byte[8]) keyboard_scan_values#0 keyboard_scan_values = { fill( 8, 0) }
|
(const byte[8]) keyboard_scan_values#0 keyboard_scan_values = { fill( 8, 0) }
|
||||||
(void()) lock_current()
|
(void()) lock_current()
|
||||||
(byte~) lock_current::$1 reg byte a 202.0
|
|
||||||
(label) lock_current::@1
|
(label) lock_current::@1
|
||||||
(label) lock_current::@2
|
(label) lock_current::@2
|
||||||
(label) lock_current::@3
|
(label) lock_current::@3
|
||||||
(label) lock_current::@4
|
(label) lock_current::@4
|
||||||
(label) lock_current::@5
|
(label) lock_current::@5
|
||||||
|
(label) lock_current::@7
|
||||||
|
(label) lock_current::@8
|
||||||
(label) lock_current::@return
|
(label) lock_current::@return
|
||||||
(byte) lock_current::c
|
(byte) lock_current::c
|
||||||
(byte) lock_current::c#1 reg byte x 1501.5
|
(byte) lock_current::c#1 reg byte x 1001.0
|
||||||
(byte) lock_current::c#2 reg byte x 500.5
|
(byte) lock_current::c#2 reg byte x 400.4
|
||||||
(byte) lock_current::cell
|
|
||||||
(byte) lock_current::cell#0 reg byte a 1001.0
|
|
||||||
(byte) lock_current::col
|
(byte) lock_current::col
|
||||||
(byte) lock_current::col#0 reg byte a 2002.0
|
(byte) lock_current::col#0 col zp ZP_BYTE:7 202.0
|
||||||
|
(byte) lock_current::col#1 col zp ZP_BYTE:7 500.5
|
||||||
|
(byte) lock_current::col#2 col zp ZP_BYTE:7 776.0
|
||||||
(byte) lock_current::i
|
(byte) lock_current::i
|
||||||
(byte) lock_current::i#1 i zp ZP_BYTE:4 262.875
|
(byte) lock_current::i#1 i zp ZP_BYTE:8 233.66666666666669
|
||||||
(byte) lock_current::i#2 i zp ZP_BYTE:4 1552.0
|
(byte) lock_current::i#2 i#2 zp ZP_BYTE:4 1552.0
|
||||||
(byte) lock_current::i#3 i zp ZP_BYTE:4 50.5
|
(byte) lock_current::i#3 i#3 zp ZP_BYTE:4 67.33333333333333
|
||||||
|
(byte~) lock_current::i#7 i#7 zp ZP_BYTE:4 202.0
|
||||||
|
(byte~) lock_current::i#9 i#9 zp ZP_BYTE:4 2002.0
|
||||||
(byte) lock_current::l
|
(byte) lock_current::l
|
||||||
(byte) lock_current::l#1 l zp ZP_BYTE:3 151.5
|
(byte) lock_current::l#1 l zp ZP_BYTE:3 101.0
|
||||||
(byte) lock_current::l#2 l zp ZP_BYTE:3 25.25
|
(byte) lock_current::l#6 l zp ZP_BYTE:3 16.833333333333332
|
||||||
(byte) lock_current::line
|
|
||||||
(byte) lock_current::line#0 reg byte a 202.0
|
|
||||||
(byte*) lock_current::playfield_line
|
(byte*) lock_current::playfield_line
|
||||||
(byte*) lock_current::playfield_line#0 playfield_line zp ZP_WORD:5 122.44444444444446
|
(byte*) lock_current::playfield_line#0 playfield_line zp ZP_WORD:5 110.19999999999999
|
||||||
|
(byte) lock_current::ypos2
|
||||||
|
(byte) lock_current::ypos2#0 ypos2 zp ZP_BYTE:2 4.0
|
||||||
|
(byte) lock_current::ypos2#1 ypos2 zp ZP_BYTE:2 50.5
|
||||||
|
(byte) lock_current::ypos2#2 ypos2 zp ZP_BYTE:2 27.727272727272727
|
||||||
(void()) main()
|
(void()) main()
|
||||||
(byte~) main::$10 reg byte a 22.0
|
(byte~) main::$10 reg byte a 22.0
|
||||||
(byte~) main::$8 reg byte a 22.0
|
(byte~) main::$11 reg byte a 22.0
|
||||||
(byte~) main::$9 reg byte a 22.0
|
(byte~) main::$9 reg byte a 22.0
|
||||||
(label) main::@1
|
(label) main::@1
|
||||||
(label) main::@10
|
(label) main::@10
|
||||||
@ -347,13 +388,14 @@
|
|||||||
(label) main::@21
|
(label) main::@21
|
||||||
(label) main::@22
|
(label) main::@22
|
||||||
(label) main::@23
|
(label) main::@23
|
||||||
(label) main::@25
|
(label) main::@24
|
||||||
(label) main::@26
|
(label) main::@26
|
||||||
(label) main::@27
|
(label) main::@27
|
||||||
(label) main::@28
|
(label) main::@28
|
||||||
(label) main::@29
|
(label) main::@29
|
||||||
(label) main::@30
|
(label) main::@30
|
||||||
(label) main::@31
|
(label) main::@31
|
||||||
|
(label) main::@32
|
||||||
(label) main::@4
|
(label) main::@4
|
||||||
(label) main::@7
|
(label) main::@7
|
||||||
(label) main::@9
|
(label) main::@9
|
||||||
@ -363,8 +405,6 @@
|
|||||||
(byte) main::render#1 render zp ZP_BYTE:21 4.4
|
(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#2 render zp ZP_BYTE:21 4.4
|
||||||
(byte) main::render#3 reg byte a 22.0
|
(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_move_down((byte) play_move_down::key_event)
|
(byte()) play_move_down((byte) play_move_down::key_event)
|
||||||
(byte~) play_move_down::$12 reg byte a 4.0
|
(byte~) play_move_down::$12 reg byte a 4.0
|
||||||
(byte~) play_move_down::$2 reg byte a 4.0
|
(byte~) play_move_down::$2 reg byte a 4.0
|
||||||
@ -414,7 +454,6 @@
|
|||||||
(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::$2 reg byte a 4.0
|
||||||
(byte/signed word/word/dword/signed dword~) play_move_rotate::$4 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::$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::@1
|
||||||
(label) play_move_rotate::@11
|
(label) play_move_rotate::@11
|
||||||
(label) play_move_rotate::@14
|
(label) play_move_rotate::@14
|
||||||
@ -427,7 +466,7 @@
|
|||||||
(byte) play_move_rotate::orientation
|
(byte) play_move_rotate::orientation
|
||||||
(byte) play_move_rotate::orientation#1 orientation zp ZP_BYTE:4 4.0
|
(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#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::orientation#3 orientation zp ZP_BYTE:4 0.8888888888888888
|
||||||
(byte) play_move_rotate::return
|
(byte) play_move_rotate::return
|
||||||
(byte) play_move_rotate::return#0 reg byte a 22.0
|
(byte) play_move_rotate::return#0 reg byte a 22.0
|
||||||
(byte) play_move_rotate::return#2 reg byte a 3.6666666666666665
|
(byte) play_move_rotate::return#2 reg byte a 3.6666666666666665
|
||||||
@ -489,16 +528,32 @@
|
|||||||
(byte*) render_playfield::line#2 line zp ZP_WORD:5 1552.0
|
(byte*) render_playfield::line#2 line zp ZP_WORD:5 1552.0
|
||||||
(byte*[PLAYFIELD_LINES#0+3]) screen_lines
|
(byte*[PLAYFIELD_LINES#0+3]) screen_lines
|
||||||
(const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 screen_lines = { fill( PLAYFIELD_LINES#0+3, 0) }
|
(const byte*[PLAYFIELD_LINES#0+3]) screen_lines#0 screen_lines = { fill( PLAYFIELD_LINES#0+3, 0) }
|
||||||
|
(byte()) sid_rnd()
|
||||||
|
(label) sid_rnd::@return
|
||||||
|
(byte) sid_rnd::return
|
||||||
|
(byte) sid_rnd::return#0 reg byte a 34.33333333333333
|
||||||
|
(byte) sid_rnd::return#2 reg byte a 202.0
|
||||||
|
(void()) sid_rnd_init()
|
||||||
|
(label) sid_rnd_init::@return
|
||||||
(void()) spawn_current()
|
(void()) spawn_current()
|
||||||
|
(byte~) spawn_current::$1 reg byte a 202.0
|
||||||
|
(byte~) spawn_current::$3 $3 zp ZP_BYTE:2 0.18181818181818182
|
||||||
|
(label) spawn_current::@1
|
||||||
|
(label) spawn_current::@2
|
||||||
|
(label) spawn_current::@3
|
||||||
|
(label) spawn_current::@7
|
||||||
(label) spawn_current::@return
|
(label) spawn_current::@return
|
||||||
|
(byte) spawn_current::piece_idx
|
||||||
|
(byte) spawn_current::piece_idx#1 reg byte x 202.0
|
||||||
|
(byte) spawn_current::piece_idx#2 reg byte x 41.199999999999996
|
||||||
|
|
||||||
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:2 [ current_ypos#12 current_ypos#16 current_ypos#31 current_ypos#4 lock_current::ypos2#2 lock_current::ypos2#0 lock_current::ypos2#1 init::l#4 init::l#1 spawn_current::$3 ]
|
||||||
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:3 [ current_movedown_counter#15 current_movedown_counter#12 current_movedown_counter#10 lock_current::l#6 lock_current::l#1 ]
|
||||||
reg byte x [ current_ypos#22 current_ypos#72 ]
|
reg byte x [ current_ypos#22 current_ypos#68 ]
|
||||||
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_BYTE:4 [ current_xpos#62 current_xpos#93 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#7 lock_current::i#9 keyboard_event_pressed::keycode#5 keyboard_event_scan::row#2 keyboard_event_scan::row#1 ]
|
||||||
zp ZP_WORD:5 [ current_piece_gfx#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_WORD:5 [ current_piece_gfx#62 current_piece_gfx#84 current_piece_gfx#85 render_playfield::line#2 render_playfield::line#0 render_playfield::line#1 current_piece#15 current_piece#69 current_piece#70 current_piece#71 current_piece#72 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:7 [ current_piece_color#64 current_piece_color#72 current_piece_color#73 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 collision::xpos#5 collision::xpos#0 collision::xpos#1 collision::xpos#2 collision::xpos#3 lock_current::col#2 lock_current::col#0 lock_current::col#1 keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 keyboard_event_scan::keycode#15 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:8 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 collision::ypos2#2 collision::ypos2#0 collision::ypos2#1 lock_current::i#1 keyboard_event_scan::row_scan#0 ]
|
||||||
zp ZP_BYTE:9 [ render_current::l#3 render_current::l#1 collision::l#6 collision::l#1 ]
|
zp ZP_BYTE: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: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 ]
|
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 ]
|
||||||
@ -511,12 +566,13 @@ reg byte x [ collision::c#2 collision::c#1 ]
|
|||||||
reg byte a [ collision::return#14 ]
|
reg byte a [ collision::return#14 ]
|
||||||
reg byte a [ play_move_leftright::return#2 ]
|
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 ]
|
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_WORD:12 [ current_piece#23 current_piece#73 current_piece#11 current_piece#13 current_piece#68 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_BYTE:14 [ current_orientation#33 current_orientation#15 current_orientation#23 current_orientation#8 current_orientation#18 ]
|
||||||
zp ZP_WORD:15 [ current_piece_gfx#29 current_piece_gfx#15 current_piece_gfx#18 current_piece_gfx#8 current_piece_gfx#17 ]
|
zp ZP_WORD:15 [ current_piece_gfx#29 current_piece_gfx#15 current_piece_gfx#18 current_piece_gfx#10 current_piece_gfx#8 current_piece_gfx#17 ]
|
||||||
zp ZP_BYTE:17 [ current_piece_color#23 current_piece_color#11 current_piece_color#13 ]
|
zp ZP_BYTE:17 [ current_xpos#36 current_xpos#16 current_xpos#23 current_xpos#9 current_xpos#19 current_xpos#7 ]
|
||||||
zp ZP_BYTE:18 [ current_xpos#36 current_xpos#16 current_xpos#23 current_xpos#9 current_xpos#19 current_xpos#7 ]
|
zp ZP_BYTE:18 [ current_piece_color#23 current_piece_color#11 current_piece_color#13 current_piece_color#15 ]
|
||||||
reg byte x [ play_move_down::return#3 ]
|
reg byte x [ play_move_down::return#3 ]
|
||||||
|
reg byte x [ spawn_current::piece_idx#2 spawn_current::piece_idx#1 ]
|
||||||
reg byte x [ lock_current::c#2 lock_current::c#1 ]
|
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 a [ keyboard_event_get::return#2 keyboard_event_get::return#1 ]
|
||||||
reg byte x [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ]
|
reg byte x [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ]
|
||||||
@ -529,14 +585,14 @@ reg byte a [ keyboard_event_get::return#3 ]
|
|||||||
zp ZP_BYTE:20 [ main::key_event#0 ]
|
zp ZP_BYTE:20 [ main::key_event#0 ]
|
||||||
reg byte a [ play_move_down::key_event#0 ]
|
reg byte a [ play_move_down::key_event#0 ]
|
||||||
reg byte a [ play_move_down::return#0 ]
|
reg byte a [ play_move_down::return#0 ]
|
||||||
reg byte a [ main::$8 ]
|
reg byte a [ main::$9 ]
|
||||||
zp ZP_BYTE:21 [ main::render#1 main::render#2 ]
|
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::key_event#0 ]
|
||||||
reg byte a [ play_move_leftright::return#0 ]
|
reg byte a [ play_move_leftright::return#0 ]
|
||||||
reg byte a [ main::$9 ]
|
reg byte a [ main::$10 ]
|
||||||
reg byte a [ play_move_rotate::key_event#0 ]
|
reg byte a [ play_move_rotate::key_event#0 ]
|
||||||
reg byte a [ play_move_rotate::return#0 ]
|
reg byte a [ play_move_rotate::return#0 ]
|
||||||
reg byte a [ main::$10 ]
|
reg byte a [ main::$11 ]
|
||||||
reg byte a [ main::render#3 ]
|
reg byte a [ main::render#3 ]
|
||||||
zp ZP_WORD:22 [ render_current::screen_line#0 collision::playfield_line#0 ]
|
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::current_cell#0 ]
|
||||||
@ -544,7 +600,6 @@ reg byte a [ render_playfield::$1 ]
|
|||||||
reg byte a [ play_move_rotate::$2 ]
|
reg byte a [ play_move_rotate::$2 ]
|
||||||
reg byte a [ collision::return#13 ]
|
reg byte a [ collision::return#13 ]
|
||||||
reg byte a [ play_move_rotate::$6 ]
|
reg byte a [ play_move_rotate::$6 ]
|
||||||
reg byte a [ play_move_rotate::$8 ]
|
|
||||||
reg byte a [ play_move_rotate::$4 ]
|
reg byte a [ play_move_rotate::$4 ]
|
||||||
zp ZP_BYTE:24 [ collision::i#1 ]
|
zp ZP_BYTE:24 [ collision::i#1 ]
|
||||||
reg byte a [ collision::$7 ]
|
reg byte a [ collision::$7 ]
|
||||||
@ -556,10 +611,9 @@ reg byte a [ keyboard_event_pressed::return#12 ]
|
|||||||
reg byte a [ play_move_down::$2 ]
|
reg byte a [ play_move_down::$2 ]
|
||||||
reg byte a [ collision::return#0 ]
|
reg byte a [ collision::return#0 ]
|
||||||
reg byte a [ play_move_down::$12 ]
|
reg byte a [ play_move_down::$12 ]
|
||||||
reg byte a [ lock_current::line#0 ]
|
reg byte a [ sid_rnd::return#2 ]
|
||||||
reg byte a [ lock_current::$1 ]
|
reg byte a [ spawn_current::$1 ]
|
||||||
reg byte a [ lock_current::cell#0 ]
|
reg byte a [ sid_rnd::return#0 ]
|
||||||
reg byte a [ lock_current::col#0 ]
|
|
||||||
reg byte a [ keyboard_event_pressed::$0 ]
|
reg byte a [ keyboard_event_pressed::$0 ]
|
||||||
reg byte a [ keyboard_event_pressed::$1 ]
|
reg byte a [ keyboard_event_pressed::$1 ]
|
||||||
reg byte a [ keyboard_event_pressed::return#11 ]
|
reg byte a [ keyboard_event_pressed::return#11 ]
|
||||||
|
Loading…
x
Reference in New Issue
Block a user