1
0
mirror of https://gitlab.com/camelot/kickc.git synced 2024-10-10 20:23:47 +00:00

Added playfield border color.

This commit is contained in:
jespergravgaard 2018-12-29 02:40:02 +01:00
parent bd64ba36dd
commit bba1f52d56
5 changed files with 1320 additions and 1105 deletions

View File

@ -30,12 +30,12 @@ void render_init() {
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;
}
// Fill the playfield frame with the white background color
byte* line = COLS + 4*40 + 16;
for(byte l:2..PLAYFIELD_LINES-1) {
@ -57,7 +57,12 @@ void render_screen_original(byte* screen) {
*screen++ = SPACE;
} while(++x!=4);
do {
*screen++ = (*orig++)+1; // +$c0 to get grey background, +1 because the charset is loaded to PLAYFIELD_CHARSET+8
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
} while(++x!=36);
do {
*screen++ = SPACE;

View File

@ -1005,21 +1005,29 @@ render_screen_original: {
b3:
ldy #0
lda (orig),y
clc
adc #1
tay
iny
inc orig
bne !+
inc orig+1
!:
txa
cmp #$e
beq !+
bcs b11
!:
b4:
tya
ldy #0
sta (screen),y
inc screen
bne !+
inc screen+1
!:
inc orig
bne !+
inc orig+1
!:
inx
cpx #$24
bne b3
b4:
b5:
lda #SPACE
ldy #0
sta (screen),y
@ -1029,12 +1037,21 @@ render_screen_original: {
!:
inx
cpx #$28
bne b4
bne b5
inc y
lda y
cmp #$19
bne b1
rts
b11:
cpx #$1b
bcc b7
jmp b4
b7:
tya
ora #$c0
tay
jmp b4
}
fill: {
.const size = $3e8

View File

@ -801,10 +801,10 @@ render_init::@return: scope:[render_init] from render_init::@5
render_screen_original: scope:[render_screen_original] from render_init::@9
[386] phi()
to:render_screen_original::@1
render_screen_original::@1: scope:[render_screen_original] from render_screen_original render_screen_original::@7
[387] (byte) render_screen_original::y#6 ← phi( render_screen_original/(byte/signed byte/word/signed word/dword/signed dword) 0 render_screen_original::@7/(byte) render_screen_original::y#1 )
[387] (byte*) render_screen_original::orig#4 ← phi( render_screen_original/(const byte*) PLAYFIELD_SCREEN_ORIGINAL#0+(byte/signed byte/word/signed word/dword/signed dword) 32*(byte/signed byte/word/signed word/dword/signed dword) 2 render_screen_original::@7/(byte*) render_screen_original::orig#1 )
[387] (byte*) render_screen_original::screen#7 ← phi( render_screen_original/(const byte*) PLAYFIELD_SCREEN#0 render_screen_original::@7/(byte*) render_screen_original::screen#3 )
render_screen_original::@1: scope:[render_screen_original] from render_screen_original render_screen_original::@9
[387] (byte) render_screen_original::y#8 ← phi( render_screen_original/(byte/signed byte/word/signed word/dword/signed dword) 0 render_screen_original::@9/(byte) render_screen_original::y#1 )
[387] (byte*) render_screen_original::orig#5 ← phi( render_screen_original/(const byte*) PLAYFIELD_SCREEN_ORIGINAL#0+(byte/signed byte/word/signed word/dword/signed dword) 32*(byte/signed byte/word/signed word/dword/signed dword) 2 render_screen_original::@9/(byte*) render_screen_original::orig#1 )
[387] (byte*) render_screen_original::screen#7 ← phi( render_screen_original/(const byte*) PLAYFIELD_SCREEN#0 render_screen_original::@9/(byte*) render_screen_original::screen#11 )
to:render_screen_original::@2
render_screen_original::@2: scope:[render_screen_original] from render_screen_original::@1 render_screen_original::@2
[388] (byte) render_screen_original::x#4 ← phi( render_screen_original::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 render_screen_original::@2/(byte) render_screen_original::x#1 )
@ -814,104 +814,114 @@ render_screen_original::@2: scope:[render_screen_original] from render_screen_o
[391] (byte) render_screen_original::x#1 ← ++ (byte) render_screen_original::x#4
[392] if((byte) render_screen_original::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_screen_original::@2
to:render_screen_original::@3
render_screen_original::@3: scope:[render_screen_original] from render_screen_original::@2 render_screen_original::@3
[393] (byte) render_screen_original::x#5 ← phi( render_screen_original::@2/(byte) render_screen_original::x#1 render_screen_original::@3/(byte) render_screen_original::x#2 )
[393] (byte*) render_screen_original::screen#5 ← phi( render_screen_original::@2/(byte*) render_screen_original::screen#1 render_screen_original::@3/(byte*) render_screen_original::screen#2 )
[393] (byte*) render_screen_original::orig#2 ← phi( render_screen_original::@2/(byte*) render_screen_original::orig#4 render_screen_original::@3/(byte*) render_screen_original::orig#1 )
[394] (byte/signed word/word/dword/signed dword~) render_screen_original::$3 ← *((byte*) render_screen_original::orig#2) + (byte/signed byte/word/signed word/dword/signed dword) 1
[395] *((byte*) render_screen_original::screen#5) ← (byte/signed word/word/dword/signed dword~) render_screen_original::$3
[396] (byte*) render_screen_original::screen#2 ← ++ (byte*) render_screen_original::screen#5
[397] (byte*) render_screen_original::orig#1 ← ++ (byte*) render_screen_original::orig#2
[398] (byte) render_screen_original::x#2 ← ++ (byte) render_screen_original::x#5
[399] if((byte) render_screen_original::x#2!=(byte/signed byte/word/signed word/dword/signed dword) 36) goto render_screen_original::@3
render_screen_original::@3: scope:[render_screen_original] from render_screen_original::@2 render_screen_original::@4
[393] (byte*) render_screen_original::screen#5 ← phi( render_screen_original::@2/(byte*) render_screen_original::screen#1 render_screen_original::@4/(byte*) render_screen_original::screen#2 )
[393] (byte) render_screen_original::x#5 ← phi( render_screen_original::@2/(byte) render_screen_original::x#1 render_screen_original::@4/(byte) render_screen_original::x#2 )
[393] (byte*) render_screen_original::orig#2 ← phi( render_screen_original::@2/(byte*) render_screen_original::orig#5 render_screen_original::@4/(byte*) render_screen_original::orig#1 )
[394] (byte) render_screen_original::c#0 ← *((byte*) render_screen_original::orig#2) + (byte/signed byte/word/signed word/dword/signed dword) 1
[395] (byte*) render_screen_original::orig#1 ← ++ (byte*) render_screen_original::orig#2
[396] if((byte) render_screen_original::x#5>(byte/signed byte/word/signed word/dword/signed dword) 14) goto render_screen_original::@11
to:render_screen_original::@4
render_screen_original::@4: scope:[render_screen_original] from render_screen_original::@3 render_screen_original::@4
[400] (byte) render_screen_original::x#6 ← phi( render_screen_original::@3/(byte) render_screen_original::x#2 render_screen_original::@4/(byte) render_screen_original::x#3 )
[400] (byte*) render_screen_original::screen#6 ← phi( render_screen_original::@3/(byte*) render_screen_original::screen#2 render_screen_original::@4/(byte*) render_screen_original::screen#3 )
[401] *((byte*) render_screen_original::screen#6) ← (const byte) render_screen_original::SPACE#0
[402] (byte*) render_screen_original::screen#3 ← ++ (byte*) render_screen_original::screen#6
[403] (byte) render_screen_original::x#3 ← ++ (byte) render_screen_original::x#6
[404] if((byte) render_screen_original::x#3!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto render_screen_original::@4
to:render_screen_original::@7
render_screen_original::@7: scope:[render_screen_original] from render_screen_original::@4
[405] (byte) render_screen_original::y#1 ← ++ (byte) render_screen_original::y#6
[406] if((byte) render_screen_original::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto render_screen_original::@1
render_screen_original::@4: scope:[render_screen_original] from render_screen_original::@11 render_screen_original::@3 render_screen_original::@7
[397] (byte) render_screen_original::c#2 ← phi( render_screen_original::@3/(byte) render_screen_original::c#0 render_screen_original::@7/(byte) render_screen_original::c#1 )
[398] *((byte*) render_screen_original::screen#5) ← (byte) render_screen_original::c#2
[399] (byte*) render_screen_original::screen#2 ← ++ (byte*) render_screen_original::screen#5
[400] (byte) render_screen_original::x#2 ← ++ (byte) render_screen_original::x#5
[401] if((byte) render_screen_original::x#2!=(byte/signed byte/word/signed word/dword/signed dword) 36) goto render_screen_original::@3
to:render_screen_original::@5
render_screen_original::@5: scope:[render_screen_original] from render_screen_original::@4 render_screen_original::@5
[402] (byte) render_screen_original::x#7 ← phi( render_screen_original::@4/(byte) render_screen_original::x#2 render_screen_original::@5/(byte) render_screen_original::x#3 )
[402] (byte*) render_screen_original::screen#6 ← phi( render_screen_original::@4/(byte*) render_screen_original::screen#2 render_screen_original::@5/(byte*) render_screen_original::screen#11 )
[403] *((byte*) render_screen_original::screen#6) ← (const byte) render_screen_original::SPACE#0
[404] (byte*) render_screen_original::screen#11 ← ++ (byte*) render_screen_original::screen#6
[405] (byte) render_screen_original::x#3 ← ++ (byte) render_screen_original::x#7
[406] if((byte) render_screen_original::x#3!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto render_screen_original::@5
to:render_screen_original::@9
render_screen_original::@9: scope:[render_screen_original] from render_screen_original::@5
[407] (byte) render_screen_original::y#1 ← ++ (byte) render_screen_original::y#8
[408] if((byte) render_screen_original::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto render_screen_original::@1
to:render_screen_original::@return
render_screen_original::@return: scope:[render_screen_original] from render_screen_original::@7
[407] return
render_screen_original::@return: scope:[render_screen_original] from render_screen_original::@9
[409] return
to:@return
render_screen_original::@11: scope:[render_screen_original] from render_screen_original::@3
[410] if((byte) render_screen_original::x#5<(byte/signed byte/word/signed word/dword/signed dword) 27) goto render_screen_original::@7
to:render_screen_original::@4
render_screen_original::@7: scope:[render_screen_original] from render_screen_original::@11
[411] (byte) render_screen_original::c#1 ← (byte) render_screen_original::c#0 | (byte/word/signed word/dword/signed dword) 192
to:render_screen_original::@4
fill: scope:[fill] from render_init::@8
[408] phi()
[412] phi()
to:fill::@1
fill::@1: scope:[fill] from fill fill::@1
[409] (byte*) fill::addr#2 ← phi( fill/(const byte*) COLS#0 fill::@1/(byte*) fill::addr#1 )
[410] *((byte*) fill::addr#2) ← (const byte) DARK_GREY#0
[411] (byte*) fill::addr#1 ← ++ (byte*) fill::addr#2
[412] if((byte*) fill::addr#1!=(const byte*) fill::end#0) goto fill::@1
[413] (byte*) fill::addr#2 ← phi( fill/(const byte*) COLS#0 fill::@1/(byte*) fill::addr#1 )
[414] *((byte*) fill::addr#2) ← (const byte) DARK_GREY#0
[415] (byte*) fill::addr#1 ← ++ (byte*) fill::addr#2
[416] if((byte*) fill::addr#1!=(const byte*) fill::end#0) goto fill::@1
to:fill::@return
fill::@return: scope:[fill] from fill::@1
[413] return
[417] return
to:@return
sid_rnd_init: scope:[sid_rnd_init] from main
[414] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535
[415] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0
[418] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535
[419] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0
to:sid_rnd_init::@return
sid_rnd_init::@return: scope:[sid_rnd_init] from sid_rnd_init
[416] return
[420] return
to:@return
irq: scope:[irq] from
[417] *((const byte*) BORDERCOL#0) ← (const byte) DARK_GREY#0
[418] (byte) irq::ypos#0 ← (byte) irq_sprite_ypos#0
[419] *((const byte*) SPRITES_YPOS#0) ← (byte) irq::ypos#0
[420] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) irq::ypos#0
[421] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte) irq::ypos#0
[422] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte) irq::ypos#0
[421] *((const byte*) BORDERCOL#0) ← (const byte) DARK_GREY#0
[422] (byte) irq::ypos#0 ← (byte) irq_sprite_ypos#0
[423] *((const byte*) SPRITES_YPOS#0) ← (byte) irq::ypos#0
[424] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) irq::ypos#0
[425] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte) irq::ypos#0
[426] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte) irq::ypos#0
to:irq::@1
irq::@1: scope:[irq] from irq irq::@1
[423] if(*((const byte*) RASTER#0)!=(byte) irq_sprite_ypos#0) goto irq::@1
[427] if(*((const byte*) RASTER#0)!=(byte) irq_sprite_ypos#0) goto irq::@1
to:irq::@5
irq::@5: scope:[irq] from irq::@1
[424] (byte) irq::ptr#0 ← (byte) irq_sprite_ptr#0
[425] *((const byte*) PLAYFIELD_SPRITE_PTRS#0) ← (byte) irq::ptr#0
[426] (byte) irq::ptr#1 ← ++ (byte) irq::ptr#0
[427] *((const byte*) PLAYFIELD_SPRITE_PTRS#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) irq::ptr#1
[428] *((const byte*) PLAYFIELD_SPRITE_PTRS#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) irq::ptr#1
[429] (byte) irq::ptr#2 ← ++ (byte) irq::ptr#1
[430] *((const byte*) PLAYFIELD_SPRITE_PTRS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte) irq::ptr#2
[431] (byte) irq_cnt#1 ← ++ (byte) irq_cnt#0
[432] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto irq::@2
[428] (byte) irq::ptr#0 ← (byte) irq_sprite_ptr#0
[429] *((const byte*) PLAYFIELD_SPRITE_PTRS#0) ← (byte) irq::ptr#0
[430] (byte) irq::ptr#1 ← ++ (byte) irq::ptr#0
[431] *((const byte*) PLAYFIELD_SPRITE_PTRS#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) irq::ptr#1
[432] *((const byte*) PLAYFIELD_SPRITE_PTRS#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) irq::ptr#1
[433] (byte) irq::ptr#2 ← ++ (byte) irq::ptr#1
[434] *((const byte*) PLAYFIELD_SPRITE_PTRS#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte) irq::ptr#2
[435] (byte) irq_cnt#1 ← ++ (byte) irq_cnt#0
[436] 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
[433] (byte) irq_raster_next#2 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21
[434] (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21
[435] (byte) irq_sprite_ptr#2 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3
[437] (byte) irq_raster_next#2 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21
[438] (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21
[439] (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
[436] (byte) irq_raster_next#12 ← phi( irq::@6/(byte) irq_raster_next#2 irq::@9/(byte) irq_raster_next#1 )
[437] (byte) irq::raster_next#0 ← (byte) irq_raster_next#12
[438] (byte~) irq::$3 ← (byte) irq::raster_next#0 & (byte/signed byte/word/signed word/dword/signed dword) 7
[439] if((byte~) irq::$3!=(byte/signed byte/word/signed word/dword/signed dword) 3) goto irq::@4
[440] (byte) irq_raster_next#12 ← phi( irq::@6/(byte) irq_raster_next#2 irq::@9/(byte) irq_raster_next#1 )
[441] (byte) irq::raster_next#0 ← (byte) irq_raster_next#12
[442] (byte~) irq::$3 ← (byte) irq::raster_next#0 & (byte/signed byte/word/signed word/dword/signed dword) 7
[443] 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
[440] (byte) irq::raster_next#1 ← (byte) irq::raster_next#0 - (byte/signed byte/word/signed word/dword/signed dword) 1
[444] (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
[441] (byte) irq::raster_next#2 ← phi( irq::@3/(byte) irq::raster_next#0 irq::@8/(byte) irq::raster_next#1 )
[442] *((const byte*) RASTER#0) ← (byte) irq::raster_next#2
[443] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0
[444] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0
[445] (byte) irq::raster_next#2 ← phi( irq::@3/(byte) irq::raster_next#0 irq::@8/(byte) irq::raster_next#1 )
[446] *((const byte*) RASTER#0) ← (byte) irq::raster_next#2
[447] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0
[448] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0
to:irq::@return
irq::@return: scope:[irq] from irq::@4
[445] return
[449] return
to:@return
irq::@2: scope:[irq] from irq::@5
[446] (byte) irq_cnt#13 ← (byte/signed byte/word/signed word/dword/signed dword) 0
[447] (byte) irq_raster_next#1 ← (const byte) IRQ_RASTER_FIRST#0
[448] (byte) irq_sprite_ypos#1 ← (byte/signed byte/word/signed word/dword/signed dword) 50
[450] (byte) irq_cnt#13 ← (byte/signed byte/word/signed word/dword/signed dword) 0
[451] (byte) irq_raster_next#1 ← (const byte) IRQ_RASTER_FIRST#0
[452] (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
[449] phi()
[453] phi()
to:irq::@9
irq::@9: scope:[irq] from irq::toSpritePtr2
[450] (byte) irq_sprite_ptr#1 ← (const byte) irq::toSpritePtr2_return#0
[454] (byte) irq_sprite_ptr#1 ← (const byte) irq::toSpritePtr2_return#0
to:irq::@3

File diff suppressed because it is too large Load Diff

View File

@ -856,25 +856,31 @@ interrupt(HARDWARE_CLOBBER)(void()) irq()
(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
(void()) render_screen_original((byte*) render_screen_original::screen)
(byte/signed word/word/dword/signed dword~) render_screen_original::$3 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:4 21.299999999999997
(byte*) render_screen_original::orig#2 orig zp ZP_WORD:4 101.0
(byte*) render_screen_original::orig#4 orig zp ZP_WORD:4 18.666666666666664
(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::screen
(byte*) render_screen_original::screen#1 screen zp ZP_WORD:12 101.0
(byte*) render_screen_original::screen#2 screen zp ZP_WORD:12 75.75
(byte*) render_screen_original::screen#3 screen zp ZP_WORD:12 42.599999999999994
(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 134.66666666666666
(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::x
@ -882,11 +888,11 @@ interrupt(HARDWARE_CLOBBER)(void()) irq()
(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 60.599999999999994
(byte) render_screen_original::x#6 reg byte x 101.0
(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::y
(byte) render_screen_original::y#1 y zp ZP_BYTE:2 16.5
(byte) render_screen_original::y#6 y zp ZP_BYTE:2 1.2222222222222223
(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()) sid_rnd()
@ -917,10 +923,10 @@ 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#6 render_screen_original::y#1 play_spawn_current::$3 ]
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 ]
reg byte x [ current_ypos#10 current_ypos#79 current_ypos#80 ]
zp ZP_BYTE:3 [ current_xpos#48 current_xpos#105 current_xpos#106 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#53 current_piece_gfx#95 current_piece_gfx#96 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#4 render_screen_original::orig#1 fill::addr#2 fill::addr#1 play_lock_current::playfield_line#0 ]
zp ZP_WORD:4 [ current_piece_gfx#53 current_piece_gfx#95 current_piece_gfx#96 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#63 current_piece_char#83 current_piece_char#84 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 ]
@ -936,7 +942,7 @@ 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#30 current_ypos#22 current_ypos#14 current_ypos#19 current_ypos#1 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#3 render_screen_original::screen#1 render_screen_original::screen#2 render_init::$18 ]
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#27 current_piece_gfx#10 current_piece_gfx#15 current_piece_gfx#17 current_piece_gfx#4 current_piece_gfx#14 ]
zp ZP_BYTE:17 [ current_xpos#34 current_xpos#11 current_xpos#20 current_xpos#24 current_xpos#5 current_xpos#16 current_xpos#3 ]
@ -954,7 +960,8 @@ 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_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 ]
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 ]
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 ]
@ -1015,7 +1022,6 @@ 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_screen_original::$3 ]
reg byte a [ irq::ypos#0 ]
reg byte a [ irq::ptr#0 ]
reg byte x [ irq::ptr#1 ]