mirror of
https://gitlab.com/camelot/kickc.git
synced 2025-04-06 15:41:05 +00:00
Implemented double buffered rendering.
This commit is contained in:
parent
84eb93b21e
commit
b1d358403a
@ -1,11 +1,11 @@
|
||||
import "tetris-sprites"
|
||||
|
||||
void main() {
|
||||
vicSelectGfxBank(PLAYFIELD_SCREEN);
|
||||
*D018 = toD018(PLAYFIELD_SCREEN, PLAYFIELD_CHARSET);
|
||||
vicSelectGfxBank(PLAYFIELD_SCREEN_1);
|
||||
*D018 = toD018(PLAYFIELD_SCREEN_1, PLAYFIELD_CHARSET);
|
||||
sprites_init();
|
||||
sprites_irq_init();
|
||||
while(true) {
|
||||
(*PLAYFIELD_SCREEN)++;
|
||||
(*PLAYFIELD_SCREEN_1)++;
|
||||
}
|
||||
}
|
||||
|
@ -1,9 +1,15 @@
|
||||
// Memory Layout and Shared Data
|
||||
|
||||
// Address of the screen
|
||||
const byte* PLAYFIELD_SCREEN = $0400;
|
||||
// Screen Sprite pointers
|
||||
const byte* PLAYFIELD_SPRITE_PTRS = (PLAYFIELD_SCREEN+SPRITE_PTRS);
|
||||
// Address of the first screen
|
||||
const byte* PLAYFIELD_SCREEN_1 = $0400;
|
||||
// Address of the second screen
|
||||
const byte* PLAYFIELD_SCREEN_2 = $2c00;
|
||||
// Screen Sprite pointers on screen 1
|
||||
const byte* PLAYFIELD_SPRITE_PTRS_1 = (PLAYFIELD_SCREEN_1+SPRITE_PTRS);
|
||||
// Screen Sprite pointers on screen 2
|
||||
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 sprites covering the playfield
|
||||
const byte* PLAYFIELD_SPRITES = $2000;
|
||||
// Address of the charset
|
||||
|
@ -6,35 +6,35 @@ kickasm(pc PLAYFIELD_CHARSET, resource "nes-screen.imap") {{
|
||||
}}
|
||||
|
||||
const byte PLAYFIELD_SCREEN_ORIGINAL_WIDTH=32;
|
||||
const byte* PLAYFIELD_SCREEN_ORIGINAL = $2c00;
|
||||
// Address of the screen data original
|
||||
kickasm(pc PLAYFIELD_SCREEN_ORIGINAL, resource "nes-screen.iscr") {{
|
||||
.import binary "nes-screen.iscr"
|
||||
}}
|
||||
|
||||
|
||||
// Pointers to the screen address for rendering each playfield line
|
||||
byte*[PLAYFIELD_LINES] screen_lines;
|
||||
// The lines for screen 1 is aligned with $80 and screen 2 with $40 - so XOR'ing with $40 gives screen 2 lines.
|
||||
align($80) byte*[PLAYFIELD_LINES] screen_lines_1;
|
||||
align($40) byte*[PLAYFIELD_LINES] screen_lines_2;
|
||||
|
||||
// The screen currently being showed to the user. $00 for screen 1 / $40 for screen 2.
|
||||
byte render_screen_show;
|
||||
// The screen currently being rendered to. $00 for screen 1 / $40 for screen 2.
|
||||
byte render_screen_render;
|
||||
|
||||
// Initialize rendering
|
||||
void render_init() {
|
||||
vicSelectGfxBank(PLAYFIELD_SCREEN);
|
||||
*D018 = toD018(PLAYFIELD_SCREEN, PLAYFIELD_CHARSET);
|
||||
vicSelectGfxBank(PLAYFIELD_CHARSET);
|
||||
// Enable Extended Background Color Mode
|
||||
*D011 = VIC_ECM | VIC_DEN | VIC_RSEL | 3;
|
||||
*BGCOL1 = BLACK;
|
||||
*BGCOL2 = BLUE;
|
||||
*BGCOL3 = CYAN;
|
||||
*BGCOL4 = GREY;
|
||||
fill(COLS,1000,DARK_GREY);
|
||||
render_screen_original(PLAYFIELD_SCREEN);
|
||||
|
||||
// Initialize the screen line pointers;
|
||||
byte* li = PLAYFIELD_SCREEN + 2*40 + 16;
|
||||
for(byte i:0..PLAYFIELD_LINES-1) {
|
||||
screen_lines[i<<1] = li;
|
||||
li += 40;
|
||||
}
|
||||
// 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;
|
||||
@ -45,6 +45,36 @@ void render_init() {
|
||||
line +=40;
|
||||
}
|
||||
|
||||
// Initialize the screen line pointers;
|
||||
byte* li_1 = PLAYFIELD_SCREEN_1 + 2*40 + 16;
|
||||
byte* li_2 = PLAYFIELD_SCREEN_2 + 2*40 + 16;
|
||||
for(byte i:0..PLAYFIELD_LINES-1) {
|
||||
screen_lines_1[i<<1] = li_1;
|
||||
screen_lines_2[i<<1] = li_2;
|
||||
li_1 += 40;
|
||||
li_2 += 40;
|
||||
}
|
||||
|
||||
// Show showing screen 1 and rendering to screen 2
|
||||
render_screen_show = 0;
|
||||
render_screen_render = $40;
|
||||
}
|
||||
|
||||
// Update $D018 to show the current screen (used for double buffering)
|
||||
void render_show() {
|
||||
byte d018val = 0;
|
||||
if(render_screen_show==0) {
|
||||
d018val = toD018(PLAYFIELD_SCREEN_1, PLAYFIELD_CHARSET);
|
||||
} else {
|
||||
d018val = toD018(PLAYFIELD_SCREEN_2, PLAYFIELD_CHARSET);
|
||||
}
|
||||
*D018 = d018val;
|
||||
}
|
||||
|
||||
// Swap rendering to the other screen (used for double buffering)
|
||||
void render_screen_swap() {
|
||||
render_screen_render ^= $40;
|
||||
render_screen_show ^= $40;
|
||||
}
|
||||
|
||||
// Copy the original screen data to the passed screen
|
||||
@ -75,7 +105,7 @@ void render_playfield() {
|
||||
// Do not render the top 2 lines.
|
||||
byte i = PLAYFIELD_COLS*2;
|
||||
for(byte l:2..PLAYFIELD_LINES-1) {
|
||||
byte* screen_line = screen_lines[l<<1];
|
||||
byte* screen_line = screen_lines_1[render_screen_render+l<<1];
|
||||
for(byte c:0..PLAYFIELD_COLS-1) {
|
||||
*(screen_line++) = playfield[i++];
|
||||
}
|
||||
@ -88,7 +118,7 @@ void render_current() {
|
||||
byte ypos2 = current_ypos<<1;
|
||||
for(byte l:0..3) {
|
||||
if(ypos2>2 && ypos2<2*PLAYFIELD_LINES) {
|
||||
byte* screen_line = screen_lines[ypos2];
|
||||
byte* screen_line = screen_lines_1[render_screen_render+ypos2];
|
||||
byte xpos = current_xpos;
|
||||
for(byte c:0..3) {
|
||||
byte current_cell = current_piece_gfx[i++];
|
||||
@ -104,4 +134,5 @@ void render_current() {
|
||||
}
|
||||
ypos2 += 2;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -80,10 +80,14 @@ interrupt(hardware_clobber) void irq() {
|
||||
} while(*RASTER!=irq_sprite_ypos);
|
||||
|
||||
byte ptr = irq_sprite_ptr;
|
||||
PLAYFIELD_SPRITE_PTRS[0] = ptr++;
|
||||
PLAYFIELD_SPRITE_PTRS[1] = ptr;
|
||||
PLAYFIELD_SPRITE_PTRS[2] = ptr++;
|
||||
PLAYFIELD_SPRITE_PTRS[3] = ptr;
|
||||
PLAYFIELD_SPRITE_PTRS_1[0] = ptr;
|
||||
PLAYFIELD_SPRITE_PTRS_2[0] = ptr++;
|
||||
PLAYFIELD_SPRITE_PTRS_1[1] = ptr;
|
||||
PLAYFIELD_SPRITE_PTRS_2[1] = ptr;
|
||||
PLAYFIELD_SPRITE_PTRS_1[2] = ptr;
|
||||
PLAYFIELD_SPRITE_PTRS_2[2] = ptr++;
|
||||
PLAYFIELD_SPRITE_PTRS_1[3] = ptr;
|
||||
PLAYFIELD_SPRITE_PTRS_2[3] = ptr;
|
||||
|
||||
// Find next raster line / sprite positions
|
||||
if(++irq_cnt==10) {
|
||||
|
@ -21,8 +21,9 @@ void main() {
|
||||
while(true) {
|
||||
// Wait for a frame to pass
|
||||
while(*RASTER!=$ff) {}
|
||||
while(*RASTER!=$fe) {}
|
||||
(*BORDERCOL)++;
|
||||
*BORDERCOL = render_screen_show>>4;
|
||||
// Update D018 to show the selected screen
|
||||
render_show();
|
||||
// Scan keyboard events
|
||||
keyboard_event_scan();
|
||||
byte key_event = keyboard_event_get();
|
||||
@ -33,7 +34,8 @@ void main() {
|
||||
if(render!=0) {
|
||||
render_playfield();
|
||||
render_current();
|
||||
render_screen_swap();
|
||||
}
|
||||
(*BORDERCOL)--;
|
||||
*BORDERCOL = 0;
|
||||
}
|
||||
}
|
||||
|
@ -27,13 +27,15 @@
|
||||
.label HARDWARE_IRQ = $fffe
|
||||
.const BLACK = 0
|
||||
.const DARK_GREY = $b
|
||||
.label PLAYFIELD_SCREEN = $400
|
||||
.label PLAYFIELD_SCREEN_1 = $400
|
||||
.label PLAYFIELD_SCREEN_2 = $2c00
|
||||
.label PLAYFIELD_SPRITES = $2000
|
||||
.label PLAYFIELD_CHARSET = $2800
|
||||
.const PLAYFIELD_LINES = $16
|
||||
.const PLAYFIELD_COLS = $a
|
||||
.const IRQ_RASTER_FIRST = $31
|
||||
.label PLAYFIELD_SPRITE_PTRS = PLAYFIELD_SCREEN+SPRITE_PTRS
|
||||
.label PLAYFIELD_SPRITE_PTRS_1 = PLAYFIELD_SCREEN_1+SPRITE_PTRS
|
||||
.label PLAYFIELD_SPRITE_PTRS_2 = PLAYFIELD_SCREEN_2+SPRITE_PTRS
|
||||
.const toSpritePtr1_return = PLAYFIELD_SPRITES>>6
|
||||
.label irq_raster_next = 3
|
||||
.label irq_sprite_ypos = 4
|
||||
@ -50,8 +52,8 @@ bbegin:
|
||||
sta irq_cnt
|
||||
jsr main
|
||||
main: {
|
||||
.const vicSelectGfxBank1_toDd001_return = 3^(>PLAYFIELD_SCREEN)>>6
|
||||
.const toD0181_return = (>(PLAYFIELD_SCREEN&$3fff)<<2)|(>PLAYFIELD_CHARSET)>>2&$f
|
||||
.const vicSelectGfxBank1_toDd001_return = 3^(>PLAYFIELD_SCREEN_1)>>6
|
||||
.const toD0181_return = (>(PLAYFIELD_SCREEN_1&$3fff)<<2)|(>PLAYFIELD_CHARSET)>>2&$f
|
||||
lda #3
|
||||
sta CIA2_PORT_A_DDR
|
||||
lda #vicSelectGfxBank1_toDd001_return
|
||||
@ -61,7 +63,7 @@ main: {
|
||||
jsr sprites_init
|
||||
jsr sprites_irq_init
|
||||
b2:
|
||||
inc PLAYFIELD_SCREEN
|
||||
inc PLAYFIELD_SCREEN_1
|
||||
jmp b2
|
||||
}
|
||||
sprites_irq_init: {
|
||||
@ -133,13 +135,17 @@ irq: {
|
||||
cmp irq_sprite_ypos
|
||||
bne b1
|
||||
lda irq_sprite_ptr
|
||||
sta PLAYFIELD_SPRITE_PTRS
|
||||
sta PLAYFIELD_SPRITE_PTRS_1
|
||||
sta PLAYFIELD_SPRITE_PTRS_2
|
||||
tax
|
||||
inx
|
||||
stx PLAYFIELD_SPRITE_PTRS+1
|
||||
stx PLAYFIELD_SPRITE_PTRS+2
|
||||
stx PLAYFIELD_SPRITE_PTRS_1+1
|
||||
stx PLAYFIELD_SPRITE_PTRS_2+1
|
||||
stx PLAYFIELD_SPRITE_PTRS_1+2
|
||||
stx PLAYFIELD_SPRITE_PTRS_2+2
|
||||
inx
|
||||
stx PLAYFIELD_SPRITE_PTRS+3
|
||||
stx PLAYFIELD_SPRITE_PTRS_1+3
|
||||
stx PLAYFIELD_SPRITE_PTRS_2+3
|
||||
inc irq_cnt
|
||||
lda irq_cnt
|
||||
cmp #$a
|
||||
|
@ -56,7 +56,7 @@ main::@9: scope:[main] from main::@8
|
||||
[18] call sprites_irq_init
|
||||
to:main::@2
|
||||
main::@2: scope:[main] from main::@2 main::@9
|
||||
[19] *((const byte*) PLAYFIELD_SCREEN#0) ← ++ *((const byte*) PLAYFIELD_SCREEN#0)
|
||||
[19] *((const byte*) PLAYFIELD_SCREEN_1#0) ← ++ *((const byte*) PLAYFIELD_SCREEN_1#0)
|
||||
to:main::@2
|
||||
sprites_irq_init: scope:[sprites_irq_init] from main::@9
|
||||
asm { sei }
|
||||
@ -106,46 +106,50 @@ irq::@1: scope:[irq] from irq irq::@1
|
||||
to:irq::@5
|
||||
irq::@5: scope:[irq] from irq::@1
|
||||
[51] (byte) irq::ptr#0 ← (byte) irq_sprite_ptr#0
|
||||
[52] *((const byte*) PLAYFIELD_SPRITE_PTRS#0) ← (byte) irq::ptr#0
|
||||
[53] (byte) irq::ptr#1 ← ++ (byte) irq::ptr#0
|
||||
[54] *((const byte*) PLAYFIELD_SPRITE_PTRS#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) irq::ptr#1
|
||||
[55] *((const byte*) PLAYFIELD_SPRITE_PTRS#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) irq::ptr#1
|
||||
[56] (byte) irq::ptr#2 ← ++ (byte) irq::ptr#1
|
||||
[57] *((const byte*) PLAYFIELD_SPRITE_PTRS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte) irq::ptr#2
|
||||
[58] (byte) irq_cnt#1 ← ++ (byte) irq_cnt#0
|
||||
[59] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto irq::@2
|
||||
[52] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0) ← (byte) irq::ptr#0
|
||||
[53] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0) ← (byte) irq::ptr#0
|
||||
[54] (byte) irq::ptr#1 ← ++ (byte) irq::ptr#0
|
||||
[55] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) irq::ptr#1
|
||||
[56] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) irq::ptr#1
|
||||
[57] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) irq::ptr#1
|
||||
[58] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) irq::ptr#1
|
||||
[59] (byte) irq::ptr#2 ← ++ (byte) irq::ptr#1
|
||||
[60] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte) irq::ptr#2
|
||||
[61] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte) irq::ptr#2
|
||||
[62] (byte) irq_cnt#1 ← ++ (byte) irq_cnt#0
|
||||
[63] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto irq::@2
|
||||
to:irq::@6
|
||||
irq::@6: scope:[irq] from irq::@5
|
||||
[60] (byte) irq_raster_next#2 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21
|
||||
[61] (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21
|
||||
[62] (byte) irq_sprite_ptr#2 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3
|
||||
[64] (byte) irq_raster_next#2 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21
|
||||
[65] (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21
|
||||
[66] (byte) irq_sprite_ptr#2 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3
|
||||
to:irq::@3
|
||||
irq::@3: scope:[irq] from irq::@6 irq::@9
|
||||
[63] (byte) irq_raster_next#12 ← phi( irq::@6/(byte) irq_raster_next#2 irq::@9/(byte) irq_raster_next#1 )
|
||||
[64] (byte) irq::raster_next#0 ← (byte) irq_raster_next#12
|
||||
[65] (byte~) irq::$3 ← (byte) irq::raster_next#0 & (byte/signed byte/word/signed word/dword/signed dword) 7
|
||||
[66] if((byte~) irq::$3!=(byte/signed byte/word/signed word/dword/signed dword) 3) goto irq::@4
|
||||
[67] (byte) irq_raster_next#12 ← phi( irq::@6/(byte) irq_raster_next#2 irq::@9/(byte) irq_raster_next#1 )
|
||||
[68] (byte) irq::raster_next#0 ← (byte) irq_raster_next#12
|
||||
[69] (byte~) irq::$3 ← (byte) irq::raster_next#0 & (byte/signed byte/word/signed word/dword/signed dword) 7
|
||||
[70] if((byte~) irq::$3!=(byte/signed byte/word/signed word/dword/signed dword) 3) goto irq::@4
|
||||
to:irq::@8
|
||||
irq::@8: scope:[irq] from irq::@3
|
||||
[67] (byte) irq::raster_next#1 ← (byte) irq::raster_next#0 - (byte/signed byte/word/signed word/dword/signed dword) 1
|
||||
[71] (byte) irq::raster_next#1 ← (byte) irq::raster_next#0 - (byte/signed byte/word/signed word/dword/signed dword) 1
|
||||
to:irq::@4
|
||||
irq::@4: scope:[irq] from irq::@3 irq::@8
|
||||
[68] (byte) irq::raster_next#2 ← phi( irq::@3/(byte) irq::raster_next#0 irq::@8/(byte) irq::raster_next#1 )
|
||||
[69] *((const byte*) RASTER#0) ← (byte) irq::raster_next#2
|
||||
[70] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0
|
||||
[71] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0
|
||||
[72] (byte) irq::raster_next#2 ← phi( irq::@3/(byte) irq::raster_next#0 irq::@8/(byte) irq::raster_next#1 )
|
||||
[73] *((const byte*) RASTER#0) ← (byte) irq::raster_next#2
|
||||
[74] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0
|
||||
[75] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0
|
||||
to:irq::@return
|
||||
irq::@return: scope:[irq] from irq::@4
|
||||
[72] return
|
||||
[76] return
|
||||
to:@return
|
||||
irq::@2: scope:[irq] from irq::@5
|
||||
[73] (byte) irq_cnt#13 ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
[74] (byte) irq_raster_next#1 ← (const byte) IRQ_RASTER_FIRST#0
|
||||
[75] (byte) irq_sprite_ypos#1 ← (byte/signed byte/word/signed word/dword/signed dword) 50
|
||||
[77] (byte) irq_cnt#13 ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
[78] (byte) irq_raster_next#1 ← (const byte) IRQ_RASTER_FIRST#0
|
||||
[79] (byte) irq_sprite_ypos#1 ← (byte/signed byte/word/signed word/dword/signed dword) 50
|
||||
to:irq::toSpritePtr2
|
||||
irq::toSpritePtr2: scope:[irq] from irq::@2
|
||||
[76] phi()
|
||||
[80] phi()
|
||||
to:irq::@9
|
||||
irq::@9: scope:[irq] from irq::toSpritePtr2
|
||||
[77] (byte) irq_sprite_ptr#1 ← (const byte) irq::toSpritePtr2_return#0
|
||||
[81] (byte) irq_sprite_ptr#1 ← (const byte) irq::toSpritePtr2_return#0
|
||||
to:irq::@3
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -68,12 +68,17 @@
|
||||
(const byte) PLAYFIELD_COLS#0 PLAYFIELD_COLS = (byte/signed byte/word/signed word/dword/signed dword) 10
|
||||
(byte) PLAYFIELD_LINES
|
||||
(const byte) PLAYFIELD_LINES#0 PLAYFIELD_LINES = (byte/signed byte/word/signed word/dword/signed dword) 22
|
||||
(byte*) PLAYFIELD_SCREEN
|
||||
(const byte*) PLAYFIELD_SCREEN#0 PLAYFIELD_SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024
|
||||
(byte*) PLAYFIELD_SCREEN_1
|
||||
(const byte*) PLAYFIELD_SCREEN_1#0 PLAYFIELD_SCREEN_1 = ((byte*))(word/signed word/dword/signed dword) 1024
|
||||
(byte*) PLAYFIELD_SCREEN_2
|
||||
(const byte*) PLAYFIELD_SCREEN_2#0 PLAYFIELD_SCREEN_2 = ((byte*))(word/signed word/dword/signed dword) 11264
|
||||
(byte*) PLAYFIELD_SCREEN_ORIGINAL
|
||||
(byte*) PLAYFIELD_SPRITES
|
||||
(const byte*) PLAYFIELD_SPRITES#0 PLAYFIELD_SPRITES = ((byte*))(word/signed word/dword/signed dword) 8192
|
||||
(byte*) PLAYFIELD_SPRITE_PTRS
|
||||
(const byte*) PLAYFIELD_SPRITE_PTRS#0 PLAYFIELD_SPRITE_PTRS = (const byte*) PLAYFIELD_SCREEN#0+(const word) SPRITE_PTRS#0
|
||||
(byte*) PLAYFIELD_SPRITE_PTRS_1
|
||||
(const byte*) PLAYFIELD_SPRITE_PTRS_1#0 PLAYFIELD_SPRITE_PTRS_1 = (const byte*) PLAYFIELD_SCREEN_1#0+(const word) SPRITE_PTRS#0
|
||||
(byte*) PLAYFIELD_SPRITE_PTRS_2
|
||||
(const byte*) PLAYFIELD_SPRITE_PTRS_2#0 PLAYFIELD_SPRITE_PTRS_2 = (const byte*) PLAYFIELD_SCREEN_2#0+(const word) SPRITE_PTRS#0
|
||||
(byte*) PROCPORT
|
||||
(const byte*) PROCPORT#0 PROCPORT = ((byte*))(byte/signed byte/word/signed word/dword/signed dword) 1
|
||||
(byte) PROCPORT_BASIC_KERNEL_IO
|
||||
@ -139,9 +144,9 @@ interrupt(HARDWARE_CLOBBER)(void()) irq()
|
||||
(label) irq::@9
|
||||
(label) irq::@return
|
||||
(byte) irq::ptr
|
||||
(byte) irq::ptr#0 reg byte a 3.0
|
||||
(byte) irq::ptr#1 reg byte x 2.6666666666666665
|
||||
(byte) irq::ptr#2 reg byte x 4.0
|
||||
(byte) irq::ptr#0 reg byte a 2.6666666666666665
|
||||
(byte) irq::ptr#1 reg byte x 2.4
|
||||
(byte) irq::ptr#2 reg byte x 3.0
|
||||
(byte) irq::raster_next
|
||||
(byte) irq::raster_next#0 reg byte x 2.6666666666666665
|
||||
(byte) irq::raster_next#1 reg byte x 4.0
|
||||
@ -156,20 +161,20 @@ interrupt(HARDWARE_CLOBBER)(void()) irq()
|
||||
(byte) irq::ypos
|
||||
(byte) irq::ypos#0 reg byte a 2.5
|
||||
(byte) irq_cnt
|
||||
(byte) irq_cnt#0 irq_cnt zp ZP_BYTE:6 0.2857142857142857
|
||||
(byte) irq_cnt#0 irq_cnt zp ZP_BYTE:6 0.2222222222222222
|
||||
(byte) irq_cnt#1 irq_cnt zp ZP_BYTE:6 4.0
|
||||
(byte) irq_cnt#13 irq_cnt zp ZP_BYTE:6 20.0
|
||||
(byte) irq_raster_next
|
||||
(byte) irq_raster_next#0 irq_raster_next zp ZP_BYTE:3 0.25
|
||||
(byte) irq_raster_next#0 irq_raster_next zp ZP_BYTE:3 0.2
|
||||
(byte) irq_raster_next#1 irq_raster_next zp ZP_BYTE:3 1.0
|
||||
(byte) irq_raster_next#12 irq_raster_next zp ZP_BYTE:3 6.0
|
||||
(byte) irq_raster_next#2 irq_raster_next zp ZP_BYTE:3 1.3333333333333333
|
||||
(byte) irq_sprite_ptr
|
||||
(byte) irq_sprite_ptr#0 irq_sprite_ptr zp ZP_BYTE:5 0.3333333333333333
|
||||
(byte) irq_sprite_ptr#0 irq_sprite_ptr zp ZP_BYTE:5 0.2727272727272727
|
||||
(byte) irq_sprite_ptr#1 irq_sprite_ptr zp ZP_BYTE:5 20.0
|
||||
(byte) irq_sprite_ptr#2 irq_sprite_ptr zp ZP_BYTE:5 20.0
|
||||
(byte) irq_sprite_ypos
|
||||
(byte) irq_sprite_ypos#0 irq_sprite_ypos zp ZP_BYTE:4 1.0
|
||||
(byte) irq_sprite_ypos#0 irq_sprite_ypos zp ZP_BYTE:4 0.8095238095238095
|
||||
(byte) irq_sprite_ypos#1 irq_sprite_ypos zp ZP_BYTE:4 20.0
|
||||
(byte) irq_sprite_ypos#2 irq_sprite_ypos zp ZP_BYTE:4 20.0
|
||||
(void()) main()
|
||||
@ -188,7 +193,7 @@ interrupt(HARDWARE_CLOBBER)(void()) irq()
|
||||
(byte~) main::toD0181_$8
|
||||
(byte*) main::toD0181_gfx
|
||||
(byte) main::toD0181_return
|
||||
(const byte) main::toD0181_return#0 toD0181_return = >((word))(const byte*) PLAYFIELD_SCREEN#0&(word/signed word/dword/signed dword) 16383<<(byte/signed byte/word/signed word/dword/signed dword) 2|>((word))(const byte*) PLAYFIELD_CHARSET#0>>(byte/signed byte/word/signed word/dword/signed dword) 2&(byte/signed byte/word/signed word/dword/signed dword) 15
|
||||
(const byte) main::toD0181_return#0 toD0181_return = >((word))(const byte*) PLAYFIELD_SCREEN_1#0&(word/signed word/dword/signed dword) 16383<<(byte/signed byte/word/signed word/dword/signed dword) 2|>((word))(const byte*) PLAYFIELD_CHARSET#0>>(byte/signed byte/word/signed word/dword/signed dword) 2&(byte/signed byte/word/signed word/dword/signed dword) 15
|
||||
(byte*) main::toD0181_screen
|
||||
(label) main::vicSelectGfxBank1
|
||||
(byte~) main::vicSelectGfxBank1_$0
|
||||
@ -201,7 +206,7 @@ interrupt(HARDWARE_CLOBBER)(void()) irq()
|
||||
(byte/word/dword~) main::vicSelectGfxBank1_toDd001_$3
|
||||
(byte*) main::vicSelectGfxBank1_toDd001_gfx
|
||||
(byte) main::vicSelectGfxBank1_toDd001_return
|
||||
(const byte) main::vicSelectGfxBank1_toDd001_return#0 vicSelectGfxBank1_toDd001_return = (byte/signed byte/word/signed word/dword/signed dword) 3^>((word))(const byte*) PLAYFIELD_SCREEN#0>>(byte/signed byte/word/signed word/dword/signed dword) 6
|
||||
(const byte) main::vicSelectGfxBank1_toDd001_return#0 vicSelectGfxBank1_toDd001_return = (byte/signed byte/word/signed word/dword/signed dword) 3^>((word))(const byte*) PLAYFIELD_SCREEN_1#0>>(byte/signed byte/word/signed word/dword/signed dword) 6
|
||||
(byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield
|
||||
(void()) sprites_init()
|
||||
(label) sprites_init::@1
|
||||
|
@ -59,12 +59,13 @@
|
||||
.label SID_VOICE3_CONTROL = $d412
|
||||
.const SID_CONTROL_NOISE = $80
|
||||
.label SID_VOICE3_OSC = $d41b
|
||||
.label PLAYFIELD_SCREEN = $400
|
||||
.label PLAYFIELD_SCREEN_1 = $400
|
||||
.label PLAYFIELD_SCREEN_2 = $2c00
|
||||
.label PLAYFIELD_SCREEN_ORIGINAL = $1800
|
||||
.label PLAYFIELD_SPRITES = $2000
|
||||
.label PLAYFIELD_CHARSET = $2800
|
||||
.const PLAYFIELD_LINES = $16
|
||||
.const PLAYFIELD_COLS = $a
|
||||
.label PLAYFIELD_SCREEN_ORIGINAL = $2c00
|
||||
.const IRQ_RASTER_FIRST = $31
|
||||
.const current_movedown_slow = $32
|
||||
.const current_movedown_fast = 5
|
||||
@ -73,34 +74,39 @@
|
||||
.const COLLISION_BOTTOM = 2
|
||||
.const COLLISION_LEFT = 4
|
||||
.const COLLISION_RIGHT = 8
|
||||
.label PLAYFIELD_SPRITE_PTRS = PLAYFIELD_SCREEN+SPRITE_PTRS
|
||||
.label PLAYFIELD_SPRITE_PTRS_1 = PLAYFIELD_SCREEN_1+SPRITE_PTRS
|
||||
.label PLAYFIELD_SPRITE_PTRS_2 = PLAYFIELD_SCREEN_2+SPRITE_PTRS
|
||||
.const toSpritePtr1_return = PLAYFIELD_SPRITES>>6
|
||||
.label keyboard_events_size = $13
|
||||
.label irq_raster_next = $14
|
||||
.label irq_sprite_ypos = $15
|
||||
.label irq_sprite_ptr = $16
|
||||
.label irq_cnt = $17
|
||||
.label current_movedown_counter = 2
|
||||
.label current_ypos = $b
|
||||
.label current_piece_gfx = $f
|
||||
.label current_xpos = $11
|
||||
.label current_piece_char = $12
|
||||
.label current_orientation = $e
|
||||
.label current_piece = $c
|
||||
.label current_piece_12 = 4
|
||||
.label current_xpos_47 = 3
|
||||
.label current_piece_gfx_52 = 4
|
||||
.label current_piece_char_62 = 6
|
||||
.label current_xpos_109 = 3
|
||||
.label current_xpos_110 = 3
|
||||
.label current_piece_gfx_99 = 4
|
||||
.label current_piece_gfx_100 = 4
|
||||
.label current_piece_char_87 = 6
|
||||
.label current_piece_char_88 = 6
|
||||
.label current_piece_73 = 4
|
||||
.label current_piece_74 = 4
|
||||
.label current_piece_75 = 4
|
||||
.label current_piece_76 = 4
|
||||
.label keyboard_events_size = $16
|
||||
.label irq_raster_next = $17
|
||||
.label irq_sprite_ypos = $18
|
||||
.label irq_sprite_ptr = $19
|
||||
.label irq_cnt = $1a
|
||||
.label current_movedown_counter = 4
|
||||
.label current_ypos = $e
|
||||
.label current_piece_gfx = $12
|
||||
.label current_xpos = $14
|
||||
.label current_piece_char = $15
|
||||
.label current_orientation = $11
|
||||
.label render_screen_render = 3
|
||||
.label render_screen_show = 2
|
||||
.label current_piece = $f
|
||||
.label current_piece_12 = 7
|
||||
.label render_screen_render_27 = 5
|
||||
.label current_xpos_47 = 6
|
||||
.label current_piece_gfx_52 = 7
|
||||
.label current_piece_char_62 = 9
|
||||
.label render_screen_render_68 = 5
|
||||
.label current_xpos_109 = 6
|
||||
.label current_xpos_110 = 6
|
||||
.label current_piece_gfx_99 = 7
|
||||
.label current_piece_gfx_100 = 7
|
||||
.label current_piece_char_87 = 9
|
||||
.label current_piece_char_88 = 9
|
||||
.label current_piece_73 = 7
|
||||
.label current_piece_74 = 7
|
||||
.label current_piece_75 = 7
|
||||
.label current_piece_76 = 7
|
||||
bbegin:
|
||||
lda #IRQ_RASTER_FIRST
|
||||
sta irq_raster_next
|
||||
@ -112,8 +118,8 @@ bbegin:
|
||||
sta irq_cnt
|
||||
jsr main
|
||||
main: {
|
||||
.label key_event = $18
|
||||
.label render = $19
|
||||
.label key_event = $d
|
||||
.label render = $1b
|
||||
jsr sid_rnd_init
|
||||
sei
|
||||
jsr render_init
|
||||
@ -121,6 +127,7 @@ main: {
|
||||
jsr sprites_irq_init
|
||||
jsr play_init
|
||||
jsr play_spawn_current
|
||||
ldx #$40
|
||||
jsr render_playfield
|
||||
ldx current_ypos
|
||||
lda current_xpos
|
||||
@ -131,6 +138,8 @@ main: {
|
||||
sta current_piece_gfx_99+1
|
||||
lda current_piece_char
|
||||
sta current_piece_char_87
|
||||
lda #$40
|
||||
sta render_screen_render_27
|
||||
jsr render_current
|
||||
ldy play_spawn_current._3
|
||||
lda PIECES,y
|
||||
@ -141,15 +150,21 @@ main: {
|
||||
sta current_movedown_counter
|
||||
sta keyboard_events_size
|
||||
sta current_orientation
|
||||
lda #$40
|
||||
sta render_screen_render
|
||||
lda #0
|
||||
sta render_screen_show
|
||||
b4:
|
||||
lda RASTER
|
||||
cmp #$ff
|
||||
bne b4
|
||||
b7:
|
||||
lda RASTER
|
||||
cmp #$fe
|
||||
bne b7
|
||||
inc BORDERCOL
|
||||
lda render_screen_show
|
||||
lsr
|
||||
lsr
|
||||
lsr
|
||||
lsr
|
||||
sta BORDERCOL
|
||||
jsr render_show
|
||||
jsr keyboard_event_scan
|
||||
jsr keyboard_event_get
|
||||
sta key_event
|
||||
@ -168,9 +183,12 @@ main: {
|
||||
clc
|
||||
adc render
|
||||
cmp #0
|
||||
beq b10
|
||||
beq b7
|
||||
ldx render_screen_render
|
||||
jsr render_playfield
|
||||
ldx current_ypos
|
||||
lda render_screen_render
|
||||
sta render_screen_render_68
|
||||
lda current_xpos
|
||||
sta current_xpos_110
|
||||
lda current_piece_gfx
|
||||
@ -180,16 +198,27 @@ main: {
|
||||
lda current_piece_char
|
||||
sta current_piece_char_88
|
||||
jsr render_current
|
||||
b10:
|
||||
dec BORDERCOL
|
||||
jsr render_screen_swap
|
||||
b7:
|
||||
lda #0
|
||||
sta BORDERCOL
|
||||
jmp b4
|
||||
}
|
||||
render_screen_swap: {
|
||||
lda render_screen_render
|
||||
eor #$40
|
||||
sta render_screen_render
|
||||
lda render_screen_show
|
||||
eor #$40
|
||||
sta render_screen_show
|
||||
rts
|
||||
}
|
||||
render_current: {
|
||||
.label ypos2 = 7
|
||||
.label screen_line = $1a
|
||||
.label xpos = $a
|
||||
.label i = 9
|
||||
.label l = 8
|
||||
.label ypos2 = $a
|
||||
.label screen_line = $1c
|
||||
.label xpos = $d
|
||||
.label i = $c
|
||||
.label l = $b
|
||||
txa
|
||||
asl
|
||||
sta ypos2
|
||||
@ -223,10 +252,13 @@ render_current: {
|
||||
bcc b2
|
||||
jmp b7
|
||||
b2:
|
||||
ldy ypos2
|
||||
lda screen_lines,y
|
||||
lda render_screen_render_27
|
||||
clc
|
||||
adc ypos2
|
||||
tay
|
||||
lda screen_lines_1,y
|
||||
sta screen_line
|
||||
lda screen_lines+1,y
|
||||
lda screen_lines_1+1,y
|
||||
sta screen_line+1
|
||||
lda current_xpos_47
|
||||
sta xpos
|
||||
@ -251,9 +283,10 @@ render_current: {
|
||||
jmp b3
|
||||
}
|
||||
render_playfield: {
|
||||
.label screen_line = 4
|
||||
.label screen_line = 7
|
||||
.label i = 6
|
||||
.label l = 3
|
||||
.label c = 9
|
||||
.label l = 5
|
||||
lda #PLAYFIELD_COLS*2
|
||||
sta i
|
||||
lda #2
|
||||
@ -261,12 +294,16 @@ render_playfield: {
|
||||
b1:
|
||||
lda l
|
||||
asl
|
||||
stx $ff
|
||||
clc
|
||||
adc $ff
|
||||
tay
|
||||
lda screen_lines,y
|
||||
lda screen_lines_1,y
|
||||
sta screen_line
|
||||
lda screen_lines+1,y
|
||||
lda screen_lines_1+1,y
|
||||
sta screen_line+1
|
||||
ldx #0
|
||||
lda #0
|
||||
sta c
|
||||
b2:
|
||||
ldy i
|
||||
lda playfield,y
|
||||
@ -277,8 +314,9 @@ render_playfield: {
|
||||
inc screen_line+1
|
||||
!:
|
||||
inc i
|
||||
inx
|
||||
cpx #PLAYFIELD_COLS-1+1
|
||||
inc c
|
||||
lda c
|
||||
cmp #PLAYFIELD_COLS-1+1
|
||||
bne b2
|
||||
inc l
|
||||
lda l
|
||||
@ -287,7 +325,7 @@ render_playfield: {
|
||||
rts
|
||||
}
|
||||
play_move_rotate: {
|
||||
.label orientation = 3
|
||||
.label orientation = 5
|
||||
cmp #KEY_Z
|
||||
beq b1
|
||||
cmp #KEY_X
|
||||
@ -334,16 +372,16 @@ play_move_rotate: {
|
||||
}
|
||||
play_collision: {
|
||||
.label xpos = 6
|
||||
.label piece_gfx = 4
|
||||
.label ypos2 = 7
|
||||
.label playfield_line = $1a
|
||||
.label i = $1c
|
||||
.label col = $a
|
||||
.label l = 8
|
||||
.label i_2 = 9
|
||||
.label i_3 = 9
|
||||
.label i_11 = 9
|
||||
.label i_13 = 9
|
||||
.label piece_gfx = 7
|
||||
.label ypos2 = 9
|
||||
.label playfield_line = $1c
|
||||
.label i = $1e
|
||||
.label col = $c
|
||||
.label l = $a
|
||||
.label i_2 = $b
|
||||
.label i_3 = $b
|
||||
.label i_11 = $b
|
||||
.label i_13 = $b
|
||||
txa
|
||||
clc
|
||||
adc piece_gfx
|
||||
@ -527,7 +565,7 @@ play_move_down: {
|
||||
jmp b7
|
||||
}
|
||||
play_spawn_current: {
|
||||
.label _3 = 2
|
||||
.label _3 = 4
|
||||
ldx #7
|
||||
b1:
|
||||
cpx #7
|
||||
@ -558,9 +596,9 @@ sid_rnd: {
|
||||
rts
|
||||
}
|
||||
play_remove_lines: {
|
||||
.label c = 7
|
||||
.label x = 3
|
||||
.label y = 2
|
||||
.label c = 9
|
||||
.label x = 5
|
||||
.label y = 4
|
||||
.label full = 6
|
||||
lda #0
|
||||
sta y
|
||||
@ -610,15 +648,15 @@ play_remove_lines: {
|
||||
jmp b5
|
||||
}
|
||||
play_lock_current: {
|
||||
.label ypos2 = $b
|
||||
.label playfield_line = 4
|
||||
.label ypos2 = $e
|
||||
.label playfield_line = 7
|
||||
.label col = 6
|
||||
.label i = 7
|
||||
.label l = 2
|
||||
.label i_2 = 3
|
||||
.label i_3 = 3
|
||||
.label i_7 = 3
|
||||
.label i_9 = 3
|
||||
.label i = 9
|
||||
.label l = 4
|
||||
.label i_2 = 5
|
||||
.label i_3 = 5
|
||||
.label i_7 = 5
|
||||
.label i_9 = 5
|
||||
asl ypos2
|
||||
lda #0
|
||||
sta l
|
||||
@ -668,7 +706,7 @@ play_lock_current: {
|
||||
}
|
||||
keyboard_event_pressed: {
|
||||
.label row_bits = 6
|
||||
.label keycode = 3
|
||||
.label keycode = 5
|
||||
lda keycode
|
||||
lsr
|
||||
lsr
|
||||
@ -697,9 +735,9 @@ keyboard_event_get: {
|
||||
rts
|
||||
}
|
||||
keyboard_event_scan: {
|
||||
.label row_scan = 7
|
||||
.label row_scan = 9
|
||||
.label keycode = 6
|
||||
.label row = 3
|
||||
.label row = 5
|
||||
lda #0
|
||||
sta keycode
|
||||
sta row
|
||||
@ -800,8 +838,22 @@ keyboard_matrix_read: {
|
||||
eor #$ff
|
||||
rts
|
||||
}
|
||||
render_show: {
|
||||
.const toD0181_return = (>(PLAYFIELD_SCREEN_1&$3fff)<<2)|(>PLAYFIELD_CHARSET)>>2&$f
|
||||
.const toD0182_return = (>(PLAYFIELD_SCREEN_2&$3fff)<<2)|(>PLAYFIELD_CHARSET)>>2&$f
|
||||
lda render_screen_show
|
||||
cmp #0
|
||||
beq toD0181
|
||||
lda #toD0182_return
|
||||
b2:
|
||||
sta D018
|
||||
rts
|
||||
toD0181:
|
||||
lda #toD0181_return
|
||||
jmp b2
|
||||
}
|
||||
play_init: {
|
||||
.label pli = 4
|
||||
.label pli = 7
|
||||
.label idx = 2
|
||||
lda #0
|
||||
sta idx
|
||||
@ -892,18 +944,16 @@ sprites_init: {
|
||||
rts
|
||||
}
|
||||
render_init: {
|
||||
.const vicSelectGfxBank1_toDd001_return = 3^(>PLAYFIELD_SCREEN)>>6
|
||||
.const toD0181_return = (>(PLAYFIELD_SCREEN&$3fff)<<2)|(>PLAYFIELD_CHARSET)>>2&$f
|
||||
.label _18 = $c
|
||||
.label li = 4
|
||||
.label line = 4
|
||||
.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
|
||||
sta CIA2_PORT_A_DDR
|
||||
lda #vicSelectGfxBank1_toDd001_return
|
||||
sta CIA2_PORT_A
|
||||
lda #toD0181_return
|
||||
sta D018
|
||||
lda #VIC_ECM|VIC_DEN|VIC_RSEL|3
|
||||
sta D011
|
||||
lda #BLACK
|
||||
@ -914,53 +964,39 @@ render_init: {
|
||||
sta BGCOL3
|
||||
lda #GREY
|
||||
sta BGCOL4
|
||||
jsr fill
|
||||
lda #<PLAYFIELD_SCREEN_1
|
||||
sta render_screen_original.screen
|
||||
lda #>PLAYFIELD_SCREEN_1
|
||||
sta render_screen_original.screen+1
|
||||
jsr render_screen_original
|
||||
lda #<PLAYFIELD_SCREEN+2*$28+$10
|
||||
sta li
|
||||
lda #>PLAYFIELD_SCREEN+2*$28+$10
|
||||
sta li+1
|
||||
ldx #0
|
||||
b1:
|
||||
txa
|
||||
asl
|
||||
tay
|
||||
lda li
|
||||
sta screen_lines,y
|
||||
lda li+1
|
||||
sta screen_lines+1,y
|
||||
lda li
|
||||
clc
|
||||
adc #$28
|
||||
sta li
|
||||
bcc !+
|
||||
inc li+1
|
||||
!:
|
||||
inx
|
||||
cpx #PLAYFIELD_LINES-1+1
|
||||
bne b1
|
||||
lda #<PLAYFIELD_SCREEN_2
|
||||
sta render_screen_original.screen
|
||||
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
|
||||
b2:
|
||||
b1:
|
||||
ldx #0
|
||||
b3:
|
||||
b2:
|
||||
txa
|
||||
clc
|
||||
adc line
|
||||
sta _18
|
||||
sta _12
|
||||
lda #0
|
||||
adc line+1
|
||||
sta _18+1
|
||||
sta _12+1
|
||||
lda #WHITE
|
||||
ldy #0
|
||||
sta (_18),y
|
||||
sta (_12),y
|
||||
inx
|
||||
cpx #PLAYFIELD_COLS-1+1
|
||||
bne b3
|
||||
bne b2
|
||||
lda line
|
||||
clc
|
||||
adc #$28
|
||||
@ -971,13 +1007,78 @@ render_init: {
|
||||
inc l
|
||||
lda l
|
||||
cmp #PLAYFIELD_LINES-1+1
|
||||
bne b2
|
||||
bne b1
|
||||
lda #<PLAYFIELD_SCREEN_2+2*$28+$10
|
||||
sta li_2
|
||||
lda #>PLAYFIELD_SCREEN_2+2*$28+$10
|
||||
sta li_2+1
|
||||
lda #<PLAYFIELD_SCREEN_1+2*$28+$10
|
||||
sta li_1
|
||||
lda #>PLAYFIELD_SCREEN_1+2*$28+$10
|
||||
sta li_1+1
|
||||
ldx #0
|
||||
b3:
|
||||
txa
|
||||
asl
|
||||
tay
|
||||
lda li_1
|
||||
sta screen_lines_1,y
|
||||
lda li_1+1
|
||||
sta screen_lines_1+1,y
|
||||
txa
|
||||
asl
|
||||
tay
|
||||
lda li_2
|
||||
sta screen_lines_2,y
|
||||
lda li_2+1
|
||||
sta screen_lines_2+1,y
|
||||
lda li_1
|
||||
clc
|
||||
adc #$28
|
||||
sta li_1
|
||||
bcc !+
|
||||
inc li_1+1
|
||||
!:
|
||||
lda li_2
|
||||
clc
|
||||
adc #$28
|
||||
sta li_2
|
||||
bcc !+
|
||||
inc li_2+1
|
||||
!:
|
||||
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 = $c
|
||||
.label orig = 4
|
||||
.label screen = $f
|
||||
.label orig = 7
|
||||
.label y = 2
|
||||
lda #0
|
||||
sta y
|
||||
@ -985,10 +1086,6 @@ render_screen_original: {
|
||||
sta orig
|
||||
lda #>PLAYFIELD_SCREEN_ORIGINAL+$20*2
|
||||
sta orig+1
|
||||
lda #<PLAYFIELD_SCREEN
|
||||
sta screen
|
||||
lda #>PLAYFIELD_SCREEN
|
||||
sta screen+1
|
||||
b1:
|
||||
ldx #0
|
||||
b2:
|
||||
@ -1053,30 +1150,6 @@ render_screen_original: {
|
||||
tay
|
||||
jmp b4
|
||||
}
|
||||
fill: {
|
||||
.const size = $3e8
|
||||
.label end = COLS+size
|
||||
.label addr = 4
|
||||
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
|
||||
}
|
||||
sid_rnd_init: {
|
||||
lda #<$ffff
|
||||
sta SID_VOICE3_FREQ
|
||||
@ -1102,13 +1175,17 @@ irq: {
|
||||
cmp irq_sprite_ypos
|
||||
bne b1
|
||||
lda irq_sprite_ptr
|
||||
sta PLAYFIELD_SPRITE_PTRS
|
||||
sta PLAYFIELD_SPRITE_PTRS_1
|
||||
sta PLAYFIELD_SPRITE_PTRS_2
|
||||
tax
|
||||
inx
|
||||
stx PLAYFIELD_SPRITE_PTRS+1
|
||||
stx PLAYFIELD_SPRITE_PTRS+2
|
||||
stx PLAYFIELD_SPRITE_PTRS_1+1
|
||||
stx PLAYFIELD_SPRITE_PTRS_2+1
|
||||
stx PLAYFIELD_SPRITE_PTRS_1+2
|
||||
stx PLAYFIELD_SPRITE_PTRS_2+2
|
||||
inx
|
||||
stx PLAYFIELD_SPRITE_PTRS+3
|
||||
stx PLAYFIELD_SPRITE_PTRS_1+3
|
||||
stx PLAYFIELD_SPRITE_PTRS_2+3
|
||||
inc irq_cnt
|
||||
lda irq_cnt
|
||||
cmp #$a
|
||||
@ -1175,7 +1252,10 @@ irq: {
|
||||
PIECES_CHARS: .byte $58, $59, $99, $59, $58, $58, $99
|
||||
PIECES_START_X: .byte 4, 4, 4, 4, 4, 3, 4
|
||||
PIECES_START_Y: .byte 2, 1, 1, 1, 2, 0, 1
|
||||
screen_lines: .fill 2*PLAYFIELD_LINES, 0
|
||||
.align $80
|
||||
screen_lines_1: .fill 2*PLAYFIELD_LINES, 0
|
||||
.align $40
|
||||
screen_lines_2: .fill 2*PLAYFIELD_LINES, 0
|
||||
playfield_lines: .fill 2*PLAYFIELD_LINES, 0
|
||||
playfield: .fill PLAYFIELD_LINES*PLAYFIELD_COLS, 0
|
||||
PIECES: .word PIECE_T, PIECE_S, PIECE_Z, PIECE_J, PIECE_O, PIECE_I, PIECE_L
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,8 +1,8 @@
|
||||
(label) @14
|
||||
(label) @18
|
||||
(label) @19
|
||||
(label) @30
|
||||
(label) @31
|
||||
(label) @20
|
||||
(label) @21
|
||||
(label) @32
|
||||
(label) @33
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) BGCOL
|
||||
@ -194,15 +194,19 @@
|
||||
(const byte) PLAYFIELD_COLS#0 PLAYFIELD_COLS = (byte/signed byte/word/signed word/dword/signed dword) 10
|
||||
(byte) PLAYFIELD_LINES
|
||||
(const byte) PLAYFIELD_LINES#0 PLAYFIELD_LINES = (byte/signed byte/word/signed word/dword/signed dword) 22
|
||||
(byte*) PLAYFIELD_SCREEN
|
||||
(const byte*) PLAYFIELD_SCREEN#0 PLAYFIELD_SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024
|
||||
(byte*) PLAYFIELD_SCREEN_1
|
||||
(const byte*) PLAYFIELD_SCREEN_1#0 PLAYFIELD_SCREEN_1 = ((byte*))(word/signed word/dword/signed dword) 1024
|
||||
(byte*) PLAYFIELD_SCREEN_2
|
||||
(const byte*) PLAYFIELD_SCREEN_2#0 PLAYFIELD_SCREEN_2 = ((byte*))(word/signed word/dword/signed dword) 11264
|
||||
(byte*) PLAYFIELD_SCREEN_ORIGINAL
|
||||
(const byte*) PLAYFIELD_SCREEN_ORIGINAL#0 PLAYFIELD_SCREEN_ORIGINAL = ((byte*))(word/signed word/dword/signed dword) 11264
|
||||
(const byte*) PLAYFIELD_SCREEN_ORIGINAL#0 PLAYFIELD_SCREEN_ORIGINAL = ((byte*))(word/signed word/dword/signed dword) 6144
|
||||
(byte) PLAYFIELD_SCREEN_ORIGINAL_WIDTH
|
||||
(byte*) PLAYFIELD_SPRITES
|
||||
(const byte*) PLAYFIELD_SPRITES#0 PLAYFIELD_SPRITES = ((byte*))(word/signed word/dword/signed dword) 8192
|
||||
(byte*) PLAYFIELD_SPRITE_PTRS
|
||||
(const byte*) PLAYFIELD_SPRITE_PTRS#0 PLAYFIELD_SPRITE_PTRS = (const byte*) PLAYFIELD_SCREEN#0+(const word) SPRITE_PTRS#0
|
||||
(byte*) PLAYFIELD_SPRITE_PTRS_1
|
||||
(const byte*) PLAYFIELD_SPRITE_PTRS_1#0 PLAYFIELD_SPRITE_PTRS_1 = (const byte*) PLAYFIELD_SCREEN_1#0+(const word) SPRITE_PTRS#0
|
||||
(byte*) PLAYFIELD_SPRITE_PTRS_2
|
||||
(const byte*) PLAYFIELD_SPRITE_PTRS_2#0 PLAYFIELD_SPRITE_PTRS_2 = (const byte*) PLAYFIELD_SCREEN_2#0+(const word) SPRITE_PTRS#0
|
||||
(byte*) PROCPORT
|
||||
(const byte*) PROCPORT#0 PROCPORT = ((byte*))(byte/signed byte/word/signed word/dword/signed dword) 1
|
||||
(byte) PROCPORT_BASIC_KERNEL_IO
|
||||
@ -274,74 +278,74 @@
|
||||
(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:2 0.5333333333333333
|
||||
(byte) current_movedown_counter#10 current_movedown_counter zp ZP_BYTE:2 0.52
|
||||
(byte) current_movedown_counter#12 current_movedown_counter zp ZP_BYTE:2 1.3
|
||||
(byte) current_movedown_counter#1 current_movedown_counter zp ZP_BYTE:4 0.5333333333333333
|
||||
(byte) current_movedown_counter#10 current_movedown_counter zp ZP_BYTE:4 0.4482758620689655
|
||||
(byte) current_movedown_counter#12 current_movedown_counter zp ZP_BYTE:4 1.0833333333333333
|
||||
(byte) current_movedown_fast
|
||||
(const byte) current_movedown_fast#0 current_movedown_fast = (byte/signed byte/word/signed word/dword/signed dword) 5
|
||||
(byte) current_movedown_slow
|
||||
(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#10 current_orientation zp ZP_BYTE:14 0.5
|
||||
(byte) current_orientation#14 current_orientation zp ZP_BYTE:14 0.32653061224489793
|
||||
(byte) current_orientation#19 current_orientation zp ZP_BYTE:14 1.1333333333333333
|
||||
(byte) current_orientation#29 current_orientation zp ZP_BYTE:14 4.0
|
||||
(byte) current_orientation#4 current_orientation zp ZP_BYTE:14 3.0
|
||||
(byte) current_orientation#10 current_orientation zp ZP_BYTE:17 0.4722222222222223
|
||||
(byte) current_orientation#14 current_orientation zp ZP_BYTE:17 0.32653061224489793
|
||||
(byte) current_orientation#19 current_orientation zp ZP_BYTE:17 0.8947368421052632
|
||||
(byte) current_orientation#29 current_orientation zp ZP_BYTE:17 4.0
|
||||
(byte) current_orientation#4 current_orientation zp ZP_BYTE:17 3.0
|
||||
(byte*) current_piece
|
||||
(byte*) current_piece#10 current_piece zp ZP_WORD:12 0.3484848484848484
|
||||
(byte*) current_piece#12 current_piece#12 zp ZP_WORD:4 10.0
|
||||
(byte*) current_piece#16 current_piece zp ZP_WORD:12 0.5588235294117647
|
||||
(byte*) current_piece#20 current_piece zp ZP_WORD:12 6.0
|
||||
(byte*~) current_piece#72 current_piece zp ZP_WORD:12 4.0
|
||||
(byte*~) current_piece#73 current_piece#73 zp ZP_WORD:4 4.0
|
||||
(byte*~) current_piece#74 current_piece#74 zp ZP_WORD:4 4.0
|
||||
(byte*~) current_piece#75 current_piece#75 zp ZP_WORD:4 4.0
|
||||
(byte*~) current_piece#76 current_piece#76 zp ZP_WORD:4 4.0
|
||||
(byte*~) current_piece#77 current_piece zp ZP_WORD:12 4.0
|
||||
(byte*) current_piece#10 current_piece zp ZP_WORD:15 0.3285714285714286
|
||||
(byte*) current_piece#12 current_piece#12 zp ZP_WORD:7 10.0
|
||||
(byte*) current_piece#16 current_piece zp ZP_WORD:15 0.5277777777777779
|
||||
(byte*) current_piece#20 current_piece zp ZP_WORD:15 6.0
|
||||
(byte*~) current_piece#71 current_piece zp ZP_WORD:15 4.0
|
||||
(byte*~) current_piece#73 current_piece#73 zp ZP_WORD:7 4.0
|
||||
(byte*~) current_piece#74 current_piece#74 zp ZP_WORD:7 4.0
|
||||
(byte*~) current_piece#75 current_piece#75 zp ZP_WORD:7 4.0
|
||||
(byte*~) current_piece#76 current_piece#76 zp ZP_WORD:7 4.0
|
||||
(byte*~) current_piece#77 current_piece zp ZP_WORD:15 4.0
|
||||
(byte) current_piece_char
|
||||
(byte) current_piece_char#1 current_piece_char zp ZP_BYTE:18 1.04
|
||||
(byte) current_piece_char#12 current_piece_char zp ZP_BYTE:18 0.6153846153846154
|
||||
(byte) current_piece_char#15 current_piece_char zp ZP_BYTE:18 19.96078431372549
|
||||
(byte) current_piece_char#20 current_piece_char zp ZP_BYTE:18 6.0
|
||||
(byte) current_piece_char#62 current_piece_char#62 zp ZP_BYTE:6 48.285714285714285
|
||||
(byte~) current_piece_char#87 current_piece_char#87 zp ZP_BYTE:6 4.0
|
||||
(byte~) current_piece_char#88 current_piece_char#88 zp ZP_BYTE:6 22.0
|
||||
(byte) current_piece_char#1 current_piece_char zp ZP_BYTE:21 0.896551724137931
|
||||
(byte) current_piece_char#12 current_piece_char zp ZP_BYTE:21 0.6153846153846154
|
||||
(byte) current_piece_char#15 current_piece_char zp ZP_BYTE:21 19.20754716981132
|
||||
(byte) current_piece_char#20 current_piece_char zp ZP_BYTE:21 6.0
|
||||
(byte) current_piece_char#62 current_piece_char#62 zp ZP_BYTE:9 46.09090909090909
|
||||
(byte~) current_piece_char#87 current_piece_char#87 zp ZP_BYTE:9 4.0
|
||||
(byte~) current_piece_char#88 current_piece_char#88 zp ZP_BYTE:9 22.0
|
||||
(byte*) current_piece_gfx
|
||||
(byte*) current_piece_gfx#1 current_piece_gfx zp ZP_WORD:15 0.2962962962962963
|
||||
(byte*~) current_piece_gfx#100 current_piece_gfx#100 zp ZP_WORD:4 11.0
|
||||
(byte*) current_piece_gfx#14 current_piece_gfx zp ZP_WORD:15 1.8666666666666665
|
||||
(byte*) current_piece_gfx#16 current_piece_gfx zp ZP_WORD:15 0.5
|
||||
(byte*) current_piece_gfx#20 current_piece_gfx zp ZP_WORD:15 19.96078431372549
|
||||
(byte*) current_piece_gfx#26 current_piece_gfx zp ZP_WORD:15 6.0
|
||||
(byte*) current_piece_gfx#3 current_piece_gfx zp ZP_WORD:15 4.0
|
||||
(byte*) current_piece_gfx#52 current_piece_gfx#52 zp ZP_WORD:4 48.285714285714285
|
||||
(byte*~) current_piece_gfx#99 current_piece_gfx#99 zp ZP_WORD:4 2.0
|
||||
(byte*) current_piece_gfx#1 current_piece_gfx zp ZP_WORD:18 0.2962962962962963
|
||||
(byte*~) current_piece_gfx#100 current_piece_gfx#100 zp ZP_WORD:7 11.0
|
||||
(byte*) current_piece_gfx#14 current_piece_gfx zp ZP_WORD:18 1.4736842105263155
|
||||
(byte*) current_piece_gfx#16 current_piece_gfx zp ZP_WORD:18 0.5
|
||||
(byte*) current_piece_gfx#20 current_piece_gfx zp ZP_WORD:18 19.20754716981132
|
||||
(byte*) current_piece_gfx#26 current_piece_gfx zp ZP_WORD:18 6.0
|
||||
(byte*) current_piece_gfx#3 current_piece_gfx zp ZP_WORD:18 4.0
|
||||
(byte*) current_piece_gfx#52 current_piece_gfx#52 zp ZP_WORD:7 46.09090909090909
|
||||
(byte*~) current_piece_gfx#99 current_piece_gfx#99 zp ZP_WORD:7 2.0
|
||||
(byte) current_xpos
|
||||
(byte) current_xpos#1 current_xpos zp ZP_BYTE:17 0.72
|
||||
(byte) current_xpos#10 current_xpos zp ZP_BYTE:17 2.3529411764705883
|
||||
(byte~) current_xpos#109 current_xpos#109 zp ZP_BYTE:3 1.3333333333333333
|
||||
(byte~) current_xpos#110 current_xpos#110 zp ZP_BYTE:3 7.333333333333333
|
||||
(byte) current_xpos#19 current_xpos zp ZP_BYTE:17 0.871794871794872
|
||||
(byte) current_xpos#2 current_xpos zp ZP_BYTE:17 4.0
|
||||
(byte) current_xpos#23 current_xpos zp ZP_BYTE:17 0.5333333333333333
|
||||
(byte) current_xpos#33 current_xpos zp ZP_BYTE:17 6.0
|
||||
(byte) current_xpos#4 current_xpos zp ZP_BYTE:17 4.0
|
||||
(byte) current_xpos#47 current_xpos#47 zp ZP_BYTE:3 5.428571428571429
|
||||
(byte) current_xpos#1 current_xpos zp ZP_BYTE:20 0.72
|
||||
(byte) current_xpos#10 current_xpos zp ZP_BYTE:20 2.2641509433962264
|
||||
(byte~) current_xpos#109 current_xpos#109 zp ZP_BYTE:6 1.3333333333333333
|
||||
(byte~) current_xpos#110 current_xpos#110 zp ZP_BYTE:6 7.333333333333333
|
||||
(byte) current_xpos#19 current_xpos zp ZP_BYTE:20 0.7906976744186045
|
||||
(byte) current_xpos#2 current_xpos zp ZP_BYTE:20 4.0
|
||||
(byte) current_xpos#23 current_xpos zp ZP_BYTE:20 0.5333333333333333
|
||||
(byte) current_xpos#33 current_xpos zp ZP_BYTE:20 6.0
|
||||
(byte) current_xpos#4 current_xpos zp ZP_BYTE:20 4.0
|
||||
(byte) current_xpos#47 current_xpos#47 zp ZP_BYTE:6 5.181818181818182
|
||||
(byte) current_ypos
|
||||
(byte) current_ypos#0 current_ypos zp ZP_BYTE:11 4.0
|
||||
(byte) current_ypos#13 current_ypos zp ZP_BYTE:11 0.48484848484848475
|
||||
(byte) current_ypos#18 current_ypos zp ZP_BYTE:11 0.5714285714285714
|
||||
(byte) current_ypos#21 current_ypos zp ZP_BYTE:11 0.6176470588235294
|
||||
(byte) current_ypos#29 current_ypos zp ZP_BYTE:11 6.0
|
||||
(byte) current_ypos#0 current_ypos zp ZP_BYTE:14 4.0
|
||||
(byte) current_ypos#13 current_ypos zp ZP_BYTE:14 0.4571428571428572
|
||||
(byte) current_ypos#18 current_ypos zp ZP_BYTE:14 0.5714285714285714
|
||||
(byte) current_ypos#21 current_ypos zp ZP_BYTE:14 0.5833333333333335
|
||||
(byte) current_ypos#29 current_ypos zp ZP_BYTE:14 6.0
|
||||
(byte~) current_ypos#83 reg byte x 1.0
|
||||
(byte~) current_ypos#84 reg byte x 5.5
|
||||
(byte~) current_ypos#84 reg byte x 4.4
|
||||
(byte) current_ypos#9 reg byte x 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:4 16.5
|
||||
(byte*) fill::addr#2 addr zp ZP_WORD:4 16.5
|
||||
(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
|
||||
@ -360,9 +364,9 @@ interrupt(HARDWARE_CLOBBER)(void()) irq()
|
||||
(label) irq::@9
|
||||
(label) irq::@return
|
||||
(byte) irq::ptr
|
||||
(byte) irq::ptr#0 reg byte a 3.0
|
||||
(byte) irq::ptr#1 reg byte x 2.6666666666666665
|
||||
(byte) irq::ptr#2 reg byte x 4.0
|
||||
(byte) irq::ptr#0 reg byte a 2.6666666666666665
|
||||
(byte) irq::ptr#1 reg byte x 2.4
|
||||
(byte) irq::ptr#2 reg byte x 3.0
|
||||
(byte) irq::raster_next
|
||||
(byte) irq::raster_next#0 reg byte x 2.6666666666666665
|
||||
(byte) irq::raster_next#1 reg byte x 4.0
|
||||
@ -377,22 +381,22 @@ interrupt(HARDWARE_CLOBBER)(void()) irq()
|
||||
(byte) irq::ypos
|
||||
(byte) irq::ypos#0 reg byte a 2.5
|
||||
(byte) irq_cnt
|
||||
(byte) irq_cnt#0 irq_cnt zp ZP_BYTE:23 0.2857142857142857
|
||||
(byte) irq_cnt#1 irq_cnt zp ZP_BYTE:23 4.0
|
||||
(byte) irq_cnt#13 irq_cnt zp ZP_BYTE:23 20.0
|
||||
(byte) irq_cnt#0 irq_cnt zp ZP_BYTE:26 0.2222222222222222
|
||||
(byte) irq_cnt#1 irq_cnt zp ZP_BYTE:26 4.0
|
||||
(byte) irq_cnt#13 irq_cnt zp ZP_BYTE:26 20.0
|
||||
(byte) irq_raster_next
|
||||
(byte) irq_raster_next#0 irq_raster_next zp ZP_BYTE:20 0.25
|
||||
(byte) irq_raster_next#1 irq_raster_next zp ZP_BYTE:20 1.0
|
||||
(byte) irq_raster_next#12 irq_raster_next zp ZP_BYTE:20 6.0
|
||||
(byte) irq_raster_next#2 irq_raster_next zp ZP_BYTE:20 1.3333333333333333
|
||||
(byte) irq_raster_next#0 irq_raster_next zp ZP_BYTE:23 0.2
|
||||
(byte) irq_raster_next#1 irq_raster_next zp ZP_BYTE:23 1.0
|
||||
(byte) irq_raster_next#12 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_sprite_ptr
|
||||
(byte) irq_sprite_ptr#0 irq_sprite_ptr zp ZP_BYTE:22 0.3333333333333333
|
||||
(byte) irq_sprite_ptr#1 irq_sprite_ptr zp ZP_BYTE:22 20.0
|
||||
(byte) irq_sprite_ptr#2 irq_sprite_ptr zp ZP_BYTE:22 20.0
|
||||
(byte) irq_sprite_ptr#0 irq_sprite_ptr zp ZP_BYTE:25 0.2727272727272727
|
||||
(byte) irq_sprite_ptr#1 irq_sprite_ptr zp ZP_BYTE:25 20.0
|
||||
(byte) irq_sprite_ptr#2 irq_sprite_ptr zp ZP_BYTE:25 20.0
|
||||
(byte) irq_sprite_ypos
|
||||
(byte) irq_sprite_ypos#0 irq_sprite_ypos zp ZP_BYTE:21 1.0
|
||||
(byte) irq_sprite_ypos#1 irq_sprite_ypos zp ZP_BYTE:21 20.0
|
||||
(byte) irq_sprite_ypos#2 irq_sprite_ypos zp ZP_BYTE:21 20.0
|
||||
(byte) irq_sprite_ypos#0 irq_sprite_ypos zp ZP_BYTE:24 0.8095238095238095
|
||||
(byte) irq_sprite_ypos#1 irq_sprite_ypos zp ZP_BYTE:24 20.0
|
||||
(byte) irq_sprite_ypos#2 irq_sprite_ypos zp ZP_BYTE:24 20.0
|
||||
(byte[]) keyboard_char_keycodes
|
||||
(byte()) keyboard_event_get()
|
||||
(label) keyboard_event_get::@3
|
||||
@ -406,7 +410,7 @@ interrupt(HARDWARE_CLOBBER)(void()) irq()
|
||||
(byte~) keyboard_event_pressed::$1 reg byte a 4.0
|
||||
(label) keyboard_event_pressed::@return
|
||||
(byte) keyboard_event_pressed::keycode
|
||||
(byte) keyboard_event_pressed::keycode#5 keycode zp ZP_BYTE:3 1.3333333333333333
|
||||
(byte) keyboard_event_pressed::keycode#5 keycode zp ZP_BYTE:5 1.3333333333333333
|
||||
(byte) keyboard_event_pressed::return
|
||||
(byte) keyboard_event_pressed::return#0 reg byte a 4.0
|
||||
(byte) keyboard_event_pressed::return#1 reg byte a 4.0
|
||||
@ -460,22 +464,22 @@ interrupt(HARDWARE_CLOBBER)(void()) irq()
|
||||
(byte) keyboard_event_scan::keycode#14 keycode zp ZP_BYTE:6 101.0
|
||||
(byte) keyboard_event_scan::keycode#15 keycode zp ZP_BYTE:6 525.75
|
||||
(byte) keyboard_event_scan::row
|
||||
(byte) keyboard_event_scan::row#1 row zp ZP_BYTE:3 151.5
|
||||
(byte) keyboard_event_scan::row#2 row zp ZP_BYTE:3 60.24
|
||||
(byte) keyboard_event_scan::row#1 row zp ZP_BYTE:5 151.5
|
||||
(byte) keyboard_event_scan::row#2 row zp ZP_BYTE:5 60.24
|
||||
(byte) keyboard_event_scan::row_scan
|
||||
(byte) keyboard_event_scan::row_scan#0 row_scan zp ZP_BYTE:7 128.05555555555557
|
||||
(byte) keyboard_event_scan::row_scan#0 row_scan zp ZP_BYTE:9 128.05555555555557
|
||||
(byte[8]) keyboard_events
|
||||
(const byte[8]) keyboard_events#0 keyboard_events = { fill( 8, 0) }
|
||||
(byte) keyboard_events_size
|
||||
(byte) keyboard_events_size#1 keyboard_events_size zp ZP_BYTE:19 2002.0
|
||||
(byte) keyboard_events_size#10 keyboard_events_size zp ZP_BYTE:19 810.9000000000001
|
||||
(byte) keyboard_events_size#13 keyboard_events_size zp ZP_BYTE:19 9.967741935483872
|
||||
(byte) keyboard_events_size#16 keyboard_events_size zp ZP_BYTE:19 0.5172413793103449
|
||||
(byte) keyboard_events_size#19 keyboard_events_size zp ZP_BYTE:19 2.6
|
||||
(byte) keyboard_events_size#2 keyboard_events_size zp ZP_BYTE:19 2002.0
|
||||
(byte) keyboard_events_size#29 keyboard_events_size zp ZP_BYTE:19 43.57142857142858
|
||||
(byte) keyboard_events_size#30 keyboard_events_size zp ZP_BYTE:19 1021.2
|
||||
(byte) keyboard_events_size#4 keyboard_events_size zp ZP_BYTE:19 3.0
|
||||
(byte) keyboard_events_size#1 keyboard_events_size zp ZP_BYTE:22 2002.0
|
||||
(byte) keyboard_events_size#10 keyboard_events_size zp ZP_BYTE:22 810.9000000000001
|
||||
(byte) keyboard_events_size#13 keyboard_events_size zp ZP_BYTE:22 9.967741935483872
|
||||
(byte) keyboard_events_size#16 keyboard_events_size zp ZP_BYTE:22 0.45454545454545453
|
||||
(byte) keyboard_events_size#19 keyboard_events_size zp ZP_BYTE:22 1.8571428571428572
|
||||
(byte) keyboard_events_size#2 keyboard_events_size zp ZP_BYTE:22 2002.0
|
||||
(byte) keyboard_events_size#29 keyboard_events_size zp ZP_BYTE:22 43.57142857142858
|
||||
(byte) keyboard_events_size#30 keyboard_events_size zp ZP_BYTE:22 1021.2
|
||||
(byte) keyboard_events_size#4 keyboard_events_size zp ZP_BYTE:22 3.0
|
||||
(byte[8]) keyboard_matrix_col_bitmask
|
||||
(const byte[8]) keyboard_matrix_col_bitmask#0 keyboard_matrix_col_bitmask = { (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 16, (byte/signed byte/word/signed word/dword/signed dword) 32, (byte/signed byte/word/signed word/dword/signed dword) 64, (byte/word/signed word/dword/signed dword) 128 }
|
||||
(byte()) keyboard_matrix_read((byte) keyboard_matrix_read::rowid)
|
||||
@ -498,33 +502,35 @@ interrupt(HARDWARE_CLOBBER)(void()) irq()
|
||||
(byte[8]) keyboard_scan_values
|
||||
(const byte[8]) keyboard_scan_values#0 keyboard_scan_values = { fill( 8, 0) }
|
||||
(void()) main()
|
||||
(byte~) main::$12 reg byte a 22.0
|
||||
(byte~) main::$13 reg byte a 22.0
|
||||
(byte~) main::$14 reg byte a 22.0
|
||||
(byte~) main::$15 reg byte a 22.0
|
||||
(byte~) main::$9 reg byte a 22.0
|
||||
(label) main::@1
|
||||
(label) main::@10
|
||||
(label) main::@13
|
||||
(label) main::@15
|
||||
(label) main::@16
|
||||
(label) main::@17
|
||||
(label) main::@18
|
||||
(label) main::@19
|
||||
(label) main::@20
|
||||
(label) main::@21
|
||||
(label) main::@22
|
||||
(label) main::@23
|
||||
(label) main::@24
|
||||
(label) main::@25
|
||||
(label) main::@26
|
||||
(label) main::@27
|
||||
(label) main::@28
|
||||
(label) main::@29
|
||||
(label) main::@30
|
||||
(label) main::@31
|
||||
(label) main::@32
|
||||
(label) main::@33
|
||||
(label) main::@34
|
||||
(label) main::@4
|
||||
(label) main::@6
|
||||
(label) main::@7
|
||||
(label) main::@9
|
||||
(byte) main::key_event
|
||||
(byte) main::key_event#0 key_event zp ZP_BYTE:24 4.0
|
||||
(byte) main::key_event#0 key_event zp ZP_BYTE:13 4.0
|
||||
(byte) main::render
|
||||
(byte) main::render#1 render zp ZP_BYTE:25 4.4
|
||||
(byte) main::render#2 render zp ZP_BYTE:25 4.4
|
||||
(byte) main::render#1 render zp ZP_BYTE:27 4.4
|
||||
(byte) main::render#2 render zp ZP_BYTE:27 4.4
|
||||
(byte) main::render#3 reg byte a 22.0
|
||||
(byte()) play_collision((byte) play_collision::xpos , (byte) play_collision::ypos , (byte) play_collision::orientation)
|
||||
(byte~) play_collision::$7 reg byte a 2002.0
|
||||
@ -543,18 +549,18 @@ interrupt(HARDWARE_CLOBBER)(void()) irq()
|
||||
(byte) play_collision::c#1 reg byte x 1001.0
|
||||
(byte) play_collision::c#2 reg byte x 222.44444444444446
|
||||
(byte) play_collision::col
|
||||
(byte) play_collision::col#1 col zp ZP_BYTE:10 500.5
|
||||
(byte) play_collision::col#2 col zp ZP_BYTE:10 638.25
|
||||
(byte~) play_collision::col#9 col zp ZP_BYTE:10 202.0
|
||||
(byte) play_collision::col#1 col zp ZP_BYTE:12 500.5
|
||||
(byte) play_collision::col#2 col zp ZP_BYTE:12 638.25
|
||||
(byte~) play_collision::col#9 col zp ZP_BYTE:12 202.0
|
||||
(byte) play_collision::i
|
||||
(byte) play_collision::i#1 i zp ZP_BYTE:28 161.76923076923077
|
||||
(byte~) play_collision::i#11 i#11 zp ZP_BYTE:9 202.0
|
||||
(byte~) play_collision::i#13 i#13 zp ZP_BYTE:9 2002.0
|
||||
(byte) play_collision::i#2 i#2 zp ZP_BYTE:9 1552.0
|
||||
(byte) play_collision::i#3 i#3 zp ZP_BYTE:9 67.33333333333333
|
||||
(byte) play_collision::i#1 i zp ZP_BYTE:30 161.76923076923077
|
||||
(byte~) play_collision::i#11 i#11 zp ZP_BYTE:11 202.0
|
||||
(byte~) play_collision::i#13 i#13 zp ZP_BYTE:11 2002.0
|
||||
(byte) play_collision::i#2 i#2 zp ZP_BYTE:11 1552.0
|
||||
(byte) play_collision::i#3 i#3 zp ZP_BYTE:11 67.33333333333333
|
||||
(byte) play_collision::l
|
||||
(byte) play_collision::l#1 l zp ZP_BYTE:8 101.0
|
||||
(byte) play_collision::l#6 l zp ZP_BYTE:8 12.625
|
||||
(byte) play_collision::l#1 l zp ZP_BYTE:10 101.0
|
||||
(byte) play_collision::l#6 l zp ZP_BYTE:10 12.625
|
||||
(byte) play_collision::orientation
|
||||
(byte) play_collision::orientation#0 reg byte x 2.0
|
||||
(byte) play_collision::orientation#1 reg byte x 2.0
|
||||
@ -562,9 +568,9 @@ interrupt(HARDWARE_CLOBBER)(void()) irq()
|
||||
(byte) play_collision::orientation#3 reg byte x 2.0
|
||||
(byte) play_collision::orientation#4 reg byte x 10.0
|
||||
(byte*) play_collision::piece_gfx
|
||||
(byte*) play_collision::piece_gfx#0 piece_gfx zp ZP_WORD:4 47.76190476190476
|
||||
(byte*) play_collision::piece_gfx#0 piece_gfx zp ZP_WORD:7 47.76190476190476
|
||||
(byte*) play_collision::playfield_line
|
||||
(byte*) play_collision::playfield_line#0 playfield_line zp ZP_WORD:26 78.71428571428571
|
||||
(byte*) play_collision::playfield_line#0 playfield_line zp ZP_WORD:28 78.71428571428571
|
||||
(byte) play_collision::return
|
||||
(byte) play_collision::return#0 reg byte a 4.0
|
||||
(byte) play_collision::return#1 reg byte a 4.0
|
||||
@ -584,9 +590,9 @@ interrupt(HARDWARE_CLOBBER)(void()) irq()
|
||||
(byte) play_collision::ypos#3 reg byte y 1.3333333333333333
|
||||
(byte) play_collision::ypos#4 reg byte y 5.0
|
||||
(byte) play_collision::ypos2
|
||||
(byte) play_collision::ypos2#0 ypos2 zp ZP_BYTE:7 4.0
|
||||
(byte) play_collision::ypos2#1 ypos2 zp ZP_BYTE:7 50.5
|
||||
(byte) play_collision::ypos2#2 ypos2 zp ZP_BYTE:7 87.06666666666668
|
||||
(byte) play_collision::ypos2#0 ypos2 zp ZP_BYTE:9 4.0
|
||||
(byte) play_collision::ypos2#1 ypos2 zp ZP_BYTE:9 50.5
|
||||
(byte) play_collision::ypos2#2 ypos2 zp ZP_BYTE:9 87.06666666666668
|
||||
(void()) play_init()
|
||||
(byte~) play_init::$1 reg byte a 22.0
|
||||
(label) play_init::@1
|
||||
@ -599,8 +605,8 @@ interrupt(HARDWARE_CLOBBER)(void()) irq()
|
||||
(byte) play_init::j#1 reg byte x 16.5
|
||||
(byte) play_init::j#2 reg byte x 7.333333333333333
|
||||
(byte*) play_init::pli
|
||||
(byte*) play_init::pli#1 pli zp ZP_WORD:4 5.5
|
||||
(byte*) play_init::pli#2 pli zp ZP_WORD:4 8.25
|
||||
(byte*) play_init::pli#1 pli zp ZP_WORD:7 5.5
|
||||
(byte*) play_init::pli#2 pli zp ZP_WORD:7 8.25
|
||||
(void()) play_lock_current()
|
||||
(label) play_lock_current::@1
|
||||
(label) play_lock_current::@2
|
||||
@ -618,20 +624,20 @@ interrupt(HARDWARE_CLOBBER)(void()) irq()
|
||||
(byte) play_lock_current::col#1 col zp ZP_BYTE:6 500.5
|
||||
(byte) play_lock_current::col#2 col zp ZP_BYTE:6 776.0
|
||||
(byte) play_lock_current::i
|
||||
(byte) play_lock_current::i#1 i zp ZP_BYTE:7 233.66666666666669
|
||||
(byte) play_lock_current::i#2 i#2 zp ZP_BYTE:3 1552.0
|
||||
(byte) play_lock_current::i#3 i#3 zp ZP_BYTE:3 67.33333333333333
|
||||
(byte~) play_lock_current::i#7 i#7 zp ZP_BYTE:3 202.0
|
||||
(byte~) play_lock_current::i#9 i#9 zp ZP_BYTE:3 2002.0
|
||||
(byte) play_lock_current::i#1 i zp ZP_BYTE:9 233.66666666666669
|
||||
(byte) play_lock_current::i#2 i#2 zp ZP_BYTE:5 1552.0
|
||||
(byte) play_lock_current::i#3 i#3 zp ZP_BYTE:5 67.33333333333333
|
||||
(byte~) play_lock_current::i#7 i#7 zp ZP_BYTE:5 202.0
|
||||
(byte~) play_lock_current::i#9 i#9 zp ZP_BYTE:5 2002.0
|
||||
(byte) play_lock_current::l
|
||||
(byte) play_lock_current::l#1 l zp ZP_BYTE:2 101.0
|
||||
(byte) play_lock_current::l#6 l zp ZP_BYTE:2 16.833333333333332
|
||||
(byte) play_lock_current::l#1 l zp ZP_BYTE:4 101.0
|
||||
(byte) play_lock_current::l#6 l zp ZP_BYTE:4 16.833333333333332
|
||||
(byte*) play_lock_current::playfield_line
|
||||
(byte*) play_lock_current::playfield_line#0 playfield_line zp ZP_WORD:4 110.19999999999999
|
||||
(byte*) play_lock_current::playfield_line#0 playfield_line zp ZP_WORD:7 110.19999999999999
|
||||
(byte) play_lock_current::ypos2
|
||||
(byte) play_lock_current::ypos2#0 ypos2 zp ZP_BYTE:11 4.0
|
||||
(byte) play_lock_current::ypos2#1 ypos2 zp ZP_BYTE:11 50.5
|
||||
(byte) play_lock_current::ypos2#2 ypos2 zp ZP_BYTE:11 27.727272727272727
|
||||
(byte) play_lock_current::ypos2#0 ypos2 zp ZP_BYTE:14 4.0
|
||||
(byte) play_lock_current::ypos2#1 ypos2 zp ZP_BYTE:14 50.5
|
||||
(byte) play_lock_current::ypos2#2 ypos2 zp ZP_BYTE:14 27.727272727272727
|
||||
(byte()) play_move_down((byte) play_move_down::key_event)
|
||||
(byte~) play_move_down::$12 reg byte a 4.0
|
||||
(byte~) play_move_down::$2 reg byte a 4.0
|
||||
@ -692,9 +698,9 @@ interrupt(HARDWARE_CLOBBER)(void()) irq()
|
||||
(byte) play_move_rotate::key_event
|
||||
(byte) play_move_rotate::key_event#0 reg byte a 7.5
|
||||
(byte) play_move_rotate::orientation
|
||||
(byte) play_move_rotate::orientation#1 orientation zp ZP_BYTE:3 4.0
|
||||
(byte) play_move_rotate::orientation#2 orientation zp ZP_BYTE:3 4.0
|
||||
(byte) play_move_rotate::orientation#3 orientation zp ZP_BYTE:3 0.8888888888888888
|
||||
(byte) play_move_rotate::orientation#1 orientation zp ZP_BYTE:5 4.0
|
||||
(byte) play_move_rotate::orientation#2 orientation zp ZP_BYTE:5 4.0
|
||||
(byte) play_move_rotate::orientation#3 orientation zp ZP_BYTE:5 0.8888888888888888
|
||||
(byte) play_move_rotate::return
|
||||
(byte) play_move_rotate::return#1 reg byte a 3.6666666666666665
|
||||
(byte) play_move_rotate::return#4 reg byte a 22.0
|
||||
@ -710,7 +716,7 @@ interrupt(HARDWARE_CLOBBER)(void()) irq()
|
||||
(label) play_remove_lines::@9
|
||||
(label) play_remove_lines::@return
|
||||
(byte) play_remove_lines::c
|
||||
(byte) play_remove_lines::c#0 c zp ZP_BYTE:7 600.5999999999999
|
||||
(byte) play_remove_lines::c#0 c zp ZP_BYTE:9 600.5999999999999
|
||||
(byte) play_remove_lines::full
|
||||
(byte) play_remove_lines::full#2 full zp ZP_BYTE:6 420.59999999999997
|
||||
(byte) play_remove_lines::full#4 full zp ZP_BYTE:6 400.4
|
||||
@ -727,14 +733,14 @@ interrupt(HARDWARE_CLOBBER)(void()) irq()
|
||||
(byte) play_remove_lines::w#4 reg byte x 443.42857142857144
|
||||
(byte) play_remove_lines::w#6 reg byte x 168.33333333333331
|
||||
(byte) play_remove_lines::x
|
||||
(byte) play_remove_lines::x#1 x zp ZP_BYTE:3 1501.5
|
||||
(byte) play_remove_lines::x#2 x zp ZP_BYTE:3 250.25
|
||||
(byte) play_remove_lines::x#1 x zp ZP_BYTE:5 1501.5
|
||||
(byte) play_remove_lines::x#2 x zp ZP_BYTE:5 250.25
|
||||
(byte) play_remove_lines::y
|
||||
(byte) play_remove_lines::y#1 y zp ZP_BYTE:2 151.5
|
||||
(byte) play_remove_lines::y#8 y zp ZP_BYTE:2 14.428571428571429
|
||||
(byte) play_remove_lines::y#1 y zp ZP_BYTE:4 151.5
|
||||
(byte) play_remove_lines::y#8 y zp ZP_BYTE:4 14.428571428571429
|
||||
(void()) play_spawn_current()
|
||||
(byte~) play_spawn_current::$1 reg byte a 202.0
|
||||
(byte~) play_spawn_current::$3 $3 zp ZP_BYTE:2 0.13333333333333333
|
||||
(byte~) play_spawn_current::$3 $3 zp ZP_BYTE:4 0.13333333333333333
|
||||
(label) play_spawn_current::@1
|
||||
(label) play_spawn_current::@2
|
||||
(label) play_spawn_current::@3
|
||||
@ -750,6 +756,7 @@ interrupt(HARDWARE_CLOBBER)(void()) irq()
|
||||
(byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx
|
||||
(const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 playfield_lines_idx = { fill( PLAYFIELD_LINES#0+1, 0) }
|
||||
(void()) render_current()
|
||||
(byte~) render_current::$5 reg byte a 202.0
|
||||
(label) render_current::@1
|
||||
(label) render_current::@10
|
||||
(label) render_current::@13
|
||||
@ -766,31 +773,33 @@ interrupt(HARDWARE_CLOBBER)(void()) irq()
|
||||
(byte) render_current::current_cell
|
||||
(byte) render_current::current_cell#0 reg byte a 1001.0
|
||||
(byte) render_current::i
|
||||
(byte) render_current::i#1 i zp ZP_BYTE:9 202.0
|
||||
(byte) render_current::i#10 i zp ZP_BYTE:9 429.0
|
||||
(byte) render_current::i#3 i zp ZP_BYTE:9 60.599999999999994
|
||||
(byte) render_current::i#4 i zp ZP_BYTE:9 1552.0
|
||||
(byte) render_current::i#8 i zp ZP_BYTE:9 300.75
|
||||
(byte) render_current::i#1 i zp ZP_BYTE:12 202.0
|
||||
(byte) render_current::i#10 i zp ZP_BYTE:12 429.0
|
||||
(byte) render_current::i#3 i zp ZP_BYTE:12 50.5
|
||||
(byte) render_current::i#4 i zp ZP_BYTE:12 1552.0
|
||||
(byte) render_current::i#8 i zp ZP_BYTE:12 300.75
|
||||
(byte) render_current::l
|
||||
(byte) render_current::l#1 l zp ZP_BYTE:8 151.5
|
||||
(byte) render_current::l#4 l zp ZP_BYTE:8 11.882352941176471
|
||||
(byte) render_current::l#1 l zp ZP_BYTE:11 151.5
|
||||
(byte) render_current::l#4 l zp ZP_BYTE:11 11.222222222222221
|
||||
(byte*) render_current::screen_line
|
||||
(byte*) render_current::screen_line#0 screen_line zp ZP_WORD:26 100.18181818181819
|
||||
(byte*) render_current::screen_line#0 screen_line zp ZP_WORD:28 100.18181818181819
|
||||
(byte) render_current::xpos
|
||||
(byte) render_current::xpos#0 xpos zp ZP_BYTE:10 202.0
|
||||
(byte) render_current::xpos#1 xpos zp ZP_BYTE:10 667.3333333333334
|
||||
(byte) render_current::xpos#2 xpos zp ZP_BYTE:10 684.1666666666667
|
||||
(byte) render_current::xpos#0 xpos zp ZP_BYTE:13 202.0
|
||||
(byte) render_current::xpos#1 xpos zp ZP_BYTE:13 667.3333333333334
|
||||
(byte) render_current::xpos#2 xpos zp ZP_BYTE:13 684.1666666666667
|
||||
(byte) render_current::ypos2
|
||||
(byte) render_current::ypos2#0 ypos2 zp ZP_BYTE:7 4.0
|
||||
(byte) render_current::ypos2#1 ypos2 zp ZP_BYTE:7 67.33333333333333
|
||||
(byte) render_current::ypos2#2 ypos2 zp ZP_BYTE:7 31.6875
|
||||
(byte) render_current::ypos2#0 ypos2 zp ZP_BYTE:10 4.0
|
||||
(byte) render_current::ypos2#1 ypos2 zp ZP_BYTE:10 67.33333333333333
|
||||
(byte) render_current::ypos2#2 ypos2 zp ZP_BYTE:10 29.823529411764707
|
||||
(void()) render_init()
|
||||
(byte~) render_init::$11 reg byte a 22.0
|
||||
(byte*~) render_init::$18 $18 zp ZP_WORD:12 202.0
|
||||
(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
|
||||
(label) render_init::@1
|
||||
(label) render_init::@2
|
||||
(label) render_init::@3
|
||||
(label) render_init::@5
|
||||
(label) render_init::@4
|
||||
(label) render_init::@7
|
||||
(label) render_init::@8
|
||||
(label) render_init::@9
|
||||
(label) render_init::@return
|
||||
@ -799,30 +808,19 @@ interrupt(HARDWARE_CLOBBER)(void()) irq()
|
||||
(byte) render_init::c#2 reg byte x 101.0
|
||||
(byte) render_init::i
|
||||
(byte) render_init::i#1 reg byte x 16.5
|
||||
(byte) render_init::i#2 reg byte x 8.25
|
||||
(byte) render_init::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
|
||||
(byte*) render_init::li#1 li zp ZP_WORD:4 7.333333333333333
|
||||
(byte*) render_init::li#2 li zp ZP_WORD:4 11.0
|
||||
(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:4 7.333333333333333
|
||||
(byte*) render_init::line#4 line zp ZP_WORD:4 20.499999999999996
|
||||
(label) render_init::toD0181
|
||||
(word~) render_init::toD0181_$0
|
||||
(word~) render_init::toD0181_$1
|
||||
(word~) render_init::toD0181_$2
|
||||
(byte~) render_init::toD0181_$3
|
||||
(word~) render_init::toD0181_$4
|
||||
(byte~) render_init::toD0181_$5
|
||||
(byte~) render_init::toD0181_$6
|
||||
(byte~) render_init::toD0181_$7
|
||||
(byte~) render_init::toD0181_$8
|
||||
(byte*) render_init::toD0181_gfx
|
||||
(byte) render_init::toD0181_return
|
||||
(const byte) render_init::toD0181_return#0 toD0181_return = >((word))(const byte*) PLAYFIELD_SCREEN#0&(word/signed word/dword/signed dword) 16383<<(byte/signed byte/word/signed word/dword/signed dword) 2|>((word))(const byte*) PLAYFIELD_CHARSET#0>>(byte/signed byte/word/signed word/dword/signed dword) 2&(byte/signed byte/word/signed word/dword/signed dword) 15
|
||||
(byte*) render_init::toD0181_screen
|
||||
(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
|
||||
@ -834,27 +832,28 @@ interrupt(HARDWARE_CLOBBER)(void()) irq()
|
||||
(byte/word/dword~) render_init::vicSelectGfxBank1_toDd001_$3
|
||||
(byte*) render_init::vicSelectGfxBank1_toDd001_gfx
|
||||
(byte) render_init::vicSelectGfxBank1_toDd001_return
|
||||
(const byte) render_init::vicSelectGfxBank1_toDd001_return#0 vicSelectGfxBank1_toDd001_return = (byte/signed byte/word/signed word/dword/signed dword) 3^>((word))(const byte*) PLAYFIELD_SCREEN#0>>(byte/signed byte/word/signed word/dword/signed dword) 6
|
||||
(const byte) render_init::vicSelectGfxBank1_toDd001_return#0 vicSelectGfxBank1_toDd001_return = (byte/signed byte/word/signed word/dword/signed dword) 3^>((word))(const byte*) PLAYFIELD_CHARSET#0>>(byte/signed byte/word/signed word/dword/signed dword) 6
|
||||
(void()) render_playfield()
|
||||
(byte~) render_playfield::$2 reg byte a 202.0
|
||||
(byte~) render_playfield::$3 reg byte a 202.0
|
||||
(label) render_playfield::@1
|
||||
(label) render_playfield::@2
|
||||
(label) render_playfield::@3
|
||||
(label) render_playfield::@return
|
||||
(byte) render_playfield::c
|
||||
(byte) render_playfield::c#1 reg byte x 1501.5
|
||||
(byte) render_playfield::c#2 reg byte x 500.5
|
||||
(byte) render_playfield::c#1 c zp ZP_BYTE:9 1501.5
|
||||
(byte) render_playfield::c#2 c zp ZP_BYTE:9 500.5
|
||||
(byte) render_playfield::i
|
||||
(byte) render_playfield::i#1 i zp ZP_BYTE:6 420.59999999999997
|
||||
(byte) render_playfield::i#2 i zp ZP_BYTE:6 1034.6666666666667
|
||||
(byte) render_playfield::i#3 i zp ZP_BYTE:6 67.33333333333333
|
||||
(byte) render_playfield::i#3 i zp ZP_BYTE:6 50.5
|
||||
(byte) render_playfield::l
|
||||
(byte) render_playfield::l#1 l zp ZP_BYTE:3 151.5
|
||||
(byte) render_playfield::l#2 l zp ZP_BYTE:3 33.666666666666664
|
||||
(byte) render_playfield::l#1 l zp ZP_BYTE:5 151.5
|
||||
(byte) render_playfield::l#2 l zp ZP_BYTE:5 30.299999999999997
|
||||
(byte*) render_playfield::screen_line
|
||||
(byte*) render_playfield::screen_line#0 screen_line zp ZP_WORD:4 202.0
|
||||
(byte*) render_playfield::screen_line#1 screen_line zp ZP_WORD:4 500.5
|
||||
(byte*) render_playfield::screen_line#2 screen_line zp ZP_WORD:4 1552.0
|
||||
(byte*) render_playfield::screen_line#0 screen_line zp ZP_WORD:7 202.0
|
||||
(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)
|
||||
(label) render_screen_original::@1
|
||||
(label) render_screen_original::@11
|
||||
@ -872,17 +871,18 @@ interrupt(HARDWARE_CLOBBER)(void()) irq()
|
||||
(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:4 13.3125
|
||||
(byte*) render_screen_original::orig#2 orig zp ZP_WORD:4 202.0
|
||||
(byte*) render_screen_original::orig#5 orig zp ZP_WORD:4 18.666666666666664
|
||||
(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::screen
|
||||
(byte*) render_screen_original::screen#1 screen zp ZP_WORD:12 101.0
|
||||
(byte*) render_screen_original::screen#11 screen zp ZP_WORD:12 42.599999999999994
|
||||
(byte*) render_screen_original::screen#2 screen zp ZP_WORD:12 101.0
|
||||
(byte*) render_screen_original::screen#4 screen zp ZP_WORD:12 157.0
|
||||
(byte*) render_screen_original::screen#5 screen zp ZP_WORD:12 50.5
|
||||
(byte*) render_screen_original::screen#6 screen zp ZP_WORD:12 202.0
|
||||
(byte*) render_screen_original::screen#7 screen zp ZP_WORD:12 22.0
|
||||
(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::x
|
||||
(byte) render_screen_original::x#1 reg byte x 202.0
|
||||
(byte) render_screen_original::x#2 reg byte x 202.0
|
||||
@ -893,8 +893,57 @@ interrupt(HARDWARE_CLOBBER)(void()) irq()
|
||||
(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*[PLAYFIELD_LINES#0]) screen_lines
|
||||
(const byte*[PLAYFIELD_LINES#0]) screen_lines#0 screen_lines = { fill( PLAYFIELD_LINES#0, 0) }
|
||||
(byte) render_screen_render
|
||||
(byte) render_screen_render#10 render_screen_render zp ZP_BYTE:3 3.25
|
||||
(byte) render_screen_render#15 render_screen_render zp ZP_BYTE:3 1.277777777777778
|
||||
(byte) render_screen_render#18 reg byte x 8.615384615384615
|
||||
(byte) render_screen_render#27 render_screen_render#27 zp ZP_BYTE:5 5.090909090909091
|
||||
(byte) render_screen_render#31 render_screen_render zp ZP_BYTE:3 16.5
|
||||
(byte~) render_screen_render#68 render_screen_render#68 zp ZP_BYTE:5 5.5
|
||||
(byte~) render_screen_render#69 reg byte x 22.0
|
||||
(byte) render_screen_show
|
||||
(byte) render_screen_show#11 render_screen_show zp ZP_BYTE:2 4.333333333333333
|
||||
(byte) render_screen_show#15 render_screen_show zp ZP_BYTE:2 0.8604651162790697
|
||||
(byte) render_screen_show#24 render_screen_show zp ZP_BYTE:2 16.5
|
||||
(void()) render_screen_swap()
|
||||
(label) render_screen_swap::@return
|
||||
(void()) render_show()
|
||||
(label) render_show::@2
|
||||
(label) render_show::@return
|
||||
(byte) render_show::d018val
|
||||
(byte) render_show::d018val#3 reg byte a 2.0
|
||||
(label) render_show::toD0181
|
||||
(word~) render_show::toD0181_$0
|
||||
(word~) render_show::toD0181_$1
|
||||
(word~) render_show::toD0181_$2
|
||||
(byte~) render_show::toD0181_$3
|
||||
(word~) render_show::toD0181_$4
|
||||
(byte~) render_show::toD0181_$5
|
||||
(byte~) render_show::toD0181_$6
|
||||
(byte~) render_show::toD0181_$7
|
||||
(byte~) render_show::toD0181_$8
|
||||
(byte*) render_show::toD0181_gfx
|
||||
(byte) render_show::toD0181_return
|
||||
(const byte) render_show::toD0181_return#0 toD0181_return = >((word))(const byte*) PLAYFIELD_SCREEN_1#0&(word/signed word/dword/signed dword) 16383<<(byte/signed byte/word/signed word/dword/signed dword) 2|>((word))(const byte*) PLAYFIELD_CHARSET#0>>(byte/signed byte/word/signed word/dword/signed dword) 2&(byte/signed byte/word/signed word/dword/signed dword) 15
|
||||
(byte*) render_show::toD0181_screen
|
||||
(label) render_show::toD0182
|
||||
(word~) render_show::toD0182_$0
|
||||
(word~) render_show::toD0182_$1
|
||||
(word~) render_show::toD0182_$2
|
||||
(byte~) render_show::toD0182_$3
|
||||
(word~) render_show::toD0182_$4
|
||||
(byte~) render_show::toD0182_$5
|
||||
(byte~) render_show::toD0182_$6
|
||||
(byte~) render_show::toD0182_$7
|
||||
(byte~) render_show::toD0182_$8
|
||||
(byte*) render_show::toD0182_gfx
|
||||
(byte) render_show::toD0182_return
|
||||
(const byte) render_show::toD0182_return#0 toD0182_return = >((word))(const byte*) PLAYFIELD_SCREEN_2#0&(word/signed word/dword/signed dword) 16383<<(byte/signed byte/word/signed word/dword/signed dword) 2|>((word))(const byte*) PLAYFIELD_CHARSET#0>>(byte/signed byte/word/signed word/dword/signed dword) 2&(byte/signed byte/word/signed word/dword/signed dword) 15
|
||||
(byte*) render_show::toD0182_screen
|
||||
(byte*[PLAYFIELD_LINES#0]) screen_lines_1
|
||||
(const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 screen_lines_1 = { fill( PLAYFIELD_LINES#0, 0) }
|
||||
(byte*[PLAYFIELD_LINES#0]) screen_lines_2
|
||||
(const byte*[PLAYFIELD_LINES#0]) screen_lines_2#0 screen_lines_2 = { fill( PLAYFIELD_LINES#0, 0) }
|
||||
(byte()) sid_rnd()
|
||||
(label) sid_rnd::@return
|
||||
(byte) sid_rnd::return
|
||||
@ -923,17 +972,20 @@ interrupt(HARDWARE_CLOBBER)(void()) 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 [ 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_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 play_spawn_current::$3 ]
|
||||
zp ZP_BYTE:2 [ render_screen_show#15 render_screen_show#24 render_screen_show#11 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#15 render_screen_render#31 render_screen_render#10 ]
|
||||
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 x [ current_ypos#9 current_ypos#83 current_ypos#84 ]
|
||||
zp ZP_BYTE:3 [ current_xpos#47 current_xpos#109 current_xpos#110 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_WORD:4 [ current_piece_gfx#52 current_piece_gfx#99 current_piece_gfx#100 render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 current_piece#12 current_piece#73 current_piece#74 current_piece#75 current_piece#76 play_collision::piece_gfx#0 play_init::pli#2 play_init::pli#1 render_init::li#2 render_init::li#1 render_init::line#4 render_init::line#1 render_screen_original::orig#2 render_screen_original::orig#5 render_screen_original::orig#1 fill::addr#2 fill::addr#1 play_lock_current::playfield_line#0 ]
|
||||
zp ZP_BYTE:6 [ current_piece_char#62 current_piece_char#87 current_piece_char#88 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_BYTE:7 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#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:8 [ render_current::l#4 render_current::l#1 play_collision::l#6 play_collision::l#1 ]
|
||||
zp ZP_BYTE:9 [ render_current::i#4 render_current::i#3 render_current::i#8 render_current::i#10 render_current::i#1 play_collision::i#2 play_collision::i#3 play_collision::i#11 play_collision::i#13 ]
|
||||
zp ZP_BYTE:10 [ render_current::xpos#2 render_current::xpos#0 render_current::xpos#1 play_collision::col#2 play_collision::col#9 play_collision::col#1 ]
|
||||
zp ZP_BYTE:5 [ render_screen_render#27 render_screen_render#68 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#109 current_xpos#110 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#52 current_piece_gfx#99 current_piece_gfx#100 render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 current_piece#12 current_piece#73 current_piece#74 current_piece#75 current_piece#76 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_BYTE:9 [ current_piece_char#62 current_piece_char#87 current_piece_char#88 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::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 play_collision::l#6 play_collision::l#1 ]
|
||||
zp ZP_BYTE:11 [ render_current::l#4 render_current::l#1 play_collision::i#2 play_collision::i#3 play_collision::i#11 play_collision::i#13 ]
|
||||
zp ZP_BYTE:12 [ render_current::i#4 render_current::i#3 render_current::i#8 render_current::i#10 render_current::i#1 play_collision::col#2 play_collision::col#9 play_collision::col#1 ]
|
||||
zp ZP_BYTE:13 [ render_current::xpos#2 render_current::xpos#0 render_current::xpos#1 main::key_event#0 ]
|
||||
reg byte x [ render_current::c#2 render_current::c#1 ]
|
||||
reg byte x [ render_playfield::c#2 render_playfield::c#1 ]
|
||||
reg byte x [ render_screen_render#18 render_screen_render#69 ]
|
||||
reg byte a [ play_move_rotate::return#1 ]
|
||||
reg byte x [ play_collision::orientation#4 play_collision::orientation#0 play_collision::orientation#1 play_collision::orientation#2 play_collision::orientation#3 ]
|
||||
reg byte y [ play_collision::ypos#4 play_collision::ypos#0 play_collision::ypos#1 play_collision::ypos#2 play_collision::ypos#3 ]
|
||||
@ -941,12 +993,12 @@ reg byte x [ play_collision::c#2 play_collision::c#1 ]
|
||||
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:11 [ current_ypos#29 current_ypos#21 current_ypos#13 current_ypos#18 current_ypos#0 play_lock_current::ypos2#2 play_lock_current::ypos2#0 play_lock_current::ypos2#1 ]
|
||||
zp ZP_WORD:12 [ current_piece#20 current_piece#77 current_piece#16 current_piece#10 current_piece#72 render_screen_original::screen#6 render_screen_original::screen#5 render_screen_original::screen#4 render_screen_original::screen#7 render_screen_original::screen#11 render_screen_original::screen#1 render_screen_original::screen#2 render_init::$18 ]
|
||||
zp ZP_BYTE:14 [ current_orientation#29 current_orientation#10 current_orientation#19 current_orientation#4 current_orientation#14 ]
|
||||
zp ZP_WORD:15 [ current_piece_gfx#26 current_piece_gfx#20 current_piece_gfx#14 current_piece_gfx#16 current_piece_gfx#3 current_piece_gfx#1 ]
|
||||
zp ZP_BYTE:17 [ current_xpos#33 current_xpos#10 current_xpos#19 current_xpos#23 current_xpos#4 current_xpos#1 current_xpos#2 ]
|
||||
zp ZP_BYTE:18 [ current_piece_char#20 current_piece_char#15 current_piece_char#1 current_piece_char#12 ]
|
||||
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#77 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_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_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 ]
|
||||
reg byte x [ play_spawn_current::piece_idx#2 play_spawn_current::piece_idx#1 ]
|
||||
reg byte y [ play_remove_lines::r#2 play_remove_lines::r#3 play_remove_lines::r#1 ]
|
||||
@ -955,39 +1007,42 @@ reg byte x [ play_lock_current::c#2 play_lock_current::c#1 ]
|
||||
reg byte a [ keyboard_event_get::return#2 keyboard_event_get::return#1 ]
|
||||
reg byte x [ keyboard_modifiers#13 keyboard_modifiers#4 keyboard_modifiers#12 keyboard_modifiers#3 keyboard_modifiers#11 ]
|
||||
reg byte x [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ]
|
||||
zp ZP_BYTE:19 [ keyboard_events_size#10 keyboard_events_size#29 keyboard_events_size#19 keyboard_events_size#16 keyboard_events_size#13 keyboard_events_size#4 keyboard_events_size#30 keyboard_events_size#2 keyboard_events_size#1 ]
|
||||
zp ZP_BYTE:22 [ keyboard_events_size#10 keyboard_events_size#29 keyboard_events_size#19 keyboard_events_size#16 keyboard_events_size#13 keyboard_events_size#4 keyboard_events_size#30 keyboard_events_size#2 keyboard_events_size#1 ]
|
||||
reg byte 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::i#2 render_init::i#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:20 [ irq_raster_next#12 irq_raster_next#2 irq_raster_next#1 irq_raster_next#0 ]
|
||||
zp ZP_BYTE:23 [ irq_raster_next#12 irq_raster_next#2 irq_raster_next#1 irq_raster_next#0 ]
|
||||
reg byte x [ irq::raster_next#2 irq::raster_next#0 irq::raster_next#1 ]
|
||||
zp ZP_BYTE:21 [ irq_sprite_ypos#0 irq_sprite_ypos#2 irq_sprite_ypos#1 ]
|
||||
zp ZP_BYTE:22 [ irq_sprite_ptr#0 irq_sprite_ptr#2 irq_sprite_ptr#1 ]
|
||||
zp ZP_BYTE:23 [ irq_cnt#0 irq_cnt#1 irq_cnt#13 ]
|
||||
zp ZP_BYTE:24 [ irq_sprite_ypos#0 irq_sprite_ypos#2 irq_sprite_ypos#1 ]
|
||||
zp ZP_BYTE:25 [ irq_sprite_ptr#0 irq_sprite_ptr#2 irq_sprite_ptr#1 ]
|
||||
zp ZP_BYTE:26 [ irq_cnt#0 irq_cnt#1 irq_cnt#13 ]
|
||||
reg byte a [ main::$9 ]
|
||||
reg byte a [ keyboard_event_get::return#3 ]
|
||||
zp ZP_BYTE:24 [ main::key_event#0 ]
|
||||
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:25 [ main::render#1 main::render#2 ]
|
||||
reg byte a [ main::$13 ]
|
||||
zp ZP_BYTE:27 [ 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 ]
|
||||
reg byte a [ main::$14 ]
|
||||
reg byte a [ play_move_rotate::key_event#0 ]
|
||||
reg byte a [ play_move_rotate::return#4 ]
|
||||
reg byte a [ main::$14 ]
|
||||
reg byte a [ main::$15 ]
|
||||
reg byte a [ main::render#3 ]
|
||||
zp ZP_WORD:26 [ render_current::screen_line#0 play_collision::playfield_line#0 ]
|
||||
reg byte a [ render_current::$5 ]
|
||||
zp ZP_WORD:28 [ 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 ]
|
||||
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:28 [ play_collision::i#1 ]
|
||||
zp ZP_BYTE:30 [ play_collision::i#1 ]
|
||||
reg byte a [ play_collision::$7 ]
|
||||
reg byte a [ play_collision::return#12 ]
|
||||
reg byte a [ play_move_leftright::$4 ]
|
||||
@ -1021,7 +1076,8 @@ 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::$11 ]
|
||||
reg byte a [ render_init::$22 ]
|
||||
reg byte a [ render_init::$23 ]
|
||||
reg byte a [ irq::ypos#0 ]
|
||||
reg byte a [ irq::ptr#0 ]
|
||||
reg byte x [ irq::ptr#1 ]
|
||||
|
Loading…
x
Reference in New Issue
Block a user