1
0
mirror of https://gitlab.com/camelot/kickc.git synced 2024-08-02 09:29:35 +00:00

Added level colors

This commit is contained in:
jespergravgaard 2019-02-10 22:03:55 +01:00
parent 7f78991374
commit b5c61aad5d
7 changed files with 2083 additions and 1927 deletions

View File

@ -49,7 +49,7 @@ dword score_bcd = 0;
word lines_bcd = 0;
// Current level BCD-format
byte level_bcd = 0;
// Current level in hexadecimal format
// Current level in normal (non-BCD) format
byte level = 0;
// Is the game over?
byte game_over = 0;

View File

@ -177,7 +177,6 @@ byte[] PIECES_CHARS = { $65, $66, $a6, $66, $65, $65, $a6 };
// The chars to use for the different pieces - when outside the playing area (eg. the next area).
byte[] PIECES_NEXT_CHARS = { $63, $64, $a4, $64, $63, $63, $a4 };
// The initial X/Y for each piece
byte[] PIECES_START_X = { 4, 4, 4, 4, 4, 4, 4 };
byte[] PIECES_START_Y = { 1, 1, 1, 1, 1, 0, 1 };

View File

@ -26,6 +26,19 @@ kickasm(pc PLAYFIELD_COLORS_ORIGINAL, resource "playfield-screen.col") {{
.import binary "playfield-screen.col"
}}
// The color #1 to use for the pieces for each level
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
};
// The color #2 to use for the pieces for each level
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
};
// Pointers to the screen address for rendering each playfield line
// The lines for screen 1 is aligned with $80 and screen 2 with $40 - so XOR'ing with $40 gives screen 2 lines.
align($80) byte*[PLAYFIELD_LINES] screen_lines_1;
@ -38,8 +51,8 @@ void render_init() {
*D011 = VIC_ECM | VIC_DEN | VIC_RSEL | 3;
*BORDERCOL = BLACK;
*BGCOL1 = BLACK;
*BGCOL2 = BLUE;
*BGCOL3 = CYAN;
*BGCOL2 = PIECES_COLORS_1[0];
*BGCOL3 = PIECES_COLORS_2[0];
*BGCOL4 = GREY;
// Setup chars on the screens
@ -70,6 +83,8 @@ void render_show() {
d018val = toD018(PLAYFIELD_SCREEN_2, PLAYFIELD_CHARSET);
}
*D018 = d018val;
*BGCOL2 = PIECES_COLORS_1[level];
*BGCOL3 = PIECES_COLORS_2[level];
render_screen_showing = render_screen_show;
}

View File

@ -37,9 +37,17 @@
.label CIA2_PORT_A_DDR = $dd02
.label HARDWARE_IRQ = $fffe
.const BLACK = 0
.const RED = 2
.const CYAN = 3
.const PURPLE = 4
.const GREEN = 5
.const BLUE = 6
.const ORANGE = 8
.const PINK = $a
.const DARK_GREY = $b
.const GREY = $c
.const LIGHT_GREEN = $d
.const LIGHT_BLUE = $e
.const KEY_Z = $c
.const KEY_LSHIFT = $f
.const KEY_X = $17
@ -1183,6 +1191,11 @@ render_show: {
lda #toD0182_return
b2:
sta D018
ldy level
lda PIECES_COLORS_1,y
sta BGCOL2
lda PIECES_COLORS_2,y
sta BGCOL3
lda render_screen_show
sta render_screen_showing
rts
@ -1313,9 +1326,9 @@ render_init: {
lda #BLACK
sta BORDERCOL
sta BGCOL1
lda #BLUE
lda PIECES_COLORS_1
sta BGCOL2
lda #CYAN
lda PIECES_COLORS_2
sta BGCOL3
lda #GREY
sta BGCOL4
@ -1593,6 +1606,8 @@ sprites_irq: {
MOVEDOWN_SLOW_SPEEDS: .byte $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
SCORE_BASE_BCD: .dword 0, $40, $100, $300, $1200
score_add_bcd: .fill 4*5, 0
PIECES_COLORS_1: .byte 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
PIECES_COLORS_2: .byte 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
.align $80
screen_lines_1: .fill 2*PLAYFIELD_LINES, 0
.align $40

View File

@ -98,7 +98,7 @@ main::@33: scope:[main] from main::@32
to:main::@1
main::@1: scope:[main] from main::@11 main::@33 main::@42
[38] (byte) level_bcd#11 ← phi( main::@11/(byte) level_bcd#17 main::@33/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@42/(byte) level_bcd#17 )
[38] (byte) level#10 ← phi( main::@11/(byte) level#16 main::@33/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@42/(byte) level#16 )
[38] (byte) level#10 ← phi( main::@11/(byte) level#17 main::@33/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@42/(byte) level#17 )
[38] (dword) score_bcd#18 ← phi( main::@11/(dword) score_bcd#14 main::@33/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@42/(dword) score_bcd#14 )
[38] (word) lines_bcd#19 ← phi( main::@11/(word) lines_bcd#15 main::@33/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@42/(word) lines_bcd#15 )
[38] (byte) current_movedown_counter#16 ← phi( main::@11/(byte) current_movedown_counter#14 main::@33/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@42/(byte) current_movedown_counter#14 )
@ -605,7 +605,7 @@ play_move_down::@7: scope:[play_move_down] from play_move_down::@21 play_move_d
[281] (byte*) current_piece#29 ← phi( play_move_down::@21/(byte*~) current_piece#103 play_move_down::@6/(byte*) current_piece#10 )
[281] (byte) level_bcd#32 ← phi( play_move_down::@21/(byte) level_bcd#19 play_move_down::@6/(byte) level_bcd#11 )
[281] (byte) current_movedown_slow#38 ← phi( play_move_down::@21/(byte) current_movedown_slow#23 play_move_down::@6/(byte) current_movedown_slow#14 )
[281] (byte) level#31 ← phi( play_move_down::@21/(byte) level#18 play_move_down::@6/(byte) level#10 )
[281] (byte) level#34 ← phi( play_move_down::@21/(byte) level#19 play_move_down::@6/(byte) level#10 )
[281] (dword) score_bcd#27 ← phi( play_move_down::@21/(dword) score_bcd#16 play_move_down::@6/(dword) score_bcd#18 )
[281] (word) lines_bcd#27 ← phi( play_move_down::@21/(word) lines_bcd#17 play_move_down::@6/(word) lines_bcd#19 )
[281] (byte) current_ypos#38 ← phi( play_move_down::@21/(byte) current_ypos#5 play_move_down::@6/(byte) current_ypos#2 )
@ -620,7 +620,7 @@ play_move_down::@return: scope:[play_move_down] from play_move_down::@4 play_mo
[282] (byte*) current_piece#15 ← phi( play_move_down::@4/(byte*) current_piece#10 play_move_down::@7/(byte*) current_piece#29 )
[282] (byte) level_bcd#17 ← phi( play_move_down::@4/(byte) level_bcd#11 play_move_down::@7/(byte) level_bcd#32 )
[282] (byte) current_movedown_slow#21 ← phi( play_move_down::@4/(byte) current_movedown_slow#14 play_move_down::@7/(byte) current_movedown_slow#38 )
[282] (byte) level#16 ← phi( play_move_down::@4/(byte) level#10 play_move_down::@7/(byte) level#31 )
[282] (byte) level#17 ← phi( play_move_down::@4/(byte) level#10 play_move_down::@7/(byte) level#34 )
[282] (dword) score_bcd#14 ← phi( play_move_down::@4/(dword) score_bcd#18 play_move_down::@7/(dword) score_bcd#27 )
[282] (word) lines_bcd#15 ← phi( play_move_down::@4/(word) lines_bcd#19 play_move_down::@7/(word) lines_bcd#27 )
[282] (byte) current_ypos#18 ← phi( play_move_down::@4/(byte) current_ypos#10 play_move_down::@7/(byte) current_ypos#38 )
@ -701,17 +701,17 @@ play_update_score::@4: scope:[play_update_score] from play_update_score::@3
play_update_score::@return: scope:[play_update_score] from play_update_score play_update_score::@3 play_update_score::@4
[325] (byte) level_bcd#19 ← phi( play_update_score/(byte) level_bcd#11 play_update_score::@3/(byte) level_bcd#11 play_update_score::@4/(byte) level_bcd#64 )
[325] (byte) current_movedown_slow#23 ← phi( play_update_score/(byte) current_movedown_slow#14 play_update_score::@3/(byte) current_movedown_slow#14 play_update_score::@4/(byte) current_movedown_slow#69 )
[325] (byte) level#18 ← phi( play_update_score/(byte) level#10 play_update_score::@3/(byte) level#10 play_update_score::@4/(byte) level#20 )
[325] (byte) level#19 ← phi( play_update_score/(byte) level#10 play_update_score::@3/(byte) level#10 play_update_score::@4/(byte) level#21 )
[325] (dword) score_bcd#16 ← phi( play_update_score/(dword) score_bcd#18 play_update_score::@3/(dword) score_bcd#30 play_update_score::@4/(dword) score_bcd#30 )
[325] (word) lines_bcd#17 ← phi( play_update_score/(word) lines_bcd#19 play_update_score::@3/(word) lines_bcd#30 play_update_score::@4/(word) lines_bcd#30 )
[326] return
to:@return
play_increase_level: scope:[play_increase_level] from play_update_score::@4
[327] (byte) level#20 ← ++ (byte) level#10
[328] if((byte) level#20>(byte/signed byte/word/signed word/dword/signed dword) 29) goto play_increase_level::@2
[327] (byte) level#21 ← ++ (byte) level#10
[328] if((byte) level#21>(byte/signed byte/word/signed word/dword/signed dword) 29) goto play_increase_level::@2
to:play_increase_level::@5
play_increase_level::@5: scope:[play_increase_level] from play_increase_level
[329] (byte) current_movedown_slow#10 ← *((const byte[]) MOVEDOWN_SLOW_SPEEDS#0 + (byte) level#20)
[329] (byte) current_movedown_slow#10 ← *((const byte[]) MOVEDOWN_SLOW_SPEEDS#0 + (byte) level#21)
to:play_increase_level::@2
play_increase_level::@2: scope:[play_increase_level] from play_increase_level play_increase_level::@5
[330] (byte) current_movedown_slow#69 ← phi( play_increase_level/(byte/signed byte/word/signed word/dword/signed dword) 1 play_increase_level::@5/(byte) current_movedown_slow#10 )
@ -976,246 +976,248 @@ render_show::toD0182: scope:[render_show] from render_show
render_show::@2: scope:[render_show] from render_show::toD0181 render_show::toD0182
[453] (byte) render_show::d018val#3 ← phi( render_show::toD0181/(const byte) render_show::toD0181_return#0 render_show::toD0182/(const byte) render_show::toD0182_return#0 )
[454] *((const byte*) D018#0) ← (byte) render_show::d018val#3
[455] (byte) render_screen_showing#1 ← (byte) render_screen_show#16
[455] *((const byte*) BGCOL2#0) ← *((const byte[]) PIECES_COLORS_1#0 + (byte) level#10)
[456] *((const byte*) BGCOL3#0) ← *((const byte[]) PIECES_COLORS_2#0 + (byte) level#10)
[457] (byte) render_screen_showing#1 ← (byte) render_screen_show#16
to:render_show::@return
render_show::@return: scope:[render_show] from render_show::@2
[456] return
[458] return
to:@return
render_show::toD0181: scope:[render_show] from render_show
[457] phi()
[459] phi()
to:render_show::@2
play_init: scope:[play_init] from main::@28
[458] phi()
[460] phi()
to:play_init::@1
play_init::@1: scope:[play_init] from play_init play_init::@1
[459] (byte) play_init::idx#2 ← phi( play_init/(byte/signed byte/word/signed word/dword/signed dword) 0 play_init::@1/(byte) play_init::idx#1 )
[459] (byte*) play_init::pli#2 ← phi( play_init/(const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 play_init::@1/(byte*) play_init::pli#1 )
[459] (byte) play_init::j#2 ← phi( play_init/(byte/signed byte/word/signed word/dword/signed dword) 0 play_init::@1/(byte) play_init::j#1 )
[460] (byte~) play_init::$1 ← (byte) play_init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1
[461] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) play_init::$1) ← (byte*) play_init::pli#2
[462] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) play_init::j#2) ← (byte) play_init::idx#2
[463] (byte*) play_init::pli#1 ← (byte*) play_init::pli#2 + (const byte) PLAYFIELD_COLS#0
[464] (byte) play_init::idx#1 ← (byte) play_init::idx#2 + (const byte) PLAYFIELD_COLS#0
[465] (byte) play_init::j#1 ← ++ (byte) play_init::j#2
[466] if((byte) play_init::j#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto play_init::@1
[461] (byte) play_init::idx#2 ← phi( play_init/(byte/signed byte/word/signed word/dword/signed dword) 0 play_init::@1/(byte) play_init::idx#1 )
[461] (byte*) play_init::pli#2 ← phi( play_init/(const byte[PLAYFIELD_LINES#0*PLAYFIELD_COLS#0]) playfield#0 play_init::@1/(byte*) play_init::pli#1 )
[461] (byte) play_init::j#2 ← phi( play_init/(byte/signed byte/word/signed word/dword/signed dword) 0 play_init::@1/(byte) play_init::j#1 )
[462] (byte~) play_init::$1 ← (byte) play_init::j#2 << (byte/signed byte/word/signed word/dword/signed dword) 1
[463] *((const byte*[PLAYFIELD_LINES#0]) playfield_lines#0 + (byte~) play_init::$1) ← (byte*) play_init::pli#2
[464] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0 + (byte) play_init::j#2) ← (byte) play_init::idx#2
[465] (byte*) play_init::pli#1 ← (byte*) play_init::pli#2 + (const byte) PLAYFIELD_COLS#0
[466] (byte) play_init::idx#1 ← (byte) play_init::idx#2 + (const byte) PLAYFIELD_COLS#0
[467] (byte) play_init::j#1 ← ++ (byte) play_init::j#2
[468] if((byte) play_init::j#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto play_init::@1
to:play_init::@3
play_init::@3: scope:[play_init] from play_init::@1
[467] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0+(const byte) PLAYFIELD_LINES#0) ← (const byte) PLAYFIELD_COLS#0*(const byte) PLAYFIELD_LINES#0
[468] (byte) current_movedown_slow#1 ← *((const byte[]) MOVEDOWN_SLOW_SPEEDS#0)
[469] *((const byte[PLAYFIELD_LINES#0+1]) playfield_lines_idx#0+(const byte) PLAYFIELD_LINES#0) ← (const byte) PLAYFIELD_COLS#0*(const byte) PLAYFIELD_LINES#0
[470] (byte) current_movedown_slow#1 ← *((const byte[]) MOVEDOWN_SLOW_SPEEDS#0)
to:play_init::@2
play_init::@2: scope:[play_init] from play_init::@2 play_init::@3
[469] (byte) play_init::b#2 ← phi( play_init::@2/(byte) play_init::b#1 play_init::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 )
[470] (byte) play_init::b4#0 ← (byte) play_init::b#2 << (byte/signed byte/word/signed word/dword/signed dword) 2
[471] *((const dword[5]) score_add_bcd#0 + (byte) play_init::b4#0) ← *((const dword[]) SCORE_BASE_BCD#0 + (byte) play_init::b4#0)
[472] (byte) play_init::b#1 ← ++ (byte) play_init::b#2
[473] if((byte) play_init::b#1!=(byte/signed byte/word/signed word/dword/signed dword) 5) goto play_init::@2
[471] (byte) play_init::b#2 ← phi( play_init::@2/(byte) play_init::b#1 play_init::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 )
[472] (byte) play_init::b4#0 ← (byte) play_init::b#2 << (byte/signed byte/word/signed word/dword/signed dword) 2
[473] *((const dword[5]) score_add_bcd#0 + (byte) play_init::b4#0) ← *((const dword[]) SCORE_BASE_BCD#0 + (byte) play_init::b4#0)
[474] (byte) play_init::b#1 ← ++ (byte) play_init::b#2
[475] if((byte) play_init::b#1!=(byte/signed byte/word/signed word/dword/signed dword) 5) goto play_init::@2
to:play_init::@return
play_init::@return: scope:[play_init] from play_init::@2
[474] return
[476] return
to:@return
sprites_irq_init: scope:[sprites_irq_init] from main::@27
asm { sei }
[476] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0
[478] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0
asm { ldaCIA1_INTERRUPT }
[478] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0
[479] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0
[480] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0
[481] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) 127
[482] *((const byte*) RASTER#0) ← (const byte) IRQ_RASTER_FIRST#0
[483] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0
[484] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_CLOBBER)(void()) sprites_irq()
[480] *((const byte*) PROCPORT_DDR#0) ← (const byte) PROCPORT_DDR_MEMORY_MASK#0
[481] *((const byte*) PROCPORT#0) ← (const byte) PROCPORT_RAM_IO#0
[482] *((const byte*) CIA1_INTERRUPT#0) ← (const byte) CIA_INTERRUPT_CLEAR#0
[483] *((const byte*) VIC_CONTROL#0) ← *((const byte*) VIC_CONTROL#0) & (byte/signed byte/word/signed word/dword/signed dword) 127
[484] *((const byte*) RASTER#0) ← (const byte) IRQ_RASTER_FIRST#0
[485] *((const byte*) IRQ_ENABLE#0) ← (const byte) IRQ_RASTER#0
[486] *((const void()**) HARDWARE_IRQ#0) ← &interrupt(HARDWARE_CLOBBER)(void()) sprites_irq()
asm { cli }
to:sprites_irq_init::@return
sprites_irq_init::@return: scope:[sprites_irq_init] from sprites_irq_init
[486] return
[488] return
to:@return
sprites_init: scope:[sprites_init] from main::@26
[487] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 15
[488] *((const byte*) SPRITES_MC#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0
[489] *((const byte*) SPRITES_EXPAND_Y#0) ← *((const byte*) SPRITES_MC#0)
[490] *((const byte*) SPRITES_EXPAND_X#0) ← *((const byte*) SPRITES_EXPAND_Y#0)
[489] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word/dword/signed dword) 15
[490] *((const byte*) SPRITES_MC#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0
[491] *((const byte*) SPRITES_EXPAND_Y#0) ← *((const byte*) SPRITES_MC#0)
[492] *((const byte*) SPRITES_EXPAND_X#0) ← *((const byte*) SPRITES_EXPAND_Y#0)
to:sprites_init::@1
sprites_init::@1: scope:[sprites_init] from sprites_init sprites_init::@1
[491] (byte) sprites_init::xpos#2 ← phi( sprites_init/(byte/signed byte/word/signed word/dword/signed dword) 24+(byte/signed byte/word/signed word/dword/signed dword) 15*(byte/signed byte/word/signed word/dword/signed dword) 8 sprites_init::@1/(byte) sprites_init::xpos#1 )
[491] (byte) sprites_init::s#2 ← phi( sprites_init/(byte/signed byte/word/signed word/dword/signed dword) 0 sprites_init::@1/(byte) sprites_init::s#1 )
[492] (byte) sprites_init::s2#0 ← (byte) sprites_init::s#2 << (byte/signed byte/word/signed word/dword/signed dword) 1
[493] *((const byte*) SPRITES_XPOS#0 + (byte) sprites_init::s2#0) ← (byte) sprites_init::xpos#2
[494] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::s#2) ← (const byte) BLACK#0
[495] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) 24
[496] (byte) sprites_init::s#1 ← ++ (byte) sprites_init::s#2
[497] if((byte) sprites_init::s#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto sprites_init::@1
[493] (byte) sprites_init::xpos#2 ← phi( sprites_init/(byte/signed byte/word/signed word/dword/signed dword) 24+(byte/signed byte/word/signed word/dword/signed dword) 15*(byte/signed byte/word/signed word/dword/signed dword) 8 sprites_init::@1/(byte) sprites_init::xpos#1 )
[493] (byte) sprites_init::s#2 ← phi( sprites_init/(byte/signed byte/word/signed word/dword/signed dword) 0 sprites_init::@1/(byte) sprites_init::s#1 )
[494] (byte) sprites_init::s2#0 ← (byte) sprites_init::s#2 << (byte/signed byte/word/signed word/dword/signed dword) 1
[495] *((const byte*) SPRITES_XPOS#0 + (byte) sprites_init::s2#0) ← (byte) sprites_init::xpos#2
[496] *((const byte*) SPRITES_COLS#0 + (byte) sprites_init::s#2) ← (const byte) BLACK#0
[497] (byte) sprites_init::xpos#1 ← (byte) sprites_init::xpos#2 + (byte/signed byte/word/signed word/dword/signed dword) 24
[498] (byte) sprites_init::s#1 ← ++ (byte) sprites_init::s#2
[499] if((byte) sprites_init::s#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto sprites_init::@1
to:sprites_init::@return
sprites_init::@return: scope:[sprites_init] from sprites_init::@1
[498] return
[500] return
to:@return
render_init: scope:[render_init] from main::@25
[499] phi()
[501] phi()
to:render_init::vicSelectGfxBank1
render_init::vicSelectGfxBank1: scope:[render_init] from render_init
[500] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3
[502] *((const byte*) CIA2_PORT_A_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 3
to:render_init::vicSelectGfxBank1_toDd001
render_init::vicSelectGfxBank1_toDd001: scope:[render_init] from render_init::vicSelectGfxBank1
[501] phi()
[503] phi()
to:render_init::vicSelectGfxBank1_@1
render_init::vicSelectGfxBank1_@1: scope:[render_init] from render_init::vicSelectGfxBank1_toDd001
[502] *((const byte*) CIA2_PORT_A#0) ← (const byte) render_init::vicSelectGfxBank1_toDd001_return#0
[504] *((const byte*) CIA2_PORT_A#0) ← (const byte) render_init::vicSelectGfxBank1_toDd001_return#0
to:render_init::@3
render_init::@3: scope:[render_init] from render_init::vicSelectGfxBank1_@1
[503] *((const byte*) D011#0) ← (const byte) VIC_ECM#0|(const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3
[504] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0
[505] *((const byte*) BGCOL1#0) ← (const byte) BLACK#0
[506] *((const byte*) BGCOL2#0) ← (const byte) BLUE#0
[507] *((const byte*) BGCOL3#0) ← (const byte) CYAN#0
[508] *((const byte*) BGCOL4#0) ← (const byte) GREY#0
[509] call render_screen_original
[505] *((const byte*) D011#0) ← (const byte) VIC_ECM#0|(const byte) VIC_DEN#0|(const byte) VIC_RSEL#0|(byte/signed byte/word/signed word/dword/signed dword) 3
[506] *((const byte*) BORDERCOL#0) ← (const byte) BLACK#0
[507] *((const byte*) BGCOL1#0) ← (const byte) BLACK#0
[508] *((const byte*) BGCOL2#0) ← *((const byte[]) PIECES_COLORS_1#0)
[509] *((const byte*) BGCOL3#0) ← *((const byte[]) PIECES_COLORS_2#0)
[510] *((const byte*) BGCOL4#0) ← (const byte) GREY#0
[511] call render_screen_original
to:render_init::@4
render_init::@4: scope:[render_init] from render_init::@3
[510] phi()
[511] call render_screen_original
[512] phi()
[513] call render_screen_original
to:render_init::@1
render_init::@1: scope:[render_init] from render_init::@1 render_init::@4
[512] (byte*) render_init::li_2#2 ← phi( render_init::@1/(byte*) render_init::li_2#1 render_init::@4/(const byte*) PLAYFIELD_SCREEN_2#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 16 )
[512] (byte*) render_init::li_1#2 ← phi( render_init::@1/(byte*) render_init::li_1#1 render_init::@4/(const byte*) PLAYFIELD_SCREEN_1#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 16 )
[512] (byte) render_init::i#2 ← phi( render_init::@1/(byte) render_init::i#1 render_init::@4/(byte/signed byte/word/signed word/dword/signed dword) 0 )
[513] (byte~) render_init::$13 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1
[514] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_init::$13) ← (byte*) render_init::li_1#2
[515] (byte~) render_init::$14 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1
[516] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_2#0 + (byte~) render_init::$14) ← (byte*) render_init::li_2#2
[517] (byte*) render_init::li_1#1 ← (byte*) render_init::li_1#2 + (byte/signed byte/word/signed word/dword/signed dword) 40
[518] (byte*) render_init::li_2#1 ← (byte*) render_init::li_2#2 + (byte/signed byte/word/signed word/dword/signed dword) 40
[519] (byte) render_init::i#1 ← ++ (byte) render_init::i#2
[520] if((byte) render_init::i#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@1
[514] (byte*) render_init::li_2#2 ← phi( render_init::@1/(byte*) render_init::li_2#1 render_init::@4/(const byte*) PLAYFIELD_SCREEN_2#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 16 )
[514] (byte*) render_init::li_1#2 ← phi( render_init::@1/(byte*) render_init::li_1#1 render_init::@4/(const byte*) PLAYFIELD_SCREEN_1#0+(byte/signed byte/word/signed word/dword/signed dword) 2*(byte/signed byte/word/signed word/dword/signed dword) 40+(byte/signed byte/word/signed word/dword/signed dword) 16 )
[514] (byte) render_init::i#2 ← phi( render_init::@1/(byte) render_init::i#1 render_init::@4/(byte/signed byte/word/signed word/dword/signed dword) 0 )
[515] (byte~) render_init::$13 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1
[516] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_1#0 + (byte~) render_init::$13) ← (byte*) render_init::li_1#2
[517] (byte~) render_init::$14 ← (byte) render_init::i#2 << (byte/signed byte/word/signed word/dword/signed dword) 1
[518] *((const byte*[PLAYFIELD_LINES#0]) screen_lines_2#0 + (byte~) render_init::$14) ← (byte*) render_init::li_2#2
[519] (byte*) render_init::li_1#1 ← (byte*) render_init::li_1#2 + (byte/signed byte/word/signed word/dword/signed dword) 40
[520] (byte*) render_init::li_2#1 ← (byte*) render_init::li_2#2 + (byte/signed byte/word/signed word/dword/signed dword) 40
[521] (byte) render_init::i#1 ← ++ (byte) render_init::i#2
[522] if((byte) render_init::i#1!=(const byte) PLAYFIELD_LINES#0-(byte/signed byte/word/signed word/dword/signed dword) 1+(byte/signed byte/word/signed word/dword/signed dword) 1) goto render_init::@1
to:render_init::@return
render_init::@return: scope:[render_init] from render_init::@1
[521] return
[523] return
to:@return
render_screen_original: scope:[render_screen_original] from render_init::@3 render_init::@4
[522] (byte*) render_screen_original::screen#9 ← phi( render_init::@3/(const byte*) PLAYFIELD_SCREEN_1#0 render_init::@4/(const byte*) PLAYFIELD_SCREEN_2#0 )
[524] (byte*) render_screen_original::screen#9 ← phi( render_init::@3/(const byte*) PLAYFIELD_SCREEN_1#0 render_init::@4/(const byte*) PLAYFIELD_SCREEN_2#0 )
to:render_screen_original::@1
render_screen_original::@1: scope:[render_screen_original] from render_screen_original render_screen_original::@7
[523] (byte) render_screen_original::y#6 ← phi( render_screen_original/(byte/signed byte/word/signed word/dword/signed dword) 0 render_screen_original::@7/(byte) render_screen_original::y#1 )
[523] (byte*) render_screen_original::ocols#4 ← phi( render_screen_original/(const byte*) PLAYFIELD_COLORS_ORIGINAL#0+(byte/signed byte/word/signed word/dword/signed dword) 32*(byte/signed byte/word/signed word/dword/signed dword) 2 render_screen_original::@7/(byte*) render_screen_original::ocols#1 )
[523] (byte*) render_screen_original::oscr#4 ← phi( render_screen_original/(const byte*) PLAYFIELD_SCREEN_ORIGINAL#0+(byte/signed byte/word/signed word/dword/signed dword) 32*(byte/signed byte/word/signed word/dword/signed dword) 2 render_screen_original::@7/(byte*) render_screen_original::oscr#1 )
[523] (byte*) render_screen_original::cols#7 ← phi( render_screen_original/(const byte*) COLS#0 render_screen_original::@7/(byte*) render_screen_original::cols#3 )
[523] (byte*) render_screen_original::screen#8 ← phi( render_screen_original/(byte*) render_screen_original::screen#9 render_screen_original::@7/(byte*) render_screen_original::screen#10 )
[525] (byte) render_screen_original::y#6 ← phi( render_screen_original/(byte/signed byte/word/signed word/dword/signed dword) 0 render_screen_original::@7/(byte) render_screen_original::y#1 )
[525] (byte*) render_screen_original::ocols#4 ← phi( render_screen_original/(const byte*) PLAYFIELD_COLORS_ORIGINAL#0+(byte/signed byte/word/signed word/dword/signed dword) 32*(byte/signed byte/word/signed word/dword/signed dword) 2 render_screen_original::@7/(byte*) render_screen_original::ocols#1 )
[525] (byte*) render_screen_original::oscr#4 ← phi( render_screen_original/(const byte*) PLAYFIELD_SCREEN_ORIGINAL#0+(byte/signed byte/word/signed word/dword/signed dword) 32*(byte/signed byte/word/signed word/dword/signed dword) 2 render_screen_original::@7/(byte*) render_screen_original::oscr#1 )
[525] (byte*) render_screen_original::cols#7 ← phi( render_screen_original/(const byte*) COLS#0 render_screen_original::@7/(byte*) render_screen_original::cols#3 )
[525] (byte*) render_screen_original::screen#8 ← phi( render_screen_original/(byte*) render_screen_original::screen#9 render_screen_original::@7/(byte*) render_screen_original::screen#10 )
to:render_screen_original::@2
render_screen_original::@2: scope:[render_screen_original] from render_screen_original::@1 render_screen_original::@2
[524] (byte) render_screen_original::x#4 ← phi( render_screen_original::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 render_screen_original::@2/(byte) render_screen_original::x#1 )
[524] (byte*) render_screen_original::cols#4 ← phi( render_screen_original::@1/(byte*) render_screen_original::cols#7 render_screen_original::@2/(byte*) render_screen_original::cols#1 )
[524] (byte*) render_screen_original::screen#5 ← phi( render_screen_original::@1/(byte*) render_screen_original::screen#8 render_screen_original::@2/(byte*) render_screen_original::screen#2 )
[525] *((byte*) render_screen_original::screen#5) ← (const byte) render_screen_original::SPACE#0
[526] (byte*) render_screen_original::screen#2 ← ++ (byte*) render_screen_original::screen#5
[527] *((byte*) render_screen_original::cols#4) ← (const byte) BLACK#0
[528] (byte*) render_screen_original::cols#1 ← ++ (byte*) render_screen_original::cols#4
[529] (byte) render_screen_original::x#1 ← ++ (byte) render_screen_original::x#4
[530] if((byte) render_screen_original::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_screen_original::@2
[526] (byte) render_screen_original::x#4 ← phi( render_screen_original::@1/(byte/signed byte/word/signed word/dword/signed dword) 0 render_screen_original::@2/(byte) render_screen_original::x#1 )
[526] (byte*) render_screen_original::cols#4 ← phi( render_screen_original::@1/(byte*) render_screen_original::cols#7 render_screen_original::@2/(byte*) render_screen_original::cols#1 )
[526] (byte*) render_screen_original::screen#5 ← phi( render_screen_original::@1/(byte*) render_screen_original::screen#8 render_screen_original::@2/(byte*) render_screen_original::screen#2 )
[527] *((byte*) render_screen_original::screen#5) ← (const byte) render_screen_original::SPACE#0
[528] (byte*) render_screen_original::screen#2 ← ++ (byte*) render_screen_original::screen#5
[529] *((byte*) render_screen_original::cols#4) ← (const byte) BLACK#0
[530] (byte*) render_screen_original::cols#1 ← ++ (byte*) render_screen_original::cols#4
[531] (byte) render_screen_original::x#1 ← ++ (byte) render_screen_original::x#4
[532] if((byte) render_screen_original::x#1!=(byte/signed byte/word/signed word/dword/signed dword) 4) goto render_screen_original::@2
to:render_screen_original::@3
render_screen_original::@3: scope:[render_screen_original] from render_screen_original::@2 render_screen_original::@3
[531] (byte) render_screen_original::x#5 ← phi( render_screen_original::@2/(byte) render_screen_original::x#1 render_screen_original::@3/(byte) render_screen_original::x#2 )
[531] (byte*) render_screen_original::cols#5 ← phi( render_screen_original::@2/(byte*) render_screen_original::cols#1 render_screen_original::@3/(byte*) render_screen_original::cols#2 )
[531] (byte*) render_screen_original::ocols#2 ← phi( render_screen_original::@2/(byte*) render_screen_original::ocols#4 render_screen_original::@3/(byte*) render_screen_original::ocols#1 )
[531] (byte*) render_screen_original::screen#6 ← phi( render_screen_original::@2/(byte*) render_screen_original::screen#2 render_screen_original::@3/(byte*) render_screen_original::screen#3 )
[531] (byte*) render_screen_original::oscr#2 ← phi( render_screen_original::@2/(byte*) render_screen_original::oscr#4 render_screen_original::@3/(byte*) render_screen_original::oscr#1 )
[532] *((byte*) render_screen_original::screen#6) ← *((byte*) render_screen_original::oscr#2)
[533] (byte*) render_screen_original::screen#3 ← ++ (byte*) render_screen_original::screen#6
[534] (byte*) render_screen_original::oscr#1 ← ++ (byte*) render_screen_original::oscr#2
[535] *((byte*) render_screen_original::cols#5) ← *((byte*) render_screen_original::ocols#2)
[536] (byte*) render_screen_original::cols#2 ← ++ (byte*) render_screen_original::cols#5
[537] (byte*) render_screen_original::ocols#1 ← ++ (byte*) render_screen_original::ocols#2
[538] (byte) render_screen_original::x#2 ← ++ (byte) render_screen_original::x#5
[539] if((byte) render_screen_original::x#2!=(byte/signed byte/word/signed word/dword/signed dword) 36) goto render_screen_original::@3
[533] (byte) render_screen_original::x#5 ← phi( render_screen_original::@2/(byte) render_screen_original::x#1 render_screen_original::@3/(byte) render_screen_original::x#2 )
[533] (byte*) render_screen_original::cols#5 ← phi( render_screen_original::@2/(byte*) render_screen_original::cols#1 render_screen_original::@3/(byte*) render_screen_original::cols#2 )
[533] (byte*) render_screen_original::ocols#2 ← phi( render_screen_original::@2/(byte*) render_screen_original::ocols#4 render_screen_original::@3/(byte*) render_screen_original::ocols#1 )
[533] (byte*) render_screen_original::screen#6 ← phi( render_screen_original::@2/(byte*) render_screen_original::screen#2 render_screen_original::@3/(byte*) render_screen_original::screen#3 )
[533] (byte*) render_screen_original::oscr#2 ← phi( render_screen_original::@2/(byte*) render_screen_original::oscr#4 render_screen_original::@3/(byte*) render_screen_original::oscr#1 )
[534] *((byte*) render_screen_original::screen#6) ← *((byte*) render_screen_original::oscr#2)
[535] (byte*) render_screen_original::screen#3 ← ++ (byte*) render_screen_original::screen#6
[536] (byte*) render_screen_original::oscr#1 ← ++ (byte*) render_screen_original::oscr#2
[537] *((byte*) render_screen_original::cols#5) ← *((byte*) render_screen_original::ocols#2)
[538] (byte*) render_screen_original::cols#2 ← ++ (byte*) render_screen_original::cols#5
[539] (byte*) render_screen_original::ocols#1 ← ++ (byte*) render_screen_original::ocols#2
[540] (byte) render_screen_original::x#2 ← ++ (byte) render_screen_original::x#5
[541] if((byte) render_screen_original::x#2!=(byte/signed byte/word/signed word/dword/signed dword) 36) goto render_screen_original::@3
to:render_screen_original::@4
render_screen_original::@4: scope:[render_screen_original] from render_screen_original::@3 render_screen_original::@4
[540] (byte) render_screen_original::x#6 ← phi( render_screen_original::@3/(byte) render_screen_original::x#2 render_screen_original::@4/(byte) render_screen_original::x#3 )
[540] (byte*) render_screen_original::cols#6 ← phi( render_screen_original::@3/(byte*) render_screen_original::cols#2 render_screen_original::@4/(byte*) render_screen_original::cols#3 )
[540] (byte*) render_screen_original::screen#7 ← phi( render_screen_original::@3/(byte*) render_screen_original::screen#3 render_screen_original::@4/(byte*) render_screen_original::screen#10 )
[541] *((byte*) render_screen_original::screen#7) ← (const byte) render_screen_original::SPACE#0
[542] (byte*) render_screen_original::screen#10 ← ++ (byte*) render_screen_original::screen#7
[543] *((byte*) render_screen_original::cols#6) ← (const byte) BLACK#0
[544] (byte*) render_screen_original::cols#3 ← ++ (byte*) render_screen_original::cols#6
[545] (byte) render_screen_original::x#3 ← ++ (byte) render_screen_original::x#6
[546] if((byte) render_screen_original::x#3!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto render_screen_original::@4
[542] (byte) render_screen_original::x#6 ← phi( render_screen_original::@3/(byte) render_screen_original::x#2 render_screen_original::@4/(byte) render_screen_original::x#3 )
[542] (byte*) render_screen_original::cols#6 ← phi( render_screen_original::@3/(byte*) render_screen_original::cols#2 render_screen_original::@4/(byte*) render_screen_original::cols#3 )
[542] (byte*) render_screen_original::screen#7 ← phi( render_screen_original::@3/(byte*) render_screen_original::screen#3 render_screen_original::@4/(byte*) render_screen_original::screen#10 )
[543] *((byte*) render_screen_original::screen#7) ← (const byte) render_screen_original::SPACE#0
[544] (byte*) render_screen_original::screen#10 ← ++ (byte*) render_screen_original::screen#7
[545] *((byte*) render_screen_original::cols#6) ← (const byte) BLACK#0
[546] (byte*) render_screen_original::cols#3 ← ++ (byte*) render_screen_original::cols#6
[547] (byte) render_screen_original::x#3 ← ++ (byte) render_screen_original::x#6
[548] if((byte) render_screen_original::x#3!=(byte/signed byte/word/signed word/dword/signed dword) 40) goto render_screen_original::@4
to:render_screen_original::@7
render_screen_original::@7: scope:[render_screen_original] from render_screen_original::@4
[547] (byte) render_screen_original::y#1 ← ++ (byte) render_screen_original::y#6
[548] if((byte) render_screen_original::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto render_screen_original::@1
[549] (byte) render_screen_original::y#1 ← ++ (byte) render_screen_original::y#6
[550] if((byte) render_screen_original::y#1!=(byte/signed byte/word/signed word/dword/signed dword) 25) goto render_screen_original::@1
to:render_screen_original::@return
render_screen_original::@return: scope:[render_screen_original] from render_screen_original::@7
[549] return
[551] return
to:@return
sid_rnd_init: scope:[sid_rnd_init] from main
[550] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535
[551] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0
[552] *((const word*) SID_VOICE3_FREQ#0) ← (word/dword/signed dword) 65535
[553] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0
to:sid_rnd_init::@return
sid_rnd_init::@return: scope:[sid_rnd_init] from sid_rnd_init
[552] return
[554] return
to:@return
sprites_irq: scope:[sprites_irq] from
asm { cld }
[554] (byte) sprites_irq::ypos#0 ← (byte) irq_sprite_ypos#0
[555] *((const byte*) SPRITES_YPOS#0) ← (byte) sprites_irq::ypos#0
[556] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ypos#0
[557] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte) sprites_irq::ypos#0
[558] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte) sprites_irq::ypos#0
[559] (byte/signed word/word/dword/signed dword~) sprites_irq::$0 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 1
[560] (byte) sprites_irq::raster_sprite_gfx_modify#0 ← (byte/signed word/word/dword/signed dword~) sprites_irq::$0
[556] (byte) sprites_irq::ypos#0 ← (byte) irq_sprite_ypos#0
[557] *((const byte*) SPRITES_YPOS#0) ← (byte) sprites_irq::ypos#0
[558] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ypos#0
[559] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 4) ← (byte) sprites_irq::ypos#0
[560] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word/dword/signed dword) 6) ← (byte) sprites_irq::ypos#0
[561] (byte/signed word/word/dword/signed dword~) sprites_irq::$0 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 1
[562] (byte) sprites_irq::raster_sprite_gfx_modify#0 ← (byte/signed word/word/dword/signed dword~) sprites_irq::$0
to:sprites_irq::@1
sprites_irq::@1: scope:[sprites_irq] from sprites_irq sprites_irq::@1
[561] if(*((const byte*) RASTER#0)<(byte) sprites_irq::raster_sprite_gfx_modify#0) goto sprites_irq::@1
[563] if(*((const byte*) RASTER#0)<(byte) sprites_irq::raster_sprite_gfx_modify#0) goto sprites_irq::@1
to:sprites_irq::@8
sprites_irq::@8: scope:[sprites_irq] from sprites_irq::@1
[562] (byte) sprites_irq::ptr#0 ← (byte) irq_sprite_ptr#0
[563] if((byte) render_screen_showing#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sprites_irq::@2
[564] (byte) sprites_irq::ptr#0 ← (byte) irq_sprite_ptr#0
[565] if((byte) render_screen_showing#0==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sprites_irq::@2
to:sprites_irq::@9
sprites_irq::@9: scope:[sprites_irq] from sprites_irq::@8
[564] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0) ← (byte) sprites_irq::ptr#0
[565] (byte) sprites_irq::ptr#3 ← ++ (byte) sprites_irq::ptr#0
[566] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) sprites_irq::ptr#3
[567] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ptr#3
[568] (byte) sprites_irq::ptr#4 ← ++ (byte) sprites_irq::ptr#3
[569] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte) sprites_irq::ptr#4
[566] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0) ← (byte) sprites_irq::ptr#0
[567] (byte) sprites_irq::ptr#3 ← ++ (byte) sprites_irq::ptr#0
[568] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) sprites_irq::ptr#3
[569] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ptr#3
[570] (byte) sprites_irq::ptr#4 ← ++ (byte) sprites_irq::ptr#3
[571] *((const byte*) PLAYFIELD_SPRITE_PTRS_2#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte) sprites_irq::ptr#4
to:sprites_irq::@3
sprites_irq::@3: scope:[sprites_irq] from sprites_irq::@2 sprites_irq::@9
[570] (byte) irq_cnt#1 ← ++ (byte) irq_cnt#0
[571] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 9) goto sprites_irq::@4
[572] (byte) irq_cnt#1 ← ++ (byte) irq_cnt#0
[573] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 9) goto sprites_irq::@4
to:sprites_irq::@11
sprites_irq::@11: scope:[sprites_irq] from sprites_irq::@3
[572] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto sprites_irq::@5
[574] if((byte) irq_cnt#1==(byte/signed byte/word/signed word/dword/signed dword) 10) goto sprites_irq::@5
to:sprites_irq::@12
sprites_irq::@12: scope:[sprites_irq] from sprites_irq::@11
[573] (byte) irq_raster_next#3 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 20
[574] (byte) irq_sprite_ypos#3 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21
[575] (byte) irq_sprite_ptr#3 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3
[575] (byte) irq_raster_next#3 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 20
[576] (byte) irq_sprite_ypos#3 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21
[577] (byte) irq_sprite_ptr#3 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3
to:sprites_irq::@7
sprites_irq::@7: scope:[sprites_irq] from sprites_irq::@12 sprites_irq::@15 sprites_irq::@5
[576] (byte) irq_raster_next#4 ← phi( sprites_irq::@12/(byte) irq_raster_next#3 sprites_irq::@15/(byte) irq_raster_next#1 sprites_irq::@5/(byte) irq_raster_next#2 )
[577] *((const byte*) RASTER#0) ← (byte) irq_raster_next#4
[578] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0
[578] (byte) irq_raster_next#4 ← phi( sprites_irq::@12/(byte) irq_raster_next#3 sprites_irq::@15/(byte) irq_raster_next#1 sprites_irq::@5/(byte) irq_raster_next#2 )
[579] *((const byte*) RASTER#0) ← (byte) irq_raster_next#4
[580] *((const byte*) IRQ_STATUS#0) ← (const byte) IRQ_RASTER#0
to:sprites_irq::@return
sprites_irq::@return: scope:[sprites_irq] from sprites_irq::@7
[579] return
[581] return
to:@return
sprites_irq::@5: scope:[sprites_irq] from sprites_irq::@11
[580] (byte) irq_cnt#2 ← (byte/signed byte/word/signed word/dword/signed dword) 0
[581] (byte) irq_raster_next#2 ← (const byte) IRQ_RASTER_FIRST#0
[582] (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21
[583] (byte) irq_sprite_ptr#2 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3
[582] (byte) irq_cnt#2 ← (byte/signed byte/word/signed word/dword/signed dword) 0
[583] (byte) irq_raster_next#2 ← (const byte) IRQ_RASTER_FIRST#0
[584] (byte) irq_sprite_ypos#2 ← (byte) irq_sprite_ypos#0 + (byte/signed byte/word/signed word/dword/signed dword) 21
[585] (byte) irq_sprite_ptr#2 ← (byte) irq_sprite_ptr#0 + (byte/signed byte/word/signed word/dword/signed dword) 3
to:sprites_irq::@7
sprites_irq::@4: scope:[sprites_irq] from sprites_irq::@3
[584] (byte) irq_raster_next#1 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21
[585] (byte) irq_sprite_ypos#1 ← (const byte) SPRITES_FIRST_YPOS#0
[586] (byte) irq_raster_next#1 ← (byte) irq_raster_next#0 + (byte/signed byte/word/signed word/dword/signed dword) 21
[587] (byte) irq_sprite_ypos#1 ← (const byte) SPRITES_FIRST_YPOS#0
to:sprites_irq::toSpritePtr2
sprites_irq::toSpritePtr2: scope:[sprites_irq] from sprites_irq::@4
[586] phi()
[588] phi()
to:sprites_irq::@15
sprites_irq::@15: scope:[sprites_irq] from sprites_irq::toSpritePtr2
[587] (byte) irq_sprite_ptr#1 ← (const byte) sprites_irq::toSpritePtr2_return#0
[589] (byte) irq_sprite_ptr#1 ← (const byte) sprites_irq::toSpritePtr2_return#0
to:sprites_irq::@7
sprites_irq::@2: scope:[sprites_irq] from sprites_irq::@8
[588] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0) ← (byte) sprites_irq::ptr#0
[589] (byte) sprites_irq::ptr#1 ← ++ (byte) sprites_irq::ptr#0
[590] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) sprites_irq::ptr#1
[591] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ptr#1
[592] (byte) sprites_irq::ptr#2 ← ++ (byte) sprites_irq::ptr#1
[593] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte) sprites_irq::ptr#2
[590] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0) ← (byte) sprites_irq::ptr#0
[591] (byte) sprites_irq::ptr#1 ← ++ (byte) sprites_irq::ptr#0
[592] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 1) ← (byte) sprites_irq::ptr#1
[593] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 2) ← (byte) sprites_irq::ptr#1
[594] (byte) sprites_irq::ptr#2 ← ++ (byte) sprites_irq::ptr#1
[595] *((const byte*) PLAYFIELD_SPRITE_PTRS_1#0+(byte/signed byte/word/signed word/dword/signed dword) 3) ← (byte) sprites_irq::ptr#2
to:sprites_irq::@3

File diff suppressed because it is too large Load Diff

View File

@ -59,7 +59,9 @@
(byte*) D018
(const byte*) D018#0 D018 = ((byte*))(word/dword/signed dword) 53272
(byte) DARK_GREY
(const byte) DARK_GREY#0 DARK_GREY = (byte/signed byte/word/signed word/dword/signed dword) 11
(byte) GREEN
(const byte) GREEN#0 GREEN = (byte/signed byte/word/signed word/dword/signed dword) 5
(byte) GREY
(const byte) GREY#0 GREY = (byte/signed byte/word/signed word/dword/signed dword) 12
(void()**) HARDWARE_IRQ
@ -161,15 +163,22 @@
(byte*) LIGHTPEN_X
(byte*) LIGHTPEN_Y
(byte) LIGHT_BLUE
(const byte) LIGHT_BLUE#0 LIGHT_BLUE = (byte/signed byte/word/signed word/dword/signed dword) 14
(byte) LIGHT_GREEN
(const byte) LIGHT_GREEN#0 LIGHT_GREEN = (byte/signed byte/word/signed word/dword/signed dword) 13
(byte) LIGHT_GREY
(byte[]) MOVEDOWN_SLOW_SPEEDS
(const byte[]) MOVEDOWN_SLOW_SPEEDS#0 MOVEDOWN_SLOW_SPEEDS = { (byte/signed byte/word/signed word/dword/signed dword) 48, (byte/signed byte/word/signed word/dword/signed dword) 43, (byte/signed byte/word/signed word/dword/signed dword) 38, (byte/signed byte/word/signed word/dword/signed dword) 33, (byte/signed byte/word/signed word/dword/signed dword) 28, (byte/signed byte/word/signed word/dword/signed dword) 23, (byte/signed byte/word/signed word/dword/signed dword) 18, (byte/signed byte/word/signed word/dword/signed dword) 13, (byte/signed byte/word/signed word/dword/signed dword) 8, (byte/signed byte/word/signed word/dword/signed dword) 6, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 5, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 4, (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 3, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 2, (byte/signed byte/word/signed word/dword/signed dword) 1 }
(byte) ORANGE
(const byte) ORANGE#0 ORANGE = (byte/signed byte/word/signed word/dword/signed dword) 8
(word[]) PIECES
(const word[]) PIECES#0 PIECES = { ((word))(const byte[4*4*4]) PIECE_T#0, ((word))(const byte[4*4*4]) PIECE_S#0, ((word))(const byte[4*4*4]) PIECE_Z#0, ((word))(const byte[4*4*4]) PIECE_J#0, ((word))(const byte[4*4*4]) PIECE_O#0, ((word))(const byte[4*4*4]) PIECE_I#0, ((word))(const byte[4*4*4]) PIECE_L#0 }
(byte[]) PIECES_CHARS
(const byte[]) PIECES_CHARS#0 PIECES_CHARS = { (byte/signed byte/word/signed word/dword/signed dword) 101, (byte/signed byte/word/signed word/dword/signed dword) 102, (byte/word/signed word/dword/signed dword) 166, (byte/signed byte/word/signed word/dword/signed dword) 102, (byte/signed byte/word/signed word/dword/signed dword) 101, (byte/signed byte/word/signed word/dword/signed dword) 101, (byte/word/signed word/dword/signed dword) 166 }
(byte[]) PIECES_COLORS_1
(const byte[]) PIECES_COLORS_1#0 PIECES_COLORS_1 = { (const byte) BLUE#0, (const byte) GREEN#0, (const byte) PURPLE#0, (const byte) BLUE#0, (const byte) RED#0, (const byte) LIGHT_GREEN#0, (const byte) RED#0, (const byte) BLUE#0, (const byte) LIGHT_BLUE#0, (const byte) RED#0, (const byte) BLUE#0, (const byte) GREEN#0, (const byte) PURPLE#0, (const byte) BLUE#0, (const byte) RED#0, (const byte) LIGHT_GREEN#0, (const byte) RED#0, (const byte) BLUE#0, (const byte) LIGHT_BLUE#0, (const byte) RED#0, (const byte) BLUE#0, (const byte) GREEN#0, (const byte) PURPLE#0, (const byte) BLUE#0, (const byte) RED#0, (const byte) LIGHT_GREEN#0, (const byte) RED#0, (const byte) BLUE#0, (const byte) LIGHT_BLUE#0, (const byte) RED#0 }
(byte[]) PIECES_COLORS_2
(const byte[]) PIECES_COLORS_2#0 PIECES_COLORS_2 = { (const byte) CYAN#0, (const byte) LIGHT_GREEN#0, (const byte) PINK#0, (const byte) LIGHT_GREEN#0, (const byte) LIGHT_GREEN#0, (const byte) LIGHT_BLUE#0, (const byte) DARK_GREY#0, (const byte) PURPLE#0, (const byte) RED#0, (const byte) ORANGE#0, (const byte) CYAN#0, (const byte) LIGHT_GREEN#0, (const byte) PINK#0, (const byte) LIGHT_GREEN#0, (const byte) LIGHT_GREEN#0, (const byte) LIGHT_BLUE#0, (const byte) DARK_GREY#0, (const byte) PURPLE#0, (const byte) RED#0, (const byte) ORANGE#0, (const byte) CYAN#0, (const byte) LIGHT_GREEN#0, (const byte) PINK#0, (const byte) LIGHT_GREEN#0, (const byte) LIGHT_GREEN#0, (const byte) LIGHT_BLUE#0, (const byte) DARK_GREY#0, (const byte) PURPLE#0, (const byte) RED#0, (const byte) ORANGE#0 }
(byte[]) PIECES_NEXT_CHARS
(const byte[]) PIECES_NEXT_CHARS#0 PIECES_NEXT_CHARS = { (byte/signed byte/word/signed word/dword/signed dword) 99, (byte/signed byte/word/signed word/dword/signed dword) 100, (byte/word/signed word/dword/signed dword) 164, (byte/signed byte/word/signed word/dword/signed dword) 100, (byte/signed byte/word/signed word/dword/signed dword) 99, (byte/signed byte/word/signed word/dword/signed dword) 99, (byte/word/signed word/dword/signed dword) 164 }
(byte[]) PIECES_START_X
@ -191,6 +200,7 @@
(byte[4*4*4]) PIECE_Z
(const byte[4*4*4]) PIECE_Z#0 PIECE_Z = { (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 1, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0, (byte/signed byte/word/signed word/dword/signed dword) 0 }
(byte) PINK
(const byte) PINK#0 PINK = (byte/signed byte/word/signed word/dword/signed dword) 10
(byte*) PLAYFIELD_CHARSET
(const byte*) PLAYFIELD_CHARSET#0 PLAYFIELD_CHARSET = ((byte*))(word/signed word/dword/signed dword) 10240
(byte*) PLAYFIELD_COLORS_ORIGINAL
@ -225,9 +235,11 @@
(byte) PROCPORT_RAM_IO
(const byte) PROCPORT_RAM_IO#0 PROCPORT_RAM_IO = (byte/signed byte/word/signed word/dword/signed dword) 53
(byte) PURPLE
(const byte) PURPLE#0 PURPLE = (byte/signed byte/word/signed word/dword/signed dword) 4
(byte*) RASTER
(const byte*) RASTER#0 RASTER = ((byte*))(word/dword/signed dword) 53266
(byte) RED
(const byte) RED#0 RED = (byte/signed byte/word/signed word/dword/signed dword) 2
(dword[]) SCORE_BASE_BCD
(const dword[]) SCORE_BASE_BCD#0 SCORE_BASE_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 }
(byte) SID_CONTROL_GATE
@ -489,11 +501,11 @@
(byte[8]) keyboard_scan_values
(const byte[8]) keyboard_scan_values#0 keyboard_scan_values = { fill( 8, 0) }
(byte) level
(byte) level#10 level zp ZP_BYTE:23 2.140350877192983
(byte) level#16 level zp ZP_BYTE:23 3.052631578947369
(byte) level#18 level zp ZP_BYTE:23 1.3333333333333333
(byte) level#20 level zp ZP_BYTE:23 0.4444444444444444
(byte) level#31 level zp ZP_BYTE:23 6.0
(byte) level#10 level zp ZP_BYTE:23 1.909090909090909
(byte) level#17 level zp ZP_BYTE:23 3.052631578947369
(byte) level#19 level zp ZP_BYTE:23 1.3333333333333333
(byte) level#21 level zp ZP_BYTE:23 0.4444444444444444
(byte) level#34 level zp ZP_BYTE:23 6.0
(byte) level_bcd
(byte) level_bcd#11 level_bcd zp ZP_BYTE:25 2.0
(byte) level_bcd#17 level_bcd zp ZP_BYTE:25 1.966666666666667
@ -1064,7 +1076,7 @@
(byte~) render_screen_render#70 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.4473684210526316
(byte) render_screen_show#16 render_screen_show zp ZP_BYTE:2 0.425
(byte) render_screen_showing
(byte) render_screen_showing#0 render_screen_showing zp ZP_BYTE:37 0.4
(byte) render_screen_showing#1 render_screen_showing zp ZP_BYTE:37 20.0
@ -1203,7 +1215,7 @@ reg byte x [ play_move_down::movedown#6 play_move_down::movedown#3 play_move_dow
zp ZP_BYTE:16 [ current_ypos#38 current_ypos#10 current_ypos#18 current_ypos#5 current_ypos#2 play_lock_current::ypos2#2 play_lock_current::ypos2#0 play_lock_current::ypos2#1 ]
zp ZP_WORD:17 [ lines_bcd#27 lines_bcd#17 lines_bcd#19 lines_bcd#15 lines_bcd#30 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#27 score_bcd#16 score_bcd#18 score_bcd#14 score_bcd#30 ]
zp ZP_BYTE:23 [ level#31 level#18 level#10 level#16 level#20 ]
zp ZP_BYTE:23 [ level#34 level#19 level#10 level#17 level#21 ]
zp ZP_BYTE:24 [ current_movedown_slow#38 current_movedown_slow#23 current_movedown_slow#14 current_movedown_slow#21 current_movedown_slow#1 current_movedown_slow#69 current_movedown_slow#10 ]
zp ZP_BYTE:25 [ level_bcd#32 level_bcd#19 level_bcd#11 level_bcd#17 level_bcd#64 level_bcd#21 level_bcd#8 ]
zp ZP_WORD:26 [ current_piece#29 current_piece#103 current_piece#10 current_piece#15 current_piece#96 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 ]