1
0
mirror of https://gitlab.com/camelot/kickc.git synced 2024-06-03 07:29:37 +00:00
kickc/src/test/ref/complex/tetris/tetris.sym
2020-12-30 01:55:04 +01:00

871 lines
48 KiB
Plaintext

const nomodify byte* BG_COLOR = (byte*) 53281
const nomodify byte* BG_COLOR1 = (byte*) 53282
const nomodify byte* BG_COLOR2 = (byte*) 53283
const nomodify byte* BG_COLOR3 = (byte*) 53284
const nomodify byte BLACK = 0
const nomodify byte BLUE = 6
const nomodify byte* BORDER_COLOR = (byte*) 53280
const nomodify struct MOS6526_CIA* CIA1 = (struct MOS6526_CIA*) 56320
const nomodify byte* CIA1_INTERRUPT = (byte*) 56333
const nomodify struct MOS6526_CIA* CIA2 = (struct MOS6526_CIA*) 56576
const nomodify byte CIA_INTERRUPT_CLEAR = $7f
const nomodify byte COLLISION_BOTTOM = 2
const nomodify byte COLLISION_LEFT = 4
const nomodify byte COLLISION_NONE = 0
const nomodify byte COLLISION_PLAYFIELD = 1
const nomodify byte COLLISION_RIGHT = 8
const nomodify byte* COLS = (byte*) 55296
const nomodify byte CYAN = 3
const nomodify byte* D011 = (byte*) 53265
const nomodify byte* D018 = (byte*) 53272
const nomodify byte DARK_GREY = $b
const nomodify byte GREEN = 5
const nomodify byte GREY = $c
const nomodify void()** HARDWARE_IRQ = (void()**) 65534
const nomodify byte* IRQ_ENABLE = (byte*) 53274
const nomodify byte IRQ_RASTER = 1
const nomodify byte IRQ_RASTER_FIRST = SPRITES_FIRST_YPOS+$13
const nomodify byte* IRQ_STATUS = (byte*) 53273
const nomodify byte KEY_COMMA = $2f
const nomodify byte KEY_COMMODORE = $3d
const nomodify byte KEY_CTRL = $3a
const nomodify byte KEY_DOT = $2c
const nomodify byte KEY_LSHIFT = $f
const nomodify byte KEY_RSHIFT = $34
const nomodify byte KEY_SPACE = $3c
const nomodify byte KEY_X = $17
const nomodify byte KEY_Z = $c
const nomodify byte LIGHT_BLUE = $e
const nomodify byte LIGHT_GREEN = $d
const to_nomodify byte* MOVEDOWN_SLOW_SPEEDS[] = { $30, $2b, $26, $21, $1c, $17, $12, $d, 8, 6, 5, 5, 5, 4, 4, 4, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 }
const nomodify word OFFSET_SPRITE_PTRS = $3f8
const byte OFFSET_STRUCT_MOS6526_CIA_INTERRUPT = $d
const byte OFFSET_STRUCT_MOS6526_CIA_PORT_A_DDR = 2
const byte OFFSET_STRUCT_MOS6526_CIA_PORT_B = 1
const byte OFFSET_STRUCT_MOS6581_SID_CH3_CONTROL = $12
const byte OFFSET_STRUCT_MOS6581_SID_CH3_FREQ = $e
const byte OFFSET_STRUCT_MOS6581_SID_CH3_OSC = $1b
const nomodify byte ORANGE = 8
const word* PIECES[] = { (word)PIECE_T, (word)PIECE_S, (word)PIECE_Z, (word)PIECE_J, (word)PIECE_O, (word)PIECE_I, (word)PIECE_L }
const byte* PIECES_CHARS[] = { $65, $66, $a6, $66, $65, $65, $a6 }
const byte* PIECES_COLORS_1[] = { BLUE, GREEN, PURPLE, BLUE, RED, LIGHT_GREEN, RED, BLUE, LIGHT_BLUE, RED, BLUE, GREEN, PURPLE, BLUE, RED, LIGHT_GREEN, RED, BLUE, LIGHT_BLUE, RED, BLUE, GREEN, PURPLE, BLUE, RED, LIGHT_GREEN, RED, BLUE, LIGHT_BLUE, RED }
const byte* PIECES_COLORS_2[] = { CYAN, LIGHT_GREEN, PINK, LIGHT_GREEN, LIGHT_GREEN, LIGHT_BLUE, DARK_GREY, PURPLE, RED, ORANGE, CYAN, LIGHT_GREEN, PINK, LIGHT_GREEN, LIGHT_GREEN, LIGHT_BLUE, DARK_GREY, PURPLE, RED, ORANGE, CYAN, LIGHT_GREEN, PINK, LIGHT_GREEN, LIGHT_GREEN, LIGHT_BLUE, DARK_GREY, PURPLE, RED, ORANGE }
const byte* PIECES_NEXT_CHARS[] = { $63, $64, $a4, $64, $63, $63, $a4 }
const byte* PIECES_START_X[] = { 4, 4, 4, 4, 4, 4, 4 }
const byte* PIECES_START_Y[] = { 1, 1, 1, 1, 1, 0, 1 }
const byte* PIECE_I[$40] = { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0 }
const byte* PIECE_J[$40] = { 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 }
const byte* PIECE_L[$40] = { 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0 }
const byte* PIECE_O[$40] = { 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0 }
const byte* PIECE_S[$40] = { 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0 }
const byte* PIECE_T[$40] = { 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0 }
const byte* PIECE_Z[$40] = { 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0 }
const nomodify byte PINK = $a
const byte* PLAYFIELD_CHARSET[] = kickasm {{ .fill 8,$00 // Place a filled char at the start of the charset
.import binary "playfield-screen.imap"
}}
const to_nomodify byte* PLAYFIELD_COLORS_ORIGINAL[] = kickasm {{ .import binary "playfield-screen.col"
}}
const nomodify byte PLAYFIELD_COLS = $a
const nomodify byte PLAYFIELD_LINES = $16
const nomodify byte* PLAYFIELD_SCREEN_1 = (byte*) 1024
const nomodify byte* PLAYFIELD_SCREEN_2 = (byte*) 11264
const to_nomodify byte* PLAYFIELD_SCREEN_ORIGINAL[] = kickasm {{ // Load chars for the screen
.var screen = LoadBinary("playfield-screen.iscr")
// Load extended colors for the screen
.var extended = LoadBinary("playfield-extended.col")
// screen.get(i)+1 because the charset is loaded into PLAYFIELD_CHARSET+8
// extended.get(i)-1 because the extended colors are 1-based (1/2/3/4)
// <<6 to move extended colors to the upper 2 bits
.fill screen.getSize(), ( (screen.get(i)+1) | (extended.get(i)-1)<<6 )
}}
const byte* PLAYFIELD_SPRITES[$1e*$40] = kickasm {{ .var sprites = LoadPicture("playfield-sprites.png", List().add($010101, $000000))
// Put the sprites into memory
.for(var sy=0;sy<10;sy++) {
.var sprite_gfx_y = sy*20
.for(var sx=0;sx<3;sx++) {
.for (var y=0;y<21; y++) {
.var gfx_y = sprite_gfx_y + mod(2100+y-sprite_gfx_y,21)
.for (var c=0; c<3; c++) {
.byte sprites.getSinglecolorByte(sx*3+c,gfx_y)
}
}
.byte 0
}
}
}}
const nomodify byte* PLAYFIELD_SPRITE_PTRS_1 = PLAYFIELD_SCREEN_1+OFFSET_SPRITE_PTRS
const nomodify byte* PLAYFIELD_SPRITE_PTRS_2 = PLAYFIELD_SCREEN_2+OFFSET_SPRITE_PTRS
const nomodify byte* PROCPORT = (byte*) 1
const nomodify byte* PROCPORT_DDR = (byte*) 0
const nomodify byte PROCPORT_DDR_MEMORY_MASK = 7
const nomodify byte PROCPORT_RAM_IO = 5
const nomodify byte PURPLE = 4
const nomodify byte* RASTER = (byte*) 53266
const nomodify byte RED = 2
const to_nomodify dword* SCORE_BASE_BCD[] = { 0, $40, $100, $300, $1200 }
const nomodify struct MOS6581_SID* SID = (struct MOS6581_SID*) 54272
const nomodify byte SID_CONTROL_NOISE = $80
const nomodify byte* SPRITES_COLOR = (byte*) 53287
const nomodify byte* SPRITES_ENABLE = (byte*) 53269
const nomodify byte* SPRITES_EXPAND_X = (byte*) 53277
const nomodify byte* SPRITES_EXPAND_Y = (byte*) 53271
const nomodify byte SPRITES_FIRST_YPOS = $31
const nomodify byte* SPRITES_MC = (byte*) 53276
const nomodify byte* SPRITES_XPOS = (byte*) 53248
const nomodify byte* SPRITES_YPOS = (byte*) 53249
const nomodify byte* VICII_CONTROL = (byte*) 53265
const nomodify byte VICII_DEN = $10
const nomodify byte VICII_ECM = $40
const nomodify byte VICII_RSEL = 8
void __start()
byte __start::__init1_toSpritePtr1_return
const byte __start::__init1_toSpritePtr1_return#0 __init1_toSpritePtr1_return = (byte)(word)PLAYFIELD_SPRITES/$40
byte* __start::__init1_toSpritePtr1_sprite
byte current_movedown_counter
byte current_movedown_counter#13 current_movedown_counter zp[1]:4 26666.933333333334
byte current_movedown_counter#15 current_movedown_counter zp[1]:4 2732.5135135135133
byte current_movedown_counter#17 current_movedown_counter zp[1]:4 7777.153846153846
const nomodify byte current_movedown_fast = $a
byte current_movedown_slow
byte current_movedown_slow#0 current_movedown_slow zp[1]:21 4.869565217391305
byte current_movedown_slow#13 current_movedown_slow zp[1]:21 41091.392857142855
byte current_movedown_slow#22 current_movedown_slow zp[1]:21 5435.243243243243
byte current_movedown_slow#24 current_movedown_slow zp[1]:21 442857.7142857142
byte current_movedown_slow#39 current_movedown_slow zp[1]:21 300003.0
byte current_movedown_slow#67 current_movedown_slow zp[1]:21 733333.4666666666
byte current_movedown_slow#9 current_movedown_slow zp[1]:21 2.0000002E7
byte current_orientation
byte current_orientation#12 current_orientation zp[1]:26 8137.972972972973
byte current_orientation#18 current_orientation zp[1]:26 1004.952380952381
byte current_orientation#21 current_orientation zp[1]:26 16530.79591836735
byte current_orientation#26 current_orientation zp[1]:26 51667.33333333333
byte current_orientation#39 current_orientation zp[1]:26 200002.0
byte current_orientation#6 current_orientation zp[1]:26 150001.5
byte* current_piece
byte* current_piece#100 current_piece_1 zp[2]:14 200002.0
byte* current_piece#101 current_piece_1 zp[2]:14 200002.0
byte* current_piece#102 current_piece_1 zp[2]:14 2000002.0
byte* current_piece#103 current_piece zp[2]:23 11.0
byte* current_piece#16 current_piece zp[2]:23 7706.51282051282
byte* current_piece#18 current_piece_1 zp[2]:14 1.1400006E7
byte* current_piece#23 current_piece zp[2]:23 8138.27027027027
byte* current_piece#30 current_piece zp[2]:23 300003.0
byte* current_piece#95 current_piece zp[2]:23 100001.0
byte* current_piece#98 current_piece_1 zp[2]:14 200002.0
byte* current_piece#99 current_piece_1 zp[2]:14 200002.0
byte current_piece_char
byte current_piece_char#100 current_piece_char_1 zp[1]:9 202.0
byte current_piece_char#17 current_piece_char zp[1]:25 5437.9729729729725
byte current_piece_char#23 current_piece_char zp[1]:25 1.8182183847272727E8
byte current_piece_char#31 current_piece_char zp[1]:25 300003.0
byte current_piece_char#4 current_piece_char zp[1]:25 34375.75
byte current_piece_char#70 current_piece_char_1 zp[1]:9 47624.42857142857
byte current_piece_char#99 current_piece_char_1 zp[1]:9 22.0
byte* current_piece_gfx
byte* current_piece_gfx#111 current_piece_gfx_1 zp[2]:7 11.0
byte* current_piece_gfx#112 current_piece_gfx_1 zp[2]:7 101.0
byte* current_piece_gfx#116 current_piece_gfx zp[2]:27 200002.0
byte* current_piece_gfx#12 current_piece_gfx zp[2]:27 1.8182183847272727E8
byte* current_piece_gfx#122 current_piece_gfx zp[2]:27 22.0
byte* current_piece_gfx#19 current_piece_gfx zp[2]:27 1009.7619047619048
byte* current_piece_gfx#21 current_piece_gfx zp[2]:27 15185.37037037037
byte* current_piece_gfx#22 current_piece_gfx zp[2]:27 51667.33333333333
byte* current_piece_gfx#37 current_piece_gfx zp[2]:27 300003.0
byte* current_piece_gfx#6 current_piece_gfx zp[2]:27 200002.0
byte* current_piece_gfx#66 current_piece_gfx_1 zp[2]:7 47624.42857142857
byte current_xpos
byte current_xpos#100 current_xpos zp[1]:29 67742.74193548388
byte current_xpos#118 current_xpos_1 zp[1]:6 7.333333333333333
byte current_xpos#119 current_xpos_1 zp[1]:6 67.33333333333333
byte current_xpos#13 current_xpos zp[1]:29 1.8187293036363635E7
byte current_xpos#2 current_xpos zp[1]:29 1009.7619047619048
byte current_xpos#23 current_xpos zp[1]:29 36400.4
byte current_xpos#27 current_xpos zp[1]:29 20333.566666666666
byte current_xpos#45 current_xpos zp[1]:29 300003.0
byte current_xpos#5 current_xpos zp[1]:29 200002.0
byte current_xpos#61 current_xpos_1 zp[1]:6 4767.285714285714
byte current_xpos#7 current_xpos zp[1]:29 200002.0
byte current_ypos
byte current_ypos#10 current_ypos zp[1]:17 35165.32432432432
byte current_ypos#14 reg byte x 1113.0
byte current_ypos#2 current_ypos zp[1]:17 200002.0
byte current_ypos#20 current_ypos zp[1]:17 6425.74358974359
byte current_ypos#40 current_ypos zp[1]:17 300003.0
byte current_ypos#5 current_ypos zp[1]:17 70000.83333333334
byte current_ypos#97 reg byte x 5.5
byte current_ypos#98 reg byte x 40.4
byte game_over
byte game_over#16 game_over zp[1]:30 5705.54054054054
byte game_over#22 game_over zp[1]:30 6567.760869565218
byte game_over#29 game_over zp[1]:30 300003.0
byte game_over#53 game_over zp[1]:30 47827.13043478261
byte game_over#66 game_over zp[1]:30 78572.35714285714
volatile byte irq_cnt loadstore zp[1]:44 0.48000000000000004
volatile byte irq_raster_next loadstore zp[1]:41 0.44444444444444453
volatile byte irq_sprite_ptr loadstore zp[1]:43 0.45161290322580644
volatile byte irq_sprite_ypos loadstore zp[1]:42 0.48275862068965525
byte keyboard_event_get()
byte keyboard_event_get::return
byte keyboard_event_get::return#1 reg byte a 20002.0
byte keyboard_event_get::return#2 reg byte a 3667.333333333333
byte keyboard_event_get::return#3 reg byte a 2002.0
byte keyboard_event_pressed(byte keyboard_event_pressed::keycode)
byte~ keyboard_event_pressed::$0 reg byte y 2000002.0
byte~ keyboard_event_pressed::$1 reg byte x 2000002.0
byte keyboard_event_pressed::keycode
byte keyboard_event_pressed::keycode#5 reg byte x 666667.3333333334
byte keyboard_event_pressed::return
byte keyboard_event_pressed::return#0 reg byte a 20002.0
byte keyboard_event_pressed::return#1 reg byte a 20002.0
byte keyboard_event_pressed::return#10 reg byte a 20002.0
byte keyboard_event_pressed::return#11 reg byte a 162857.99999999997
byte keyboard_event_pressed::return#12 reg byte a 200002.0
byte keyboard_event_pressed::return#2 reg byte a 20002.0
byte keyboard_event_pressed::row_bits
byte keyboard_event_pressed::row_bits#0 reg byte y 1000001.0
void keyboard_event_scan()
byte~ keyboard_event_scan::$0 reg byte a 20002.0
byte~ keyboard_event_scan::$15 reg byte a 2.00000002E8
byte~ keyboard_event_scan::$16 reg byte a 2.00000002E8
byte~ keyboard_event_scan::$23 reg byte a 2.00000002E8
byte~ keyboard_event_scan::$3 reg byte a 20002.0
byte~ keyboard_event_scan::$6 reg byte a 20002.0
byte~ keyboard_event_scan::$9 reg byte a 20002.0
byte keyboard_event_scan::col
byte keyboard_event_scan::col#1 reg byte x 1.500000015E8
byte keyboard_event_scan::col#2 reg byte x 2.857142885714286E7
byte keyboard_event_scan::event_type
byte keyboard_event_scan::event_type#0 reg byte a 2.00000002E8
byte keyboard_event_scan::keycode
byte keyboard_event_scan::keycode#1 keycode zp[1]:35 2.0000002E7
byte keyboard_event_scan::keycode#10 keycode zp[1]:35 3.153846192307692E7
byte keyboard_event_scan::keycode#11 keycode zp[1]:35 5000000.5
byte keyboard_event_scan::keycode#13 keycode zp[1]:35 1.0000001E7
byte keyboard_event_scan::keycode#14 keycode zp[1]:35 5.250000075E7
byte keyboard_event_scan::row
byte keyboard_event_scan::row#1 row zp[1]:11 1.50000015E7
byte keyboard_event_scan::row#2 row zp[1]:11 6000000.24
byte keyboard_event_scan::row_scan
byte keyboard_event_scan::row_scan#0 row_scan zp[1]:51 1.2777778055555556E7
const byte* keyboard_events[8] = { fill( 8, 0) }
byte keyboard_events_size
byte keyboard_events_size#0 keyboard_events_size zp[1]:10 2.00000002E8
byte keyboard_events_size#1 keyboard_events_size zp[1]:10 2.00000002E8
byte keyboard_events_size#11 keyboard_events_size zp[1]:10 8.100000089999999E7
byte keyboard_events_size#14 keyboard_events_size zp[1]:10 968709.8709677419
byte keyboard_events_size#17 keyboard_events_size zp[1]:10 811.6923076923076
byte keyboard_events_size#20 keyboard_events_size zp[1]:10 1850.5
byte keyboard_events_size#3 keyboard_events_size zp[1]:10 15001.5
byte keyboard_events_size#31 keyboard_events_size zp[1]:10 1.020000012E8
byte keyboard_events_size#32 keyboard_events_size zp[1]:10 4287143.428571429
const byte* keyboard_matrix_col_bitmask[8] = { 1, 2, 4, 8, $10, $20, $40, $80 }
byte keyboard_matrix_read(byte keyboard_matrix_read::rowid)
byte keyboard_matrix_read::return
byte keyboard_matrix_read::return#0 reg byte a 3.6666667333333336E7
byte keyboard_matrix_read::return#2 reg byte a 2.0000002E7
byte keyboard_matrix_read::row_pressed_bits
byte keyboard_matrix_read::rowid
byte keyboard_matrix_read::rowid#0 reg byte x 1.10000002E8
const byte* keyboard_matrix_row_bitmask[8] = { $fe, $fd, $fb, $f7, $ef, $df, $bf, $7f }
byte keyboard_modifiers
const byte* keyboard_scan_values[8] = { fill( 8, 0) }
byte level
byte level#18 level zp[1]:20 5435.243243243243
byte level#20 level zp[1]:20 442857.7142857142
byte level#22 level zp[1]:20 1722222.4444444445
byte level#25 level zp[1]:20 185168.31818181818
byte level#35 level zp[1]:20 300003.0
byte level_bcd
byte level_bcd#10 level_bcd zp[1]:22 200018.1475409836
byte level_bcd#18 level_bcd zp[1]:22 3425.508474576271
byte level_bcd#20 level_bcd zp[1]:22 442857.7142857142
byte level_bcd#22 level_bcd zp[1]:22 1.3333334666666666E7
byte level_bcd#33 level_bcd zp[1]:22 300003.0
byte level_bcd#63 level_bcd zp[1]:22 2100000.3
byte level_bcd#7 level_bcd zp[1]:22 2.0000002E7
word lines_bcd
word lines_bcd#16 lines_bcd zp[2]:18 3442.4745762711864
word lines_bcd#18 lines_bcd zp[2]:18 442857.7142857142
word lines_bcd#20 lines_bcd zp[2]:18 64022.14
word lines_bcd#28 lines_bcd zp[2]:18 300003.0
word lines_bcd#31 lines_bcd zp[2]:18 500000.5
void main()
byte main::key_event
byte main::key_event#0 reg byte x 1001.0
byte main::render
byte main::render#1 reg byte a 2002.0
byte next_piece_idx
byte next_piece_idx#13 reg byte y 422.79999999999995
byte next_piece_idx#17 next_piece_idx zp[1]:31 5437.9729729729725
byte next_piece_idx#18 next_piece_idx zp[1]:31 1100013.0
byte next_piece_idx#23 next_piece_idx zp[1]:31 6546.0
byte next_piece_idx#32 next_piece_idx zp[1]:31 300003.0
byte next_piece_idx#79 reg byte y 22.0
byte next_piece_idx#80 reg byte y 202.0
byte play_collision(byte play_collision::xpos , byte play_collision::ypos , byte play_collision::orientation)
byte~ play_collision::$14 reg byte a 2.0000000002E10
byte~ play_collision::$5 reg byte a 2.00000000002E11
byte play_collision::c
byte play_collision::c#1 reg byte x 1.00000000001E11
byte play_collision::c#2 reg byte x 2.2222222222444443E10
byte play_collision::i
byte play_collision::i#1 i zp[1]:56 1.6153846154076923E10
byte play_collision::i#10 i_1 zp[1]:57 2.0000000002E10
byte play_collision::i#12 i_1 zp[1]:57 2.00000000002E11
byte play_collision::i#2 i_1 zp[1]:57 1.55000000002E11
byte play_collision::i#3 i_1 zp[1]:57 5.0000000005E9
byte play_collision::l
byte play_collision::l#1 l zp[1]:51 1.0000000001E10
byte play_collision::l#6 l zp[1]:51 1.1764705883529413E9
byte play_collision::orientation
byte play_collision::orientation#0 reg byte x 100001.0
byte play_collision::orientation#1 reg byte x 100001.0
byte play_collision::orientation#2 reg byte x 100001.0
byte play_collision::orientation#3 reg byte x 100001.0
byte play_collision::orientation#5 reg byte x 1.0400005E7
byte* play_collision::piece_gfx
byte* play_collision::piece_gfx#0 piece_gfx zp[2]:52 4.762380952476191E9
byte* play_collision::playfield_line
byte* play_collision::playfield_line#0 playfield_line zp[2]:54 7.857142857285714E9
byte play_collision::return
byte play_collision::return#0 reg byte a 200002.0
byte play_collision::return#1 reg byte a 200002.0
byte play_collision::return#10 reg byte a 2000002.0
byte play_collision::return#13 reg byte a 200002.0
byte play_collision::return#14 reg byte a 200002.0
byte play_collision::return#15 reg byte a 200000.71428571423
byte play_collision::xp
byte play_collision::xp#1 xp zp[1]:34 5.00000000005E10
byte play_collision::xp#2 xp zp[1]:34 6.375000000075E10
byte play_collision::xp#8 xp zp[1]:34 2.0000000002E10
byte play_collision::xpos
byte play_collision::xpos#0 xpos zp[1]:16 66667.33333333333
byte play_collision::xpos#1 xpos zp[1]:16 50000.5
byte play_collision::xpos#2 xpos zp[1]:16 50000.5
byte play_collision::xpos#3 xpos zp[1]:16 50000.5
byte play_collision::xpos#4 xpos zp[1]:16 666667.3333333334
byte play_collision::xpos#6 xpos zp[1]:16 4.546090911818181E8
byte play_collision::yp
byte play_collision::yp#0 yp zp[1]:50 5700003.0
byte play_collision::yp#1 yp zp[1]:50 5.0000000005E9
byte play_collision::yp#2 yp zp[1]:50 8.1256250003125E9
byte play_collision::ypos
byte play_collision::ypos#0 ypos zp[1]:50 50000.5
byte play_collision::ypos#1 ypos zp[1]:50 66667.33333333333
byte play_collision::ypos#2 ypos zp[1]:50 66667.33333333333
byte play_collision::ypos#3 ypos zp[1]:50 66667.33333333333
byte play_collision::ypos#4 ypos zp[1]:50 1000001.0
void play_increase_level()
byte~ play_increase_level::$1 reg byte a 2.0000002E7
byte~ play_increase_level::$5 reg byte a 4.0000000004E10
byte play_increase_level::b
byte play_increase_level::b#1 reg byte x 1.50000000015E10
byte play_increase_level::b#2 reg byte x 1.0000000001E10
void play_init()
byte~ play_init::$2 reg byte x 2002.0
byte~ play_init::$3 reg byte a 3003.0
byte play_init::b
byte play_init::b#1 reg byte x 1501.5
byte play_init::b#2 reg byte x 1001.0
byte play_init::idx
byte play_init::idx#1 idx zp[1]:34 667.3333333333334
byte play_init::idx#2 idx zp[1]:34 600.5999999999999
byte play_init::j
byte play_init::j#1 reg byte y 1501.5
byte play_init::j#2 reg byte y 667.3333333333334
byte* play_init::pli
byte* play_init::pli#1 pli zp[2]:12 500.5
byte* play_init::pli#2 pli zp[2]:12 750.75
void play_lock_current()
byte~ play_lock_current::$4 reg byte a 2.000000002E9
byte play_lock_current::c
byte play_lock_current::c#1 reg byte x 1.0000000001E10
byte play_lock_current::c#2 reg byte x 4.0000000004E9
byte play_lock_current::i
byte play_lock_current::i#1 i zp[1]:56 2.333333333666667E9
byte play_lock_current::i#2 i_1 zp[1]:57 1.5500000002E10
byte play_lock_current::i#3 i_1 zp[1]:57 5.000000005E8
byte play_lock_current::i#7 i_1 zp[1]:57 2.000000002E9
byte play_lock_current::i#9 i_1 zp[1]:57 2.0000000002E10
byte play_lock_current::l
byte play_lock_current::l#1 l zp[1]:51 1.000000001E9
byte play_lock_current::l#6 l zp[1]:51 1.53846154E8
byte* play_lock_current::playfield_line
byte* play_lock_current::playfield_line#0 playfield_line zp[2]:54 1.1000000002E9
byte play_lock_current::xp
byte play_lock_current::xp#0 xp zp[1]:34 2.000000002E9
byte play_lock_current::xp#1 xp zp[1]:34 5.0000000005E9
byte play_lock_current::xp#2 xp zp[1]:34 7.750000001E9
byte play_lock_current::yp
byte play_lock_current::yp#0 yp zp[1]:50 2000002.0
byte play_lock_current::yp#1 yp zp[1]:50 5.000000005E8
byte play_lock_current::yp#2 yp zp[1]:50 2.500833336666667E8
byte play_move_down(byte play_move_down::key_event)
byte~ play_move_down::$12 reg byte a 200002.0
byte~ play_move_down::$2 reg byte a 200002.0
byte play_move_down::key_event
byte play_move_down::key_event#0 reg byte a 55001.0
byte play_move_down::movedown
byte play_move_down::movedown#10 movedown zp[1]:16 50000.5
byte play_move_down::movedown#2 movedown zp[1]:16 200002.0
byte play_move_down::movedown#3 movedown zp[1]:16 200002.0
byte play_move_down::movedown#6 movedown zp[1]:16 300003.0
byte play_move_down::movedown#7 movedown zp[1]:16 250002.5
byte play_move_down::removed
byte play_move_down::removed#0 reg byte a 200002.0
byte play_move_down::return
byte play_move_down::return#0 reg byte a 20002.0
byte play_move_down::return#3 reg byte x 3333.6666666666665
byte play_move_leftright(byte play_move_leftright::key_event)
byte~ play_move_leftright::$4 reg byte a 200002.0
byte~ play_move_leftright::$8 reg byte a 200002.0
byte play_move_leftright::key_event
byte play_move_leftright::key_event#0 reg byte a 105001.5
byte play_move_leftright::return
byte play_move_leftright::return#0 reg byte a 20002.0
byte play_move_leftright::return#2 reg byte a 3333.6666666666665
byte play_move_rotate(byte play_move_rotate::key_event)
byte~ play_move_rotate::$2 reg byte a 200002.0
byte~ play_move_rotate::$5 reg byte x 200002.0
byte~ play_move_rotate::$7 reg byte a 200002.0
byte play_move_rotate::key_event
byte play_move_rotate::key_event#0 reg byte a 105001.5
byte play_move_rotate::orientation
byte play_move_rotate::orientation#1 orientation zp[1]:35 200002.0
byte play_move_rotate::orientation#2 orientation zp[1]:35 200002.0
byte play_move_rotate::orientation#3 orientation zp[1]:35 44444.88888888889
byte play_move_rotate::return
byte play_move_rotate::return#0 reg byte a 20002.0
byte play_move_rotate::return#2 reg byte a 3333.6666666666665
byte play_movement(byte play_movement::key_event)
byte~ play_movement::$3 reg byte a 20002.0
byte~ play_movement::$4 reg byte a 20002.0
byte play_movement::key_event
byte play_movement::key_event#0 key_event zp[1]:46 2818.5454545454545
byte play_movement::render
byte play_movement::render#1 render zp[1]:11 5000.5
byte play_movement::render#2 render zp[1]:11 4000.4
byte play_movement::return
byte play_movement::return#0 return zp[1]:11 20002.0
byte play_movement::return#2 return zp[1]:11 7001.0
byte play_movement::return#3 reg byte a 2002.0
byte play_remove_lines()
byte play_remove_lines::c
byte play_remove_lines::c#0 c zp[1]:57 6.0000000006E9
byte play_remove_lines::full
byte play_remove_lines::full#2 full zp[1]:51 4.2000000006E9
byte play_remove_lines::full#4 full zp[1]:51 4.0000000004E9
byte play_remove_lines::r
byte play_remove_lines::r#1 reg byte y 1.5000000002142856E9
byte play_remove_lines::r#2 reg byte y 1.5500000002E10
byte play_remove_lines::r#3 reg byte y 2.000000002E9
byte play_remove_lines::removed
byte play_remove_lines::removed#1 removed zp[1]:47 2.000000002E9
byte play_remove_lines::removed#11 removed zp[1]:47 2.30769231E8
byte play_remove_lines::removed#7 removed zp[1]:47 3.333444448888889E8
byte play_remove_lines::return
byte play_remove_lines::return#0 reg byte a 200002.0
byte play_remove_lines::w
byte play_remove_lines::w#1 reg byte x 5.500000001E9
byte play_remove_lines::w#11 reg byte x 1.3333333346666667E9
byte play_remove_lines::w#12 reg byte x 2.000000002E9
byte play_remove_lines::w#2 reg byte x 1.000000001E9
byte play_remove_lines::w#3 reg byte x 2.000000002E9
byte play_remove_lines::w#4 reg byte x 4.428571429142857E9
byte play_remove_lines::w#6 reg byte x 1.6666666683333335E9
byte play_remove_lines::x
byte play_remove_lines::x#1 x zp[1]:50 1.50000000015E10
byte play_remove_lines::x#2 x zp[1]:50 2.50000000025E9
byte play_remove_lines::y
byte play_remove_lines::y#1 y zp[1]:35 1.5000000015E9
byte play_remove_lines::y#8 y zp[1]:35 1.3333333346666667E8
void play_spawn_current()
byte~ play_spawn_current::$1 reg byte a 2000002.0
byte~ play_spawn_current::$7 zp[1]:47 32258.09677419355
byte play_spawn_current::current_piece_idx
byte play_spawn_current::current_piece_idx#0 reg byte x 1250001.25
byte play_spawn_current::piece_idx
byte play_spawn_current::piece_idx#1 piece_idx zp[1]:31 2.000000002E9
byte play_spawn_current::piece_idx#2 piece_idx zp[1]:31 1.000050018E8
byte play_spawn_current::sid_rnd1_return
byte play_spawn_current::sid_rnd1_return#0 reg byte a 2.000000002E9
void play_update_score(byte play_update_score::removed)
byte~ play_update_score::$2 reg byte a 2000002.0
byte~ play_update_score::$4 reg byte a 2000002.0
byte~ play_update_score::$9 reg byte a 2000002.0
dword play_update_score::add_bcd
dword play_update_score::add_bcd#0 add_bcd zp[4]:58 666667.3333333334
byte play_update_score::lines_after
byte play_update_score::lines_after#0 reg byte a 2000002.0
byte play_update_score::lines_before
byte play_update_score::lines_before#0 lines_before zp[1]:57 222222.44444444444
byte play_update_score::removed
byte play_update_score::removed#0 reg byte x 442857.7142857142
const byte* playfield[PLAYFIELD_LINES*PLAYFIELD_COLS] = { fill( PLAYFIELD_LINES*PLAYFIELD_COLS, 0) }
const byte** playfield_lines[PLAYFIELD_LINES] = { fill( PLAYFIELD_LINES, 0) }
const byte* playfield_lines_idx[PLAYFIELD_LINES+1] = { fill( PLAYFIELD_LINES+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 20002.0
byte~ render_bcd::$4 reg byte a 20002.0
byte~ render_bcd::$5 reg byte a 20002.0
byte~ render_bcd::$6 reg byte a 20002.0
const nomodify byte render_bcd::ZERO_CHAR = $35
byte render_bcd::bcd
byte render_bcd::bcd#0 reg byte x 2002.0
byte render_bcd::bcd#1 reg byte x 2002.0
byte render_bcd::bcd#2 reg byte x 2002.0
byte render_bcd::bcd#3 reg byte x 1001.0
byte render_bcd::bcd#4 reg byte x 1001.0
byte render_bcd::bcd#5 reg byte x 2002.0
byte render_bcd::bcd#6 reg byte x 3251.0
word render_bcd::offset
word render_bcd::offset#6 offset zp[2]:32 10001.0
byte render_bcd::only_low
byte render_bcd::only_low#6 reg byte y 5000.5
byte* render_bcd::screen
byte* render_bcd::screen#0 screen zp[2]:12 1001.0
byte* render_bcd::screen#1 screen zp[2]:12 1001.0
byte* render_bcd::screen#2 screen zp[2]:12 1001.0
byte* render_bcd::screen#3 screen zp[2]:12 2002.0
byte* render_bcd::screen#4 screen zp[2]:12 2002.0
byte* render_bcd::screen#5 screen zp[2]:12 1001.0
byte* render_bcd::screen#6 screen zp[2]:12 16007.0
byte* render_bcd::screen_pos
byte* render_bcd::screen_pos#0 screen_pos zp[2]:32 8000.8
byte* render_bcd::screen_pos#2 screen_pos zp[2]:32 20002.0
byte* render_bcd::screen_pos#3 screen_pos zp[2]:32 10001.0
void render_init()
byte~ render_init::$5 reg byte x 1501.5
byte render_init::i
byte render_init::i#1 reg byte y 1501.5
byte render_init::i#2 reg byte y 500.5
byte* render_init::li_1
byte* render_init::li_1#1 li_1 zp[2]:12 500.5
byte* render_init::li_1#2 li_1 zp[2]:12 750.75
byte* render_init::li_2
byte* render_init::li_2#1 li_2 zp[2]:54 667.3333333333334
byte* render_init::li_2#2 li_2 zp[2]:54 600.5999999999999
byte* render_init::vicSelectGfxBank1_gfx
byte* render_init::vicSelectGfxBank1_toDd001_gfx
byte render_init::vicSelectGfxBank1_toDd001_return
const byte render_init::vicSelectGfxBank1_toDd001_return#0 vicSelectGfxBank1_toDd001_return = 3^>(word)PLAYFIELD_CHARSET/$40
void render_moving()
byte~ render_moving::$1 reg byte a 200002.0
byte~ render_moving::$6 reg byte a 200002.0
byte render_moving::c
byte render_moving::c#1 reg byte x 1500001.5
byte render_moving::c#2 reg byte x 333333.6666666667
byte render_moving::current_cell
byte render_moving::current_cell#0 reg byte a 1000001.0
byte render_moving::i
byte render_moving::i#1 i zp[1]:35 200002.0
byte render_moving::i#2 i zp[1]:35 500000.5
byte render_moving::i#3 i zp[1]:35 50000.5
byte render_moving::i#4 i zp[1]:35 1550002.0
byte render_moving::i#8 i zp[1]:35 300000.75
byte render_moving::l
byte render_moving::l#1 l zp[1]:11 150001.5
byte render_moving::l#4 l zp[1]:11 11764.823529411764
byte* render_moving::screen_line
byte* render_moving::screen_line#0 screen_line zp[2]:48 110000.20000000001
byte render_moving::xpos
byte render_moving::xpos#0 xpos zp[1]:16 200002.0
byte render_moving::xpos#1 xpos zp[1]:16 666667.3333333334
byte render_moving::xpos#2 xpos zp[1]:16 620000.8
byte render_moving::ypos
byte render_moving::ypos#0 ypos zp[1]:34 2002.0
byte render_moving::ypos#1 ypos zp[1]:34 66667.33333333333
byte render_moving::ypos#2 ypos zp[1]:34 25062.8125
void render_next()
byte~ render_next::$6 reg byte x 500.5
byte render_next::c
byte render_next::c#1 reg byte x 1500001.5
byte render_next::c#2 reg byte x 285714.5714285714
byte render_next::cell
byte render_next::cell#0 reg byte a 1000001.0
byte render_next::l
byte render_next::l#1 l zp[1]:16 150001.5
byte render_next::l#7 l zp[1]:16 18182.0
const word render_next::next_area_offset = (word)$28*$c+$18+4
byte render_next::next_piece_char
byte render_next::next_piece_char#0 next_piece_char zp[1]:50 66733.46666666667
byte* render_next::next_piece_gfx
byte* render_next::next_piece_gfx#1 next_piece_gfx zp[2]:12 210000.30000000002
byte* render_next::next_piece_gfx#2 next_piece_gfx zp[2]:12 1550002.0
byte* render_next::next_piece_gfx#3 next_piece_gfx zp[2]:12 201003.0
byte* render_next::next_piece_gfx#8 next_piece_gfx zp[2]:12 2002.0
byte* render_next::screen_next_area
byte* render_next::screen_next_area#10 screen_next_area zp[2]:54 201003.0
byte* render_next::screen_next_area#11 screen_next_area zp[2]:54 250.25
byte* render_next::screen_next_area#3 screen_next_area zp[2]:54 700001.0
byte* render_next::screen_next_area#4 screen_next_area zp[2]:54 66667.33333333333
byte* render_next::screen_next_area#5 screen_next_area zp[2]:54 683334.1666666667
void render_playfield()
byte~ render_playfield::$0 reg byte a 200002.0
byte~ render_playfield::$3 reg byte a 200002.0
byte render_playfield::c
byte render_playfield::c#1 c zp[1]:35 1500001.5
byte render_playfield::c#2 c zp[1]:35 500000.5
byte render_playfield::i
byte render_playfield::i#1 i zp[1]:11 420000.60000000003
byte render_playfield::i#2 i zp[1]:11 1033334.6666666667
byte render_playfield::i#3 i zp[1]:11 50000.5
byte render_playfield::l
byte render_playfield::l#1 l zp[1]:34 150001.5
byte render_playfield::l#2 l zp[1]:34 30000.300000000003
byte* render_playfield::screen_line
byte* render_playfield::screen_line#0 screen_line zp[2]:54 200002.0
byte* render_playfield::screen_line#1 screen_line zp[2]:54 500000.5
byte* render_playfield::screen_line#2 screen_line zp[2]:54 1550002.0
void render_score()
const word render_score::level_offset = (word)$28*$13+$1f
const word render_score::lines_offset = (word)$28*1+$16
const byte* render_score::score_bytes = (byte*)&score_bcd
const word render_score::score_offset = (word)$28*5+$1c
byte* render_score::screen
byte* render_score::screen#3 screen zp[2]:12 375.375
void render_screen_original(byte* render_screen_original::screen)
const byte render_screen_original::SPACE = 0
byte* render_screen_original::cols
byte* render_screen_original::cols#1 cols zp[2]:52 100001.0
byte* render_screen_original::cols#2 cols zp[2]:52 75000.75
byte* render_screen_original::cols#3 cols zp[2]:52 42000.600000000006
byte* render_screen_original::cols#4 cols zp[2]:52 77501.0
byte* render_screen_original::cols#5 cols zp[2]:52 80000.8
byte* render_screen_original::cols#6 cols zp[2]:52 100001.0
byte* render_screen_original::cols#7 cols zp[2]:52 20002.0
byte* render_screen_original::ocols
byte* render_screen_original::ocols#1 ocols zp[2]:32 17500.25
byte* render_screen_original::ocols#2 ocols zp[2]:32 66667.33333333333
byte* render_screen_original::ocols#4 ocols zp[2]:32 13750.25
byte* render_screen_original::oscr
byte* render_screen_original::oscr#1 oscr zp[2]:54 14000.2
byte* render_screen_original::oscr#2 oscr zp[2]:54 133334.66666666666
byte* render_screen_original::oscr#4 oscr zp[2]:54 13750.25
byte* render_screen_original::screen
byte* render_screen_original::screen#10 screen zp[2]:48 30000.428571428572
byte* render_screen_original::screen#2 screen zp[2]:48 60000.600000000006
byte* render_screen_original::screen#3 screen zp[2]:48 42857.57142857143
byte* render_screen_original::screen#5 screen zp[2]:48 155002.0
byte* render_screen_original::screen#6 screen zp[2]:48 200002.0
byte* render_screen_original::screen#7 screen zp[2]:48 200002.0
byte* render_screen_original::screen#8 screen zp[2]:48 21003.0
byte* render_screen_original::screen#9 screen zp[2]:48 1001.0
byte render_screen_original::x
byte render_screen_original::x#1 reg byte x 200002.0
byte render_screen_original::x#2 reg byte x 200002.0
byte render_screen_original::x#3 reg byte x 150001.5
byte render_screen_original::x#4 reg byte x 40000.4
byte render_screen_original::x#5 reg byte x 42857.57142857143
byte render_screen_original::x#6 reg byte x 60000.600000000006
byte render_screen_original::y
byte render_screen_original::y#1 y zp[1]:35 15001.5
byte render_screen_original::y#6 y zp[1]:35 833.4166666666666
byte render_screen_render
byte render_screen_render#12 render_screen_render zp[1]:3 275.5
byte render_screen_render#16 reg byte x 1102.0
byte render_screen_render#19 render_screen_render zp[1]:3 84.76923076923077
byte render_screen_render#24 reg byte x 7700.153846153846
byte render_screen_render#35 render_screen_render_1 zp[1]:5 4766.761904761905
byte render_screen_render#63 reg byte x 202.0
byte render_screen_render#64 render_screen_render_1 zp[1]:5 50.5
byte render_screen_render#65 reg byte x 101.0
byte render_screen_show
byte render_screen_show#14 render_screen_show zp[1]:2 367.33333333333337
byte render_screen_show#17 render_screen_show zp[1]:2 577.65
volatile byte render_screen_showing loadstore zp[1]:36 1000.5
void render_screen_swap()
void render_show()
byte render_show::d018val
byte render_show::d018val#3 reg byte a 10001.0
byte* render_show::toD0181_gfx
byte render_show::toD0181_return
const byte render_show::toD0181_return#0 toD0181_return = >(word)PLAYFIELD_SCREEN_1&$3fff*4|>(word)PLAYFIELD_CHARSET/4&$f
byte* render_show::toD0181_screen
byte* render_show::toD0182_gfx
byte render_show::toD0182_return
const byte render_show::toD0182_return#0 toD0182_return = >(word)PLAYFIELD_SCREEN_2&$3fff*4|>(word)PLAYFIELD_CHARSET/4&$f
byte* render_show::toD0182_screen
const dword* score_add_bcd[5] = { fill( 5, 0) }
volatile dword score_bcd loadstore zp[4]:37 14705.911764705883
const byte** screen_lines_1[PLAYFIELD_LINES] = { fill( PLAYFIELD_LINES, 0) }
const byte** screen_lines_2[PLAYFIELD_LINES] = { fill( PLAYFIELD_LINES, 0) }
void sprites_init()
byte sprites_init::s
byte sprites_init::s#1 reg byte y 1501.5
byte sprites_init::s#2 reg byte y 800.8
byte sprites_init::s2
byte sprites_init::s2#0 reg byte x 2002.0
byte sprites_init::xpos
byte sprites_init::xpos#1 xpos zp[1]:34 667.3333333333334
byte sprites_init::xpos#2 xpos zp[1]:34 750.75
__interrupt(hardware_clobber) void sprites_irq()
byte~ sprites_irq::$0 reg byte x 4.0
byte sprites_irq::ptr
byte sprites_irq::ptr#0 reg byte x 2.5
byte sprites_irq::ptr#1 reg byte x 2.6666666666666665
byte sprites_irq::ptr#2 reg byte a 4.0
byte sprites_irq::ptr#3 reg byte a 2.6666666666666665
byte sprites_irq::ptr#4 reg byte a 4.0
volatile byte sprites_irq::raster_sprite_gfx_modify loadstore zp[1]:45 6.5
byte sprites_irq::toSpritePtr1_return
const byte sprites_irq::toSpritePtr1_return#0 toSpritePtr1_return = (byte)(word)PLAYFIELD_SPRITES/$40
byte* sprites_irq::toSpritePtr1_sprite
byte sprites_irq::ypos
byte sprites_irq::ypos#0 reg byte a 2.5
void sprites_irq_init()
zp[1]:2 [ render_screen_show#17 render_screen_show#14 ]
zp[1]:3 [ render_screen_render#19 render_screen_render#12 ]
zp[1]:4 [ current_movedown_counter#17 current_movedown_counter#15 current_movedown_counter#13 ]
reg byte y [ render_init::i#2 render_init::i#1 ]
reg byte y [ sprites_init::s#2 sprites_init::s#1 ]
reg byte y [ play_init::j#2 play_init::j#1 ]
reg byte x [ play_init::b#2 play_init::b#1 ]
reg byte x [ render_screen_render#24 render_screen_render#63 ]
reg byte x [ current_ypos#14 current_ypos#97 current_ypos#98 ]
zp[1]:5 [ render_screen_render#35 render_screen_render#64 ]
zp[1]:6 [ current_xpos#61 current_xpos#118 current_xpos#119 ]
zp[2]:7 [ current_piece_gfx#66 current_piece_gfx#111 current_piece_gfx#112 ]
zp[1]:9 [ current_piece_char#70 current_piece_char#99 current_piece_char#100 ]
reg byte x [ render_moving::c#2 render_moving::c#1 ]
reg byte x [ render_screen_render#16 render_screen_render#65 ]
reg byte y [ next_piece_idx#13 next_piece_idx#79 next_piece_idx#80 ]
reg byte x [ render_next::c#2 render_next::c#1 ]
reg byte a [ render_show::d018val#3 ]
reg byte x [ keyboard_event_scan::col#2 keyboard_event_scan::col#1 ]
zp[1]:10 [ keyboard_events_size#11 keyboard_events_size#32 keyboard_events_size#20 keyboard_events_size#17 keyboard_events_size#14 keyboard_events_size#31 keyboard_events_size#0 keyboard_events_size#1 keyboard_events_size#3 ]
reg byte a [ keyboard_event_get::return#2 keyboard_event_get::return#1 ]
zp[1]:11 [ play_movement::return#2 play_movement::render#1 play_movement::return#0 play_movement::render#2 keyboard_event_scan::row#2 keyboard_event_scan::row#1 render_moving::l#4 render_moving::l#1 render_playfield::i#2 render_playfield::i#3 render_playfield::i#1 ]
zp[2]:12 [ render_score::screen#3 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 render_next::next_piece_gfx#2 render_next::next_piece_gfx#3 render_next::next_piece_gfx#8 render_next::next_piece_gfx#1 play_init::pli#2 play_init::pli#1 render_init::li_1#2 render_init::li_1#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 ]
zp[2]:14 [ current_piece#18 current_piece#98 current_piece#99 current_piece#100 current_piece#101 current_piece#102 ]
reg byte x [ play_collision::orientation#5 play_collision::orientation#0 play_collision::orientation#1 play_collision::orientation#2 play_collision::orientation#3 ]
reg byte x [ play_collision::c#2 play_collision::c#1 ]
reg byte a [ play_collision::return#15 ]
reg byte x [ keyboard_event_pressed::keycode#5 ]
zp[1]:16 [ play_move_down::movedown#6 play_move_down::movedown#7 play_move_down::movedown#10 play_move_down::movedown#2 play_move_down::movedown#3 play_collision::xpos#6 play_collision::xpos#0 play_collision::xpos#1 play_collision::xpos#2 play_collision::xpos#3 play_collision::xpos#4 render_next::l#7 render_next::l#1 render_moving::xpos#2 render_moving::xpos#0 render_moving::xpos#1 ]
zp[1]:17 [ current_ypos#40 current_ypos#2 current_ypos#10 current_ypos#5 current_ypos#20 ]
zp[2]:18 [ lines_bcd#28 lines_bcd#20 lines_bcd#16 lines_bcd#18 lines_bcd#31 ]
zp[1]:20 [ level#35 level#25 level#18 level#20 level#22 ]
zp[1]:21 [ current_movedown_slow#39 current_movedown_slow#13 current_movedown_slow#0 current_movedown_slow#22 current_movedown_slow#24 current_movedown_slow#67 current_movedown_slow#9 ]
zp[1]:22 [ level_bcd#33 level_bcd#10 level_bcd#18 level_bcd#20 level_bcd#63 level_bcd#22 level_bcd#7 ]
zp[2]:23 [ current_piece#30 current_piece#23 current_piece#103 current_piece#16 current_piece#95 ]
zp[1]:25 [ current_piece_char#31 current_piece_char#23 current_piece_char#4 current_piece_char#17 ]
zp[1]:26 [ current_orientation#39 current_orientation#12 current_orientation#18 current_orientation#21 current_orientation#26 current_orientation#6 ]
zp[2]:27 [ current_piece_gfx#37 current_piece_gfx#12 current_piece_gfx#122 current_piece_gfx#19 current_piece_gfx#21 current_piece_gfx#22 current_piece_gfx#116 current_piece_gfx#6 ]
zp[1]:29 [ current_xpos#45 current_xpos#13 current_xpos#100 current_xpos#2 current_xpos#23 current_xpos#27 current_xpos#5 current_xpos#7 ]
zp[1]:30 [ game_over#29 game_over#66 game_over#22 game_over#53 game_over#16 ]
zp[1]:31 [ next_piece_idx#32 next_piece_idx#18 next_piece_idx#23 play_spawn_current::piece_idx#2 next_piece_idx#17 play_spawn_current::piece_idx#1 ]
reg byte x [ play_move_down::return#3 ]
reg byte a [ play_move_leftright::return#2 ]
reg byte a [ play_move_rotate::return#2 ]
zp[2]:32 [ render_bcd::offset#6 render_bcd::screen_pos#3 render_bcd::screen_pos#0 render_bcd::screen_pos#2 render_screen_original::ocols#2 render_screen_original::ocols#4 render_screen_original::ocols#1 ]
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 ]
zp[1]:34 [ play_lock_current::xp#2 play_lock_current::xp#0 play_lock_current::xp#1 play_collision::xp#2 play_collision::xp#8 play_collision::xp#1 render_moving::ypos#2 render_moving::ypos#0 render_moving::ypos#1 render_playfield::l#2 render_playfield::l#1 play_init::idx#2 play_init::idx#1 sprites_init::xpos#2 sprites_init::xpos#1 ]
reg byte x [ play_lock_current::c#2 play_lock_current::c#1 ]
zp[1]:35 [ play_remove_lines::y#8 play_remove_lines::y#1 play_move_rotate::orientation#3 play_move_rotate::orientation#1 play_move_rotate::orientation#2 render_screen_original::y#6 render_screen_original::y#1 keyboard_event_scan::keycode#10 keyboard_event_scan::keycode#11 keyboard_event_scan::keycode#13 keyboard_event_scan::keycode#14 keyboard_event_scan::keycode#1 render_moving::i#4 render_moving::i#3 render_moving::i#8 render_moving::i#2 render_moving::i#1 render_playfield::c#2 render_playfield::c#1 ]
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_increase_level::b#2 play_increase_level::b#1 ]
zp[1]:36 [ render_screen_showing ]
zp[4]:37 [ score_bcd ]
zp[1]:41 [ irq_raster_next ]
zp[1]:42 [ irq_sprite_ypos ]
zp[1]:43 [ irq_sprite_ptr ]
zp[1]:44 [ irq_cnt ]
reg byte a [ sprites_irq::ypos#0 ]
reg byte x [ sprites_irq::$0 ]
zp[1]:45 [ sprites_irq::raster_sprite_gfx_modify ]
reg byte x [ sprites_irq::ptr#0 ]
reg byte a [ sprites_irq::ptr#3 ]
reg byte a [ sprites_irq::ptr#4 ]
reg byte x [ sprites_irq::ptr#1 ]
reg byte a [ sprites_irq::ptr#2 ]
reg byte a [ keyboard_event_get::return#3 ]
reg byte x [ main::key_event#0 ]
zp[1]:46 [ play_movement::key_event#0 ]
reg byte a [ play_movement::return#3 ]
reg byte a [ main::render#1 ]
reg byte x [ render_init::$5 ]
reg byte x [ sprites_init::s2#0 ]
reg byte x [ play_init::$2 ]
reg byte a [ play_init::$3 ]
reg byte x [ play_spawn_current::current_piece_idx#0 ]
zp[1]:47 [ play_spawn_current::$7 play_remove_lines::removed#11 play_remove_lines::removed#7 play_remove_lines::removed#1 ]
reg byte a [ play_collision::return#10 ]
reg byte a [ play_spawn_current::$1 ]
reg byte a [ play_spawn_current::sid_rnd1_return#0 ]
reg byte a [ render_playfield::$0 ]
reg byte a [ render_playfield::$3 ]
reg byte a [ render_moving::$1 ]
reg byte a [ render_moving::$6 ]
zp[2]:48 [ render_moving::screen_line#0 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 ]
reg byte a [ render_moving::current_cell#0 ]
reg byte x [ render_next::$6 ]
zp[1]:50 [ render_next::next_piece_char#0 play_remove_lines::x#2 play_remove_lines::x#1 play_lock_current::yp#2 play_lock_current::yp#0 play_lock_current::yp#1 play_collision::yp#2 play_collision::yp#0 play_collision::ypos#0 play_collision::ypos#1 play_collision::ypos#2 play_collision::ypos#3 play_collision::ypos#4 play_collision::yp#1 ]
reg byte a [ render_next::cell#0 ]
reg byte x [ keyboard_matrix_read::rowid#0 ]
reg byte a [ keyboard_matrix_read::return#2 ]
zp[1]:51 [ keyboard_event_scan::row_scan#0 play_remove_lines::full#4 play_remove_lines::full#2 play_lock_current::l#6 play_lock_current::l#1 play_collision::l#6 play_collision::l#1 ]
reg byte a [ keyboard_event_pressed::return#0 ]
reg byte a [ keyboard_event_scan::$0 ]
reg byte a [ keyboard_event_pressed::return#1 ]
reg byte a [ keyboard_event_scan::$3 ]
reg byte a [ keyboard_event_pressed::return#2 ]
reg byte a [ keyboard_event_scan::$6 ]
reg byte a [ keyboard_event_pressed::return#10 ]
reg byte a [ keyboard_event_scan::$9 ]
reg byte a [ keyboard_event_scan::$15 ]
reg byte a [ keyboard_event_scan::$16 ]
reg byte a [ keyboard_event_scan::event_type#0 ]
reg byte a [ keyboard_event_scan::$23 ]
reg byte a [ play_move_down::key_event#0 ]
reg byte a [ play_move_down::return#0 ]
reg byte a [ play_move_leftright::key_event#0 ]
reg byte a [ play_move_leftright::return#0 ]
reg byte a [ play_movement::$3 ]
reg byte a [ play_move_rotate::key_event#0 ]
reg byte a [ play_move_rotate::return#0 ]
reg byte a [ play_movement::$4 ]
zp[2]:52 [ play_collision::piece_gfx#0 render_screen_original::cols#6 render_screen_original::cols#5 render_screen_original::cols#4 render_screen_original::cols#7 render_screen_original::cols#3 render_screen_original::cols#1 render_screen_original::cols#2 ]
reg byte a [ play_collision::$14 ]
reg byte a [ play_collision::$5 ]
reg byte a [ keyboard_matrix_read::return#0 ]
reg byte y [ keyboard_event_pressed::$0 ]
reg byte y [ keyboard_event_pressed::row_bits#0 ]
reg byte x [ keyboard_event_pressed::$1 ]
reg byte a [ keyboard_event_pressed::return#11 ]
reg byte a [ keyboard_event_pressed::return#12 ]
reg byte a [ play_move_down::$2 ]
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 x [ play_update_score::removed#0 ]
reg byte a [ play_collision::return#13 ]
reg byte a [ play_move_leftright::$4 ]
reg byte a [ play_collision::return#1 ]
reg byte a [ play_move_leftright::$8 ]
reg byte x [ play_move_rotate::$5 ]
reg byte a [ play_collision::return#14 ]
reg byte a [ play_move_rotate::$2 ]
reg byte a [ play_move_rotate::$7 ]
reg byte a [ render_bcd::$5 ]
reg byte a [ render_bcd::$6 ]
reg byte a [ render_bcd::$3 ]
reg byte a [ render_bcd::$4 ]
reg byte a [ play_lock_current::$4 ]
zp[2]:54 [ play_lock_current::playfield_line#0 play_collision::playfield_line#0 render_playfield::screen_line#2 render_playfield::screen_line#0 render_playfield::screen_line#1 render_init::li_2#2 render_init::li_2#1 render_screen_original::oscr#2 render_screen_original::oscr#4 render_screen_original::oscr#1 render_next::screen_next_area#5 render_next::screen_next_area#10 render_next::screen_next_area#11 render_next::screen_next_area#4 render_next::screen_next_area#3 ]
zp[1]:56 [ play_lock_current::i#1 play_collision::i#1 ]
reg byte a [ play_update_score::$2 ]
zp[1]:57 [ play_update_score::lines_before#0 play_remove_lines::c#0 play_lock_current::i#2 play_lock_current::i#3 play_lock_current::i#7 play_lock_current::i#9 play_collision::i#2 play_collision::i#3 play_collision::i#10 play_collision::i#12 ]
reg byte a [ play_update_score::$9 ]
zp[4]:58 [ play_update_score::add_bcd#0 ]
reg byte a [ play_update_score::$4 ]
reg byte a [ play_update_score::lines_after#0 ]
reg byte a [ play_increase_level::$1 ]
reg byte a [ play_increase_level::$5 ]