__constant char * const BG_COLOR = (char *) 53281
__constant const char BLACK = 0
__constant const char BLUE = 6
__constant char * const BORDER_COLOR = (char *) 53280
__constant const char BROWN = 9
__constant struct BucketSprite BUCKET_SPRITES[8*9*8] = { fill( 8*9*8, 0) }
__constant char BUCKET_YPOS[9] = { $10, $48, $58, $72, $8e, $aa, $c0, $d0, $de }
__constant char BYTEBOOZER[] = kickasm {{ .const B2_ZP_BASE = $fc
    #import "byteboozer_decrunch.asm"
 }}
__constant char * const CHARGEN = (char *) 53248
__constant struct MOS6526_CIA * const CIA1 = (struct MOS6526_CIA *) 56320
__constant char * const CIA1_INTERRUPT = (char *) 56333
__constant struct MOS6526_CIA * const CIA2 = (struct MOS6526_CIA *) 56576
__constant const char CIA_INTERRUPT_CLEAR = $7f
__constant char * const COLS = (char *) 55296
__constant const char CYAN = 3
__constant char * const DEFAULT_SCREEN = (char *) 1024
__constant char * const DEMO_MUSIC = (char *) 44032
__constant char DEMO_MUSIC_CRUNCHED[] = kickasm(  uses DEMO_MUSIC) {{ .modify B2() {
        .pc = DEMO_MUSIC "MUSIC"
        .const music = LoadSid("do-it-again-$AC00-$FA-8580.sid")
        .fill music.size, music.getData(i)
    }
 }}
__constant unsigned int * const FLIPPER_EASING = (unsigned int *) 41984
__constant char FLIPPER_EASING_CRUNCHED[] = kickasm {{ .modify B2() {
        .pc = FLIPPER_EASING "FLIPPER_EASING"
        .fillword $130, round($98+$98*cos(PI+PI*i/$130))
    }
 }}
__constant const char GREEN = 5
__constant const char GREY = $c
__constant void (** const HARDWARE_IRQ)() = (void (**)()) 65534
__constant char * const IRQ_ENABLE = (char *) 53274
__constant const char IRQ_PART1_TOP_LINE = $36
__constant const char IRQ_RASTER = 1
__constant char * const IRQ_STATUS = (char *) 53273
__constant const char IRQ_SWING_VSP_LINE = $2d
__constant const char LIGHT_BLUE = $e
__constant const char LIGHT_GREEN = $d
__constant char * const LOAD_CHARSET = (char *) 61440
__constant char * const LOAD_COLORS = (char *) 63488
__constant char * const LOAD_SCREEN = (char *) 58368
__constant char * const LOGO_DATA = (char *) 21504
__constant char * const LOGO_DATA_BITMAP = LOGO_DATA_COLORS+LOGO_HEIGHT*LOGO_WIDTH
__constant char * const LOGO_DATA_COLORS = LOGO_DATA+LOGO_HEIGHT*LOGO_WIDTH
__constant char LOGO_DATA_CRUNCHED[] = kickasm(  uses LOGO_HEIGHT uses LOGO_WIDTH) {{ .modify B2() {
            .pc = LOGO_DATA "LOGO DATA"
            #import "mcbitmap.asm"
            .var mcBmmData2 = getMcBitmapData(LoadPicture("logo-bitmap-640.png"))    
            // Screen data
            .for (var y=0; y<LOGO_HEIGHT; y++)
                .for (var x=0; x<LOGO_WIDTH; x++)
                    .byte getMcScreenData(x, y, mcBmmData2)
            // Color Data
            .for (var y=0; y<LOGO_HEIGHT; y++)
                .for (var x=0; x<LOGO_WIDTH; x++)
                    .byte getMcColorData(x, y, mcBmmData2)
            // Bitmap Data (row by row)
            .for (var y=0; y<LOGO_HEIGHT; y++)
                .for (var i=0; i<8; i++)
                    .for (var x=0; x<LOGO_WIDTH; x++)
                        .byte getMcPixelData(x, y, i, mcBmmData2)
        }
 }}
__constant char * const LOGO_DATA_CRUNCHED2 = (char *) 34816
__constant const unsigned int LOGO_DATA_CRUNCHED_SIZE = $222d
__constant const char LOGO_HEIGHT = $19
__constant const char LOGO_WIDTH = $50
__constant char OFFSET_STRUCT_BUCKETSPRITE_PLEX_ID = 1
__constant char OFFSET_STRUCT_MOS6526_CIA_INTERRUPT = $d
__constant char OFFSET_STRUCT_MOS6569_VICII_BG_COLOR = $21
__constant char OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR = $20
__constant char OFFSET_STRUCT_MOS6569_VICII_CONTROL1 = $11
__constant char OFFSET_STRUCT_MOS6569_VICII_CONTROL2 = $16
__constant char OFFSET_STRUCT_MOS6569_VICII_MEMORY = $18
__constant char OFFSET_STRUCT_MOS6569_VICII_SPRITE0_COLOR = $27
__constant char OFFSET_STRUCT_MOS6569_VICII_SPRITE0_Y = 1
__constant char OFFSET_STRUCT_MOS6569_VICII_SPRITES_ENABLE = $15
__constant char OFFSET_STRUCT_MOS6569_VICII_SPRITES_MC = $1c
__constant char OFFSET_STRUCT_MOS6569_VICII_SPRITES_MCOLOR1 = $25
__constant char OFFSET_STRUCT_MOS6569_VICII_SPRITES_MCOLOR2 = $26
__constant char OFFSET_STRUCT_MOS6569_VICII_SPRITES_XMSB = $10
__constant struct BucketSprite ORIGINAL_BUCKET_SPRITES[8*9*8] = { fill( 8*9*8, 0) }
__constant char * const P1_COLORS = (char *) 43008
__constant char P1_COLORS_CRUNCHED[] = kickasm(  uses P1_COLORS) {{ .modify B2() {
        .pc = P1_COLORS "HAPPYNEWYEAR COLORS"    
        .for (var y=0; y<25; y++)
            .for (var x=0; x<40; x++)
                .byte getMcColorData(x, y, mcBmmData1)
    }
 }}
__constant char * const P1_PIXELS = (char *) 49152
__constant char P1_PIXELS_CRUNCHED[] = kickasm(  uses P1_PIXELS) {{ .modify B2() {
        .pc = P1_PIXELS "HAPPYNEWYEAR PIXELS"    
        #import "mcbitmap.asm"
        .var mcBmmData1 = getMcBitmapData(LoadPicture("happy-newyear.png"))
        .for (var y=0; y<25; y++)
            .for (var x=0; x<40; x++)
                .fill 8, getMcPixelData(x, y, i, mcBmmData1)
    }
 }}
__constant char * const P1_SCREEN = (char *) 57344
__constant char P1_SCREEN_CRUNCHED[] = kickasm(  uses P1_SCREEN) {{ .modify B2() {
        .pc = P1_SCREEN "HAPPYNEWYEAR SCREEN"    
        .for (var y=0; y<25; y++)
            .for (var x=0; x<40; x++)
                .byte getMcScreenData(x, y, mcBmmData1)
    }
 }}
__constant char * const P1_SCREEN_SPRITE_PTRS = (char *) 58360
__constant char * const P1_SPRITES = (char *) 64512
__constant char P1_SPRITES_CRUNCHED[] = kickasm(  uses P1_SPRITES) {{ .modify B2() {
        .pc = P1_SPRITES "P1_SPRITES"
        // Pixels                                                    11         01     10       11
        .var p1_sprites = LoadPicture("sparklers.png", List().add($000000, $daccc3, $472a24, $957a71))
        .for(var sx=0;sx<15;sx++) {
            .for (var y=0;y<21; y++) {
                .for (var c=0; c<3; c++) {
                    .byte p1_sprites.getMulticolorByte(sx*3+c,y)
                }
            }
            .byte 0
        }
    }
 }}
__constant char * const PART2_BITMAP = (char *) 49152
__constant char * const PART2_SCREEN = (char *) 57344
__constant char * const PART2_SPRITES = (char *) 58368
__constant const char PINK = $a
__constant char * const PIXELS_EMPTY = (char *) 59392
__constant char * const PLEX_ID_UPDATERS = (char *) 15360
__constant char PLEX_ID_UPDATERS_CRUNCHED[] = kickasm(  uses ORIGINAL_BUCKET_SPRITES uses BUCKET_SPRITES uses plex_id_offset) {{ .modify B2() {
        .pc = PLEX_ID_UPDATERS "PLEX_ID_UPDATERS"
        // First generate a jump table
        .for(var frame=0;frame<8;frame++) 
            .word updaters[frame].updater
        // Generate the 8 unrolled updaters
        updaters: 
        .for(var frame=0;frame<8;frame++) {
            updater:
            ldx #$1f
            .for(var sprite=0; sprite<9*8; sprite++ ) {
                lda ORIGINAL_BUCKET_SPRITES + frame*8*9*2 + sprite*2 +1
                clc
                adc plex_id_offset
                sax BUCKET_SPRITES + frame*8*9*2 + sprite*2 +1
            }
            rts        
        }
    }
 }}
__constant char * const PLEX_ID_UPDATERS_CRUNCHED2 = (char *) 31744
__constant const unsigned int PLEX_ID_UPDATERS_CRUNCHED_SIZE = $b72
__constant char PLEX_PTR[$20] = { fill( $20, 0) }
__constant char PLEX_SORTED_IDX[$20] = { fill( $20, 0) }
__constant char PLEX_XPOS[$20] = { fill( $20, 0) }
__constant char PLEX_XPOS_MSB[$20] = { fill( $20, 0) }
__constant char PLEX_YPOS[$20] = { fill( $20, 0) }
__constant char * const PROCPORT = (char *) 1
__constant char * const PROCPORT_DDR = (char *) 0
__constant const char PROCPORT_DDR_MEMORY_MASK = 7
__constant const char PROCPORT_RAM_ALL = 0
__constant const char PROCPORT_RAM_CHARROM = 1
__constant const char PROCPORT_RAM_IO = 5
__constant const char PURPLE = 4
__constant char * const RASTER = (char *) 53266
__constant char RASTER_BADLINES[$130] = { fill( $130, 0) }
__constant const char RED = 2
__constant char * const SCREEN_SPRITE_PTRS = (char *) 58360
__constant char SCROLL_TEXT[] = "* most people will remember 2020 for a long time. for us nerds, it was a chance to dig deep into our hobbies. but we do miss the demoparties, and drinking beers with you crazy people... it is the 30th birthday of camelot, and this virtual greeting card is our way of celebrating with all of you!     credits  *  code: rex  *  music: linus  *  graphics: bizkid, snabel & vic  *    camelot sends love to 刺  abyss connection  刺  algotech  刺  ancients  刺  arsenic  刺  arise  刺  artline designs  刺  artstate  刺  atlantis  刺  bonzai  刺  booze design  刺  censor design  刺  cosine  刺  crest  刺  chorus  刺  dekadence  刺  delysid  刺  desire  刺  elysium  刺  excess  刺  extend  刺  faic  刺  f4cg  刺  fairlight  刺  fossil  刺  glance  刺  genesis project  刺  haujobb  刺  hitmen  刺  hoaxers  刺  hokuto force  刺  horizon  刺  illusion  刺  john dillermand  刺  laxity  刺  lepsi de  刺  lethargy  刺  mayday  刺  megastyle  刺  multistyle labs  刺  nah-kolor  刺  noice  刺  offence  刺  onslaught  刺  oxyron  刺  padua  刺  panda design  刺  panoramic designs  刺  performers  刺  plush  刺  pretzel logic  刺  prosonix  刺  proxima  刺  rabenauge  刺  radwar  刺  rebels  刺  resource  刺  samar  刺  scenesat  刺  shape  刺  siesta  刺  silicon ltd.  刺  singular  刺  software of sweden  刺  starion  刺  success  刺  svenonacid  刺  the dreams  刺  the solution  刺  triad  刺  tropyx  刺  trsi  刺  unicess  刺  up rough  刺  vision  刺  xenon  刺  xentax  刺  ... we hope to see you all again in 2021...                                "
__constant char SCROLL_YSIN[$100] = kickasm {{ .fill $100, round(139+89.5*sin(toRadians(360*i/256)))
 }}
__constant char SIZEOF_CHAR = 1
__constant char SIZEOF_STRUCT_BUCKETSPRITE = 2
__constant char * const SPRITES_COLOR = (char *) 53287
__constant char SPRITES_CRUNCHED[] = kickasm {{ .modify B2() {
            .pc = PART2_SPRITES "PART2_SPRITES"
	        .var p2_sprites = LoadPicture("spritefont.png", List().add($000000, $ffffff))
	        .for(var sy=0;sy<8;sy++) {
    		    .for(var sx=0;sx<8;sx++) {
    	    	    .for (var y=0;y<21; y++) {
	    	    	    .for (var c=0; c<3; c++) {
    	                	.byte p2_sprites.getSinglecolorByte(sx*3+c,sy*21+y)
	                    }
	                }
	    	        .byte 0
	  	        }
	        }
        }
 }}
__constant char * const SPRITES_ENABLE = (char *) 53269
__constant char * const SPRITES_XMSB = (char *) 53264
__constant char * const SPRITES_XPOS = (char *) 53248
__constant char * const SPRITES_YPOS = (char *) 53249
__constant char SPRITE_COLOR_SEQUENCE[] = { WHITE, WHITE, WHITE, WHITE, WHITE, WHITE, WHITE, WHITE, WHITE, WHITE, WHITE, WHITE, WHITE, WHITE, WHITE, WHITE, WHITE, WHITE, WHITE, WHITE, WHITE, WHITE, WHITE, WHITE, WHITE, WHITE, WHITE, WHITE, WHITE, WHITE, WHITE, WHITE, WHITE, WHITE, WHITE, YELLOW, CYAN, GREEN, PURPLE, RED, BLUE, RED, PURPLE, GREEN, CYAN, YELLOW, WHITE, WHITE }
__constant struct MOS6569_VICII * const VICII = (struct MOS6569_VICII *) 53248
__constant const char VICII_BMM = $20
__constant char * const VICII_CONTROL1 = (char *) 53265
__constant char * const VICII_CONTROL2 = (char *) 53270
__constant const char VICII_MCM = $10
__constant char * const VICII_MEMORY = (char *) 53272
__constant unsigned int VSP_SINTABLE[$100] = kickasm {{ .fillword $100, round(160+160*sin(2*PI*i/256))
 }}
__constant const char WHITE = 1
__constant char XMOVEMENT[$400] = kickasm {{ //.lohifill $100, round(344-i*344/$100-86*sin(toRadians(360*i/$100)))
    .lohifill $200, round(344-i*344/$100-129*sin(toRadians(360*i/$100)))
    //.lohifill $100, round(344-i*344/$100-86*sin(toRadians(360*i/$80)))
    //.lohifill $100, round(344-i*344/$100 -86*sin(toRadians(360*i/$100)) -43*sin(toRadians(360*i/$80)))
    //.lohifill $100, 344-i*344/$100
 }}
__constant char * const XMOVEMENT_HI = XMOVEMENT+$200
__constant const char YELLOW = 7
void __start()
void byteboozer_decrunch(char * volatile crunched)
__loadstore char * volatile byteboozer_decrunch::crunched // zp[2]:57 91.0
__loadstore volatile unsigned int demo_frame_count // zp[2]:40 2355.0
void demo_init()
void demo_start()
void demo_work()
__loadstore volatile char flipper_charline // zp[1]:17 5000.083333333334
__loadstore volatile char flipper_done // zp[1]:14 0.6000000000000001
void flipper_fix_colors()
unsigned int flipper_fix_colors::$12 // zp[2]:74 150001.5
unsigned int flipper_fix_colors::$13 // zp[2]:76 200002.0
unsigned int flipper_fix_colors::$14 // zp[2]:74 200002.0
unsigned int flipper_fix_colors::$4 // zp[2]:72 200002.0
unsigned int flipper_fix_colors::$5 // zp[2]:72 100001.0
char flipper_fix_colors::charline
char flipper_fix_colors::charline#0 // reg byte a 200002.0
char *flipper_fix_colors::colors
char *flipper_fix_colors::colors#0 // colors zp[2]:78 1683333.6666666665
char *flipper_fix_colors::happy_cols
char *flipper_fix_colors::happy_cols#0 // happy_cols zp[2]:74 2020000.4
char flipper_fix_colors::i
char flipper_fix_colors::i#1 // reg byte y 2.0000002E7
char flipper_fix_colors::i#2 // reg byte y 1.6666668333333332E7
unsigned int flipper_fix_colors::offset
unsigned int flipper_fix_colors::offset#0 // offset zp[2]:74 150001.5
void init_rasters()
char *init_rasters::$3 // zp[2]:76 20002.0
char init_rasters::b
char init_rasters::b#1 // reg byte x 20002.0
char init_rasters::b#2 // reg byte x 13334.666666666666
unsigned int init_rasters::i
unsigned int init_rasters::i#1 // i zp[2]:70 20002.0
unsigned int init_rasters::i#2 // i zp[2]:70 10001.0
__interrupt(hardware_clobber) void irq_demo()
char irq_demo::port_value
char irq_demo::port_value#0 // port_value zp[1]:44 0.6666666666666666
__interrupt(hardware_clobber) void irq_flipper_bottom()
char irq_flipper_bottom::$0 // reg byte a 4.0
char irq_flipper_bottom::$1 // reg byte a 4.0
unsigned int irq_flipper_bottom::$12 // zp[2]:51 4.0
unsigned int *irq_flipper_bottom::$14 // zp[2]:51 4.0
unsigned int irq_flipper_bottom::$7 // zp[2]:53 4.0
unsigned int irq_flipper_bottom::$9 // zp[2]:55 4.0
unsigned int irq_flipper_bottom::irq_flipper_line
unsigned int irq_flipper_bottom::irq_flipper_line#0 // irq_flipper_line zp[2]:51 1.2
char *irq_flipper_bottom::toD0181_gfx
char irq_flipper_bottom::toD0181_return
__constant char irq_flipper_bottom::toD0181_return#0 = byte1 (unsigned int)LOAD_SCREEN&$3fff*4|byte1 (unsigned int)LOAD_CHARSET/4&$f // toD0181_return
char *irq_flipper_bottom::toD0181_screen
__loadstore volatile unsigned int irq_flipper_bottom_line // zp[2]:12 1.090909090909091
__loadstore volatile unsigned int irq_flipper_idx // zp[2]:15 0.5714285714285714
__interrupt(hardware_clobber) void irq_flipper_top()
char irq_flipper_top::$0 // reg byte a 4.0
char irq_flipper_top::$1 // reg byte a 4.0
char irq_flipper_top::$3 // reg byte a 4.0
char irq_flipper_top::$4 // reg byte a 4.0
char irq_flipper_top::$5 // reg byte a 4.0
__loadstore volatile unsigned int irq_flipper_top_line // zp[2]:10 4109.7945205479455
__interrupt(hardware_clobber) void irq_part1_top()
char irq_part1_top::$2 // reg byte a 4.0
char irq_part1_top::$3 // reg byte a 4.0
char irq_part1_top::$4 // reg byte a 4.0
char *irq_part1_top::toD0181_gfx
char irq_part1_top::toD0181_return
__constant char irq_part1_top::toD0181_return#0 = byte1 (unsigned int)P1_SCREEN&$3fff*4 // toD0181_return
char *irq_part1_top::toD0181_screen
char *irq_part1_top::toDd001_gfx
char irq_part1_top::toDd001_return
__constant char irq_part1_top::toDd001_return#0 = 0 // toDd001_return
__interrupt(hardware_clobber) void irq_swing_plex()
char irq_swing_plex::$16 // reg byte a 4.0
unsigned int irq_swing_plex::$26 // zp[2]:45 4.0
unsigned int irq_swing_plex::$27 // zp[2]:45 4.0
char irq_swing_plex::$28 // reg byte a 4.0
unsigned int *irq_swing_plex::$31 // zp[2]:45 4.0
char irq_swing_plex::$6 // reg byte a 4.0
unsigned int irq_swing_plex::$7 // zp[2]:45 2.0
__constant const char irq_swing_plex::YMOVE = 3
char irq_swing_plex::coarse_scroll_diff
char irq_swing_plex::coarse_scroll_diff#0 // reg byte a 3.0
char irq_swing_plex::new_coarse_scroll
char irq_swing_plex::new_coarse_scroll#0 // new_coarse_scroll zp[1]:47 0.5
char irq_swing_plex::s
char irq_swing_plex::s#1 // reg byte x 22.0
char irq_swing_plex::s#2 // reg byte x 14.666666666666666
unsigned int irq_swing_plex::scroll
unsigned int irq_swing_plex::scroll#0 // scroll zp[2]:45 0.8
char irq_swing_plex::x_offset
char irq_swing_plex::x_offset#0 // x_offset zp[1]:48 2.0
char irq_swing_plex::x_offset1
char irq_swing_plex::x_offset1#0 // reg byte a 4.0
__interrupt(hardware_clobber) void irq_swing_top()
__interrupt(hardware_clobber) void irq_swing_vsp()
char irq_swing_vsp::$1 // reg byte a 4.0
void main()
void * memcpy(void *destination , void *source , unsigned int num)
void *memcpy::destination
void *memcpy::destination#6 // destination zp[2]:72
char *memcpy::dst
char *memcpy::dst#1 // dst zp[2]:72 10001.0
char *memcpy::dst#2 // dst zp[2]:72 10334.666666666666
char *memcpy::dst#4 // dst zp[2]:72 2002.0
unsigned int memcpy::num
unsigned int memcpy::num#6 // num zp[2]:74 1001.0
void *memcpy::return
void *memcpy::source
void *memcpy::source#6 // source zp[2]:76
char *memcpy::src
char *memcpy::src#1 // src zp[2]:76 20002.0
char *memcpy::src#2 // src zp[2]:76 10251.25
char *memcpy::src#4 // src zp[2]:76 1001.0
char *memcpy::src_end
char *memcpy::src_end#0 // src_end zp[2]:74 1375.25
void * memset(void *str , char c , unsigned int num)
char memset::c
char memset::c#7 // reg byte x 1250.125
char *memset::dst
char *memset::dst#1 // dst zp[2]:72 20002.0
char *memset::dst#2 // dst zp[2]:72 13668.333333333332
char *memset::dst#4 // dst zp[2]:72 2002.0
char *memset::end
char *memset::end#0 // end zp[2]:76 1833.6666666666665
unsigned int memset::num
unsigned int memset::num#5 // num zp[2]:76 1001.0
void *memset::return
void *memset::str
void *memset::str#6 // str zp[2]:72
__constant void (* const musicInit)() = (void (*)())DEMO_MUSIC
__constant void (* const musicPlay)() = (void (*)())DEMO_MUSIC+3
__loadstore volatile char p1_work_ready // zp[1]:9 37002.33333333333
void p2_logo_reveal()
__loadstore volatile char p2_logo_reveal_done // zp[1]:22 2033.9830508474574
__loadstore volatile char p2_logo_reveal_idx // zp[1]:25 6779.762711864407
__loadstore volatile char p2_logo_revealing // zp[1]:21 566.1320754716982
__loadstore volatile char p2_logo_swinging // zp[1]:23 294.20588235294116
__loadstore volatile char p2_plex_scroller_moving // zp[1]:24 215.11827956989248
__loadstore volatile char p2_work_ready // zp[1]:20 37002.33333333333
void part1_init()
void part1_loop()
unsigned int part1_loop::$11 // zp[2]:70 10001.0
void part1_run()
char part1_run::toSpritePtr1_return
__constant char part1_run::toSpritePtr1_return#0 = (char)(unsigned int)P1_SPRITES/$40 // toSpritePtr1_return
char *part1_run::toSpritePtr1_sprite
void part2_init()
struct BucketSprite *part2_init::frame
struct BucketSprite *part2_init::frame#1 // frame zp[2]:70 1001.0
struct BucketSprite *part2_init::frame#5 // frame zp[2]:70 300.29999999999995
char part2_init::frame_idx
char part2_init::frame_idx#1 // frame_idx zp[1]:4 2002.0
char part2_init::frame_idx#2 // frame_idx zp[1]:4 364.0
char part2_init::s
char part2_init::s#1 // reg byte y 20002.0
char part2_init::s#2 // reg byte y 10001.0
char part2_init::s1
char part2_init::s1#1 // reg byte x 2002.0
char part2_init::s1#2 // reg byte x 1001.0
char part2_init::s2
char part2_init::s2#1 // reg byte x 2002.0
char part2_init::s2#2 // reg byte x 1334.6666666666667
char part2_init::sin_idx
char part2_init::sin_idx#1 // reg byte x 10001.0
char part2_init::sin_idx#2 // reg byte x 10334.666666666666
char part2_init::sin_idx#4 // reg byte x 2002.0
char part2_init::toSpritePtr1_return
__constant char part2_init::toSpritePtr1_return#0 = (char)(unsigned int)PART2_SPRITES/$40 // toSpritePtr1_return
char *part2_init::toSpritePtr1_sprite
void part2_loop()
unsigned int part2_loop::$23 // zp[2]:70 10001.0
unsigned int part2_loop::$24 // zp[2]:72 10001.0
void part2_run()
char *part2_run::toD0181_gfx
char part2_run::toD0181_return
__constant char part2_run::toD0181_return#0 = byte1 (unsigned int)PART2_SCREEN&$3fff*4 // toD0181_return
char *part2_run::toD0181_screen
char *part2_run::toDd001_gfx
char part2_run::toDd001_return
__constant char part2_run::toDd001_return#0 = 0 // toDd001_return
void plexBucketShow(struct BucketSprite *bucket)
char plexBucketShow::$1 // reg byte a 22.0
char plexBucketShow::$2 // reg byte a 202.0
__constant char plexBucketShow::MSB_CLEAR_MASK_BY_ID[8] = { $fe, $fd, $fb, $f7, $ef, $df, $bf, $7f }
__constant char plexBucketShow::MSB_SET_MASK_BY_ID[8] = { 1, 2, 4, 8, $10, $20, $40, $80 }
struct BucketSprite *plexBucketShow::bucket
struct BucketSprite *plexBucketShow::bucket#0 // bucket zp[2]:2 4.0
struct BucketSprite *plexBucketShow::bucket#1 // bucket zp[2]:2 4.0
struct BucketSprite *plexBucketShow::bucket#2 // bucket zp[2]:2 0.2222222222222222
char *plexBucketShow::bucket_ptr
char plexBucketShow::i
char plexBucketShow::i#1 // i zp[1]:59 27.545454545454547
char plexBucketShow::i#2 // reg byte y 151.5
char plexBucketShow::i#3 // reg byte y 134.66666666666666
char plexBucketShow::plex_id
char plexBucketShow::plex_id#0 // reg byte y 67.33333333333333
char plexBucketShow::real_idx
char plexBucketShow::real_idx#0 // reg byte x 22.0
char plexBucketShow::real_idx#1 // reg byte x 101.0
char plexBucketShow::real_idx#2 // reg byte a 202.0
char plexBucketShow::real_idx#3 // reg byte x 101.0
char plexBucketShow::real_idx#4 // reg byte x 85.99999999999999
char plexBucketShow::real_idx#8 // reg byte x 213.0
void plexFrameStart()
void plexPrepareFrame(struct BucketSprite *frame)
char plexPrepareFrame::$16 // reg byte a 2000002.0
char plexPrepareFrame::$17 // reg byte x 2000002.0
struct BucketSprite *plexPrepareFrame::bucket
struct BucketSprite *plexPrepareFrame::bucket#1 // bucket zp[2]:74 20002.0
struct BucketSprite *plexPrepareFrame::bucket#10 // bucket zp[2]:74 20002.0
struct BucketSprite *plexPrepareFrame::bucket#3 // bucket zp[2]:74 431429.2857142857
struct BucketSprite *plexPrepareFrame::bucket#9 // bucket zp[2]:74 300000.30000000005
char plexPrepareFrame::bucket_id
char plexPrepareFrame::bucket_id#1 // bucket_id zp[1]:7 500000.5
char plexPrepareFrame::bucket_id#2 // bucket_id zp[1]:7 600000.6000000001
char plexPrepareFrame::bucket_id#5 // bucket_id zp[1]:7 300000.30000000005
char plexPrepareFrame::bucket_ypos
char plexPrepareFrame::bucket_ypos#0 // bucket_ypos zp[1]:8 10001.0
char plexPrepareFrame::bucket_ypos#1 // bucket_ypos zp[1]:8 285714.5714285714
char plexPrepareFrame::bucket_ypos#2 // bucket_ypos zp[1]:8 400000.4
char plexPrepareFrame::bucket_ypos#3 // bucket_ypos zp[1]:8 602000.8
char plexPrepareFrame::bucket_ypos#4 // bucket_ypos zp[1]:8 1000001.0
struct BucketSprite *plexPrepareFrame::frame
struct BucketSprite *plexPrepareFrame::frame#0 // frame zp[2]:76 954.6818181818181
char plexPrepareFrame::i
char plexPrepareFrame::i#1 // reg byte x 2000002.0
char plexPrepareFrame::i#2 // reg byte x 1333334.6666666667
char plexPrepareFrame::i1
char plexPrepareFrame::i1#1 // i1 zp[1]:6 2000002.0
char plexPrepareFrame::i1#2 // i1 zp[1]:6 200000.2
char plexPrepareFrame::m
char plexPrepareFrame::m#1 // m zp[1]:5 2000002.0
char plexPrepareFrame::m#2 // m zp[1]:5 461538.9230769231
char plexPrepareFrame::nxt_idx
char plexPrepareFrame::nxt_idx#0 // nxt_idx zp[1]:68 300000.30000000005
char plexPrepareFrame::nxt_y
char plexPrepareFrame::nxt_y#0 // nxt_y zp[1]:69 1500000.375
char plexPrepareFrame::plex_id
char plexPrepareFrame::plex_id#0 // plex_id zp[1]:66 272727.54545454547
__constant char plexPrepareFrame::real_sprite_free_ypos[8] = { fill( 8, 0) }
char plexPrepareFrame::real_sprite_id
char plexPrepareFrame::real_sprite_id#1 // reg byte x 666667.3333333334
char plexPrepareFrame::real_sprite_id#2 // reg byte x 235294.35294117648
char plexPrepareFrame::s
char plexPrepareFrame::s#1 // reg byte x 1.3666668333333332E7
char plexPrepareFrame::s#2 // reg byte x 2000002.0
char plexPrepareFrame::s#3 // reg byte x 2.05000025E7
char plexPrepareFrame::s#6 // reg byte x 2000002.0
struct BucketSprite *plexPrepareFrame::sprite
struct BucketSprite *plexPrepareFrame::sprite#1 // sprite zp[2]:76 1000001.0
struct BucketSprite *plexPrepareFrame::sprite#13 // sprite zp[2]:76 2000002.0
struct BucketSprite *plexPrepareFrame::sprite#2 // sprite_1 zp[2]:74 1000001.0
struct BucketSprite *plexPrepareFrame::sprite#3 // sprite zp[2]:76 274545.9090909091
struct BucketSprite *plexPrepareFrame::sprite#4 // sprite zp[2]:76 375000.375
char plexPrepareFrame::ypos
char plexPrepareFrame::ypos#0 // ypos zp[1]:67 250000.25
void plexPrepareInit()
char plexPrepareInit::i
char plexPrepareInit::i#1 // reg byte x 20002.0
char plexPrepareInit::i#2 // reg byte x 16668.333333333332
__loadstore struct BucketSprite * volatile plex_bucket // zp[2]:33 2.6666666666666665
__loadstore volatile char plex_bucket_id // zp[1]:35 1.5999999999999999
__loadstore struct BucketSprite * volatile plex_frame // zp[2]:30 9.416666666666666
__loadstore volatile char plex_frame_id // zp[1]:29 8.846153846153847
__loadstore volatile char plex_id_offset // zp[1]:32 8.916666666666666
__loadstore volatile char plex_real_sprite_idx // zp[1]:19 4.375
void plex_scroller_move()
char plex_scroller_move::$8 // reg byte a 202.0
char plex_scroller_move::letter
char plex_scroller_move::letter#0 // reg byte a 75.75
char plex_scroller_move::letter#2 // reg byte a 101.0
char plex_scroller_move::s
char plex_scroller_move::s#1 // s zp[1]:47 202.0
char plex_scroller_move::s#10 // s zp[1]:47 37.875
char plex_scroller_move::toSpritePtr1_return
__constant char plex_scroller_move::toSpritePtr1_return#0 = (char)(unsigned int)PART2_SPRITES/$40 // toSpritePtr1_return
char *plex_scroller_move::toSpritePtr1_sprite
char plex_scroller_move::x_idx
char plex_scroller_move::x_idx#0 // reg byte x 22.0
char plex_scroller_move::x_idx#1 // reg byte x 101.0
char plex_scroller_move::x_idx#10 // reg byte x 34.4
void raster_fine(volatile char line_offset)
__loadstore volatile char raster_fine::line_offset // zp[1]:50 2.0
__loadstore char * volatile scroll_text_next // zp[2]:27 8.450000000000001
__loadstore volatile char sparkler_active // zp[1]:42 2857.5238095238096
void sparkler_anim()
char sparkler_anim::$3 // reg byte a 2000002.0
char sparkler_anim::$4 // reg byte a 2000002.0
char sparkler_anim::toSpritePtr1_return
__constant char sparkler_anim::toSpritePtr1_return#0 = (char)(unsigned int)P1_SPRITES/$40 // toSpritePtr1_return
char *sparkler_anim::toSpritePtr1_sprite
__loadstore volatile char sparkler_idx // zp[1]:43 714286.7142857142
__loadstore volatile char sprite_color_idx // zp[1]:39 0.42000000000000004
void update_frame_plex_id_offset(char plex_frame_id)
char update_frame_plex_id_offset::$0 // reg byte a 22.0
__loadstore volatile unsigned int update_frame_plex_id_offset::jmp_address // zp[2]:60 11.0
__constant unsigned int *update_frame_plex_id_offset::jmp_table = (unsigned int *)PLEX_ID_UPDATERS
char update_frame_plex_id_offset::plex_frame_id
char update_frame_plex_id_offset::plex_frame_id#0 // reg byte a 13.0
__loadstore volatile char vsp_coarse_scroll // zp[1]:37 0.39999999999999997
__loadstore volatile char vsp_fine_scroll // zp[1]:36 2.0
__loadstore volatile char vsp_scroll // zp[1]:18 4.0
__loadstore volatile char vsp_sin_idx // zp[1]:38 0.30000000000000004
void vsp_update_screen(volatile char x_offset)
char vsp_update_screen::$1 // reg byte a 2000002.0
char vsp_update_screen::$3 // reg byte a 2000002.0
unsigned int vsp_update_screen::$5 // zp[2]:62 2000002.0
__loadstore volatile char vsp_update_screen::x_offset // zp[1]:49 8333.75
__loadstore volatile unsigned int vsp_update_screen::x_offset8 // zp[2]:64 600000.6000000001
__loadstore volatile char x_movement_idx // zp[1]:26 0.5833333333333333

reg byte x [ irq_swing_plex::s#2 irq_swing_plex::s#1 ]
zp[2]:2 [ plexBucketShow::bucket#2 plexBucketShow::bucket#1 plexBucketShow::bucket#0 ]
reg byte y [ plexBucketShow::i#3 plexBucketShow::i#2 ]
reg byte x [ plexBucketShow::real_idx#8 plexBucketShow::real_idx#4 plexBucketShow::real_idx#0 plexBucketShow::real_idx#3 ]
reg byte x [ plex_scroller_move::x_idx#10 plex_scroller_move::x_idx#0 plex_scroller_move::x_idx#1 ]
reg byte a [ plex_scroller_move::letter#2 plex_scroller_move::letter#0 ]
zp[1]:4 [ part2_init::frame_idx#2 part2_init::frame_idx#1 ]
reg byte x [ part2_init::s1#2 part2_init::s1#1 ]
reg byte x [ part2_init::s2#2 part2_init::s2#1 ]
reg byte y [ part2_init::s#2 part2_init::s#1 ]
reg byte x [ part2_init::sin_idx#2 part2_init::sin_idx#4 part2_init::sin_idx#1 ]
reg byte x [ init_rasters::b#2 init_rasters::b#1 ]
reg byte x [ memset::c#7 ]
reg byte x [ plexPrepareInit::i#2 plexPrepareInit::i#1 ]
zp[1]:5 [ plexPrepareFrame::m#2 plexPrepareFrame::m#1 ]
reg byte x [ plexPrepareFrame::i#2 plexPrepareFrame::i#1 ]
zp[1]:6 [ plexPrepareFrame::i1#2 plexPrepareFrame::i1#1 ]
reg byte x [ plexPrepareFrame::real_sprite_id#2 plexPrepareFrame::real_sprite_id#1 ]
zp[1]:7 [ plexPrepareFrame::bucket_id#2 plexPrepareFrame::bucket_id#5 plexPrepareFrame::bucket_id#1 ]
zp[1]:8 [ plexPrepareFrame::bucket_ypos#4 plexPrepareFrame::bucket_ypos#3 plexPrepareFrame::bucket_ypos#0 plexPrepareFrame::bucket_ypos#1 plexPrepareFrame::bucket_ypos#2 ]
reg byte x [ plexPrepareFrame::s#3 plexPrepareFrame::s#1 plexPrepareFrame::s#6 ]
reg byte y [ flipper_fix_colors::i#2 flipper_fix_colors::i#1 ]
zp[1]:9 [ p1_work_ready ]
zp[2]:10 [ irq_flipper_top_line ]
zp[2]:12 [ irq_flipper_bottom_line ]
zp[1]:14 [ flipper_done ]
zp[2]:15 [ irq_flipper_idx ]
zp[1]:17 [ flipper_charline ]
zp[1]:18 [ vsp_scroll ]
zp[1]:19 [ plex_real_sprite_idx ]
zp[1]:20 [ p2_work_ready ]
zp[1]:21 [ p2_logo_revealing ]
zp[1]:22 [ p2_logo_reveal_done ]
zp[1]:23 [ p2_logo_swinging ]
zp[1]:24 [ p2_plex_scroller_moving ]
zp[1]:25 [ p2_logo_reveal_idx ]
zp[1]:26 [ x_movement_idx ]
zp[2]:27 [ scroll_text_next ]
zp[1]:29 [ plex_frame_id ]
zp[2]:30 [ plex_frame ]
zp[1]:32 [ plex_id_offset ]
zp[2]:33 [ plex_bucket ]
zp[1]:35 [ plex_bucket_id ]
zp[1]:36 [ vsp_fine_scroll ]
zp[1]:37 [ vsp_coarse_scroll ]
zp[1]:38 [ vsp_sin_idx ]
zp[1]:39 [ sprite_color_idx ]
zp[2]:40 [ demo_frame_count ]
zp[1]:42 [ sparkler_active ]
zp[1]:43 [ sparkler_idx ]
zp[1]:44 [ irq_demo::port_value#0 ]
reg byte a [ update_frame_plex_id_offset::plex_frame_id#0 ]
zp[2]:45 [ irq_swing_plex::$27 irq_swing_plex::$26 irq_swing_plex::$31 irq_swing_plex::scroll#0 irq_swing_plex::$7 ]
reg byte a [ irq_swing_plex::$28 ]
reg byte a [ irq_swing_plex::$6 ]
zp[1]:47 [ irq_swing_plex::new_coarse_scroll#0 plex_scroller_move::s#10 plex_scroller_move::s#1 ]
reg byte a [ irq_swing_plex::coarse_scroll_diff#0 ]
zp[1]:48 [ irq_swing_plex::x_offset#0 ]
zp[1]:49 [ vsp_update_screen::x_offset ]
reg byte a [ irq_swing_plex::$16 ]
reg byte a [ irq_swing_plex::x_offset1#0 ]
reg byte a [ irq_swing_vsp::$1 ]
reg byte a [ irq_flipper_bottom::$0 ]
reg byte a [ irq_flipper_bottom::$1 ]
zp[1]:50 [ raster_fine::line_offset ]
zp[2]:51 [ irq_flipper_bottom::$12 irq_flipper_bottom::$14 irq_flipper_bottom::irq_flipper_line#0 ]
zp[2]:53 [ irq_flipper_bottom::$7 ]
zp[2]:55 [ irq_flipper_bottom::$9 ]
reg byte a [ irq_flipper_top::$0 ]
reg byte a [ irq_flipper_top::$1 ]
reg byte a [ irq_flipper_top::$3 ]
reg byte a [ irq_flipper_top::$4 ]
reg byte a [ irq_flipper_top::$5 ]
reg byte a [ irq_part1_top::$2 ]
reg byte a [ irq_part1_top::$3 ]
reg byte a [ irq_part1_top::$4 ]
zp[2]:57 [ byteboozer_decrunch::crunched ]
reg byte a [ plexBucketShow::$1 ]
zp[1]:59 [ plexBucketShow::i#1 ]
reg byte y [ plexBucketShow::plex_id#0 ]
reg byte x [ plexBucketShow::real_idx#1 ]
reg byte a [ plexBucketShow::$2 ]
reg byte a [ plexBucketShow::real_idx#2 ]
reg byte a [ update_frame_plex_id_offset::$0 ]
zp[2]:60 [ update_frame_plex_id_offset::jmp_address ]
zp[2]:62 [ vsp_update_screen::$5 ]
zp[2]:64 [ vsp_update_screen::x_offset8 ]
reg byte a [ vsp_update_screen::$1 ]
reg byte a [ vsp_update_screen::$3 ]
reg byte a [ plex_scroller_move::$8 ]
reg byte a [ sparkler_anim::$3 ]
reg byte a [ sparkler_anim::$4 ]
zp[1]:66 [ plexPrepareFrame::plex_id#0 ]
zp[1]:67 [ plexPrepareFrame::ypos#0 ]
reg byte a [ plexPrepareFrame::$16 ]
reg byte x [ plexPrepareFrame::$17 ]
zp[1]:68 [ plexPrepareFrame::nxt_idx#0 ]
zp[1]:69 [ plexPrepareFrame::nxt_y#0 ]
reg byte x [ plexPrepareFrame::s#2 ]
zp[2]:70 [ part2_loop::$23 part1_loop::$11 init_rasters::i#2 init_rasters::i#1 part2_init::frame#5 part2_init::frame#1 ]
zp[2]:72 [ flipper_fix_colors::$4 flipper_fix_colors::$5 part2_loop::$24 memcpy::destination#6 memcpy::dst#2 memcpy::dst#4 memcpy::dst#1 memset::str#6 memset::dst#2 memset::dst#4 memset::dst#1 ]
reg byte a [ flipper_fix_colors::charline#0 ]
zp[2]:74 [ flipper_fix_colors::$12 flipper_fix_colors::$14 flipper_fix_colors::offset#0 flipper_fix_colors::happy_cols#0 plexPrepareFrame::bucket#3 plexPrepareFrame::bucket#10 plexPrepareFrame::bucket#9 plexPrepareFrame::sprite#2 plexPrepareFrame::bucket#1 memcpy::num#6 memcpy::src_end#0 ]
zp[2]:76 [ flipper_fix_colors::$13 init_rasters::$3 plexPrepareFrame::sprite#4 plexPrepareFrame::sprite#3 plexPrepareFrame::frame#0 plexPrepareFrame::sprite#1 plexPrepareFrame::sprite#13 memcpy::source#6 memcpy::src#2 memcpy::src#4 memcpy::src#1 memset::num#5 memset::end#0 ]
zp[2]:78 [ flipper_fix_colors::colors#0 ]
