Added needed parts of font and proper colors.
6
src/main/fragment/vbuaa=vbuaa_rol_6.asm
Normal file
@ -0,0 +1,6 @@
|
||||
asl
|
||||
asl
|
||||
asl
|
||||
asl
|
||||
asl
|
||||
asl
|
Before Width: | Height: | Size: 333 B |
4
src/test/kc/examples/tetris/font-selected.gpx
Normal file
@ -0,0 +1,4 @@
|
||||
xХOЛNУ@мHQ*+J<>ё
&$рТ<D180>РGр$g)т<>-лYљЖЋЖВ\ІB<D086><42>2ЂB.ЌГg$Јi2ђ=fwfі<$Ђ!ж+кIЎДZф<>.ЃеУrЧ*Ыщъ<D189>Cск+ЅuО<75>в<EFBFBD>$:ЩђЭ<D192>ЂЭРуd[Ќ7yЊЃ=иc<D0B8>Ко97рЩ<D180>Ъb<D0AA><;kiUЪнВО<D092>4Є, ѕћ<02>ѕ<EFBFBD><02> <EFBFBD>Џ2(цамКDpЅЖn<D096>Jw<4A>с<1E>эыG<D18B>З<>e4ГeІ<65>Y>
|
||||
ccLR[3sн<73>5І3ЦЪйЂC<15><>Й"v6Ів<17>tщuI№|ТKЦС<12>ьQtќёeп<1A>_PЩ<ю\<5C>аБ№І}mЈЌM5BпК\<5C>јG<D198>эT9<>і<EFBFBD><А
|
||||
g]зђВодПЧМр<0E>u@г`
|
||||
<1C>?ђќwKoJюEЈkыyд<79>n$џгIОeOђ<><D192>]<5D>в?7џР_џ7ц"в
|
BIN
src/test/kc/examples/tetris/font.gpx
Normal file
Before Width: | Height: | Size: 334 B |
1
src/test/kc/examples/tetris/playfield-extended.col
Normal file
@ -0,0 +1 @@
|
||||
|
BIN
src/test/kc/examples/tetris/playfield-extended.gpx
Normal file
Before Width: | Height: | Size: 4.3 KiB After Width: | Height: | Size: 4.3 KiB |
BIN
src/test/kc/examples/tetris/playfield-screen.col
Normal file
BIN
src/test/kc/examples/tetris/playfield-screen.gpx
Normal file
BIN
src/test/kc/examples/tetris/playfield-screen.imap
Normal file
BIN
src/test/kc/examples/tetris/playfield-screen.iscr
Normal file
BIN
src/test/kc/examples/tetris/playfield-screen.png
Normal file
After Width: | Height: | Size: 2.7 KiB |
Before Width: | Height: | Size: 753 B After Width: | Height: | Size: 753 B |
@ -10,6 +10,10 @@ const byte* PLAYFIELD_SPRITE_PTRS_1 = (PLAYFIELD_SCREEN_1+SPRITE_PTRS);
|
||||
const byte* PLAYFIELD_SPRITE_PTRS_2 = (PLAYFIELD_SCREEN_2+SPRITE_PTRS);
|
||||
// Address of the original playscreen chars
|
||||
const byte* PLAYFIELD_SCREEN_ORIGINAL = $1800;
|
||||
// Address of the original playscreen colors
|
||||
const byte* PLAYFIELD_COLORS_ORIGINAL = $1c00;
|
||||
// Address of the original playscreen extended colors
|
||||
const byte* PLAYFIELD_EXTENDED_ORIGINAL = $1400;
|
||||
// Address of the sprites covering the playfield
|
||||
const byte* PLAYFIELD_SPRITES = $2000;
|
||||
// Address of the charset
|
||||
|
@ -171,7 +171,7 @@ align($40) byte[4*4*4] PIECE_I = {
|
||||
word[] PIECES = { (word)PIECE_T, (word)PIECE_S, (word)PIECE_Z, (word)PIECE_J, (word)PIECE_O, (word)PIECE_I, (word)PIECE_L };
|
||||
|
||||
// The chars to use for the different pieces
|
||||
byte[] PIECES_CHARS = { $58, $59, $99, $59, $58, $58, $99 };
|
||||
byte[] PIECES_CHARS = { $64, $65, $a5, $65, $64, $64, $a5 };
|
||||
// The initial X/Y for each piece
|
||||
byte[] PIECES_START_X = { 4, 4, 4, 4, 4, 3, 4};
|
||||
byte[] PIECES_START_Y = { 2, 1, 1, 1, 2, 0, 1};
|
@ -1,14 +1,22 @@
|
||||
import "tetris-data"
|
||||
|
||||
kickasm(pc PLAYFIELD_CHARSET, resource "nes-screen.imap") {{
|
||||
kickasm(pc PLAYFIELD_CHARSET, resource "playfield-screen.imap") {{
|
||||
.fill 8,$00 // Place a filled char at the start of the charset
|
||||
.import binary "nes-screen.imap"
|
||||
.import binary "playfield-screen.imap"
|
||||
}}
|
||||
|
||||
const byte PLAYFIELD_SCREEN_ORIGINAL_WIDTH=32;
|
||||
// Address of the screen data original
|
||||
kickasm(pc PLAYFIELD_SCREEN_ORIGINAL, resource "nes-screen.iscr") {{
|
||||
.import binary "nes-screen.iscr"
|
||||
kickasm(pc PLAYFIELD_SCREEN_ORIGINAL, resource "playfield-screen.iscr") {{
|
||||
.import binary "playfield-screen.iscr"
|
||||
}}
|
||||
|
||||
// Original Color Data
|
||||
kickasm(pc PLAYFIELD_COLORS_ORIGINAL, resource "playfield-screen.col") {{
|
||||
.import binary "playfield-screen.col"
|
||||
}}
|
||||
// Original Extended Color Data
|
||||
kickasm(pc PLAYFIELD_EXTENDED_ORIGINAL, resource "playfield-extended.col") {{
|
||||
.import binary "playfield-extended.col"
|
||||
}}
|
||||
|
||||
// Pointers to the screen address for rendering each playfield line
|
||||
@ -30,16 +38,6 @@ void render_init() {
|
||||
// Setup chars on the screens
|
||||
render_screen_original(PLAYFIELD_SCREEN_1);
|
||||
render_screen_original(PLAYFIELD_SCREEN_2);
|
||||
fill(COLS,1000,DARK_GREY);
|
||||
|
||||
// Fill the playfield frame with the white background color
|
||||
byte* line = COLS + 4*40 + 16;
|
||||
for(byte l:2..PLAYFIELD_LINES-1) {
|
||||
for(byte c:0..PLAYFIELD_COLS-1) {
|
||||
*(line+c) = WHITE;
|
||||
}
|
||||
line +=40;
|
||||
}
|
||||
|
||||
// Initialize the screen line pointers;
|
||||
byte* li_1 = PLAYFIELD_SCREEN_1 + 2*40 + 16;
|
||||
@ -75,24 +73,28 @@ void render_screen_swap() {
|
||||
}
|
||||
|
||||
// Copy the original screen data to the passed screen
|
||||
// Also copies colors to $d800
|
||||
void render_screen_original(byte* screen) {
|
||||
byte SPACE = 0;
|
||||
byte* orig = PLAYFIELD_SCREEN_ORIGINAL+32*2;
|
||||
byte* oscr = PLAYFIELD_SCREEN_ORIGINAL+32*2;
|
||||
byte* oext = PLAYFIELD_EXTENDED_ORIGINAL+32*2;
|
||||
byte* ocols = PLAYFIELD_COLORS_ORIGINAL+32*2;
|
||||
byte* cols = COLS;
|
||||
for(byte y:0..24) {
|
||||
byte x=0;
|
||||
do {
|
||||
*screen++ = SPACE;
|
||||
*cols++ = BLACK;
|
||||
} while(++x!=4);
|
||||
do {
|
||||
byte c = (*orig++)+1;
|
||||
if((x>$e)&&(x<$1b)) {
|
||||
// Fill the frame around the playfield - char|=$c0 (bgcol 4)
|
||||
c |= $c0;
|
||||
}
|
||||
*screen++ = c; // +1 because the charset is loaded to PLAYFIELD_CHARSET+8
|
||||
byte c = (*oscr++)+1; // +1 because the charset is loaded to PLAYFIELD_CHARSET+8
|
||||
byte ext = ((*oext++)-1)<<6; // -1 because the extended colors are saved off-by-one
|
||||
*screen++ = c|ext;
|
||||
*cols++ = *ocols++;
|
||||
} while(++x!=36);
|
||||
do {
|
||||
*screen++ = SPACE;
|
||||
*cols++ = BLACK;
|
||||
} while(++x!=40);
|
||||
}
|
||||
}
|
||||
|
@ -2,8 +2,8 @@
|
||||
import "c64"
|
||||
import "tetris-data"
|
||||
|
||||
kickasm(pc PLAYFIELD_SPRITES, resource "nes-playfield.png") {{
|
||||
.var sprites = LoadPicture("nes-playfield.png", List().add($010101, $000000))
|
||||
kickasm(pc PLAYFIELD_SPRITES, resource "playfield-sprites.png") {{
|
||||
.var sprites = LoadPicture("playfield-sprites.png", List().add($010101, $000000))
|
||||
.for(var sy=0;sy<10;sy++) {
|
||||
.for(var sx=0;sx<3;sx++) {
|
||||
.for (var y=0;y<21; y++) {
|
||||
|
@ -199,7 +199,7 @@ sprites_irq: {
|
||||
jmp b3
|
||||
}
|
||||
.pc = PLAYFIELD_SPRITES "PLAYFIELD_SPRITES"
|
||||
.var sprites = LoadPicture("nes-playfield.png", List().add($010101, $000000))
|
||||
.var sprites = LoadPicture("playfield-sprites.png", List().add($010101, $000000))
|
||||
.for(var sy=0;sy<10;sy++) {
|
||||
.for(var sx=0;sx<3;sx++) {
|
||||
.for (var y=0;y<21; y++) {
|
||||
|
@ -3,7 +3,7 @@
|
||||
to:@4
|
||||
@4: scope:[] from @begin
|
||||
[1] (byte) render_screen_showing#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
kickasm(location (const byte*) PLAYFIELD_SPRITES#0) {{ .var sprites = LoadPicture("nes-playfield.png", List().add($010101, $000000))
|
||||
kickasm(location (const byte*) PLAYFIELD_SPRITES#0) {{ .var sprites = LoadPicture("playfield-sprites.png", List().add($010101, $000000))
|
||||
.for(var sy=0;sy<10;sy++) {
|
||||
.for(var sx=0;sx<3;sx++) {
|
||||
.for (var y=0;y<21; y++) {
|
||||
|
@ -95,6 +95,8 @@ CONTROL FLOW GRAPH SSA
|
||||
(byte*~) $1 ← (byte*) PLAYFIELD_SCREEN_2#0 + (word) SPRITE_PTRS#0
|
||||
(byte*) PLAYFIELD_SPRITE_PTRS_2#0 ← (byte*~) $1
|
||||
(byte*) PLAYFIELD_SCREEN_ORIGINAL#0 ← ((byte*)) (word/signed word/dword/signed dword) 6144
|
||||
(byte*) PLAYFIELD_COLORS_ORIGINAL#0 ← ((byte*)) (word/signed word/dword/signed dword) 7168
|
||||
(byte*) PLAYFIELD_EXTENDED_ORIGINAL#0 ← ((byte*)) (word/signed word/dword/signed dword) 5120
|
||||
(byte*) PLAYFIELD_SPRITES#0 ← ((byte*)) (word/signed word/dword/signed dword) 8192
|
||||
(byte*) PLAYFIELD_CHARSET#0 ← ((byte*)) (word/signed word/dword/signed dword) 10240
|
||||
(byte) PLAYFIELD_LINES#0 ← (byte/signed byte/word/signed word/dword/signed dword) 22
|
||||
@ -104,7 +106,7 @@ CONTROL FLOW GRAPH SSA
|
||||
(byte) render_screen_render#0 ← (byte/signed byte/word/signed word/dword/signed dword) 64
|
||||
(byte) render_screen_show#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(byte) render_screen_showing#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
kickasm(location (byte*) PLAYFIELD_SPRITES#0) {{ .var sprites = LoadPicture("nes-playfield.png", List().add($010101, $000000))
|
||||
kickasm(location (byte*) PLAYFIELD_SPRITES#0) {{ .var sprites = LoadPicture("playfield-sprites.png", List().add($010101, $000000))
|
||||
.for(var sy=0;sy<10;sy++) {
|
||||
.for(var sx=0;sx<3;sx++) {
|
||||
.for (var y=0;y<21; y++) {
|
||||
@ -521,8 +523,12 @@ SYMBOL TABLE SSA
|
||||
(byte) PINK#0
|
||||
(byte*) PLAYFIELD_CHARSET
|
||||
(byte*) PLAYFIELD_CHARSET#0
|
||||
(byte*) PLAYFIELD_COLORS_ORIGINAL
|
||||
(byte*) PLAYFIELD_COLORS_ORIGINAL#0
|
||||
(byte) PLAYFIELD_COLS
|
||||
(byte) PLAYFIELD_COLS#0
|
||||
(byte*) PLAYFIELD_EXTENDED_ORIGINAL
|
||||
(byte*) PLAYFIELD_EXTENDED_ORIGINAL#0
|
||||
(byte) PLAYFIELD_LINES
|
||||
(byte) PLAYFIELD_LINES#0
|
||||
(byte*) PLAYFIELD_SCREEN_1
|
||||
@ -1039,6 +1045,8 @@ Constant (const byte) LIGHT_GREY#0 = 15
|
||||
Constant (const byte*) PLAYFIELD_SCREEN_1#0 = ((byte*))1024
|
||||
Constant (const byte*) PLAYFIELD_SCREEN_2#0 = ((byte*))11264
|
||||
Constant (const byte*) PLAYFIELD_SCREEN_ORIGINAL#0 = ((byte*))6144
|
||||
Constant (const byte*) PLAYFIELD_COLORS_ORIGINAL#0 = ((byte*))7168
|
||||
Constant (const byte*) PLAYFIELD_EXTENDED_ORIGINAL#0 = ((byte*))5120
|
||||
Constant (const byte*) PLAYFIELD_SPRITES#0 = ((byte*))8192
|
||||
Constant (const byte*) PLAYFIELD_CHARSET#0 = ((byte*))10240
|
||||
Constant (const byte) PLAYFIELD_LINES#0 = 22
|
||||
@ -1197,7 +1205,7 @@ FINAL CONTROL FLOW GRAPH
|
||||
to:@4
|
||||
@4: scope:[] from @begin
|
||||
[1] (byte) render_screen_showing#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
kickasm(location (const byte*) PLAYFIELD_SPRITES#0) {{ .var sprites = LoadPicture("nes-playfield.png", List().add($010101, $000000))
|
||||
kickasm(location (const byte*) PLAYFIELD_SPRITES#0) {{ .var sprites = LoadPicture("playfield-sprites.png", List().add($010101, $000000))
|
||||
.for(var sy=0;sy<10;sy++) {
|
||||
.for(var sx=0;sx<3;sx++) {
|
||||
.for (var y=0;y<21; y++) {
|
||||
@ -1404,7 +1412,9 @@ VARIABLE REGISTER WEIGHTS
|
||||
(byte) ORANGE
|
||||
(byte) PINK
|
||||
(byte*) PLAYFIELD_CHARSET
|
||||
(byte*) PLAYFIELD_COLORS_ORIGINAL
|
||||
(byte) PLAYFIELD_COLS
|
||||
(byte*) PLAYFIELD_EXTENDED_ORIGINAL
|
||||
(byte) PLAYFIELD_LINES
|
||||
(byte*) PLAYFIELD_SCREEN_1
|
||||
(byte*) PLAYFIELD_SCREEN_2
|
||||
@ -1663,7 +1673,7 @@ b4:
|
||||
//SEG4 [1] (byte) render_screen_showing#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- vbuz1=vbuc1
|
||||
lda #0
|
||||
sta render_screen_showing
|
||||
//SEG5 kickasm(location (const byte*) PLAYFIELD_SPRITES#0) {{ .var sprites = LoadPicture("nes-playfield.png", List().add($010101, $000000)) .for(var sy=0;sy<10;sy++) { .for(var sx=0;sx<3;sx++) { .for (var y=0;y<21; y++) { .for (var c=0; c<3; c++) { .byte sprites.getSinglecolorByte(sx*3+c,sy*21+y) } } .byte 0 } } }}
|
||||
//SEG5 kickasm(location (const byte*) PLAYFIELD_SPRITES#0) {{ .var sprites = LoadPicture("playfield-sprites.png", List().add($010101, $000000)) .for(var sy=0;sy<10;sy++) { .for(var sx=0;sx<3;sx++) { .for (var y=0;y<21; y++) { .for (var c=0; c<3; c++) { .byte sprites.getSinglecolorByte(sx*3+c,sy*21+y) } } .byte 0 } } }}
|
||||
jmp b5
|
||||
//SEG6 @5
|
||||
b5:
|
||||
@ -2046,7 +2056,7 @@ sprites_irq: {
|
||||
jmp b3
|
||||
}
|
||||
.pc = PLAYFIELD_SPRITES "PLAYFIELD_SPRITES"
|
||||
.var sprites = LoadPicture("nes-playfield.png", List().add($010101, $000000))
|
||||
.var sprites = LoadPicture("playfield-sprites.png", List().add($010101, $000000))
|
||||
.for(var sy=0;sy<10;sy++) {
|
||||
.for(var sx=0;sx<3;sx++) {
|
||||
.for (var y=0;y<21; y++) {
|
||||
@ -2284,7 +2294,7 @@ b4:
|
||||
//SEG4 [1] (byte) render_screen_showing#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- vbuz1=vbuc1
|
||||
lda #0
|
||||
sta render_screen_showing
|
||||
//SEG5 kickasm(location (const byte*) PLAYFIELD_SPRITES#0) {{ .var sprites = LoadPicture("nes-playfield.png", List().add($010101, $000000)) .for(var sy=0;sy<10;sy++) { .for(var sx=0;sx<3;sx++) { .for (var y=0;y<21; y++) { .for (var c=0; c<3; c++) { .byte sprites.getSinglecolorByte(sx*3+c,sy*21+y) } } .byte 0 } } }}
|
||||
//SEG5 kickasm(location (const byte*) PLAYFIELD_SPRITES#0) {{ .var sprites = LoadPicture("playfield-sprites.png", List().add($010101, $000000)) .for(var sy=0;sy<10;sy++) { .for(var sx=0;sx<3;sx++) { .for (var y=0;y<21; y++) { .for (var c=0; c<3; c++) { .byte sprites.getSinglecolorByte(sx*3+c,sy*21+y) } } .byte 0 } } }}
|
||||
jmp b5
|
||||
//SEG6 @5
|
||||
b5:
|
||||
@ -2625,7 +2635,7 @@ sprites_irq: {
|
||||
jmp b3
|
||||
}
|
||||
.pc = PLAYFIELD_SPRITES "PLAYFIELD_SPRITES"
|
||||
.var sprites = LoadPicture("nes-playfield.png", List().add($010101, $000000))
|
||||
.var sprites = LoadPicture("playfield-sprites.png", List().add($010101, $000000))
|
||||
.for(var sy=0;sy<10;sy++) {
|
||||
.for(var sx=0;sx<3;sx++) {
|
||||
.for (var y=0;y<21; y++) {
|
||||
@ -2778,8 +2788,10 @@ FINAL SYMBOL TABLE
|
||||
(byte) PINK
|
||||
(byte*) PLAYFIELD_CHARSET
|
||||
(const byte*) PLAYFIELD_CHARSET#0 PLAYFIELD_CHARSET = ((byte*))(word/signed word/dword/signed dword) 10240
|
||||
(byte*) PLAYFIELD_COLORS_ORIGINAL
|
||||
(byte) PLAYFIELD_COLS
|
||||
(const byte) PLAYFIELD_COLS#0 PLAYFIELD_COLS = (byte/signed byte/word/signed word/dword/signed dword) 10
|
||||
(byte*) PLAYFIELD_EXTENDED_ORIGINAL
|
||||
(byte) PLAYFIELD_LINES
|
||||
(const byte) PLAYFIELD_LINES#0 PLAYFIELD_LINES = (byte/signed byte/word/signed word/dword/signed dword) 22
|
||||
(byte*) PLAYFIELD_SCREEN_1
|
||||
@ -3023,7 +3035,7 @@ bbegin:
|
||||
//SEG4 [1] (byte) render_screen_showing#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- vbuz1=vbuc1
|
||||
lda #0
|
||||
sta render_screen_showing
|
||||
//SEG5 kickasm(location (const byte*) PLAYFIELD_SPRITES#0) {{ .var sprites = LoadPicture("nes-playfield.png", List().add($010101, $000000)) .for(var sy=0;sy<10;sy++) { .for(var sx=0;sx<3;sx++) { .for (var y=0;y<21; y++) { .for (var c=0; c<3; c++) { .byte sprites.getSinglecolorByte(sx*3+c,sy*21+y) } } .byte 0 } } }}
|
||||
//SEG5 kickasm(location (const byte*) PLAYFIELD_SPRITES#0) {{ .var sprites = LoadPicture("playfield-sprites.png", List().add($010101, $000000)) .for(var sy=0;sy<10;sy++) { .for(var sx=0;sx<3;sx++) { .for (var y=0;y<21; y++) { .for (var c=0; c<3; c++) { .byte sprites.getSinglecolorByte(sx*3+c,sy*21+y) } } .byte 0 } } }}
|
||||
//SEG6 @5
|
||||
//SEG7 [3] (byte) irq_raster_next#0 ← (const byte) IRQ_RASTER_FIRST#0 -- vbuz1=vbuc1
|
||||
lda #IRQ_RASTER_FIRST
|
||||
@ -3301,7 +3313,7 @@ sprites_irq: {
|
||||
jmp b3
|
||||
}
|
||||
.pc = PLAYFIELD_SPRITES "PLAYFIELD_SPRITES"
|
||||
.var sprites = LoadPicture("nes-playfield.png", List().add($010101, $000000))
|
||||
.var sprites = LoadPicture("playfield-sprites.png", List().add($010101, $000000))
|
||||
.for(var sy=0;sy<10;sy++) {
|
||||
.for(var sx=0;sx<3;sx++) {
|
||||
.for (var y=0;y<21; y++) {
|
||||
|
@ -62,8 +62,10 @@
|
||||
(byte) PINK
|
||||
(byte*) PLAYFIELD_CHARSET
|
||||
(const byte*) PLAYFIELD_CHARSET#0 PLAYFIELD_CHARSET = ((byte*))(word/signed word/dword/signed dword) 10240
|
||||
(byte*) PLAYFIELD_COLORS_ORIGINAL
|
||||
(byte) PLAYFIELD_COLS
|
||||
(const byte) PLAYFIELD_COLS#0 PLAYFIELD_COLS = (byte/signed byte/word/signed word/dword/signed dword) 10
|
||||
(byte*) PLAYFIELD_EXTENDED_ORIGINAL
|
||||
(byte) PLAYFIELD_LINES
|
||||
(const byte) PLAYFIELD_LINES#0 PLAYFIELD_LINES = (byte/signed byte/word/signed word/dword/signed dword) 22
|
||||
(byte*) PLAYFIELD_SCREEN_1
|
||||
|
@ -37,10 +37,8 @@
|
||||
.label CIA2_PORT_A_DDR = $dd02
|
||||
.label HARDWARE_IRQ = $fffe
|
||||
.const BLACK = 0
|
||||
.const WHITE = 1
|
||||
.const CYAN = 3
|
||||
.const BLUE = 6
|
||||
.const DARK_GREY = $b
|
||||
.const GREY = $c
|
||||
.const KEY_Z = $c
|
||||
.const KEY_LSHIFT = $f
|
||||
@ -62,6 +60,8 @@
|
||||
.label PLAYFIELD_SCREEN_1 = $400
|
||||
.label PLAYFIELD_SCREEN_2 = $2c00
|
||||
.label PLAYFIELD_SCREEN_ORIGINAL = $1800
|
||||
.label PLAYFIELD_COLORS_ORIGINAL = $1c00
|
||||
.label PLAYFIELD_EXTENDED_ORIGINAL = $1400
|
||||
.label PLAYFIELD_SPRITES = $2000
|
||||
.label PLAYFIELD_CHARSET = $2800
|
||||
.const PLAYFIELD_LINES = $16
|
||||
@ -78,11 +78,11 @@
|
||||
.label PLAYFIELD_SPRITE_PTRS_2 = PLAYFIELD_SCREEN_2+SPRITE_PTRS
|
||||
.const toSpritePtr1_return = PLAYFIELD_SPRITES>>6
|
||||
.label keyboard_events_size = $16
|
||||
.label render_screen_showing = $18
|
||||
.label irq_raster_next = $17
|
||||
.label irq_sprite_ypos = $19
|
||||
.label irq_sprite_ptr = $1a
|
||||
.label irq_cnt = $1b
|
||||
.label render_screen_showing = $1c
|
||||
.label irq_raster_next = $1b
|
||||
.label irq_sprite_ypos = $1d
|
||||
.label irq_sprite_ptr = $1e
|
||||
.label irq_cnt = $1f
|
||||
.label current_movedown_counter = 4
|
||||
.label current_ypos = $e
|
||||
.label current_piece_gfx = $12
|
||||
@ -119,7 +119,7 @@ bbegin:
|
||||
jsr main
|
||||
main: {
|
||||
.label key_event = $d
|
||||
.label render = $1c
|
||||
.label render = $20
|
||||
jsr sid_rnd_init
|
||||
sei
|
||||
jsr render_init
|
||||
@ -204,7 +204,7 @@ render_screen_swap: {
|
||||
}
|
||||
render_current: {
|
||||
.label ypos2 = 9
|
||||
.label screen_line = $1d
|
||||
.label screen_line = $17
|
||||
.label xpos = $c
|
||||
.label i = $b
|
||||
.label l = $a
|
||||
@ -366,8 +366,8 @@ play_collision: {
|
||||
.label xpos = 6
|
||||
.label piece_gfx = 7
|
||||
.label ypos2 = 9
|
||||
.label playfield_line = $1d
|
||||
.label i = $1f
|
||||
.label playfield_line = $17
|
||||
.label i = $21
|
||||
.label col = $c
|
||||
.label l = $a
|
||||
.label i_2 = $b
|
||||
@ -939,9 +939,6 @@ sprites_init: {
|
||||
}
|
||||
render_init: {
|
||||
.const vicSelectGfxBank1_toDd001_return = 3^(>PLAYFIELD_CHARSET)>>6
|
||||
.label _12 = $f
|
||||
.label line = 7
|
||||
.label l = 2
|
||||
.label li_1 = 7
|
||||
.label li_2 = $f
|
||||
lda #3
|
||||
@ -969,40 +966,6 @@ render_init: {
|
||||
lda #>PLAYFIELD_SCREEN_2
|
||||
sta render_screen_original.screen+1
|
||||
jsr render_screen_original
|
||||
jsr fill
|
||||
lda #2
|
||||
sta l
|
||||
lda #<COLS+4*$28+$10
|
||||
sta line
|
||||
lda #>COLS+4*$28+$10
|
||||
sta line+1
|
||||
b1:
|
||||
ldx #0
|
||||
b2:
|
||||
txa
|
||||
clc
|
||||
adc line
|
||||
sta _12
|
||||
lda #0
|
||||
adc line+1
|
||||
sta _12+1
|
||||
lda #WHITE
|
||||
ldy #0
|
||||
sta (_12),y
|
||||
inx
|
||||
cpx #PLAYFIELD_COLS-1+1
|
||||
bne b2
|
||||
lda line
|
||||
clc
|
||||
adc #$28
|
||||
sta line
|
||||
bcc !+
|
||||
inc line+1
|
||||
!:
|
||||
inc l
|
||||
lda l
|
||||
cmp #PLAYFIELD_LINES-1+1
|
||||
bne b1
|
||||
lda #<PLAYFIELD_SCREEN_2+2*$28+$10
|
||||
sta li_2
|
||||
lda #>PLAYFIELD_SCREEN_2+2*$28+$10
|
||||
@ -1012,7 +975,7 @@ render_init: {
|
||||
lda #>PLAYFIELD_SCREEN_1+2*$28+$10
|
||||
sta li_1+1
|
||||
ldx #0
|
||||
b3:
|
||||
b1:
|
||||
txa
|
||||
asl
|
||||
tay
|
||||
@ -1043,44 +1006,36 @@ render_init: {
|
||||
!:
|
||||
inx
|
||||
cpx #PLAYFIELD_LINES-1+1
|
||||
bne b3
|
||||
rts
|
||||
}
|
||||
fill: {
|
||||
.const size = $3e8
|
||||
.label end = COLS+size
|
||||
.label addr = 7
|
||||
lda #<COLS
|
||||
sta addr
|
||||
lda #>COLS
|
||||
sta addr+1
|
||||
b1:
|
||||
lda #DARK_GREY
|
||||
ldy #0
|
||||
sta (addr),y
|
||||
inc addr
|
||||
bne !+
|
||||
inc addr+1
|
||||
!:
|
||||
lda addr+1
|
||||
cmp #>end
|
||||
bne b1
|
||||
lda addr
|
||||
cmp #<end
|
||||
bne b1
|
||||
rts
|
||||
}
|
||||
render_screen_original: {
|
||||
.const SPACE = 0
|
||||
.label screen = $f
|
||||
.label orig = 7
|
||||
.label screen = $17
|
||||
.label cols = $19
|
||||
.label c = 3
|
||||
.label oscr = 7
|
||||
.label oext = $f
|
||||
.label ocols = $12
|
||||
.label y = 2
|
||||
lda #0
|
||||
sta y
|
||||
lda #<PLAYFIELD_COLORS_ORIGINAL+$20*2
|
||||
sta ocols
|
||||
lda #>PLAYFIELD_COLORS_ORIGINAL+$20*2
|
||||
sta ocols+1
|
||||
lda #<PLAYFIELD_EXTENDED_ORIGINAL+$20*2
|
||||
sta oext
|
||||
lda #>PLAYFIELD_EXTENDED_ORIGINAL+$20*2
|
||||
sta oext+1
|
||||
lda #<PLAYFIELD_SCREEN_ORIGINAL+$20*2
|
||||
sta orig
|
||||
sta oscr
|
||||
lda #>PLAYFIELD_SCREEN_ORIGINAL+$20*2
|
||||
sta orig+1
|
||||
sta oscr+1
|
||||
lda #<COLS
|
||||
sta cols
|
||||
lda #>COLS
|
||||
sta cols+1
|
||||
b1:
|
||||
ldx #0
|
||||
b2:
|
||||
@ -1090,60 +1045,87 @@ render_screen_original: {
|
||||
inc screen
|
||||
bne !+
|
||||
inc screen+1
|
||||
!:
|
||||
lda #BLACK
|
||||
ldy #0
|
||||
sta (cols),y
|
||||
inc cols
|
||||
bne !+
|
||||
inc cols+1
|
||||
!:
|
||||
inx
|
||||
cpx #4
|
||||
bne b2
|
||||
b3:
|
||||
ldy #0
|
||||
lda (orig),y
|
||||
tay
|
||||
iny
|
||||
inc orig
|
||||
lda (oscr),y
|
||||
clc
|
||||
adc #1
|
||||
sta c
|
||||
inc oscr
|
||||
bne !+
|
||||
inc orig+1
|
||||
inc oscr+1
|
||||
!:
|
||||
txa
|
||||
cmp #$e
|
||||
beq !+
|
||||
bcs b11
|
||||
ldy #0
|
||||
lda (oext),y
|
||||
sec
|
||||
sbc #1
|
||||
asl
|
||||
asl
|
||||
asl
|
||||
asl
|
||||
asl
|
||||
asl
|
||||
inc oext
|
||||
bne !+
|
||||
inc oext+1
|
||||
!:
|
||||
b4:
|
||||
tya
|
||||
ora c
|
||||
ldy #0
|
||||
sta (screen),y
|
||||
inc screen
|
||||
bne !+
|
||||
inc screen+1
|
||||
!:
|
||||
ldy #0
|
||||
lda (ocols),y
|
||||
sta (cols),y
|
||||
inc cols
|
||||
bne !+
|
||||
inc cols+1
|
||||
!:
|
||||
inc ocols
|
||||
bne !+
|
||||
inc ocols+1
|
||||
!:
|
||||
inx
|
||||
cpx #$24
|
||||
bne b3
|
||||
b5:
|
||||
b4:
|
||||
lda #SPACE
|
||||
ldy #0
|
||||
sta (screen),y
|
||||
inc screen
|
||||
bne !+
|
||||
inc screen+1
|
||||
!:
|
||||
lda #BLACK
|
||||
ldy #0
|
||||
sta (cols),y
|
||||
inc cols
|
||||
bne !+
|
||||
inc cols+1
|
||||
!:
|
||||
inx
|
||||
cpx #$28
|
||||
bne b5
|
||||
bne b4
|
||||
inc y
|
||||
lda y
|
||||
cmp #$19
|
||||
bne b1
|
||||
beq !b1+
|
||||
jmp b1
|
||||
!b1:
|
||||
rts
|
||||
b11:
|
||||
cpx #$1b
|
||||
bcc b7
|
||||
jmp b4
|
||||
b7:
|
||||
tya
|
||||
ora #$c0
|
||||
tay
|
||||
jmp b4
|
||||
}
|
||||
sid_rnd_init: {
|
||||
lda #<$ffff
|
||||
@ -1250,7 +1232,7 @@ sprites_irq: {
|
||||
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_CHARS: .byte $58, $59, $99, $59, $58, $58, $99
|
||||
PIECES_CHARS: .byte $64, $65, $a5, $65, $64, $64, $a5
|
||||
PIECES_START_X: .byte 4, 4, 4, 4, 4, 3, 4
|
||||
PIECES_START_Y: .byte 2, 1, 1, 1, 2, 0, 1
|
||||
.align $80
|
||||
@ -1263,13 +1245,19 @@ sprites_irq: {
|
||||
playfield_lines_idx: .fill PLAYFIELD_LINES+1, 0
|
||||
.pc = PLAYFIELD_CHARSET "PLAYFIELD_CHARSET"
|
||||
.fill 8,$00 // Place a filled char at the start of the charset
|
||||
.import binary "nes-screen.imap"
|
||||
.import binary "playfield-screen.imap"
|
||||
|
||||
.pc = PLAYFIELD_SCREEN_ORIGINAL "PLAYFIELD_SCREEN_ORIGINAL"
|
||||
.import binary "nes-screen.iscr"
|
||||
.import binary "playfield-screen.iscr"
|
||||
|
||||
.pc = PLAYFIELD_COLORS_ORIGINAL "PLAYFIELD_COLORS_ORIGINAL"
|
||||
.import binary "playfield-screen.col"
|
||||
|
||||
.pc = PLAYFIELD_EXTENDED_ORIGINAL "PLAYFIELD_EXTENDED_ORIGINAL"
|
||||
.import binary "playfield-extended.col"
|
||||
|
||||
.pc = PLAYFIELD_SPRITES "PLAYFIELD_SPRITES"
|
||||
.var sprites = LoadPicture("nes-playfield.png", List().add($010101, $000000))
|
||||
.var sprites = LoadPicture("playfield-sprites.png", List().add($010101, $000000))
|
||||
.for(var sy=0;sy<10;sy++) {
|
||||
.for(var sx=0;sx<3;sx++) {
|
||||
.for (var y=0;y<21; y++) {
|
||||
|
@ -59,7 +59,6 @@
|
||||
(byte*) D018
|
||||
(const byte*) D018#0 D018 = ((byte*))(word/dword/signed dword) 53272
|
||||
(byte) DARK_GREY
|
||||
(const byte) DARK_GREY#0 DARK_GREY = (byte/signed byte/word/signed word/dword/signed dword) 11
|
||||
(byte) GREEN
|
||||
(byte) GREY
|
||||
(const byte) GREY#0 GREY = (byte/signed byte/word/signed word/dword/signed dword) 12
|
||||
@ -168,7 +167,7 @@
|
||||
(word[]) PIECES
|
||||
(const word[]) PIECES#0 PIECES = { ((word))(const byte[4*4*4]) PIECE_T#0, ((word))(const byte[4*4*4]) PIECE_S#0, ((word))(const byte[4*4*4]) PIECE_Z#0, ((word))(const byte[4*4*4]) PIECE_J#0, ((word))(const byte[4*4*4]) PIECE_O#0, ((word))(const byte[4*4*4]) PIECE_I#0, ((word))(const byte[4*4*4]) PIECE_L#0 }
|
||||
(byte[]) PIECES_CHARS
|
||||
(const byte[]) PIECES_CHARS#0 PIECES_CHARS = { (byte/signed byte/word/signed word/dword/signed dword) 88, (byte/signed byte/word/signed word/dword/signed dword) 89, (byte/word/signed word/dword/signed dword) 153, (byte/signed byte/word/signed word/dword/signed dword) 89, (byte/signed byte/word/signed word/dword/signed dword) 88, (byte/signed byte/word/signed word/dword/signed dword) 88, (byte/word/signed word/dword/signed dword) 153 }
|
||||
(const byte[]) PIECES_CHARS#0 PIECES_CHARS = { (byte/signed byte/word/signed word/dword/signed dword) 100, (byte/signed byte/word/signed word/dword/signed dword) 101, (byte/word/signed word/dword/signed dword) 165, (byte/signed byte/word/signed word/dword/signed dword) 101, (byte/signed byte/word/signed word/dword/signed dword) 100, (byte/signed byte/word/signed word/dword/signed dword) 100, (byte/word/signed word/dword/signed dword) 165 }
|
||||
(byte[]) PIECES_START_X
|
||||
(const byte[]) PIECES_START_X#0 PIECES_START_X = { (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 4 }
|
||||
(byte[]) PIECES_START_Y
|
||||
@ -190,8 +189,12 @@
|
||||
(byte) PINK
|
||||
(byte*) PLAYFIELD_CHARSET
|
||||
(const byte*) PLAYFIELD_CHARSET#0 PLAYFIELD_CHARSET = ((byte*))(word/signed word/dword/signed dword) 10240
|
||||
(byte*) PLAYFIELD_COLORS_ORIGINAL
|
||||
(const byte*) PLAYFIELD_COLORS_ORIGINAL#0 PLAYFIELD_COLORS_ORIGINAL = ((byte*))(word/signed word/dword/signed dword) 7168
|
||||
(byte) PLAYFIELD_COLS
|
||||
(const byte) PLAYFIELD_COLS#0 PLAYFIELD_COLS = (byte/signed byte/word/signed word/dword/signed dword) 10
|
||||
(byte*) PLAYFIELD_EXTENDED_ORIGINAL
|
||||
(const byte*) PLAYFIELD_EXTENDED_ORIGINAL#0 PLAYFIELD_EXTENDED_ORIGINAL = ((byte*))(word/signed word/dword/signed dword) 5120
|
||||
(byte) PLAYFIELD_LINES
|
||||
(const byte) PLAYFIELD_LINES#0 PLAYFIELD_LINES = (byte/signed byte/word/signed word/dword/signed dword) 22
|
||||
(byte*) PLAYFIELD_SCREEN_1
|
||||
@ -275,7 +278,6 @@
|
||||
(const byte) VIC_RSEL#0 VIC_RSEL = (byte/signed byte/word/signed word/dword/signed dword) 8
|
||||
(byte) VIC_RST8
|
||||
(byte) WHITE
|
||||
(const byte) WHITE#0 WHITE = (byte/signed byte/word/signed word/dword/signed dword) 1
|
||||
(byte) YELLOW
|
||||
(byte) current_movedown_counter
|
||||
(byte) current_movedown_counter#1 current_movedown_counter zp ZP_BYTE:4 0.5333333333333333
|
||||
@ -340,35 +342,23 @@
|
||||
(byte~) current_ypos#84 reg byte y 1.0
|
||||
(byte~) current_ypos#85 reg byte y 4.4
|
||||
(byte) current_ypos#9 reg byte y 15.0
|
||||
(void()) fill((byte*) fill::start , (word) fill::size , (byte) fill::val)
|
||||
(label) fill::@1
|
||||
(label) fill::@return
|
||||
(byte*) fill::addr
|
||||
(byte*) fill::addr#1 addr zp ZP_WORD:7 16.5
|
||||
(byte*) fill::addr#2 addr zp ZP_WORD:7 16.5
|
||||
(byte*) fill::end
|
||||
(const byte*) fill::end#0 end = (const byte*) COLS#0+(const word) fill::size#0
|
||||
(word) fill::size
|
||||
(const word) fill::size#0 size = (word/signed word/dword/signed dword) 1000
|
||||
(byte*) fill::start
|
||||
(byte) fill::val
|
||||
(byte) irq_cnt
|
||||
(byte) irq_cnt#0 irq_cnt zp ZP_BYTE:27 0.2
|
||||
(byte) irq_cnt#1 irq_cnt zp ZP_BYTE:27 4.0
|
||||
(byte) irq_cnt#14 irq_cnt zp ZP_BYTE:27 20.0
|
||||
(byte) irq_cnt#0 irq_cnt zp ZP_BYTE:31 0.2
|
||||
(byte) irq_cnt#1 irq_cnt zp ZP_BYTE:31 4.0
|
||||
(byte) irq_cnt#14 irq_cnt zp ZP_BYTE:31 20.0
|
||||
(byte) irq_raster_next
|
||||
(byte) irq_raster_next#0 irq_raster_next zp ZP_BYTE:23 0.18181818181818182
|
||||
(byte) irq_raster_next#1 irq_raster_next zp ZP_BYTE:23 1.0
|
||||
(byte) irq_raster_next#13 irq_raster_next zp ZP_BYTE:23 6.0
|
||||
(byte) irq_raster_next#2 irq_raster_next zp ZP_BYTE:23 1.3333333333333333
|
||||
(byte) irq_raster_next#0 irq_raster_next zp ZP_BYTE:27 0.18181818181818182
|
||||
(byte) irq_raster_next#1 irq_raster_next zp ZP_BYTE:27 1.0
|
||||
(byte) irq_raster_next#13 irq_raster_next zp ZP_BYTE:27 6.0
|
||||
(byte) irq_raster_next#2 irq_raster_next zp ZP_BYTE:27 1.3333333333333333
|
||||
(byte) irq_sprite_ptr
|
||||
(byte) irq_sprite_ptr#0 irq_sprite_ptr zp ZP_BYTE:26 0.25
|
||||
(byte) irq_sprite_ptr#1 irq_sprite_ptr zp ZP_BYTE:26 20.0
|
||||
(byte) irq_sprite_ptr#2 irq_sprite_ptr zp ZP_BYTE:26 20.0
|
||||
(byte) irq_sprite_ptr#0 irq_sprite_ptr zp ZP_BYTE:30 0.25
|
||||
(byte) irq_sprite_ptr#1 irq_sprite_ptr zp ZP_BYTE:30 20.0
|
||||
(byte) irq_sprite_ptr#2 irq_sprite_ptr zp ZP_BYTE:30 20.0
|
||||
(byte) irq_sprite_ypos
|
||||
(byte) irq_sprite_ypos#0 irq_sprite_ypos zp ZP_BYTE:25 0.7391304347826086
|
||||
(byte) irq_sprite_ypos#1 irq_sprite_ypos zp ZP_BYTE:25 20.0
|
||||
(byte) irq_sprite_ypos#2 irq_sprite_ypos zp ZP_BYTE:25 20.0
|
||||
(byte) irq_sprite_ypos#0 irq_sprite_ypos zp ZP_BYTE:29 0.7391304347826086
|
||||
(byte) irq_sprite_ypos#1 irq_sprite_ypos zp ZP_BYTE:29 20.0
|
||||
(byte) irq_sprite_ypos#2 irq_sprite_ypos zp ZP_BYTE:29 20.0
|
||||
(byte[]) keyboard_char_keycodes
|
||||
(byte()) keyboard_event_get()
|
||||
(label) keyboard_event_get::@3
|
||||
@ -499,8 +489,8 @@
|
||||
(byte) main::key_event
|
||||
(byte) main::key_event#0 key_event zp ZP_BYTE:13 36.72727272727273
|
||||
(byte) main::render
|
||||
(byte) main::render#1 render zp ZP_BYTE:28 40.4
|
||||
(byte) main::render#2 render zp ZP_BYTE:28 40.4
|
||||
(byte) main::render#1 render zp ZP_BYTE:32 40.4
|
||||
(byte) main::render#2 render zp ZP_BYTE:32 40.4
|
||||
(byte) main::render#3 reg byte a 202.0
|
||||
(byte()) play_collision((byte) play_collision::xpos , (byte) play_collision::ypos , (byte) play_collision::orientation)
|
||||
(byte~) play_collision::$7 reg byte a 20002.0
|
||||
@ -523,7 +513,7 @@
|
||||
(byte) play_collision::col#2 col zp ZP_BYTE:12 6375.75
|
||||
(byte~) play_collision::col#9 col zp ZP_BYTE:12 2002.0
|
||||
(byte) play_collision::i
|
||||
(byte) play_collision::i#1 i zp ZP_BYTE:31 1615.6153846153845
|
||||
(byte) play_collision::i#1 i zp ZP_BYTE:33 1615.6153846153845
|
||||
(byte~) play_collision::i#11 i#11 zp ZP_BYTE:11 2002.0
|
||||
(byte~) play_collision::i#13 i#13 zp ZP_BYTE:11 20002.0
|
||||
(byte) play_collision::i#2 i#2 zp ZP_BYTE:11 15502.0
|
||||
@ -540,7 +530,7 @@
|
||||
(byte*) play_collision::piece_gfx
|
||||
(byte*) play_collision::piece_gfx#0 piece_gfx zp ZP_WORD:7 476.3333333333333
|
||||
(byte*) play_collision::playfield_line
|
||||
(byte*) play_collision::playfield_line#0 playfield_line zp ZP_WORD:29 785.8571428571429
|
||||
(byte*) play_collision::playfield_line#0 playfield_line zp ZP_WORD:23 785.8571428571429
|
||||
(byte) play_collision::return
|
||||
(byte) play_collision::return#0 reg byte a 4.0
|
||||
(byte) play_collision::return#1 reg byte a 4.0
|
||||
@ -752,7 +742,7 @@
|
||||
(byte) render_current::l#1 l zp ZP_BYTE:10 151.5
|
||||
(byte) render_current::l#4 l zp ZP_BYTE:10 11.222222222222221
|
||||
(byte*) render_current::screen_line
|
||||
(byte*) render_current::screen_line#0 screen_line zp ZP_WORD:29 100.18181818181819
|
||||
(byte*) render_current::screen_line#0 screen_line zp ZP_WORD:23 100.18181818181819
|
||||
(byte) render_current::xpos
|
||||
(byte) render_current::xpos#0 xpos zp ZP_BYTE:12 202.0
|
||||
(byte) render_current::xpos#1 xpos zp ZP_BYTE:12 667.3333333333334
|
||||
@ -762,35 +752,21 @@
|
||||
(byte) render_current::ypos2#1 ypos2 zp ZP_BYTE:9 67.33333333333333
|
||||
(byte) render_current::ypos2#2 ypos2 zp ZP_BYTE:9 29.823529411764707
|
||||
(void()) render_init()
|
||||
(byte*~) render_init::$12 $12 zp ZP_WORD:15 202.0
|
||||
(byte~) render_init::$22 reg byte a 22.0
|
||||
(byte~) render_init::$23 reg byte a 22.0
|
||||
(byte~) render_init::$13 reg byte a 22.0
|
||||
(byte~) render_init::$14 reg byte a 22.0
|
||||
(label) render_init::@1
|
||||
(label) render_init::@2
|
||||
(label) render_init::@3
|
||||
(label) render_init::@4
|
||||
(label) render_init::@7
|
||||
(label) render_init::@8
|
||||
(label) render_init::@9
|
||||
(label) render_init::@return
|
||||
(byte) render_init::c
|
||||
(byte) render_init::c#1 reg byte x 151.5
|
||||
(byte) render_init::c#2 reg byte x 101.0
|
||||
(byte) render_init::i
|
||||
(byte) render_init::i#1 reg byte x 16.5
|
||||
(byte) render_init::i#2 reg byte x 6.285714285714286
|
||||
(byte) render_init::l
|
||||
(byte) render_init::l#1 l zp ZP_BYTE:2 16.5
|
||||
(byte) render_init::l#4 l zp ZP_BYTE:2 3.142857142857143
|
||||
(byte*) render_init::li_1
|
||||
(byte*) render_init::li_1#1 li_1 zp ZP_WORD:7 5.5
|
||||
(byte*) render_init::li_1#2 li_1 zp ZP_WORD:7 6.6000000000000005
|
||||
(byte*) render_init::li_2
|
||||
(byte*) render_init::li_2#1 li_2 zp ZP_WORD:15 7.333333333333333
|
||||
(byte*) render_init::li_2#2 li_2 zp ZP_WORD:15 5.5
|
||||
(byte*) render_init::line
|
||||
(byte*) render_init::line#1 line zp ZP_WORD:7 7.333333333333333
|
||||
(byte*) render_init::line#4 line zp ZP_WORD:7 20.499999999999996
|
||||
(label) render_init::vicSelectGfxBank1
|
||||
(byte~) render_init::vicSelectGfxBank1_$0
|
||||
(label) render_init::vicSelectGfxBank1_@1
|
||||
@ -825,44 +801,59 @@
|
||||
(byte*) render_playfield::screen_line#1 screen_line zp ZP_WORD:7 500.5
|
||||
(byte*) render_playfield::screen_line#2 screen_line zp ZP_WORD:7 1552.0
|
||||
(void()) render_screen_original((byte*) render_screen_original::screen)
|
||||
(byte~) render_screen_original::$10 reg byte a 202.0
|
||||
(byte/signed word/word/dword/signed dword~) render_screen_original::$8 reg byte a 202.0
|
||||
(label) render_screen_original::@1
|
||||
(label) render_screen_original::@11
|
||||
(label) render_screen_original::@2
|
||||
(label) render_screen_original::@3
|
||||
(label) render_screen_original::@4
|
||||
(label) render_screen_original::@5
|
||||
(label) render_screen_original::@7
|
||||
(label) render_screen_original::@9
|
||||
(label) render_screen_original::@return
|
||||
(byte) render_screen_original::SPACE
|
||||
(const byte) render_screen_original::SPACE#0 SPACE = (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
(byte) render_screen_original::c
|
||||
(byte) render_screen_original::c#0 reg byte y 75.75
|
||||
(byte) render_screen_original::c#1 reg byte y 202.0
|
||||
(byte) render_screen_original::c#2 reg byte y 303.0
|
||||
(byte*) render_screen_original::orig
|
||||
(byte*) render_screen_original::orig#1 orig zp ZP_WORD:7 13.3125
|
||||
(byte*) render_screen_original::orig#2 orig zp ZP_WORD:7 202.0
|
||||
(byte*) render_screen_original::orig#5 orig zp ZP_WORD:7 18.666666666666664
|
||||
(byte) render_screen_original::c#0 c zp ZP_BYTE:3 40.4
|
||||
(byte*) render_screen_original::cols
|
||||
(byte*) render_screen_original::cols#1 cols zp ZP_WORD:25 101.0
|
||||
(byte*) render_screen_original::cols#2 cols zp ZP_WORD:25 75.75
|
||||
(byte*) render_screen_original::cols#3 cols zp ZP_WORD:25 42.599999999999994
|
||||
(byte*) render_screen_original::cols#4 cols zp ZP_WORD:25 78.5
|
||||
(byte*) render_screen_original::cols#5 cols zp ZP_WORD:25 40.4
|
||||
(byte*) render_screen_original::cols#6 cols zp ZP_WORD:25 101.0
|
||||
(byte*) render_screen_original::cols#7 cols zp ZP_WORD:25 22.0
|
||||
(byte) render_screen_original::ext
|
||||
(byte) render_screen_original::ext#0 reg byte a 101.0
|
||||
(byte*) render_screen_original::ocols
|
||||
(byte*) render_screen_original::ocols#1 ocols zp ZP_WORD:18 17.75
|
||||
(byte*) render_screen_original::ocols#2 ocols zp ZP_WORD:18 36.72727272727273
|
||||
(byte*) render_screen_original::ocols#4 ocols zp ZP_WORD:18 14.0
|
||||
(byte*) render_screen_original::oext
|
||||
(byte*) render_screen_original::oext#1 oext zp ZP_WORD:15 11.833333333333332
|
||||
(byte*) render_screen_original::oext#2 oext zp ZP_WORD:15 80.8
|
||||
(byte*) render_screen_original::oext#4 oext zp ZP_WORD:15 14.0
|
||||
(byte*) render_screen_original::oscr
|
||||
(byte*) render_screen_original::oscr#1 oscr zp ZP_WORD:7 10.142857142857142
|
||||
(byte*) render_screen_original::oscr#2 oscr zp ZP_WORD:7 202.0
|
||||
(byte*) render_screen_original::oscr#4 oscr zp ZP_WORD:7 14.0
|
||||
(byte*) render_screen_original::screen
|
||||
(byte*) render_screen_original::screen#10 screen zp ZP_WORD:15 50.5
|
||||
(byte*) render_screen_original::screen#11 screen zp ZP_WORD:15 2.0
|
||||
(byte*) render_screen_original::screen#12 screen zp ZP_WORD:15 42.599999999999994
|
||||
(byte*) render_screen_original::screen#2 screen zp ZP_WORD:15 101.0
|
||||
(byte*) render_screen_original::screen#3 screen zp ZP_WORD:15 101.0
|
||||
(byte*) render_screen_original::screen#5 screen zp ZP_WORD:15 157.0
|
||||
(byte*) render_screen_original::screen#7 screen zp ZP_WORD:15 202.0
|
||||
(byte*) render_screen_original::screen#8 screen zp ZP_WORD:15 24.0
|
||||
(byte*) render_screen_original::screen#10 screen zp ZP_WORD:23 30.42857142857143
|
||||
(byte*) render_screen_original::screen#2 screen zp ZP_WORD:23 60.599999999999994
|
||||
(byte*) render_screen_original::screen#3 screen zp ZP_WORD:23 50.5
|
||||
(byte*) render_screen_original::screen#5 screen zp ZP_WORD:23 157.0
|
||||
(byte*) render_screen_original::screen#6 screen zp ZP_WORD:23 50.5
|
||||
(byte*) render_screen_original::screen#7 screen zp ZP_WORD:23 202.0
|
||||
(byte*) render_screen_original::screen#8 screen zp ZP_WORD:23 24.0
|
||||
(byte*) render_screen_original::screen#9 screen zp ZP_WORD:23 2.0
|
||||
(byte) render_screen_original::x
|
||||
(byte) render_screen_original::x#1 reg byte x 202.0
|
||||
(byte) render_screen_original::x#2 reg byte x 202.0
|
||||
(byte) render_screen_original::x#3 reg byte x 151.5
|
||||
(byte) render_screen_original::x#4 reg byte x 67.33333333333333
|
||||
(byte) render_screen_original::x#5 reg byte x 56.11111111111111
|
||||
(byte) render_screen_original::x#7 reg byte x 101.0
|
||||
(byte) render_screen_original::x#4 reg byte x 40.4
|
||||
(byte) render_screen_original::x#5 reg byte x 25.25
|
||||
(byte) render_screen_original::x#6 reg byte x 60.599999999999994
|
||||
(byte) render_screen_original::y
|
||||
(byte) render_screen_original::y#1 y zp ZP_BYTE:2 16.5
|
||||
(byte) render_screen_original::y#8 y zp ZP_BYTE:2 1.0
|
||||
(byte) render_screen_original::y#6 y zp ZP_BYTE:2 0.7586206896551724
|
||||
(byte) render_screen_render
|
||||
(byte) render_screen_render#11 render_screen_render zp ZP_BYTE:3 3.25
|
||||
(byte) render_screen_render#16 render_screen_render zp ZP_BYTE:3 1.0
|
||||
@ -874,8 +865,8 @@
|
||||
(byte) render_screen_show#13 render_screen_show zp ZP_BYTE:2 4.333333333333333
|
||||
(byte) render_screen_show#16 render_screen_show zp ZP_BYTE:2 0.39534883720930225
|
||||
(byte) render_screen_showing
|
||||
(byte) render_screen_showing#0 render_screen_showing zp ZP_BYTE:24 0.5714285714285714
|
||||
(byte) render_screen_showing#1 render_screen_showing zp ZP_BYTE:24 20.0
|
||||
(byte) render_screen_showing#0 render_screen_showing zp ZP_BYTE:28 0.5714285714285714
|
||||
(byte) render_screen_showing#1 render_screen_showing zp ZP_BYTE:28 20.0
|
||||
(void()) render_screen_swap()
|
||||
(label) render_screen_swap::@return
|
||||
(void()) render_show()
|
||||
@ -976,13 +967,13 @@ interrupt(HARDWARE_CLOBBER)(void()) sprites_irq()
|
||||
(const byte) toSpritePtr1_return#0 toSpritePtr1_return = ((byte))((word))(const byte*) PLAYFIELD_SPRITES#0>>(byte/signed byte/word/signed word/dword/signed dword) 6
|
||||
(byte*) toSpritePtr1_sprite
|
||||
|
||||
zp ZP_BYTE:2 [ render_screen_show#16 render_screen_show#13 play_init::idx#2 play_init::idx#1 sprites_init::xpos#2 sprites_init::xpos#1 render_init::l#4 render_init::l#1 render_screen_original::y#8 render_screen_original::y#1 ]
|
||||
zp ZP_BYTE:3 [ render_screen_render#16 render_screen_render#11 ]
|
||||
zp ZP_BYTE:2 [ render_screen_show#16 render_screen_show#13 play_init::idx#2 play_init::idx#1 sprites_init::xpos#2 sprites_init::xpos#1 render_screen_original::y#6 render_screen_original::y#1 ]
|
||||
zp ZP_BYTE:3 [ render_screen_render#16 render_screen_render#11 render_screen_original::c#0 ]
|
||||
zp ZP_BYTE:4 [ current_movedown_counter#12 current_movedown_counter#10 current_movedown_counter#1 play_remove_lines::y#8 play_remove_lines::y#1 play_lock_current::l#6 play_lock_current::l#1 play_spawn_current::$3 ]
|
||||
reg byte y [ current_ypos#9 current_ypos#84 current_ypos#85 ]
|
||||
zp ZP_BYTE:5 [ render_screen_render#28 render_screen_render#62 render_playfield::l#2 render_playfield::l#1 play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 play_remove_lines::x#2 play_remove_lines::x#1 play_lock_current::i#2 play_lock_current::i#3 play_lock_current::i#7 play_lock_current::i#9 keyboard_event_pressed::keycode#5 keyboard_event_scan::row#2 keyboard_event_scan::row#1 ]
|
||||
zp ZP_BYTE:6 [ current_xpos#47 current_xpos#110 current_xpos#111 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 play_collision::xpos#5 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 play_remove_lines::full#4 play_remove_lines::full#2 play_lock_current::col#2 play_lock_current::col#0 play_lock_current::col#1 keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 keyboard_event_scan::keycode#15 keyboard_event_pressed::row_bits#0 ]
|
||||
zp ZP_WORD:7 [ current_piece_gfx#53 current_piece_gfx#100 current_piece_gfx#101 render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 current_piece#12 current_piece#74 current_piece#75 current_piece#76 current_piece#77 play_collision::piece_gfx#0 play_init::pli#2 play_init::pli#1 render_init::line#4 render_init::line#1 render_init::li_1#2 render_init::li_1#1 fill::addr#2 fill::addr#1 render_screen_original::orig#2 render_screen_original::orig#5 render_screen_original::orig#1 play_lock_current::playfield_line#0 ]
|
||||
zp ZP_WORD:7 [ current_piece_gfx#53 current_piece_gfx#100 current_piece_gfx#101 render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 current_piece#12 current_piece#74 current_piece#75 current_piece#76 current_piece#77 play_collision::piece_gfx#0 play_init::pli#2 play_init::pli#1 render_init::li_1#2 render_init::li_1#1 render_screen_original::oscr#2 render_screen_original::oscr#4 render_screen_original::oscr#1 play_lock_current::playfield_line#0 ]
|
||||
reg byte x [ current_piece_char#63 current_piece_char#88 current_piece_char#89 ]
|
||||
zp ZP_BYTE:9 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 render_playfield::c#2 render_playfield::c#1 play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 play_remove_lines::c#0 play_lock_current::i#1 keyboard_event_scan::row_scan#0 ]
|
||||
zp ZP_BYTE:10 [ render_current::l#4 render_current::l#1 play_collision::l#6 play_collision::l#1 ]
|
||||
@ -998,9 +989,9 @@ reg byte a [ play_collision::return#14 ]
|
||||
reg byte a [ play_move_leftright::return#1 ]
|
||||
reg byte x [ play_move_down::movedown#6 play_move_down::movedown#3 play_move_down::movedown#7 play_move_down::movedown#2 play_move_down::movedown#10 ]
|
||||
zp ZP_BYTE:14 [ current_ypos#29 current_ypos#21 current_ypos#18 current_ypos#13 current_ypos#0 play_lock_current::ypos2#2 play_lock_current::ypos2#0 play_lock_current::ypos2#1 ]
|
||||
zp ZP_WORD:15 [ current_piece#20 current_piece#78 current_piece#16 current_piece#71 current_piece#10 render_init::li_2#2 render_init::li_2#1 render_screen_original::screen#7 render_screen_original::screen#10 render_screen_original::screen#5 render_screen_original::screen#8 render_screen_original::screen#11 render_screen_original::screen#12 render_screen_original::screen#2 render_screen_original::screen#3 render_init::$12 ]
|
||||
zp ZP_WORD:15 [ current_piece#20 current_piece#78 current_piece#16 current_piece#71 current_piece#10 render_init::li_2#2 render_init::li_2#1 render_screen_original::oext#2 render_screen_original::oext#4 render_screen_original::oext#1 ]
|
||||
zp ZP_BYTE:17 [ current_orientation#29 current_orientation#10 current_orientation#19 current_orientation#4 current_orientation#14 ]
|
||||
zp ZP_WORD:18 [ current_piece_gfx#26 current_piece_gfx#20 current_piece_gfx#16 current_piece_gfx#14 current_piece_gfx#3 current_piece_gfx#1 ]
|
||||
zp ZP_WORD:18 [ current_piece_gfx#26 current_piece_gfx#20 current_piece_gfx#16 current_piece_gfx#14 current_piece_gfx#3 current_piece_gfx#1 render_screen_original::ocols#2 render_screen_original::ocols#4 render_screen_original::ocols#1 ]
|
||||
zp ZP_BYTE:20 [ current_xpos#33 current_xpos#10 current_xpos#23 current_xpos#19 current_xpos#4 current_xpos#1 current_xpos#2 ]
|
||||
zp ZP_BYTE:21 [ current_piece_char#20 current_piece_char#15 current_piece_char#12 current_piece_char#1 ]
|
||||
reg byte x [ play_move_down::return#2 ]
|
||||
@ -1015,21 +1006,21 @@ zp ZP_BYTE:22 [ keyboard_events_size#10 keyboard_events_size#29 keyboard_events_
|
||||
reg byte a [ render_show::d018val#3 ]
|
||||
reg byte x [ play_init::j#2 play_init::j#1 ]
|
||||
reg byte x [ sprites_init::s#2 sprites_init::s#1 ]
|
||||
reg byte x [ render_init::c#2 render_init::c#1 ]
|
||||
reg byte x [ render_init::i#2 render_init::i#1 ]
|
||||
reg byte y [ render_screen_original::c#2 render_screen_original::c#0 render_screen_original::c#1 ]
|
||||
reg byte x [ render_screen_original::x#7 render_screen_original::x#5 render_screen_original::x#4 render_screen_original::x#1 render_screen_original::x#2 render_screen_original::x#3 ]
|
||||
zp ZP_BYTE:23 [ irq_raster_next#13 irq_raster_next#2 irq_raster_next#1 irq_raster_next#0 ]
|
||||
zp ZP_WORD:23 [ render_screen_original::screen#7 render_screen_original::screen#6 render_screen_original::screen#5 render_screen_original::screen#8 render_screen_original::screen#9 render_screen_original::screen#10 render_screen_original::screen#2 render_screen_original::screen#3 render_current::screen_line#0 play_collision::playfield_line#0 ]
|
||||
zp ZP_WORD:25 [ render_screen_original::cols#6 render_screen_original::cols#5 render_screen_original::cols#4 render_screen_original::cols#7 render_screen_original::cols#3 render_screen_original::cols#1 render_screen_original::cols#2 ]
|
||||
reg byte x [ render_screen_original::x#6 render_screen_original::x#5 render_screen_original::x#4 render_screen_original::x#1 render_screen_original::x#2 render_screen_original::x#3 ]
|
||||
zp ZP_BYTE:27 [ irq_raster_next#13 irq_raster_next#2 irq_raster_next#1 irq_raster_next#0 ]
|
||||
reg byte x [ sprites_irq::raster_next#2 sprites_irq::raster_next#1 sprites_irq::raster_next#0 ]
|
||||
zp ZP_BYTE:24 [ render_screen_showing#0 render_screen_showing#1 ]
|
||||
zp ZP_BYTE:25 [ irq_sprite_ypos#0 irq_sprite_ypos#2 irq_sprite_ypos#1 ]
|
||||
zp ZP_BYTE:26 [ irq_sprite_ptr#0 irq_sprite_ptr#2 irq_sprite_ptr#1 ]
|
||||
zp ZP_BYTE:27 [ irq_cnt#0 irq_cnt#1 irq_cnt#14 ]
|
||||
zp ZP_BYTE:28 [ render_screen_showing#0 render_screen_showing#1 ]
|
||||
zp ZP_BYTE:29 [ irq_sprite_ypos#0 irq_sprite_ypos#2 irq_sprite_ypos#1 ]
|
||||
zp ZP_BYTE:30 [ irq_sprite_ptr#0 irq_sprite_ptr#2 irq_sprite_ptr#1 ]
|
||||
zp ZP_BYTE:31 [ irq_cnt#0 irq_cnt#1 irq_cnt#14 ]
|
||||
reg byte a [ keyboard_event_get::return#3 ]
|
||||
reg byte a [ play_move_down::key_event#0 ]
|
||||
reg byte a [ play_move_down::return#3 ]
|
||||
reg byte a [ main::$12 ]
|
||||
zp ZP_BYTE:28 [ main::render#1 main::render#2 ]
|
||||
zp ZP_BYTE:32 [ main::render#1 main::render#2 ]
|
||||
reg byte a [ play_move_leftright::key_event#0 ]
|
||||
reg byte a [ play_move_leftright::return#4 ]
|
||||
reg byte a [ main::$13 ]
|
||||
@ -1038,7 +1029,6 @@ reg byte a [ play_move_rotate::return#4 ]
|
||||
reg byte a [ main::$14 ]
|
||||
reg byte a [ main::render#3 ]
|
||||
reg byte a [ render_current::$5 ]
|
||||
zp ZP_WORD:29 [ render_current::screen_line#0 play_collision::playfield_line#0 ]
|
||||
reg byte a [ render_current::current_cell#0 ]
|
||||
reg byte a [ render_playfield::$2 ]
|
||||
reg byte a [ render_playfield::$3 ]
|
||||
@ -1046,7 +1036,7 @@ reg byte a [ play_move_rotate::$2 ]
|
||||
reg byte a [ play_collision::return#13 ]
|
||||
reg byte a [ play_move_rotate::$6 ]
|
||||
reg byte a [ play_move_rotate::$4 ]
|
||||
zp ZP_BYTE:31 [ play_collision::i#1 ]
|
||||
zp ZP_BYTE:33 [ play_collision::i#1 ]
|
||||
reg byte a [ play_collision::$7 ]
|
||||
reg byte a [ play_collision::return#12 ]
|
||||
reg byte a [ play_move_leftright::$4 ]
|
||||
@ -1080,8 +1070,11 @@ reg byte a [ keyboard_event_scan::$11 ]
|
||||
reg byte a [ keyboard_matrix_read::return#0 ]
|
||||
reg byte a [ play_init::$1 ]
|
||||
reg byte a [ sprites_init::s2#0 ]
|
||||
reg byte a [ render_init::$22 ]
|
||||
reg byte a [ render_init::$23 ]
|
||||
reg byte a [ render_init::$13 ]
|
||||
reg byte a [ render_init::$14 ]
|
||||
reg byte a [ render_screen_original::$8 ]
|
||||
reg byte a [ render_screen_original::ext#0 ]
|
||||
reg byte a [ render_screen_original::$10 ]
|
||||
reg byte a [ sprites_irq::ypos#0 ]
|
||||
reg byte x [ sprites_irq::ptr#0 ]
|
||||
reg byte x [ sprites_irq::ptr#3 ]
|
||||
|