__constant struct MOS6526_CIA * const CIA1 = (struct MOS6526_CIA *) 56320
__constant const char CIA_INTERRUPT_CLEAR = $7f
__constant char * const COLORRAM = (char *) 55296
__constant char * const DEFAULT_SCREEN = (char *) 1024
__constant char GREETING[] = "   DOUBLEFLASH        ADTBM          SY2002          TAYGER         SERIOUSLY   LIBI IN PARADIZE       LGB          BLUEWAYSW        SAUSAGE       BIT SHIFTER     INDIOCOLIFA     GRUMPYNINJA      0-LIMITS         CHEVERON     DR. COMMODORE "
__constant const char GREET_COUNT = $f
__constant const char GREET_ROW = $14
__constant void (** const HARDWARE_IRQ)() = (void (**)()) 65534
__constant const char IRQ_RASTER = 1
__constant const char IRQ_Y = $16
__constant const char LOGO_ROW = 3
__constant char MEGA_LOGO[] = { $20, $20, $20, $20, $20, $cf, $cf, $cf, $20, $cf, $cf, $20, $20, $cf, $cf, $cf, $20, $20, $cf, $cf, $cf, $20, $20, $20, $cf, $cf, $cf, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $cf, $cf, $20, $cf, $cf, $20, $cf, $20, $cf, $20, $20, $20, $cf, $cf, $20, $20, $20, $20, $cf, $cf, $20, $20, $20, $cf, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $cf, $cf, $20, $20, $cf, $20, $cf, $cf, $cf, $cf, $cf, $20, $cf, $cf, $20, $cf, $cf, $cf, $cf, $cf, $20, $20, $20, $cf, $cf, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $cf, $cf, $cf, $20, $20, $20, $cf, $cf, $cf, $20, $20, $20, $20, $cf, $20, $20, $20, $cf, $cf, $cf, $20, $cf, $cf, $cf, $cf, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $20, $cf, $20, $20, $20, $20, $cf, $cf, $20, $cf, $cf, $cf, $20, $20, $cf, $cf, $cf, $20, $20, $cf, $20, $20, $20, $cf }
__constant char OFFSET_STRUCT_MEGA65_VICIV_CHRXSCL = $5a
__constant char OFFSET_STRUCT_MEGA65_VICIV_CONTROLB = $31
__constant char OFFSET_STRUCT_MEGA65_VICIV_CONTROLC = $54
__constant char OFFSET_STRUCT_MEGA65_VICIV_RASLINE0 = $6f
__constant char OFFSET_STRUCT_MEGA65_VICIV_SIDBDRWD_LO = $5c
__constant char OFFSET_STRUCT_MEGA65_VICIV_TEXTXPOS_LO = $4c
__constant char OFFSET_STRUCT_MOS4569_VICIII_BG_COLOR = $21
__constant char OFFSET_STRUCT_MOS4569_VICIII_BORDER_COLOR = $20
__constant char OFFSET_STRUCT_MOS4569_VICIII_KEY = $2f
__constant char OFFSET_STRUCT_MOS6526_CIA_INTERRUPT = $d
__constant char OFFSET_STRUCT_MOS6569_VICII_CONTROL1 = $11
__constant char OFFSET_STRUCT_MOS6569_VICII_CONTROL2 = $16
__constant char OFFSET_STRUCT_MOS6569_VICII_IRQ_ENABLE = $1a
__constant char OFFSET_STRUCT_MOS6569_VICII_IRQ_STATUS = $19
__constant char OFFSET_STRUCT_MOS6569_VICII_RASTER = $12
__constant char * const PALETTE_BLUE = (char *) 54016
__constant char * const PALETTE_GREEN = (char *) 53760
__constant char * const PALETTE_RED = (char *) 53504
__constant char PAL_BLUE[] = { 0, $f3, $d4, $b5, $a6, $97, $88, $79, $1a, $fa, $eb, $ec, $bd, $be, $af, $ff, 0, 0, 0, 0, $c0, $b1, $a2, $a3, $34, $35, $26, $27, $f7, $f8, $f9, $ea, 0, 0, $30, $11, $22, $13, $14, 5, $b5, $96, $97, $98, $79, $6a, $5b, $4c, $81, $42, $43, $34, 5, 6, $f6, $f7, $78, $69, $5a, $5b, $4c, $3d, $1e, $f, $17, $c7, $a8, $89, $5a, $5b, $3c, $1d, $ad, $9e, $7f, $ff, $ff, $ff, $ff, $ff, $78, 9, $e9, $ca, $ab, $7c, $5d, $5e, $de, $cf, $ff, $ff, $ff, $ff, $ff, $ff, $59, $a, $ca, $bb, $8c, $6d, $3e, $2f, $bf, $ff, $ff, $ff, $ff, $ff, $ff, $ff, $49, $f9, $da, $ab, $7c, $5d, $2e, $2f, $af, $ff, $ff, $ff, $ff, $ff, $ff, $ff, $48, $d8, $b9, $aa, $7b, $5c, $2d, $2e, $be, $9f, $ff, $ff, $ff, $ff, $ff, $ff, 7, $97, $88, $69, $4a, $2b, $1c, $2d, $9d, $7e, $6f, $ff, $ff, $ff, $ff, $ff, $81, $62, $53, $44, 5, 6, $f6, $e7, $78, $69, $5a, $5b, $3c, $2d, $2e, $1f, 0, 0, 0, 0, $b0, $b1, $a2, $b3, $44, $35, $36, $37, 8, $f8, $a, $b, 0, 0, 0, 0, 0, $70, $61, $62, $f2, $e3, $d4, $c5, $b6, $b7, $b8, $99, 0, 0, 0, 0, 0, 0, $f0, $f1, $82, $83, $84, $85, $66, $57, $58, $59, 0, 0, 0, 0, 0, $70, $61, $62, $e2, $e3, $d4, $d5, $b6, $a7, $b8, $a9, 0, 0, 0, 0, $a0, $b1, $a2, $a3, $44, $35, $26, $37, $f7, $19, $f9, $fa }
__constant char PAL_GREEN[] = { 0, $e3, $c4, $b5, $96, $87, $78, $79, $a, $fa, $eb, $dc, $bd, $ae, $af, $ff, $e2, $b3, $a4, $85, $76, $67, $48, $49, $d9, $da, $bb, $bc, $8d, $8e, $7f, $ff, $42, 3, 4, $e4, $d5, $c6, $b7, $a8, $39, $3a, $1b, $2c, $fc, $fd, $de, $df, $61, $32, $13, 4, $e4, $e5, $d6, $d7, $78, $59, $4a, $4b, $2c, $1d, $e, $fe, $e0, $b1, $a2, $93, $74, $75, $56, $57, $e7, $d8, $79, $ca, $ab, $9c, $9d, $8e, $f0, $d1, $c2, $a3, $84, $85, $76, $77, 8, 9, $f9, $fa, $db, $cc, $bd, $ae, $61, $22, $23, $14, $f4, $e5, $d6, $c7, $58, $59, $3a, $3b, $1c, $d, $fd, $fe, $92, $53, $44, $35, $16, $f6, $e7, $e8, $79, $6a, $5b, $4c, $2d, $3e, $1f, $ef, $53, $14, 5, $e5, $c6, $b7, $a8, $99, $2a, $2b, $c, $d, $dd, $ce, $cf, $ff, $f3, $b4, $95, $86, $57, $38, $29, $1a, $ba, $ab, $9c, $8d, $6e, $5f, $ff, $ff, $95, $56, $27, $18, $e8, $d9, $ca, $bb, $4c, $3d, $2e, $1f, $ef, $ff, $ff, $ff, $c5, $86, $57, $38, $19, $a, $ea, $db, $6c, $5d, $3e, $3f, $ef, $ff, $ff, $ff, $65, $26, 7, $e7, $c8, $b9, $9a, $9b, $2c, $1d, $fd, $fe, $cf, $ff, $ff, $ff, $b4, $75, $56, $37, $28, $19, $e9, $ea, $7b, $6c, $5d, $4e, $2f, $ff, $ff, $ff, $c3, $94, $75, $56, $47, $38, $19, $1a, $aa, $ab, $7c, $7d, $5e, $4f, $ff, $ff, $e2, $a3, $94, $85, $76, $67, $38, $49, $d9, $ca, $ab, $bc, $7d, $7e, $6f, $ff }
__constant char PAL_RED[] = { 0, $f3, $d4, $b5, $a6, $97, $88, $79, $1a, $fa, $eb, $ec, $bd, $be, $af, $ff, $16, $c6, $a7, $88, $49, $5a, $2b, $1c, $ac, $ad, $8e, $8f, $ff, $ff, $ff, $ff, $c6, $77, $48, $29, $e9, $fa, $cb, $cc, $5d, $4e, $2f, $ff, $ff, $ff, $ff, $ff, $57, $18, $f8, $d9, $aa, $8b, $6c, $5d, $ed, $de, $cf, $ff, $ff, $ff, $ff, $ff, $26, $e6, $b7, $a8, $69, $5a, $3b, $3c, $dc, $cd, $ae, $9f, $ff, $ff, $ff, $ff, $65, $16, $17, $f7, $d8, $b9, $9a, $8b, $2c, $d, $fd, $ee, $cf, $ff, $ff, $ff, $64, $15, 6, $e6, $c7, $a8, $99, $8a, $1b, $c, $fc, $fd, $ee, $cf, $ff, $ff, $12, $d2, $d3, $b4, $95, $86, $77, $78, 9, $69, $ea, $fb, $dc, $ad, $ae, $af, $f0, $c1, $c2, $a3, $84, $85, $76, $67, 8, $f8, $e9, $da, $db, $bc, $bd, $ae, $40, $11, $12, $f2, $e3, $d4, $c5, $c6, $47, $38, $39, $2a, $1b, $c, $d, $ed, 0, 0, $f0, $d1, $c2, $b3, $a4, $95, $36, $27, $28, $29, $f9, $ea, $eb, $ec, $70, $41, $22, $23, $f3, $f4, $e5, $e6, $77, $78, $69, $7a, $3b, $3c, $3d, $3e, $a1, $82, $63, $54, $35, $26, 7, 8, $98, $99, $8a, $7b, $5c, $5d, $3e, $3f, $33, 4, $d4, $d5, $a6, $a7, $88, $89, $1a, $ab, $fb, $ec, $cd, $be, $af, $ff, $b4, $85, $56, $47, $18, 9, $f9, $ea, $7b, $7c, $5d, $5e, $2f, $ef, $ff, $ff, 6, $d6, $a7, $98, $59, $4a, $2b, $2c, $bc, $ad, $8e, $8f, $ff, $ff, $ff, $ff }
__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_IO = 5
__constant const char RASTER_LINES = $d8
__constant const char SCROLL_BLACKBARS = $13
__constant const char SCROLL_ROW = $d
__constant char SCROLL_TEXT[] = "    THIS SMALL MEGA65 RASTER INTRO ... WAS MADE BY DEFT IN 2015 ... AND BROUGHT BACK TO LIFE 5 YEARS LATER IN 2020 ... BECAUSE THE MEGA65 HARDWARE CHANGED SO MUCH IN THE PAST 5 YEARS ... UNFORTUNATELY MY ASSEMBLER SKILLS DID NOT SO THIS IS THE FIRST APPROACH TO GET BETTER ... HOPEFULLY DR.MUTTI WILL HAVE TO SCOLD ME LESS ... THE PAST 5 YEARS HAVE BEEN AN UNFORGETTABLE & UNIQUE RIDE ... IF YOU DO WATCH THIS DEMO ON YOUR VERY OWN MEGA65 THERE IS ENOUGH EVIDENCE OF WHAT WE ACTUALLY ACHIEVED ... BELOW ARE THE GREETINGS TO DEAR AND VERY SPECIAL PEOPLE WHO HELPED TO GET THERE ... THANK YOU SO MUCH FOR YOUR SUPPORT AND FOR NOT GIVING UP ... DUAL SID TUNE BY RAYDEN OF ALPHA FLIGHT ... THIS SCROLLY WILL NOW RESTART           *WRAP*                    "
__constant const char SCROLL_Y = $66
__constant char SINE[$100] = kickasm {{ .fill 256, 91.5 + 91.5*sin(i*2*PI/256)
 }}
__constant char SIZEOF_CHAR = 1
__constant char SONG[] = kickasm {{ .import c64 "DiscoZak_2SID_patched.prg"
 }}
__constant struct MOS6569_VICII * const VICII = (struct MOS6569_VICII *) 53248
__constant struct MOS4569_VICIII * const VICIII = (struct MOS4569_VICIII *) 53248
__constant struct MEGA65_VICIV * const VICIV = (struct MEGA65_VICIV *) 53248
void __start()
__loadstore volatile char greet_idx // zp[1]:7 0.6153846153846154
__loadstore volatile char greet_zoomx // zp[1]:6 1.3939393939393938
__interrupt(hardware_clobber) void irq()
char irq::$10 // reg byte a 22.0
char irq::$26 // reg byte a 22.0
char irq::$27 // reg byte a 22.0
char irq::$29 // reg byte a 22.0
char irq::$33 // reg byte a 4.0
char irq::barcnt
char irq::barcnt#1 // barcnt zp[1]:4 22.0
char irq::barcnt#2 // barcnt zp[1]:4 2.588235294117647
char irq::barcol
char irq::barcol#0 // reg byte z 22.0
char irq::barcol#1 // reg byte z 101.0
char irq::barcol#2 // reg byte z 75.75
char irq::barcol#3 // reg byte z 103.75
char irq::barcol#4 // reg byte z 151.5
char irq::col
char irq::col#0 // reg byte a 16.5
char irq::col1
char irq::col1#0 // reg byte a 16.5
char irq::col1#1 // reg byte a 12.833333333333334
char irq::greet_offset
char irq::greet_offset#0 // reg byte y 4.0
char irq::greet_offset#1 // reg byte y 11.0
char irq::greet_offset#2 // reg byte y 8.75
char irq::i
char irq::i#1 // reg byte x 22.0
char irq::i#2 // reg byte x 9.307692307692307
char irq::i1
char irq::i1#1 // reg byte y 202.0
char irq::i1#2 // reg byte y 60.599999999999994
char irq::i2
char irq::i2#1 // reg byte y 202.0
char irq::i2#2 // reg byte y 60.599999999999994
char irq::i3
char irq::i3#1 // reg byte x 22.0
char irq::i3#2 // reg byte x 11.0
char irq::i4
char irq::i4#1 // reg byte x 22.0
char irq::i4#2 // reg byte x 8.8
char irq::i5
char irq::i5#1 // reg byte x 22.0
char irq::i5#2 // reg byte x 18.333333333333332
char irq::idx
char irq::idx#0 // reg byte x 11.0
char irq::idx#1 // reg byte x 67.33333333333333
char irq::idx#2 // reg byte x 101.0
char irq::idx#3 // reg byte x 138.33333333333331
char irq::idx#4 // reg byte x 101.0
char irq::l
char irq::l#1 // reg byte x 22.0
char irq::l#2 // reg byte x 14.666666666666666
char irq::line
char irq::line#1 // reg byte z 22.0
char irq::line#10 // reg byte z 3.259259259259259
char irq::nxt
char irq::nxt#0 // reg byte a 2.0
char irq::nxt#1 // reg byte a 4.0
char irq::nxt#2 // reg byte a 6.0
char irq::raster
char irq::raster#0 // reg byte a 56.0
char irq::sin_bar
char irq::sin_bar#0 // sin_bar zp[1]:5 4.0
char irq::sin_bar#1 // sin_bar zp[1]:5 11.0
char irq::sin_bar#2 // sin_bar zp[1]:5 2.1875
char irq::sin_col
char irq::sin_col#0 // reg byte y 4.0
char irq::sin_col#1 // reg byte y 11.0
char irq::sin_col#2 // reg byte y 3.833333333333333
char irq::wobble_idx
char irq::wobble_idx#0 // reg byte x 4.0
char irq::wobble_idx#1 // reg byte x 11.0
char irq::wobble_idx#10 // reg byte x 4.590909090909091
char irq::wobble_idx#7 // reg byte x 22.0
char irq::zoomval
char irq::zoomval#0 // reg byte a 11.0
void main()
char main::i
char main::i#1 // reg byte x 151.5
char main::i#2 // reg byte x 202.0
char main::i1
char main::i1#1 // reg byte x 202.0
char main::i1#2 // reg byte x 168.33333333333331
char main::i2
char main::i2#1 // reg byte x 202.0
char main::i2#2 // reg byte x 134.66666666666666
void * memset(void *str , char c , unsigned int num)
char memset::c
__constant char memset::c#0 = ' ' // c
char *memset::dst
char *memset::dst#1 // dst zp[2]:2 2002.0
char *memset::dst#2 // dst zp[2]:2 1334.6666666666667
char *memset::end
__constant char *memset::end#0 = (char *)memset::str#0+memset::num#0 // end
unsigned int memset::num
__constant unsigned int memset::num#0 = (unsigned int)$28*$19 // num
void *memset::return
void *memset::str
__constant void *memset::str#0 = (void *)DEFAULT_SCREEN // str
__constant char rasters[RASTER_LINES] = { fill( RASTER_LINES, 0) }
__loadstore char * volatile scroll_ptr // zp[2]:10 0.19672131147540986
__loadstore volatile char scroll_soft // zp[1]:9 0.2441860465116279
__loadstore volatile char sin_idx // zp[1]:8 0.49999999999999994
__constant void (*songInit)() = (void (*)())SONG
__constant void (*songPlay)() = (void (*)())SONG+3

reg byte z [ irq::line#10 irq::line#1 ]
reg byte x [ irq::wobble_idx#10 irq::wobble_idx#0 irq::wobble_idx#7 irq::wobble_idx#1 ]
reg byte x [ irq::i#2 irq::i#1 ]
reg byte y [ irq::sin_col#2 irq::sin_col#0 irq::sin_col#1 ]
reg byte x [ irq::l#2 irq::l#1 ]
zp[1]:4 [ irq::barcnt#2 irq::barcnt#1 ]
zp[1]:5 [ irq::sin_bar#2 irq::sin_bar#0 irq::sin_bar#1 ]
reg byte x [ irq::i3#2 irq::i3#1 ]
reg byte x [ irq::i4#2 irq::i4#1 ]
reg byte y [ irq::greet_offset#2 irq::greet_offset#0 irq::greet_offset#1 ]
reg byte x [ irq::i5#2 irq::i5#1 ]
reg byte a [ irq::nxt#2 irq::nxt#0 irq::nxt#1 ]
reg byte y [ irq::i1#2 irq::i1#1 ]
reg byte y [ irq::i2#2 irq::i2#1 ]
reg byte z [ irq::barcol#4 irq::barcol#3 irq::barcol#0 irq::barcol#1 irq::barcol#2 ]
reg byte x [ irq::idx#4 irq::idx#3 irq::idx#0 irq::idx#1 irq::idx#2 ]
reg byte x [ main::i1#2 main::i1#1 ]
reg byte x [ main::i2#2 main::i2#1 ]
reg byte x [ main::i#2 main::i#1 ]
zp[2]:2 [ memset::dst#2 memset::dst#1 ]
zp[1]:8 [ sin_idx ]
zp[1]:9 [ scroll_soft ]
zp[2]:10 [ scroll_ptr ]
zp[1]:6 [ greet_zoomx ]
zp[1]:7 [ greet_idx ]
reg byte a [ irq::$33 ]
reg byte a [ irq::$29 ]
reg byte a [ irq::$26 ]
reg byte a [ irq::$27 ]
reg byte a [ irq::col1#0 ]
reg byte a [ irq::col1#1 ]
reg byte a [ irq::col#0 ]
reg byte a [ irq::zoomval#0 ]
reg byte a [ irq::$10 ]
reg byte a [ irq::raster#0 ]
