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

Added level. (not correct BCD after 9)

This commit is contained in:
jespergravgaard 2018-12-30 03:05:22 +01:00
parent 27e00e5e80
commit 6ff6d7c2cc
7 changed files with 8208 additions and 6559 deletions

View File

@ -44,4 +44,8 @@ volatile byte render_screen_showing = 0;
// Current score in BCD-format
dword score_bcd = 0;
// Current number of cleared lines in BCD-format
word lines_bcd = 0;
// Current level BCD-format
byte level_bcd = 1;

View File

@ -238,8 +238,15 @@ byte play_remove_lines() {
void play_update_score(byte removed) {
if(removed!=0){
dword add_bcd = score_add_bcd[removed<<2];
byte lines_before = <lines_bcd&$f0;
asm { sed }
lines_bcd += removed;
score_bcd += add_bcd;
// If line mod 10 == 0 increase level
byte lines_after = <lines_bcd&$f0;
if(lines_before!=lines_after) {
level_bcd = level_bcd + 1;
}
asm { cld }
}
}

View File

@ -77,21 +77,40 @@ void render_screen_swap() {
// Show the current score
void render_score() {
const byte ZERO_CHAR = 51;
byte SCREEN_SCORE_ROW = $05;
byte SCREEN_SCORE_COL = $21;
byte* screen_score_pos;
byte* screen;
if(render_screen_render==0) {
screen_score_pos = PLAYFIELD_SCREEN_1 + 40*SCREEN_SCORE_ROW + SCREEN_SCORE_COL;
screen = PLAYFIELD_SCREEN_1;
} else {
screen_score_pos = PLAYFIELD_SCREEN_2 + 40*SCREEN_SCORE_ROW + SCREEN_SCORE_COL;
screen = PLAYFIELD_SCREEN_2;
}
byte* score_bytes = (byte*)(&score_bcd);
for (byte b:0..2) {
byte score_byte = score_bytes[b];
*screen_score_pos-- = ZERO_CHAR + (score_byte & $0f);
*screen_score_pos-- = ZERO_CHAR + (score_byte>>4);
word score_offset = 40*$05 + $1c;
render_bcd( screen, score_offset, score_bytes[2], 0);
render_bcd( screen, score_offset+2, score_bytes[1], 0);
render_bcd( screen, score_offset+4, score_bytes[0], 0);
word lines_offset = 40*$01 + $16;
render_bcd( screen, lines_offset, >lines_bcd, 1);
render_bcd( screen, lines_offset+1, <lines_bcd, 0);
word level_offset = 40*19 + $1f;
render_bcd( screen, level_offset, level_bcd, 0);
}
// Render BCD digits on a screen.
// - screen: pointer to the screen to render on
// - offset: offset on the screen
// - bcd: The BCD-value to render
// - only_low: if non-zero only renders the low digit
void render_bcd(byte* screen, word offset, byte bcd, byte only_low) {
const byte ZERO_CHAR = 51;
byte* screen_pos = screen+offset;
if(only_low==0) {
*screen_pos++ = ZERO_CHAR + (bcd >> 4);
}
*screen_pos++ = ZERO_CHAR + (bcd & $0f);
}
// Copy the original screen data to the passed screen

View File

@ -76,29 +76,31 @@
.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 = $1a
.label render_screen_showing = $1e
.label irq_raster_next = $1d
.label irq_sprite_ypos = $1f
.label irq_sprite_ptr = $20
.label irq_cnt = $21
.label keyboard_events_size = $1f
.label render_screen_showing = $21
.label irq_raster_next = $20
.label irq_sprite_ypos = $22
.label irq_sprite_ptr = $23
.label irq_cnt = $24
.label current_movedown_counter = 4
.label current_ypos = $e
.label current_piece_gfx = $16
.label current_xpos = $18
.label current_piece_char = $19
.label current_orientation = $15
.label score_bcd = $f
.label current_ypos = $10
.label current_piece_gfx = $1a
.label current_xpos = $1c
.label current_piece_char = $1d
.label current_orientation = $19
.label level_bcd = $1e
.label render_screen_render = 3
.label render_screen_show = 2
.label current_piece = $13
.label lines_bcd = $11
.label score_bcd = $13
.label current_piece = $17
.label current_piece_12 = 5
.label render_screen_render_30 = 7
.label current_xpos_47 = 8
.label render_screen_render_30 = 9
.label current_xpos_47 = $a
.label current_piece_gfx_53 = 5
.label render_screen_render_64 = 7
.label current_xpos_112 = 8
.label current_xpos_113 = 8
.label render_screen_render_64 = 9
.label current_xpos_112 = $a
.label current_xpos_113 = $a
.label current_piece_gfx_102 = 5
.label current_piece_gfx_103 = 5
.label current_piece_76 = 5
@ -118,8 +120,8 @@ bbegin:
sta irq_cnt
jsr main
main: {
.label key_event = $d
.label render = $22
.label key_event = $f
.label render = $25
jsr sid_rnd_init
sei
jsr render_init
@ -145,11 +147,15 @@ main: {
sta current_piece
lda PIECES+1,y
sta current_piece+1
lda #1
sta level_bcd
lda #0
sta score_bcd
sta score_bcd+1
sta score_bcd+2
sta score_bcd+3
sta lines_bcd
sta lines_bcd+1
sta current_movedown_counter
sta keyboard_events_size
sta current_orientation
@ -208,42 +214,86 @@ render_screen_swap: {
rts
}
render_score: {
.const ZERO_CHAR = $33
.const SCREEN_SCORE_ROW = 5
.const SCREEN_SCORE_COL = $21
.label score_bytes = score_bcd
.label score_byte = 7
.label screen_score_pos = 5
.const score_offset = $28*5+$1c
.const lines_offset = $28*1+$16
.const level_offset = $28*$13+$1f
.label screen = 5
lda render_screen_render
cmp #0
beq b1
lda #<PLAYFIELD_SCREEN_2+$28*SCREEN_SCORE_ROW+SCREEN_SCORE_COL
sta screen_score_pos
lda #>PLAYFIELD_SCREEN_2+$28*SCREEN_SCORE_ROW+SCREEN_SCORE_COL
sta screen_score_pos+1
lda #<PLAYFIELD_SCREEN_2
sta screen
lda #>PLAYFIELD_SCREEN_2
sta screen+1
jmp b2
b1:
lda #<PLAYFIELD_SCREEN_1+$28*SCREEN_SCORE_ROW+SCREEN_SCORE_COL
sta screen_score_pos
lda #>PLAYFIELD_SCREEN_1+$28*SCREEN_SCORE_ROW+SCREEN_SCORE_COL
sta screen_score_pos+1
lda #<PLAYFIELD_SCREEN_1
sta screen
lda #>PLAYFIELD_SCREEN_1
sta screen+1
b2:
ldx #0
b3:
lda score_bytes,x
sta score_byte
lda #$f
and score_byte
clc
adc #ZERO_CHAR
ldx score_bytes+2
ldy #0
sta (screen_score_pos),y
lda screen_score_pos
bne !+
dec screen_score_pos+1
!:
dec screen_score_pos
lda score_byte
lda #<score_offset
sta render_bcd.offset
lda #>score_offset
sta render_bcd.offset+1
jsr render_bcd
ldx score_bytes+1
ldy #0
lda #<score_offset+2
sta render_bcd.offset
lda #>score_offset+2
sta render_bcd.offset+1
jsr render_bcd
ldx score_bytes
ldy #0
lda #<score_offset+4
sta render_bcd.offset
lda #>score_offset+4
sta render_bcd.offset+1
jsr render_bcd
lda lines_bcd+1
tax
ldy #1
lda #<lines_offset
sta render_bcd.offset
lda #>lines_offset
sta render_bcd.offset+1
jsr render_bcd
lda lines_bcd
tax
ldy #0
lda #<lines_offset+1
sta render_bcd.offset
lda #>lines_offset+1
sta render_bcd.offset+1
jsr render_bcd
ldx level_bcd
ldy #0
lda #<level_offset
sta render_bcd.offset
lda #>level_offset
sta render_bcd.offset+1
jsr render_bcd
rts
}
render_bcd: {
.const ZERO_CHAR = $33
.label screen = 5
.label screen_pos = 7
.label offset = 7
lda screen_pos
clc
adc screen
sta screen_pos
lda screen_pos+1
adc screen+1
sta screen_pos+1
cpy #0
bne b1
txa
lsr
lsr
lsr
@ -251,24 +301,31 @@ render_score: {
clc
adc #ZERO_CHAR
ldy #0
sta (screen_score_pos),y
lda screen_score_pos
sta (screen_pos),y
inc screen_pos
bne !+
dec screen_score_pos+1
inc screen_pos+1
!:
b1:
txa
and #$f
clc
adc #ZERO_CHAR
ldy #0
sta (screen_pos),y
inc screen_pos
bne !+
inc screen_pos+1
!:
dec screen_score_pos
inx
cpx #3
bne b3
rts
}
render_current: {
.label ypos2 = 9
.label screen_line = $1b
.label xpos = $c
.label i = $b
.label l = $a
.label c = $d
.label ypos2 = $b
.label screen_line = 7
.label xpos = $e
.label i = $d
.label l = $c
.label c = $f
tya
asl
sta ypos2
@ -336,9 +393,9 @@ render_current: {
}
render_playfield: {
.label screen_line = 5
.label i = 8
.label c = 9
.label l = 7
.label i = $a
.label c = $b
.label l = 9
lda #PLAYFIELD_COLS*2
sta i
lda #2
@ -377,7 +434,7 @@ render_playfield: {
rts
}
play_move_rotate: {
.label orientation = 7
.label orientation = 9
cmp #KEY_Z
beq b1
cmp #KEY_X
@ -423,17 +480,17 @@ play_move_rotate: {
jmp b4
}
play_collision: {
.label xpos = 8
.label xpos = $a
.label piece_gfx = 5
.label ypos2 = 9
.label playfield_line = $1b
.label i = $23
.label col = $c
.label l = $a
.label i_2 = $b
.label i_3 = $b
.label i_11 = $b
.label i_13 = $b
.label ypos2 = $b
.label playfield_line = 7
.label i = $26
.label col = $e
.label l = $c
.label i_2 = $d
.label i_3 = $d
.label i_11 = $d
.label i_13 = $d
txa
clc
adc piece_gfx
@ -596,6 +653,7 @@ play_move_down: {
jsr play_lock_current
jsr play_remove_lines
lda play_remove_lines.removed
tax
jsr play_update_score
jsr play_spawn_current
ldy play_spawn_current._3
@ -650,9 +708,11 @@ sid_rnd: {
rts
}
play_update_score: {
.label add_bcd = $24
cmp #0
.label add_bcd = $27
.label lines_before = 4
cpx #0
beq breturn
txa
asl
asl
tay
@ -664,7 +724,17 @@ play_update_score: {
sta add_bcd+2
lda score_add_bcd+3,y
sta add_bcd+3
lda lines_bcd
and #$f0
sta lines_before
sed
txa
clc
adc lines_bcd
sta lines_bcd
lda #0
adc lines_bcd+1
sta lines_bcd+1
lda score_bcd
clc
adc add_bcd
@ -678,16 +748,22 @@ play_update_score: {
lda score_bcd+3
adc add_bcd+3
sta score_bcd+3
lda lines_bcd
and #$f0
cmp lines_before
beq b2
inc level_bcd
b2:
cld
breturn:
rts
}
play_remove_lines: {
.label c = $a
.label x = 8
.label c = $c
.label x = $a
.label y = 4
.label removed = 7
.label full = 9
.label removed = 9
.label full = $b
lda #0
sta removed
sta y
@ -738,15 +814,15 @@ play_remove_lines: {
jmp b5
}
play_lock_current: {
.label ypos2 = $e
.label ypos2 = $10
.label playfield_line = 5
.label col = 8
.label i = 9
.label col = $a
.label i = $b
.label l = 4
.label i_2 = 7
.label i_3 = 7
.label i_7 = 7
.label i_9 = 7
.label i_2 = 9
.label i_3 = 9
.label i_7 = 9
.label i_9 = 9
asl ypos2
lda #0
sta l
@ -795,8 +871,8 @@ play_lock_current: {
jmp b2
}
keyboard_event_pressed: {
.label row_bits = 8
.label keycode = 7
.label row_bits = $a
.label keycode = 9
lda keycode
lsr
lsr
@ -825,9 +901,9 @@ keyboard_event_get: {
rts
}
keyboard_event_scan: {
.label row_scan = 9
.label keycode = 8
.label row = 7
.label row_scan = $b
.label keycode = $a
.label row = 9
lda #0
sta keycode
sta row
@ -1038,7 +1114,7 @@ sprites_init: {
render_init: {
.const vicSelectGfxBank1_toDd001_return = 3^(>PLAYFIELD_CHARSET)>>6
.label li_1 = 5
.label li_2 = $13
.label li_2 = 7
lda #3
sta CIA2_PORT_A_DDR
lda #vicSelectGfxBank1_toDd001_return
@ -1109,10 +1185,10 @@ render_init: {
}
render_screen_original: {
.const SPACE = 0
.label screen = $16
.label cols = $1b
.label screen = $11
.label cols = $17
.label oscr = 5
.label ocols = $13
.label ocols = 7
.label y = 2
lda #0
sta y

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,8 +1,8 @@
(label) @14
(label) @21
(label) @22
(label) @34
(label) @23
(label) @35
(label) @36
(label) @begin
(label) @end
(byte*) BGCOL
@ -286,77 +286,77 @@
(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:21 3.371428571428571
(byte) current_orientation#14 current_orientation zp ZP_BYTE:21 0.32653061224489793
(byte) current_orientation#19 current_orientation zp ZP_BYTE:21 6.210526315789475
(byte) current_orientation#29 current_orientation zp ZP_BYTE:21 4.0
(byte) current_orientation#4 current_orientation zp ZP_BYTE:21 3.0
(byte) current_orientation#10 current_orientation zp ZP_BYTE:25 3.371428571428571
(byte) current_orientation#14 current_orientation zp ZP_BYTE:25 0.32653061224489793
(byte) current_orientation#19 current_orientation zp ZP_BYTE:25 6.210526315789475
(byte) current_orientation#29 current_orientation zp ZP_BYTE:25 4.0
(byte) current_orientation#4 current_orientation zp ZP_BYTE:25 3.0
(byte*) current_piece
(byte*) current_piece#10 current_piece zp ZP_WORD:19 1.771428571428571
(byte*) current_piece#10 current_piece zp ZP_WORD:23 1.771428571428571
(byte*) current_piece#12 current_piece#12 zp ZP_WORD:5 10.0
(byte*) current_piece#16 current_piece zp ZP_WORD:19 3.428571428571428
(byte*) current_piece#20 current_piece zp ZP_WORD:19 6.0
(byte*~) current_piece#73 current_piece zp ZP_WORD:19 4.0
(byte*) current_piece#16 current_piece zp ZP_WORD:23 3.428571428571428
(byte*) current_piece#20 current_piece zp ZP_WORD:23 6.0
(byte*~) current_piece#73 current_piece zp ZP_WORD:23 4.0
(byte*~) current_piece#76 current_piece#76 zp ZP_WORD:5 4.0
(byte*~) current_piece#77 current_piece#77 zp ZP_WORD:5 4.0
(byte*~) current_piece#78 current_piece#78 zp ZP_WORD:5 4.0
(byte*~) current_piece#79 current_piece#79 zp ZP_WORD:5 4.0
(byte*~) current_piece#80 current_piece zp ZP_WORD:19 4.0
(byte*~) current_piece#80 current_piece zp ZP_WORD:23 4.0
(byte) current_piece_char
(byte) current_piece_char#1 current_piece_char zp ZP_BYTE:25 4.379310344827585
(byte) current_piece_char#12 current_piece_char zp ZP_BYTE:25 0.6153846153846154
(byte) current_piece_char#15 current_piece_char zp ZP_BYTE:25 194.59615384615384
(byte) current_piece_char#20 current_piece_char zp ZP_BYTE:25 6.0
(byte) current_piece_char#1 current_piece_char zp ZP_BYTE:29 4.379310344827585
(byte) current_piece_char#12 current_piece_char zp ZP_BYTE:29 0.6153846153846154
(byte) current_piece_char#15 current_piece_char zp ZP_BYTE:29 194.59615384615384
(byte) current_piece_char#20 current_piece_char zp ZP_BYTE:29 6.0
(byte) current_piece_char#64 reg byte x 46.09090909090909
(byte~) current_piece_char#90 reg byte x 4.0
(byte~) current_piece_char#91 reg byte x 22.0
(byte*) current_piece_gfx
(byte*) current_piece_gfx#1 current_piece_gfx zp ZP_WORD:22 0.2962962962962963
(byte*) current_piece_gfx#1 current_piece_gfx zp ZP_WORD:26 0.2962962962962963
(byte*~) current_piece_gfx#102 current_piece_gfx#102 zp ZP_WORD:5 2.0
(byte*~) current_piece_gfx#103 current_piece_gfx#103 zp ZP_WORD:5 11.0
(byte*) current_piece_gfx#14 current_piece_gfx zp ZP_WORD:22 6.789473684210528
(byte*) current_piece_gfx#16 current_piece_gfx zp ZP_WORD:22 0.5
(byte*) current_piece_gfx#20 current_piece_gfx zp ZP_WORD:22 194.59615384615384
(byte*) current_piece_gfx#26 current_piece_gfx zp ZP_WORD:22 6.0
(byte*) current_piece_gfx#3 current_piece_gfx zp ZP_WORD:22 4.0
(byte*) current_piece_gfx#14 current_piece_gfx zp ZP_WORD:26 6.789473684210528
(byte*) current_piece_gfx#16 current_piece_gfx zp ZP_WORD:26 0.5
(byte*) current_piece_gfx#20 current_piece_gfx zp ZP_WORD:26 194.59615384615384
(byte*) current_piece_gfx#26 current_piece_gfx zp ZP_WORD:26 6.0
(byte*) current_piece_gfx#3 current_piece_gfx zp ZP_WORD:26 4.0
(byte*) current_piece_gfx#53 current_piece_gfx#53 zp ZP_WORD:5 46.09090909090909
(byte) current_xpos
(byte) current_xpos#1 current_xpos zp ZP_BYTE:24 0.72
(byte) current_xpos#10 current_xpos zp ZP_BYTE:24 21.557692307692307
(byte~) current_xpos#112 current_xpos#112 zp ZP_BYTE:8 1.3333333333333333
(byte~) current_xpos#113 current_xpos#113 zp ZP_BYTE:8 7.333333333333333
(byte) current_xpos#19 current_xpos zp ZP_BYTE:24 3.139534883720931
(byte) current_xpos#2 current_xpos zp ZP_BYTE:24 4.0
(byte) current_xpos#23 current_xpos zp ZP_BYTE:24 0.5333333333333333
(byte) current_xpos#33 current_xpos zp ZP_BYTE:24 6.0
(byte) current_xpos#4 current_xpos zp ZP_BYTE:24 4.0
(byte) current_xpos#47 current_xpos#47 zp ZP_BYTE:8 5.181818181818182
(byte) current_xpos#1 current_xpos zp ZP_BYTE:28 0.72
(byte) current_xpos#10 current_xpos zp ZP_BYTE:28 21.557692307692307
(byte~) current_xpos#112 current_xpos#112 zp ZP_BYTE:10 1.3333333333333333
(byte~) current_xpos#113 current_xpos#113 zp ZP_BYTE:10 7.333333333333333
(byte) current_xpos#19 current_xpos zp ZP_BYTE:28 3.139534883720931
(byte) current_xpos#2 current_xpos zp ZP_BYTE:28 4.0
(byte) current_xpos#23 current_xpos zp ZP_BYTE:28 0.5333333333333333
(byte) current_xpos#33 current_xpos zp ZP_BYTE:28 6.0
(byte) current_xpos#4 current_xpos zp ZP_BYTE:28 4.0
(byte) current_xpos#47 current_xpos#47 zp ZP_BYTE:10 5.181818181818182
(byte) current_ypos
(byte) current_ypos#0 current_ypos zp ZP_BYTE:14 4.0
(byte) current_ypos#13 current_ypos zp ZP_BYTE:14 1.8999999999999995
(byte) current_ypos#18 current_ypos zp ZP_BYTE:14 0.5714285714285714
(byte) current_ypos#21 current_ypos zp ZP_BYTE:14 3.485714285714285
(byte) current_ypos#29 current_ypos zp ZP_BYTE:14 6.0
(byte) current_ypos#0 current_ypos zp ZP_BYTE:16 4.0
(byte) current_ypos#13 current_ypos zp ZP_BYTE:16 1.8999999999999995
(byte) current_ypos#18 current_ypos zp ZP_BYTE:16 0.5714285714285714
(byte) current_ypos#21 current_ypos zp ZP_BYTE:16 3.485714285714285
(byte) current_ypos#29 current_ypos zp ZP_BYTE:16 6.0
(byte~) current_ypos#86 reg byte y 1.0
(byte~) current_ypos#87 reg byte y 4.4
(byte) current_ypos#9 reg byte y 15.0
(byte) irq_cnt
(byte) irq_cnt#0 irq_cnt zp ZP_BYTE:33 0.19047619047619047
(byte) irq_cnt#1 irq_cnt zp ZP_BYTE:33 4.0
(byte) irq_cnt#14 irq_cnt zp ZP_BYTE:33 20.0
(byte) irq_cnt#0 irq_cnt zp ZP_BYTE:36 0.19047619047619047
(byte) irq_cnt#1 irq_cnt zp ZP_BYTE:36 4.0
(byte) irq_cnt#14 irq_cnt zp ZP_BYTE:36 20.0
(byte) irq_raster_next
(byte) irq_raster_next#0 irq_raster_next zp ZP_BYTE:29 0.17391304347826086
(byte) irq_raster_next#1 irq_raster_next zp ZP_BYTE:29 1.0
(byte) irq_raster_next#13 irq_raster_next zp ZP_BYTE:29 6.0
(byte) irq_raster_next#2 irq_raster_next zp ZP_BYTE:29 1.3333333333333333
(byte) irq_raster_next#0 irq_raster_next zp ZP_BYTE:32 0.17391304347826086
(byte) irq_raster_next#1 irq_raster_next zp ZP_BYTE:32 1.0
(byte) irq_raster_next#13 irq_raster_next zp ZP_BYTE:32 6.0
(byte) irq_raster_next#2 irq_raster_next zp ZP_BYTE:32 1.3333333333333333
(byte) irq_sprite_ptr
(byte) irq_sprite_ptr#0 irq_sprite_ptr zp ZP_BYTE:32 0.24
(byte) irq_sprite_ptr#1 irq_sprite_ptr zp ZP_BYTE:32 20.0
(byte) irq_sprite_ptr#2 irq_sprite_ptr zp ZP_BYTE:32 20.0
(byte) irq_sprite_ptr#0 irq_sprite_ptr zp ZP_BYTE:35 0.24
(byte) irq_sprite_ptr#1 irq_sprite_ptr zp ZP_BYTE:35 20.0
(byte) irq_sprite_ptr#2 irq_sprite_ptr zp ZP_BYTE:35 20.0
(byte) irq_sprite_ypos
(byte) irq_sprite_ypos#0 irq_sprite_ypos zp ZP_BYTE:31 0.7083333333333334
(byte) irq_sprite_ypos#1 irq_sprite_ypos zp ZP_BYTE:31 20.0
(byte) irq_sprite_ypos#2 irq_sprite_ypos zp ZP_BYTE:31 20.0
(byte) irq_sprite_ypos#0 irq_sprite_ypos zp ZP_BYTE:34 0.7083333333333334
(byte) irq_sprite_ypos#1 irq_sprite_ypos zp ZP_BYTE:34 20.0
(byte) irq_sprite_ypos#2 irq_sprite_ypos zp ZP_BYTE:34 20.0
(byte[]) keyboard_char_keycodes
(byte()) keyboard_event_get()
(label) keyboard_event_get::@3
@ -370,7 +370,7 @@
(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:7 1.3333333333333333
(byte) keyboard_event_pressed::keycode#5 keycode zp ZP_BYTE:9 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
@ -379,7 +379,7 @@
(byte) keyboard_event_pressed::return#12 reg byte a 4.0
(byte) keyboard_event_pressed::return#2 reg byte a 4.0
(byte) keyboard_event_pressed::row_bits
(byte) keyboard_event_pressed::row_bits#0 row_bits zp ZP_BYTE:8 2.0
(byte) keyboard_event_pressed::row_bits#0 row_bits zp ZP_BYTE:10 2.0
(void()) keyboard_event_scan()
(byte/word/dword~) keyboard_event_scan::$11 reg byte a 20002.0
(byte~) keyboard_event_scan::$14 reg byte a 4.0
@ -418,28 +418,28 @@
(byte) keyboard_event_scan::event_type
(byte) keyboard_event_scan::event_type#0 reg byte a 20002.0
(byte) keyboard_event_scan::keycode
(byte) keyboard_event_scan::keycode#1 keycode zp ZP_BYTE:8 2002.0
(byte) keyboard_event_scan::keycode#10 keycode zp ZP_BYTE:8 3154.230769230769
(byte) keyboard_event_scan::keycode#11 keycode zp ZP_BYTE:8 500.5
(byte) keyboard_event_scan::keycode#14 keycode zp ZP_BYTE:8 1001.0
(byte) keyboard_event_scan::keycode#15 keycode zp ZP_BYTE:8 5250.75
(byte) keyboard_event_scan::keycode#1 keycode zp ZP_BYTE:10 2002.0
(byte) keyboard_event_scan::keycode#10 keycode zp ZP_BYTE:10 3154.230769230769
(byte) keyboard_event_scan::keycode#11 keycode zp ZP_BYTE:10 500.5
(byte) keyboard_event_scan::keycode#14 keycode zp ZP_BYTE:10 1001.0
(byte) keyboard_event_scan::keycode#15 keycode zp ZP_BYTE:10 5250.75
(byte) keyboard_event_scan::row
(byte) keyboard_event_scan::row#1 row zp ZP_BYTE:7 1501.5
(byte) keyboard_event_scan::row#2 row zp ZP_BYTE:7 600.24
(byte) keyboard_event_scan::row#1 row zp ZP_BYTE:9 1501.5
(byte) keyboard_event_scan::row#2 row zp ZP_BYTE:9 600.24
(byte) keyboard_event_scan::row_scan
(byte) keyboard_event_scan::row_scan#0 row_scan zp ZP_BYTE:9 1278.0555555555554
(byte) keyboard_event_scan::row_scan#0 row_scan zp ZP_BYTE:11 1278.0555555555554
(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:26 20002.0
(byte) keyboard_events_size#10 keyboard_events_size zp ZP_BYTE:26 8100.9000000000015
(byte) keyboard_events_size#13 keyboard_events_size zp ZP_BYTE:26 97.06451612903226
(byte) keyboard_events_size#16 keyboard_events_size zp ZP_BYTE:26 3.515151515151515
(byte) keyboard_events_size#19 keyboard_events_size zp ZP_BYTE:26 18.999999999999996
(byte) keyboard_events_size#2 keyboard_events_size zp ZP_BYTE:26 20002.0
(byte) keyboard_events_size#29 keyboard_events_size zp ZP_BYTE:26 429.2857142857143
(byte) keyboard_events_size#30 keyboard_events_size zp ZP_BYTE:26 10201.2
(byte) keyboard_events_size#4 keyboard_events_size zp ZP_BYTE:26 3.0
(byte) keyboard_events_size#1 keyboard_events_size zp ZP_BYTE:31 20002.0
(byte) keyboard_events_size#10 keyboard_events_size zp ZP_BYTE:31 8100.9000000000015
(byte) keyboard_events_size#13 keyboard_events_size zp ZP_BYTE:31 97.06451612903226
(byte) keyboard_events_size#16 keyboard_events_size zp ZP_BYTE:31 3.515151515151515
(byte) keyboard_events_size#19 keyboard_events_size zp ZP_BYTE:31 18.999999999999996
(byte) keyboard_events_size#2 keyboard_events_size zp ZP_BYTE:31 20002.0
(byte) keyboard_events_size#29 keyboard_events_size zp ZP_BYTE:31 429.2857142857143
(byte) keyboard_events_size#30 keyboard_events_size zp ZP_BYTE:31 10201.2
(byte) keyboard_events_size#4 keyboard_events_size zp ZP_BYTE:31 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)
@ -461,6 +461,19 @@
(byte) keyboard_modifiers#5 reg byte a 20.0
(byte[8]) keyboard_scan_values
(const byte[8]) keyboard_scan_values#0 keyboard_scan_values = { fill( 8, 0) }
(byte) level_bcd
(byte) level_bcd#10 level_bcd zp ZP_BYTE:30 2.313725490196078
(byte) level_bcd#12 level_bcd zp ZP_BYTE:30 1.0
(byte) level_bcd#14 level_bcd zp ZP_BYTE:30 2.30188679245283
(byte) level_bcd#19 level_bcd zp ZP_BYTE:30 6.0
(byte) level_bcd#22 level_bcd zp ZP_BYTE:30 3.0
(byte) level_bcd#3 level_bcd zp ZP_BYTE:30 4.0
(word) lines_bcd
(word) lines_bcd#11 lines_bcd zp ZP_WORD:17 2.352941176470588
(word) lines_bcd#13 lines_bcd zp ZP_WORD:17 1.0
(word) lines_bcd#15 lines_bcd zp ZP_WORD:17 2.5416666666666656
(word) lines_bcd#20 lines_bcd zp ZP_WORD:17 6.0
(word) lines_bcd#23 lines_bcd zp ZP_WORD:17 0.75
(void()) main()
(byte~) main::$12 reg byte a 202.0
(byte~) main::$13 reg byte a 202.0
@ -486,10 +499,10 @@
(label) main::@4
(label) main::@6
(byte) main::key_event
(byte) main::key_event#0 key_event zp ZP_BYTE:13 36.72727272727273
(byte) main::key_event#0 key_event zp ZP_BYTE:15 36.72727272727273
(byte) main::render
(byte) main::render#1 render zp ZP_BYTE:34 40.4
(byte) main::render#2 render zp ZP_BYTE:34 40.4
(byte) main::render#1 render zp ZP_BYTE:37 40.4
(byte) main::render#2 render zp ZP_BYTE:37 40.4
(byte) main::render#3 reg byte a 202.0
(byte()) play_collision((byte) play_collision::xpos , (byte) play_collision::ypos , (byte) play_collision::orientation)
(byte~) play_collision::$7 reg byte a 20002.0
@ -508,18 +521,18 @@
(byte) play_collision::c#1 reg byte x 10001.0
(byte) play_collision::c#2 reg byte x 2222.4444444444443
(byte) play_collision::col
(byte) play_collision::col#1 col zp ZP_BYTE:12 5000.5
(byte) play_collision::col#2 col zp ZP_BYTE:12 6375.75
(byte~) play_collision::col#9 col zp ZP_BYTE:12 2002.0
(byte) play_collision::col#1 col zp ZP_BYTE:14 5000.5
(byte) play_collision::col#2 col zp ZP_BYTE:14 6375.75
(byte~) play_collision::col#9 col zp ZP_BYTE:14 2002.0
(byte) play_collision::i
(byte) play_collision::i#1 i zp ZP_BYTE:35 1615.6153846153845
(byte~) play_collision::i#11 i#11 zp ZP_BYTE:11 2002.0
(byte~) play_collision::i#13 i#13 zp ZP_BYTE:11 20002.0
(byte) play_collision::i#2 i#2 zp ZP_BYTE:11 15502.0
(byte) play_collision::i#3 i#3 zp ZP_BYTE:11 667.3333333333334
(byte) play_collision::i#1 i zp ZP_BYTE:38 1615.6153846153845
(byte~) play_collision::i#11 i#11 zp ZP_BYTE:13 2002.0
(byte~) play_collision::i#13 i#13 zp ZP_BYTE:13 20002.0
(byte) play_collision::i#2 i#2 zp ZP_BYTE:13 15502.0
(byte) play_collision::i#3 i#3 zp ZP_BYTE:13 667.3333333333334
(byte) play_collision::l
(byte) play_collision::l#1 l zp ZP_BYTE:10 1001.0
(byte) play_collision::l#6 l zp ZP_BYTE:10 125.125
(byte) play_collision::l#1 l zp ZP_BYTE:12 1001.0
(byte) play_collision::l#6 l zp ZP_BYTE:12 125.125
(byte) play_collision::orientation
(byte) play_collision::orientation#0 reg byte x 2.0
(byte) play_collision::orientation#1 reg byte x 2.0
@ -529,7 +542,7 @@
(byte*) play_collision::piece_gfx
(byte*) play_collision::piece_gfx#0 piece_gfx zp ZP_WORD:5 476.3333333333333
(byte*) play_collision::playfield_line
(byte*) play_collision::playfield_line#0 playfield_line zp ZP_WORD:27 785.8571428571429
(byte*) play_collision::playfield_line#0 playfield_line zp ZP_WORD:7 785.8571428571429
(byte) play_collision::return
(byte) play_collision::return#0 reg byte a 4.0
(byte) play_collision::return#1 reg byte a 4.0
@ -537,11 +550,11 @@
(byte) play_collision::return#13 reg byte a 4.0
(byte) play_collision::return#14 reg byte a 1.3333333333333333
(byte) play_collision::xpos
(byte) play_collision::xpos#0 xpos zp ZP_BYTE:8 1.3333333333333333
(byte) play_collision::xpos#1 xpos zp ZP_BYTE:8 1.0
(byte) play_collision::xpos#2 xpos zp ZP_BYTE:8 1.0
(byte) play_collision::xpos#3 xpos zp ZP_BYTE:8 1.0
(byte) play_collision::xpos#5 xpos zp ZP_BYTE:8 45.86363636363637
(byte) play_collision::xpos#0 xpos zp ZP_BYTE:10 1.3333333333333333
(byte) play_collision::xpos#1 xpos zp ZP_BYTE:10 1.0
(byte) play_collision::xpos#2 xpos zp ZP_BYTE:10 1.0
(byte) play_collision::xpos#3 xpos zp ZP_BYTE:10 1.0
(byte) play_collision::xpos#5 xpos zp ZP_BYTE:10 45.86363636363637
(byte) play_collision::ypos
(byte) play_collision::ypos#0 reg byte y 1.0
(byte) play_collision::ypos#1 reg byte y 1.3333333333333333
@ -549,9 +562,9 @@
(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:9 4.0
(byte) play_collision::ypos2#1 ypos2 zp ZP_BYTE:9 500.5
(byte) play_collision::ypos2#2 ypos2 zp ZP_BYTE:9 867.0666666666667
(byte) play_collision::ypos2#0 ypos2 zp ZP_BYTE:11 4.0
(byte) play_collision::ypos2#1 ypos2 zp ZP_BYTE:11 500.5
(byte) play_collision::ypos2#2 ypos2 zp ZP_BYTE:11 867.0666666666667
(void()) play_init()
(byte~) play_init::$1 reg byte a 22.0
(label) play_init::@1
@ -579,24 +592,24 @@
(byte) play_lock_current::c#1 reg byte x 10001.0
(byte) play_lock_current::c#2 reg byte x 4000.4
(byte) play_lock_current::col
(byte) play_lock_current::col#0 col zp ZP_BYTE:8 2002.0
(byte) play_lock_current::col#1 col zp ZP_BYTE:8 5000.5
(byte) play_lock_current::col#2 col zp ZP_BYTE:8 7751.0
(byte) play_lock_current::col#0 col zp ZP_BYTE:10 2002.0
(byte) play_lock_current::col#1 col zp ZP_BYTE:10 5000.5
(byte) play_lock_current::col#2 col zp ZP_BYTE:10 7751.0
(byte) play_lock_current::i
(byte) play_lock_current::i#1 i zp ZP_BYTE:9 2333.6666666666665
(byte) play_lock_current::i#2 i#2 zp ZP_BYTE:7 15502.0
(byte) play_lock_current::i#3 i#3 zp ZP_BYTE:7 667.3333333333334
(byte~) play_lock_current::i#7 i#7 zp ZP_BYTE:7 2002.0
(byte~) play_lock_current::i#9 i#9 zp ZP_BYTE:7 20002.0
(byte) play_lock_current::i#1 i zp ZP_BYTE:11 2333.6666666666665
(byte) play_lock_current::i#2 i#2 zp ZP_BYTE:9 15502.0
(byte) play_lock_current::i#3 i#3 zp ZP_BYTE:9 667.3333333333334
(byte~) play_lock_current::i#7 i#7 zp ZP_BYTE:9 2002.0
(byte~) play_lock_current::i#9 i#9 zp ZP_BYTE:9 20002.0
(byte) play_lock_current::l
(byte) play_lock_current::l#1 l zp ZP_BYTE:4 1001.0
(byte) play_lock_current::l#6 l zp ZP_BYTE:4 166.83333333333334
(byte*) play_lock_current::playfield_line
(byte*) play_lock_current::playfield_line#0 playfield_line zp ZP_WORD:5 1100.2
(byte) play_lock_current::ypos2
(byte) play_lock_current::ypos2#0 ypos2 zp ZP_BYTE:14 4.0
(byte) play_lock_current::ypos2#1 ypos2 zp ZP_BYTE:14 500.5
(byte) play_lock_current::ypos2#2 ypos2 zp ZP_BYTE:14 273.1818181818182
(byte) play_lock_current::ypos2#0 ypos2 zp ZP_BYTE:16 4.0
(byte) play_lock_current::ypos2#1 ypos2 zp ZP_BYTE:16 500.5
(byte) play_lock_current::ypos2#2 ypos2 zp ZP_BYTE:16 273.1818181818182
(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
@ -660,9 +673,9 @@
(byte) play_move_rotate::key_event
(byte) play_move_rotate::key_event#0 reg byte a 52.5
(byte) play_move_rotate::orientation
(byte) play_move_rotate::orientation#1 orientation zp ZP_BYTE:7 4.0
(byte) play_move_rotate::orientation#2 orientation zp ZP_BYTE:7 4.0
(byte) play_move_rotate::orientation#3 orientation zp ZP_BYTE:7 0.8888888888888888
(byte) play_move_rotate::orientation#1 orientation zp ZP_BYTE:9 4.0
(byte) play_move_rotate::orientation#2 orientation zp ZP_BYTE:9 4.0
(byte) play_move_rotate::orientation#3 orientation zp ZP_BYTE:9 0.8888888888888888
(byte) play_move_rotate::return
(byte) play_move_rotate::return#1 reg byte a 33.666666666666664
(byte) play_move_rotate::return#4 reg byte a 202.0
@ -678,18 +691,18 @@
(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:10 6000.6
(byte) play_remove_lines::c#0 c zp ZP_BYTE:12 6000.6
(byte) play_remove_lines::full
(byte) play_remove_lines::full#2 full zp ZP_BYTE:9 4200.6
(byte) play_remove_lines::full#4 full zp ZP_BYTE:9 4000.4
(byte) play_remove_lines::full#2 full zp ZP_BYTE:11 4200.6
(byte) play_remove_lines::full#4 full zp ZP_BYTE:11 4000.4
(byte) play_remove_lines::r
(byte) play_remove_lines::r#1 reg byte y 1500.2142857142858
(byte) play_remove_lines::r#2 reg byte y 15502.0
(byte) play_remove_lines::r#3 reg byte y 2002.0
(byte) play_remove_lines::removed
(byte) play_remove_lines::removed#1 removed zp ZP_BYTE:7 2002.0
(byte) play_remove_lines::removed#11 removed zp ZP_BYTE:7 231.0
(byte) play_remove_lines::removed#7 removed zp ZP_BYTE:7 333.8888888888889
(byte) play_remove_lines::removed#1 removed zp ZP_BYTE:9 2002.0
(byte) play_remove_lines::removed#11 removed zp ZP_BYTE:9 231.0
(byte) play_remove_lines::removed#7 removed zp ZP_BYTE:9 333.8888888888889
(byte) play_remove_lines::return
(byte) play_remove_lines::return#0 reg byte a 4.0
(byte) play_remove_lines::w
@ -701,8 +714,8 @@
(byte) play_remove_lines::w#4 reg byte x 4429.142857142857
(byte) play_remove_lines::w#6 reg byte x 1668.3333333333335
(byte) play_remove_lines::x
(byte) play_remove_lines::x#1 x zp ZP_BYTE:8 15001.5
(byte) play_remove_lines::x#2 x zp ZP_BYTE:8 2500.25
(byte) play_remove_lines::x#1 x zp ZP_BYTE:10 15001.5
(byte) play_remove_lines::x#2 x zp ZP_BYTE:10 2500.25
(byte) play_remove_lines::y
(byte) play_remove_lines::y#1 y zp ZP_BYTE:4 1501.5
(byte) play_remove_lines::y#8 y zp ZP_BYTE:4 133.46666666666667
@ -719,18 +732,61 @@
(byte) play_spawn_current::piece_idx#2 reg byte x 334.99999999999994
(void()) play_update_score((byte) play_update_score::removed)
(byte~) play_update_score::$2 reg byte a 4.0
(byte~) play_update_score::$3 reg byte a 4.0
(byte~) play_update_score::$5 reg byte a 4.0
(label) play_update_score::@2
(label) play_update_score::@3
(label) play_update_score::@4
(label) play_update_score::@return
(dword) play_update_score::add_bcd
(dword) play_update_score::add_bcd#0 add_bcd zp ZP_DWORD:36 2.0
(dword) play_update_score::add_bcd#0 add_bcd zp ZP_DWORD:39 0.8
(byte) play_update_score::lines_after
(byte) play_update_score::lines_after#0 reg byte a 4.0
(byte) play_update_score::lines_before
(byte) play_update_score::lines_before#0 lines_before zp ZP_BYTE:4 0.6666666666666666
(byte) play_update_score::removed
(byte) play_update_score::removed#0 reg byte a 3.0
(byte) play_update_score::removed#0 reg byte x 1.1428571428571428
(byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield
(const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 playfield = { fill( PLAYFIELD_LINES#0*PLAYFIELD_COLS#0, 0) }
(byte*[PLAYFIELD_LINES#0]) playfield_lines
(const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 playfield_lines = { fill( PLAYFIELD_LINES#0, 0) }
(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_bcd((byte*) render_bcd::screen , (word) render_bcd::offset , (byte) render_bcd::bcd , (byte) render_bcd::only_low)
(byte~) render_bcd::$3 reg byte a 4.0
(byte~) render_bcd::$4 reg byte a 4.0
(byte~) render_bcd::$5 reg byte a 4.0
(byte~) render_bcd::$6 reg byte a 4.0
(label) render_bcd::@1
(label) render_bcd::@2
(label) render_bcd::@return
(byte) render_bcd::ZERO_CHAR
(const byte) render_bcd::ZERO_CHAR#0 ZERO_CHAR = (byte/signed byte/word/signed word/dword/signed dword) 51
(byte) render_bcd::bcd
(byte) render_bcd::bcd#0 reg byte x 4.0
(byte) render_bcd::bcd#1 reg byte x 4.0
(byte) render_bcd::bcd#2 reg byte x 4.0
(byte) render_bcd::bcd#3 reg byte x 2.0
(byte) render_bcd::bcd#4 reg byte x 2.0
(byte) render_bcd::bcd#5 reg byte x 4.0
(byte) render_bcd::bcd#6 reg byte x 2.0
(word) render_bcd::offset
(word) render_bcd::offset#6 offset zp ZP_WORD:7 2.0
(byte) render_bcd::only_low
(byte) render_bcd::only_low#6 reg byte y 1.0
(byte*) render_bcd::screen
(byte*) render_bcd::screen#0 screen zp ZP_WORD:5 2.0
(byte*) render_bcd::screen#1 screen zp ZP_WORD:5 2.0
(byte*) render_bcd::screen#2 screen zp ZP_WORD:5 2.0
(byte*) render_bcd::screen#3 screen zp ZP_WORD:5 4.0
(byte*) render_bcd::screen#4 screen zp ZP_WORD:5 4.0
(byte*) render_bcd::screen#5 screen zp ZP_WORD:5 2.0
(byte*) render_bcd::screen#6 screen zp ZP_WORD:5 14.0
(byte*) render_bcd::screen_pos
(byte*) render_bcd::screen_pos#0 screen_pos zp ZP_WORD:7 1.6
(byte*) render_bcd::screen_pos#1 screen_pos zp ZP_WORD:7 20.0
(byte*) render_bcd::screen_pos#2 screen_pos zp ZP_WORD:7 4.0
(byte*) render_bcd::screen_pos#3 screen_pos zp ZP_WORD:7 2.0
(void()) render_current()
(byte~) render_current::$5 reg byte a 202.0
(label) render_current::@1
@ -744,29 +800,29 @@
(label) render_current::@9
(label) render_current::@return
(byte) render_current::c
(byte) render_current::c#1 c zp ZP_BYTE:13 1501.5
(byte) render_current::c#2 c zp ZP_BYTE:13 286.0
(byte) render_current::c#1 c zp ZP_BYTE:15 1501.5
(byte) render_current::c#2 c zp ZP_BYTE:15 286.0
(byte) render_current::current_cell
(byte) render_current::current_cell#0 reg byte a 1001.0
(byte) render_current::i
(byte) render_current::i#1 i zp ZP_BYTE:11 202.0
(byte) render_current::i#10 i zp ZP_BYTE:11 429.0
(byte) render_current::i#3 i zp ZP_BYTE:11 50.5
(byte) render_current::i#4 i zp ZP_BYTE:11 1552.0
(byte) render_current::i#8 i zp ZP_BYTE:11 300.75
(byte) render_current::i#1 i zp ZP_BYTE:13 202.0
(byte) render_current::i#10 i zp ZP_BYTE:13 429.0
(byte) render_current::i#3 i zp ZP_BYTE:13 50.5
(byte) render_current::i#4 i zp ZP_BYTE:13 1552.0
(byte) render_current::i#8 i zp ZP_BYTE:13 300.75
(byte) render_current::l
(byte) render_current::l#1 l zp ZP_BYTE:10 151.5
(byte) render_current::l#4 l zp ZP_BYTE:10 11.222222222222221
(byte) render_current::l#1 l zp ZP_BYTE:12 151.5
(byte) render_current::l#4 l zp ZP_BYTE:12 11.222222222222221
(byte*) render_current::screen_line
(byte*) render_current::screen_line#0 screen_line zp ZP_WORD:27 100.18181818181819
(byte*) render_current::screen_line#0 screen_line zp ZP_WORD:7 100.18181818181819
(byte) render_current::xpos
(byte) render_current::xpos#0 xpos zp ZP_BYTE:12 202.0
(byte) render_current::xpos#1 xpos zp ZP_BYTE:12 667.3333333333334
(byte) render_current::xpos#2 xpos zp ZP_BYTE:12 684.1666666666667
(byte) render_current::xpos#0 xpos zp ZP_BYTE:14 202.0
(byte) render_current::xpos#1 xpos zp ZP_BYTE:14 667.3333333333334
(byte) render_current::xpos#2 xpos zp ZP_BYTE:14 684.1666666666667
(byte) render_current::ypos2
(byte) render_current::ypos2#0 ypos2 zp ZP_BYTE:9 4.0
(byte) render_current::ypos2#1 ypos2 zp ZP_BYTE:9 67.33333333333333
(byte) render_current::ypos2#2 ypos2 zp ZP_BYTE:9 29.823529411764707
(byte) render_current::ypos2#0 ypos2 zp ZP_BYTE:11 4.0
(byte) render_current::ypos2#1 ypos2 zp ZP_BYTE:11 67.33333333333333
(byte) render_current::ypos2#2 ypos2 zp ZP_BYTE:11 29.823529411764707
(void()) render_init()
(byte~) render_init::$13 reg byte a 22.0
(byte~) render_init::$14 reg byte a 22.0
@ -781,8 +837,8 @@
(byte*) render_init::li_1#1 li_1 zp ZP_WORD:5 5.5
(byte*) render_init::li_1#2 li_1 zp ZP_WORD:5 6.6000000000000005
(byte*) render_init::li_2
(byte*) render_init::li_2#1 li_2 zp ZP_WORD:19 7.333333333333333
(byte*) render_init::li_2#2 li_2 zp ZP_WORD:19 5.5
(byte*) render_init::li_2#1 li_2 zp ZP_WORD:7 7.333333333333333
(byte*) render_init::li_2#2 li_2 zp ZP_WORD:7 5.5
(label) render_init::vicSelectGfxBank1
(byte~) render_init::vicSelectGfxBank1_$0
(label) render_init::vicSelectGfxBank1_@1
@ -803,46 +859,38 @@
(label) render_playfield::@3
(label) render_playfield::@return
(byte) render_playfield::c
(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::c#1 c zp ZP_BYTE:11 1501.5
(byte) render_playfield::c#2 c zp ZP_BYTE:11 500.5
(byte) render_playfield::i
(byte) render_playfield::i#1 i zp ZP_BYTE:8 420.59999999999997
(byte) render_playfield::i#2 i zp ZP_BYTE:8 1034.6666666666667
(byte) render_playfield::i#3 i zp ZP_BYTE:8 50.5
(byte) render_playfield::i#1 i zp ZP_BYTE:10 420.59999999999997
(byte) render_playfield::i#2 i zp ZP_BYTE:10 1034.6666666666667
(byte) render_playfield::i#3 i zp ZP_BYTE:10 50.5
(byte) render_playfield::l
(byte) render_playfield::l#1 l zp ZP_BYTE:7 151.5
(byte) render_playfield::l#2 l zp ZP_BYTE:7 30.299999999999997
(byte) render_playfield::l#1 l zp ZP_BYTE:9 151.5
(byte) render_playfield::l#2 l zp ZP_BYTE:9 30.299999999999997
(byte*) render_playfield::screen_line
(byte*) render_playfield::screen_line#0 screen_line zp ZP_WORD:5 202.0
(byte*) render_playfield::screen_line#1 screen_line zp ZP_WORD:5 500.5
(byte*) render_playfield::screen_line#2 screen_line zp ZP_WORD:5 1552.0
(void()) render_score()
(byte~) render_score::$10 reg byte a 202.0
(byte~) render_score::$11 reg byte a 202.0
(byte~) render_score::$12 reg byte a 202.0
(byte~) render_score::$9 reg byte a 202.0
(label) render_score::@2
(label) render_score::@3
(label) render_score::@4
(label) render_score::@5
(label) render_score::@6
(label) render_score::@7
(label) render_score::@8
(label) render_score::@9
(label) render_score::@return
(byte) render_score::SCREEN_SCORE_COL
(const byte) render_score::SCREEN_SCORE_COL#0 SCREEN_SCORE_COL = (byte/signed byte/word/signed word/dword/signed dword) 33
(byte) render_score::SCREEN_SCORE_ROW
(const byte) render_score::SCREEN_SCORE_ROW#0 SCREEN_SCORE_ROW = (byte/signed byte/word/signed word/dword/signed dword) 5
(byte) render_score::ZERO_CHAR
(const byte) render_score::ZERO_CHAR#0 ZERO_CHAR = (byte/signed byte/word/signed word/dword/signed dword) 51
(byte) render_score::b
(byte) render_score::b#1 reg byte x 151.5
(byte) render_score::b#2 reg byte x 30.299999999999997
(byte) render_score::score_byte
(byte) render_score::score_byte#0 score_byte zp ZP_BYTE:7 60.599999999999994
(word) render_score::level_offset
(const word) render_score::level_offset#0 level_offset = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 19+(byte/signed byte/word/signed word/dword/signed dword) 31
(word) render_score::lines_offset
(const word) render_score::lines_offset#0 lines_offset = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 22
(byte*) render_score::score_bytes
(const byte*) render_score::score_bytes#0 score_bytes = ((byte*))&(dword) score_bcd#10
(byte*) render_score::screen_score_pos
(byte*) render_score::screen_score_pos#2 screen_score_pos zp ZP_WORD:5 75.75
(byte*) render_score::screen_score_pos#3 screen_score_pos zp ZP_WORD:5 67.33333333333333
(byte*) render_score::screen_score_pos#4 screen_score_pos zp ZP_WORD:5 61.0
(byte*) render_score::screen_score_pos#5 screen_score_pos zp ZP_WORD:5 2.0
(word) render_score::score_offset
(const word) render_score::score_offset#0 score_offset = (byte/signed byte/word/signed word/dword/signed dword) 40*(byte/signed byte/word/signed word/dword/signed dword) 5+(byte/signed byte/word/signed word/dword/signed dword) 28
(byte*) render_score::screen
(byte*) render_score::screen#2 screen zp ZP_WORD:5 0.75
(void()) render_screen_original((byte*) render_screen_original::screen)
(label) render_screen_original::@1
(label) render_screen_original::@2
@ -853,30 +901,30 @@
(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::cols
(byte*) render_screen_original::cols#1 cols zp ZP_WORD:27 101.0
(byte*) render_screen_original::cols#2 cols zp ZP_WORD:27 75.75
(byte*) render_screen_original::cols#3 cols zp ZP_WORD:27 42.599999999999994
(byte*) render_screen_original::cols#4 cols zp ZP_WORD:27 78.5
(byte*) render_screen_original::cols#5 cols zp ZP_WORD:27 80.8
(byte*) render_screen_original::cols#6 cols zp ZP_WORD:27 101.0
(byte*) render_screen_original::cols#7 cols zp ZP_WORD:27 22.0
(byte*) render_screen_original::cols#1 cols zp ZP_WORD:23 101.0
(byte*) render_screen_original::cols#2 cols zp ZP_WORD:23 75.75
(byte*) render_screen_original::cols#3 cols zp ZP_WORD:23 42.599999999999994
(byte*) render_screen_original::cols#4 cols zp ZP_WORD:23 78.5
(byte*) render_screen_original::cols#5 cols zp ZP_WORD:23 80.8
(byte*) render_screen_original::cols#6 cols zp ZP_WORD:23 101.0
(byte*) render_screen_original::cols#7 cols zp ZP_WORD:23 22.0
(byte*) render_screen_original::ocols
(byte*) render_screen_original::ocols#1 ocols zp ZP_WORD:19 17.75
(byte*) render_screen_original::ocols#2 ocols zp ZP_WORD:19 67.33333333333333
(byte*) render_screen_original::ocols#4 ocols zp ZP_WORD:19 14.0
(byte*) render_screen_original::ocols#1 ocols zp ZP_WORD:7 17.75
(byte*) render_screen_original::ocols#2 ocols zp ZP_WORD:7 67.33333333333333
(byte*) render_screen_original::ocols#4 ocols zp ZP_WORD:7 14.0
(byte*) render_screen_original::oscr
(byte*) render_screen_original::oscr#1 oscr zp ZP_WORD:5 14.2
(byte*) render_screen_original::oscr#2 oscr zp ZP_WORD:5 134.66666666666666
(byte*) render_screen_original::oscr#4 oscr zp ZP_WORD:5 14.0
(byte*) render_screen_original::screen
(byte*) render_screen_original::screen#10 screen zp ZP_WORD:22 30.42857142857143
(byte*) render_screen_original::screen#2 screen zp ZP_WORD:22 60.599999999999994
(byte*) render_screen_original::screen#3 screen zp ZP_WORD:22 43.285714285714285
(byte*) render_screen_original::screen#5 screen zp ZP_WORD:22 157.0
(byte*) render_screen_original::screen#6 screen zp ZP_WORD:22 202.0
(byte*) render_screen_original::screen#7 screen zp ZP_WORD:22 202.0
(byte*) render_screen_original::screen#8 screen zp ZP_WORD:22 24.0
(byte*) render_screen_original::screen#9 screen zp ZP_WORD:22 2.0
(byte*) render_screen_original::screen#10 screen zp ZP_WORD:17 30.42857142857143
(byte*) render_screen_original::screen#2 screen zp ZP_WORD:17 60.599999999999994
(byte*) render_screen_original::screen#3 screen zp ZP_WORD:17 43.285714285714285
(byte*) render_screen_original::screen#5 screen zp ZP_WORD:17 157.0
(byte*) render_screen_original::screen#6 screen zp ZP_WORD:17 202.0
(byte*) render_screen_original::screen#7 screen zp ZP_WORD:17 202.0
(byte*) render_screen_original::screen#8 screen zp ZP_WORD:17 24.0
(byte*) render_screen_original::screen#9 screen zp ZP_WORD:17 2.0
(byte) render_screen_original::x
(byte) render_screen_original::x#1 reg byte x 202.0
(byte) render_screen_original::x#2 reg byte x 202.0
@ -889,17 +937,17 @@
(byte) render_screen_original::y#6 y zp ZP_BYTE:2 0.9166666666666666
(byte) render_screen_render
(byte) render_screen_render#11 render_screen_render zp ZP_BYTE:3 3.25
(byte) render_screen_render#17 render_screen_render zp ZP_BYTE:3 0.6981132075471699
(byte) render_screen_render#17 render_screen_render zp ZP_BYTE:3 0.6271186440677967
(byte) render_screen_render#21 reg byte x 8.615384615384615
(byte) render_screen_render#30 render_screen_render#30 zp ZP_BYTE:7 5.090909090909091
(byte~) render_screen_render#64 render_screen_render#64 zp ZP_BYTE:7 5.5
(byte) render_screen_render#30 render_screen_render#30 zp ZP_BYTE:9 5.090909090909091
(byte~) render_screen_render#64 render_screen_render#64 zp ZP_BYTE:9 5.5
(byte~) render_screen_render#65 reg byte x 22.0
(byte) render_screen_show
(byte) render_screen_show#13 render_screen_show zp ZP_BYTE:2 4.333333333333333
(byte) render_screen_show#16 render_screen_show zp ZP_BYTE:2 0.37777777777777777
(byte) render_screen_showing
(byte) render_screen_showing#0 render_screen_showing zp ZP_BYTE:30 0.5
(byte) render_screen_showing#1 render_screen_showing zp ZP_BYTE:30 20.0
(byte) render_screen_showing#0 render_screen_showing zp ZP_BYTE:33 0.5
(byte) render_screen_showing#1 render_screen_showing zp ZP_BYTE:33 20.0
(void()) render_screen_swap()
(label) render_screen_swap::@return
(void()) render_show()
@ -938,11 +986,11 @@
(dword[]) score_add_bcd
(const dword[]) score_add_bcd#0 score_add_bcd = { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 64, (word/signed word/dword/signed dword) 256, (word/signed word/dword/signed dword) 768, (word/signed word/dword/signed dword) 4608 }
(dword) score_bcd
(dword) score_bcd#10 score_bcd zp ZP_DWORD:15 4.0
(dword) score_bcd#12 score_bcd zp ZP_DWORD:15 1.0
(dword) score_bcd#14 score_bcd zp ZP_DWORD:15 2.608695652173914
(dword) score_bcd#20 score_bcd zp ZP_DWORD:15 6.0
(dword) score_bcd#3 score_bcd zp ZP_DWORD:15 2.0
(dword) score_bcd#10 score_bcd zp ZP_DWORD:19 4.0
(dword) score_bcd#12 score_bcd zp ZP_DWORD:19 1.0
(dword) score_bcd#14 score_bcd zp ZP_DWORD:19 2.4489795918367347
(dword) score_bcd#20 score_bcd zp ZP_DWORD:19 6.0
(dword) score_bcd#23 score_bcd zp ZP_DWORD:19 0.5714285714285714
(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
@ -1010,18 +1058,20 @@ interrupt(HARDWARE_CLOBBER)(void()) sprites_irq()
zp ZP_BYTE:2 [ render_screen_show#16 render_screen_show#13 play_init::idx#2 play_init::idx#1 sprites_init::xpos#2 sprites_init::xpos#1 render_screen_original::y#6 render_screen_original::y#1 ]
zp ZP_BYTE:3 [ render_screen_render#17 render_screen_render#11 ]
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 [ render_score::b#2 render_score::b#1 ]
zp ZP_WORD:5 [ render_score::screen_score_pos#4 render_score::screen_score_pos#5 render_score::screen_score_pos#3 render_score::screen_score_pos#2 current_piece_gfx#53 current_piece_gfx#102 current_piece_gfx#103 render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 current_piece#12 current_piece#76 current_piece#77 current_piece#78 current_piece#79 play_collision::piece_gfx#0 play_init::pli#2 play_init::pli#1 render_init::li_1#2 render_init::li_1#1 render_screen_original::oscr#2 render_screen_original::oscr#4 render_screen_original::oscr#1 play_lock_current::playfield_line#0 ]
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 play_update_score::lines_before#0 ]
zp ZP_WORD:5 [ render_score::screen#2 render_bcd::screen#6 render_bcd::screen#0 render_bcd::screen#1 render_bcd::screen#2 render_bcd::screen#3 render_bcd::screen#4 render_bcd::screen#5 current_piece_gfx#53 current_piece_gfx#102 current_piece_gfx#103 render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 current_piece#12 current_piece#76 current_piece#77 current_piece#78 current_piece#79 play_collision::piece_gfx#0 play_init::pli#2 play_init::pli#1 render_init::li_1#2 render_init::li_1#1 render_screen_original::oscr#2 render_screen_original::oscr#4 render_screen_original::oscr#1 play_lock_current::playfield_line#0 ]
zp ZP_WORD:7 [ render_bcd::offset#6 render_bcd::screen_pos#3 render_bcd::screen_pos#0 render_bcd::screen_pos#2 render_bcd::screen_pos#1 render_init::li_2#2 render_init::li_2#1 render_screen_original::ocols#2 render_screen_original::ocols#4 render_screen_original::ocols#1 render_current::screen_line#0 play_collision::playfield_line#0 ]
reg byte y [ render_bcd::only_low#6 ]
reg byte x [ render_bcd::bcd#6 render_bcd::bcd#0 render_bcd::bcd#1 render_bcd::bcd#2 render_bcd::bcd#3 render_bcd::bcd#4 render_bcd::bcd#5 ]
reg byte y [ current_ypos#9 current_ypos#86 current_ypos#87 ]
zp ZP_BYTE:7 [ render_screen_render#30 render_screen_render#64 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::removed#11 play_remove_lines::removed#7 play_remove_lines::removed#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 render_score::score_byte#0 ]
zp ZP_BYTE:8 [ current_xpos#47 current_xpos#112 current_xpos#113 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::x#2 play_remove_lines::x#1 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:9 [ render_screen_render#30 render_screen_render#64 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::removed#11 play_remove_lines::removed#7 play_remove_lines::removed#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:10 [ current_xpos#47 current_xpos#112 current_xpos#113 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::x#2 play_remove_lines::x#1 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 ]
reg byte x [ current_piece_char#64 current_piece_char#90 current_piece_char#91 ]
zp ZP_BYTE:9 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 render_playfield::c#2 render_playfield::c#1 play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 play_remove_lines::full#4 play_remove_lines::full#2 play_lock_current::i#1 keyboard_event_scan::row_scan#0 ]
zp ZP_BYTE:10 [ render_current::l#4 render_current::l#1 play_collision::l#6 play_collision::l#1 play_remove_lines::c#0 ]
zp ZP_BYTE:11 [ 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:12 [ 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:13 [ render_current::c#2 render_current::c#1 main::key_event#0 ]
zp ZP_BYTE:11 [ render_current::ypos2#2 render_current::ypos2#0 render_current::ypos2#1 render_playfield::c#2 render_playfield::c#1 play_collision::ypos2#2 play_collision::ypos2#0 play_collision::ypos2#1 play_remove_lines::full#4 play_remove_lines::full#2 play_lock_current::i#1 keyboard_event_scan::row_scan#0 ]
zp ZP_BYTE:12 [ render_current::l#4 render_current::l#1 play_collision::l#6 play_collision::l#1 play_remove_lines::c#0 ]
zp ZP_BYTE:13 [ 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:14 [ 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:15 [ render_current::c#2 render_current::c#1 main::key_event#0 ]
reg byte x [ render_screen_render#21 render_screen_render#65 ]
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 ]
@ -1030,39 +1080,40 @@ 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: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_DWORD:15 [ score_bcd#20 score_bcd#12 score_bcd#14 score_bcd#10 score_bcd#3 ]
zp ZP_WORD:19 [ current_piece#20 current_piece#80 current_piece#16 current_piece#73 current_piece#10 render_init::li_2#2 render_init::li_2#1 render_screen_original::ocols#2 render_screen_original::ocols#4 render_screen_original::ocols#1 ]
zp ZP_BYTE:21 [ current_orientation#29 current_orientation#10 current_orientation#19 current_orientation#4 current_orientation#14 ]
zp ZP_WORD:22 [ current_piece_gfx#26 current_piece_gfx#20 current_piece_gfx#16 current_piece_gfx#14 current_piece_gfx#3 current_piece_gfx#1 render_screen_original::screen#7 render_screen_original::screen#6 render_screen_original::screen#5 render_screen_original::screen#8 render_screen_original::screen#9 render_screen_original::screen#10 render_screen_original::screen#2 render_screen_original::screen#3 ]
zp ZP_BYTE:24 [ current_xpos#33 current_xpos#10 current_xpos#23 current_xpos#19 current_xpos#4 current_xpos#1 current_xpos#2 ]
zp ZP_BYTE:25 [ current_piece_char#20 current_piece_char#15 current_piece_char#12 current_piece_char#1 ]
zp ZP_BYTE:16 [ 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:17 [ lines_bcd#20 lines_bcd#13 lines_bcd#15 lines_bcd#11 lines_bcd#23 render_screen_original::screen#7 render_screen_original::screen#6 render_screen_original::screen#5 render_screen_original::screen#8 render_screen_original::screen#9 render_screen_original::screen#10 render_screen_original::screen#2 render_screen_original::screen#3 ]
zp ZP_DWORD:19 [ score_bcd#20 score_bcd#12 score_bcd#14 score_bcd#10 score_bcd#23 ]
zp ZP_WORD:23 [ current_piece#20 current_piece#80 current_piece#16 current_piece#73 current_piece#10 render_screen_original::cols#6 render_screen_original::cols#5 render_screen_original::cols#4 render_screen_original::cols#7 render_screen_original::cols#3 render_screen_original::cols#1 render_screen_original::cols#2 ]
zp ZP_BYTE:25 [ current_orientation#29 current_orientation#10 current_orientation#19 current_orientation#4 current_orientation#14 ]
zp ZP_WORD:26 [ 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:28 [ current_xpos#33 current_xpos#10 current_xpos#23 current_xpos#19 current_xpos#4 current_xpos#1 current_xpos#2 ]
zp ZP_BYTE:29 [ 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 ]
zp ZP_BYTE:30 [ level_bcd#22 level_bcd#19 level_bcd#12 level_bcd#14 level_bcd#10 level_bcd#3 ]
reg byte y [ play_remove_lines::r#2 play_remove_lines::r#3 play_remove_lines::r#1 ]
reg byte x [ play_remove_lines::w#6 play_remove_lines::w#4 play_remove_lines::w#12 play_remove_lines::w#11 play_remove_lines::w#1 play_remove_lines::w#2 play_remove_lines::w#3 ]
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:26 [ 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:31 [ 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 ]
zp ZP_WORD:27 [ render_screen_original::cols#6 render_screen_original::cols#5 render_screen_original::cols#4 render_screen_original::cols#7 render_screen_original::cols#3 render_screen_original::cols#1 render_screen_original::cols#2 render_current::screen_line#0 play_collision::playfield_line#0 ]
reg byte x [ render_screen_original::x#6 render_screen_original::x#5 render_screen_original::x#4 render_screen_original::x#1 render_screen_original::x#2 render_screen_original::x#3 ]
zp ZP_BYTE:29 [ irq_raster_next#13 irq_raster_next#2 irq_raster_next#1 irq_raster_next#0 ]
zp ZP_BYTE:32 [ irq_raster_next#13 irq_raster_next#2 irq_raster_next#1 irq_raster_next#0 ]
reg byte x [ sprites_irq::raster_next#2 sprites_irq::raster_next#1 sprites_irq::raster_next#0 ]
zp ZP_BYTE:30 [ render_screen_showing#0 render_screen_showing#1 ]
zp ZP_BYTE:31 [ irq_sprite_ypos#0 irq_sprite_ypos#2 irq_sprite_ypos#1 ]
zp ZP_BYTE:32 [ irq_sprite_ptr#0 irq_sprite_ptr#2 irq_sprite_ptr#1 ]
zp ZP_BYTE:33 [ irq_cnt#0 irq_cnt#1 irq_cnt#14 ]
zp ZP_BYTE:33 [ render_screen_showing#0 render_screen_showing#1 ]
zp ZP_BYTE:34 [ irq_sprite_ypos#0 irq_sprite_ypos#2 irq_sprite_ypos#1 ]
zp ZP_BYTE:35 [ irq_sprite_ptr#0 irq_sprite_ptr#2 irq_sprite_ptr#1 ]
zp ZP_BYTE:36 [ irq_cnt#0 irq_cnt#1 irq_cnt#14 ]
reg byte a [ keyboard_event_get::return#3 ]
reg byte a [ play_move_down::key_event#0 ]
reg byte a [ play_move_down::return#3 ]
reg byte a [ main::$12 ]
zp ZP_BYTE:34 [ main::render#1 main::render#2 ]
zp ZP_BYTE:37 [ 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 ]
@ -1070,10 +1121,10 @@ 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::render#3 ]
reg byte a [ render_score::$9 ]
reg byte a [ render_score::$10 ]
reg byte a [ render_score::$11 ]
reg byte a [ render_score::$12 ]
reg byte a [ render_bcd::$3 ]
reg byte a [ render_bcd::$4 ]
reg byte a [ render_bcd::$5 ]
reg byte a [ render_bcd::$6 ]
reg byte a [ render_current::$5 ]
reg byte a [ render_current::current_cell#0 ]
reg byte a [ render_playfield::$2 ]
@ -1082,7 +1133,7 @@ reg byte a [ play_move_rotate::$2 ]
reg byte a [ play_collision::return#13 ]
reg byte a [ play_move_rotate::$6 ]
reg byte a [ play_move_rotate::$4 ]
zp ZP_BYTE:35 [ play_collision::i#1 ]
zp ZP_BYTE:38 [ play_collision::i#1 ]
reg byte a [ play_collision::$7 ]
reg byte a [ play_collision::return#12 ]
reg byte a [ play_move_leftright::$4 ]
@ -1094,12 +1145,15 @@ reg byte a [ play_collision::return#0 ]
reg byte a [ play_move_down::$12 ]
reg byte a [ play_remove_lines::return#0 ]
reg byte a [ play_move_down::removed#0 ]
reg byte a [ play_update_score::removed#0 ]
reg byte x [ play_update_score::removed#0 ]
reg byte a [ sid_rnd::return#2 ]
reg byte a [ play_spawn_current::$1 ]
reg byte a [ sid_rnd::return#0 ]
reg byte a [ play_update_score::$2 ]
zp ZP_DWORD:36 [ play_update_score::add_bcd#0 ]
zp ZP_DWORD:39 [ play_update_score::add_bcd#0 ]
reg byte a [ play_update_score::$3 ]
reg byte a [ play_update_score::$5 ]
reg byte a [ play_update_score::lines_after#0 ]
reg byte a [ keyboard_event_pressed::$0 ]
reg byte a [ keyboard_event_pressed::$1 ]
reg byte a [ keyboard_event_pressed::return#11 ]