__constant struct RICOH_2A03 *APU = (struct RICOH_2A03 *) 16384
__constant char DIGITS[] = "0123456789abcdef"z
__constant char * const FR_COUNTER = (char *) 16407
__constant const char JOY_DOWN = 4
__constant const char JOY_LEFT = 2
__constant const char JOY_RIGHT = 1
__constant const char JOY_UP = 8
__constant char * const MEMORY = (char *) 0
__constant char OFFSET_STRUCT_RICOH_2A03_DMC_FREQ = $10
__constant char OFFSET_STRUCT_RICOH_2A03_JOY1 = $16
__constant char OFFSET_STRUCT_RICOH_2C02_PPUADDR = 6
__constant char OFFSET_STRUCT_RICOH_2C02_PPUDATA = 7
__constant char OFFSET_STRUCT_RICOH_2C02_PPUMASK = 1
__constant char OFFSET_STRUCT_RICOH_2C02_PPUSCROLL = 5
__constant char OFFSET_STRUCT_RICOH_2C02_PPUSTATUS = 2
__constant char PALETTE[$20] = { 1, $21, $f, $30, 1, $21, $f, $30, 1, $21, $f, $30, 1, $21, $f, $30, 1, $f, $30, 8, 1, $f, $18, 8, 1, $30, $37, $1a, $f, $f, $f, $f }
__constant struct RICOH_2C02 *PPU = (struct RICOH_2C02 *) 8192
__constant char * const PPU_ATTRIBUTE_TABLE_0 = (char *) 9152
__constant char * const PPU_ATTRIBUTE_TABLE_1 = (char *) 10176
__constant char * const PPU_NAME_TABLE_0 = (char *) 8192
__constant char * const PPU_PALETTE = (char *) 16128
__constant volatile char * const PPU_PPUDATA = (char *) 8199
__constant volatile char * const PPU_PPUSTATUS = (char *) 8194
__constant char RADIX::BINARY = 2
__constant char RADIX::DECIMAL = $a
__constant char RADIX::HEXADECIMAL = $10
__constant char RADIX::OCTAL = 8
__constant char RADIX_HEXADECIMAL_VALUES_CHAR[] = { $10 }
__constant char SIZEOF_CHAR = 1
__constant char TILES[] = kickasm {{ .var filechargen = LoadBinary("characters.901225-01.bin")
     .for(var c=0; c<256; c++) {
        // Plane 0
        .fill 8, filechargen.get(c*8+i)
        // Plane 1
        .fill 8, 0
    }
 }}
__constant void (*VECTORS[])() = { &vblank, &main, 0 }
void __start()
void clrscr()
__constant char conio_cscroll_buffer[$20] = { fill( $20, 0) }
__loadstore char conio_cursor_x // zp[1]:15 4375315.90625
__loadstore char conio_cursor_y // zp[1]:16 6.530632875510204E7
__loadstore char *conio_line_text // zp[2]:17 4.9111335755555555E7
void cputc(char c)
char cputc::c
char cputc::c#0 // reg byte x 2002.0
char cputc::c#1 // reg byte x 2000002.0
char cputc::c#2 // reg byte x 7000334.666666666
void cputcxy(char x , char y , char c)
char cputcxy::c
char cputcxy::c#4 // reg byte y 250.25
char cputcxy::x
char cputcxy::x#0 // reg byte x 202.0
char cputcxy::x#1 // reg byte x 202.0
char cputcxy::x#4 // reg byte x 1203.0
char cputcxy::y
char cputcxy::y#2 // reg byte a 202.0
char cputcxy::y#3 // reg byte a 202.0
char cputcxy::y#4 // reg byte a 601.5
void cputln()
void cputs(const char *s)
char cputs::c
char cputs::c#1 // reg byte a 1000001.0
const char *cputs::s
const char *cputs::s#0 // s zp[2]:23 500000.5
const char *cputs::s#2 // s zp[2]:23 1500001.5
void cputsxy(char x , char y , const char *s)
const char *cputsxy::s
char cputsxy::x
char cputsxy::x#0 // reg byte x 551.0
char cputsxy::y
char cputsxy::y#0 // reg byte a 551.0
void cscroll()
char *cscroll::line1
char *cscroll::line1#1 // line1 zp[2]:9 6.666666666673334E11
char *cscroll::line1#2 // line1 zp[2]:9 3.333333333336667E11
char *cscroll::line2
char *cscroll::line2#1 // line2 zp[2]:25 1.000000000001E12
char *cscroll::line2#2 // line2 zp[2]:25 2.857142857145714E11
char cscroll::y
char cscroll::y#1 // reg byte x 2.000000000002E12
char cscroll::y#2 // reg byte x 3.75000000000375E11
void gotoxy(char x , char y)
char *gotoxy::$5 // zp[2]:23 20002.0
unsigned int gotoxy::$6 // zp[2]:23 20002.0
unsigned int gotoxy::line_offset
unsigned int gotoxy::line_offset#0 // line_offset zp[2]:23 20002.0
char gotoxy::x
char gotoxy::x#1 // reg byte x 1001.0
char gotoxy::x#2 // reg byte x 1001.0
char gotoxy::x#4 // reg byte x 3667.333333333333
char gotoxy::x#5 // reg byte x 20002.0
char gotoxy::y
char gotoxy::y#1 // reg byte a 2002.0
char gotoxy::y#2 // reg byte a 2002.0
char gotoxy::y#4 // reg byte a 7334.666666666666
char gotoxy::y#5 // reg byte a 3333.6666666666665
void main()
char main::i
char main::i#1 // i zp[1]:4 202.0
char main::i#2 // i zp[1]:4 86.57142857142857
char main::initNES1_i
char main::initNES1_i#1 // reg byte x 151.5
char main::initNES1_i#2 // reg byte x 112.22222222222223
char main::initNES1_waitForVBlank1_$0 // reg byte a 202.0
char main::initNES1_waitForVBlank2_$0 // reg byte a 202.0
char main::screensizex1_return
__constant char main::screensizex1_return#0 = $20 // screensizex1_return
char main::screensizex2_return
__constant char main::screensizex2_return#0 = $20 // screensizex2_return
char main::screensizey1_return
__constant char main::screensizey1_return#0 = $1e // screensizey1_return
char main::screensizey2_return
__constant char main::screensizey2_return#0 = $1e // screensizey2_return
char main::screensizey3_return
__constant char main::screensizey3_return#0 = $1e // screensizey3_return
char main::x
char main::x#1 // x zp[1]:2 202.0
char main::x#10 // x zp[1]:2 72.14285714285714
char main::y
char main::y#1 // y zp[1]:3 202.0
char main::y#10 // y zp[1]:3 72.14285714285714
__constant char num_buffer[$b] = { fill( $b, 0) }
void ppuDataFetch(void * const cpuData , void * const ppuData , unsigned int size)
void * const ppuDataFetch::cpuData
__constant void * const ppuDataFetch::cpuData#0 = (void * const )conio_cscroll_buffer // cpuData
char *ppuDataFetch::cpuDst
char *ppuDataFetch::cpuDst#1 // cpuDst zp[2]:13 1.0E17
char *ppuDataFetch::cpuDst#2 // cpuDst zp[2]:13 7.5E16
unsigned int ppuDataFetch::i
unsigned int ppuDataFetch::i#1 // i zp[2]:11 2.0E17
unsigned int ppuDataFetch::i#2 // i zp[2]:11 6.0E16
void * const ppuDataFetch::ppuData
void * const ppuDataFetch::ppuData#0 // ppuData zp[2]:27 5.25000000000075E12
char ppuDataFetch::ppuDataPrepare1_$0 // reg byte a 2.0000000000002E13
char ppuDataFetch::ppuDataPrepare1_$1 // reg byte a 2.0000000000002E13
void * const ppuDataFetch::ppuDataPrepare1_ppuData
char ppuDataFetch::ppuDataRead1_return
char ppuDataFetch::ppuDataRead1_return#0 // reg byte a 2.0E17
unsigned int ppuDataFetch::size
__constant unsigned int ppuDataFetch::size#0 = $20 // size
void ppuDataFill(void * const ppuData , char val , unsigned int size)
unsigned int ppuDataFill::i
unsigned int ppuDataFill::i#1 // i zp[2]:27 2.000000000002E12
unsigned int ppuDataFill::i#2 // i zp[2]:27 1.000000000001E12
void * const ppuDataFill::ppuData
char ppuDataFill::ppuDataPrepare1_$0 // reg byte a 2.0000000002E10
char ppuDataFill::ppuDataPrepare1_$1 // reg byte a 2.0000000002E10
void * const ppuDataFill::ppuDataPrepare1_ppuData
void * const ppuDataFill::ppuDataPrepare1_ppuData#0 // ppuDataPrepare1_ppuData zp[2]:11 6.666666667333333E9
char ppuDataFill::ppuDataPut1_val
unsigned int ppuDataFill::size
unsigned int ppuDataFill::size#5 // size zp[2]:13 1.1111111111122223E11
char ppuDataFill::val
char ppuDataFill::val#10 // reg byte x 1.1111111111122223E11
void ppuDataSet(void * const ppuData , char val)
void * const ppuDataSet::ppuData
char * const ppuDataSet::ppuData#0 // ppuData zp[2]:25 2000000.2
char ppuDataSet::ppuDataPrepare1_$0 // reg byte x 2.00000002E8
char ppuDataSet::ppuDataPrepare1_$1 // reg byte x 2.00000002E8
void * const ppuDataSet::ppuDataPrepare1_ppuData
char ppuDataSet::ppuDataPut1_val
char ppuDataSet::val
char ppuDataSet::val#0 // reg byte a 1.8333333666666668E7
void ppuDataTransfer(void * const ppuData , void * const cpuData , unsigned int size)
void * const ppuDataTransfer::cpuData
void * const ppuDataTransfer::cpuData#2 // cpuData zp[2]:13
char *ppuDataTransfer::cpuSrc
char *ppuDataTransfer::cpuSrc#1 // cpuSrc zp[2]:13 1.000000000000001E15
char *ppuDataTransfer::cpuSrc#2 // cpuSrc zp[2]:13 7.52500000000001E14
char *ppuDataTransfer::cpuSrc#6 // cpuSrc zp[2]:13 2.0000000000002E13
unsigned int ppuDataTransfer::i
unsigned int ppuDataTransfer::i#1 // i zp[2]:7 2.000000000000002E15
unsigned int ppuDataTransfer::i#2 // i zp[2]:7 6.000000000000005E14
void * const ppuDataTransfer::ppuData
void * const ppuDataTransfer::ppuData#0 // ppuData zp[2]:11 2.000000000002E12
char ppuDataTransfer::ppuDataPrepare1_$0 // reg byte a 2.0000000000002E13
char ppuDataTransfer::ppuDataPrepare1_$1 // reg byte a 2.0000000000002E13
void * const ppuDataTransfer::ppuDataPrepare1_ppuData
void * const ppuDataTransfer::ppuDataPrepare1_ppuData#0 // ppuDataPrepare1_ppuData zp[2]:11 7.000000000001E12
char ppuDataTransfer::ppuDataPut1_val
char ppuDataTransfer::ppuDataPut1_val#0 // reg byte a 2.000000000000002E15
unsigned int ppuDataTransfer::size
unsigned int ppuDataTransfer::size#3 // size zp[2]:27 8.333333333333342E13
char readJoy1()
char readJoy1::$1 // zp[1]:21 101.0
char readJoy1::$2 // reg byte a 202.0
char readJoy1::i
char readJoy1::i#1 // reg byte x 202.0
char readJoy1::i#2 // reg byte x 60.599999999999994
char readJoy1::joy
char readJoy1::joy#1 // reg byte a 101.0
char readJoy1::joy#2 // reg byte a 51.0
char readJoy1::return
char readJoy1::return#2 // reg byte a 4.0
void uctoa(char value , char *buffer , char radix)
char *uctoa::buffer
char *uctoa::buffer#11 // buffer zp[2]:7 33500.49999999999
char *uctoa::buffer#14 // buffer zp[2]:7 150001.5
char *uctoa::buffer#3 // buffer zp[2]:7 2002.0
char *uctoa::buffer#4 // buffer zp[2]:7 200002.0
char uctoa::digit
char uctoa::digit#1 // digit zp[1]:5 200002.0
char uctoa::digit#2 // digit zp[1]:5 30769.53846153846
char uctoa::digit_value
char uctoa::digit_value#0 // digit_value zp[1]:22 60000.600000000006
char *uctoa::digit_values
char uctoa::max_digits
__constant char uctoa::max_digits#2 = 2 // max_digits
char uctoa::radix
char uctoa::started
char uctoa::started#2 // started zp[1]:6 60000.600000000006
char uctoa::started#4 // started zp[1]:6 100001.0
char uctoa::value
char uctoa::value#0 // reg byte x 100001.0
char uctoa::value#1 // reg byte x 551.0
char uctoa::value#2 // reg byte x 67000.99999999999
char uctoa::value#6 // reg byte x 150001.5
char uctoa_append(char *buffer , char value , char sub)
char *uctoa_append::buffer
char *uctoa_append::buffer#0 // buffer zp[2]:7 137500.25
char uctoa_append::digit
char uctoa_append::digit#1 // reg byte y 1.000000001E9
char uctoa_append::digit#2 // reg byte y 1.0005000015E9
char uctoa_append::return
char uctoa_append::return#0 // reg byte x 200002.0
char uctoa_append::sub
char uctoa_append::sub#0 // sub zp[1]:22 3.333500005E8
char uctoa_append::value
char uctoa_append::value#0 // reg byte x 366667.3333333334
char uctoa_append::value#1 // reg byte x 2.000000002E9
char uctoa_append::value#2 // reg byte x 5.0018333416666675E8
__interrupt(hardware_all) void vblank()
char vblank::$1 // reg byte a 4.0
char vblank::$3 // reg byte a 4.0
char vblank::$5 // reg byte a 4.0
char vblank::$7 // reg byte a 4.0
char vblank::joy
char vblank::joy#0 // reg byte x 0.7142857142857142
__loadstore volatile char x_scroll // zp[1]:19 1.15
__loadstore volatile char y_scroll // zp[1]:20 1.4761904761904763

reg byte x [ main::initNES1_i#2 main::initNES1_i#1 ]
zp[1]:2 [ main::x#10 main::x#1 ]
zp[1]:3 [ main::y#10 main::y#1 ]
zp[1]:4 [ main::i#2 main::i#1 ]
reg byte x [ readJoy1::i#2 readJoy1::i#1 ]
reg byte a [ readJoy1::joy#2 readJoy1::joy#1 ]
reg byte x [ ppuDataFill::val#10 ]
zp[1]:5 [ uctoa::digit#2 uctoa::digit#1 ]
reg byte x [ uctoa::value#2 uctoa::value#6 uctoa::value#1 uctoa::value#0 ]
zp[1]:6 [ uctoa::started#2 uctoa::started#4 ]
zp[2]:7 [ uctoa::buffer#11 uctoa::buffer#14 uctoa::buffer#4 uctoa::buffer#3 uctoa_append::buffer#0 ppuDataTransfer::i#2 ppuDataTransfer::i#1 ]
reg byte x [ cputcxy::x#4 cputcxy::x#0 cputcxy::x#1 ]
reg byte a [ cputcxy::y#4 cputcxy::y#3 cputcxy::y#2 ]
reg byte y [ cputcxy::c#4 ]
reg byte x [ uctoa_append::value#2 uctoa_append::value#0 uctoa_append::value#1 ]
reg byte y [ uctoa_append::digit#2 uctoa_append::digit#1 ]
reg byte a [ gotoxy::y#5 gotoxy::y#4 gotoxy::y#1 gotoxy::y#2 ]
reg byte x [ gotoxy::x#5 gotoxy::x#4 gotoxy::x#1 gotoxy::x#2 ]
reg byte x [ cputc::c#2 cputc::c#0 cputc::c#1 ]
reg byte x [ cscroll::y#2 cscroll::y#1 ]
zp[2]:9 [ cscroll::line1#2 cscroll::line1#1 ]
zp[2]:11 [ ppuDataFetch::i#2 ppuDataFetch::i#1 ppuDataFill::ppuDataPrepare1_ppuData#0 ppuDataTransfer::ppuDataPrepare1_ppuData#0 ppuDataTransfer::ppuData#0 ]
zp[2]:13 [ ppuDataFetch::cpuDst#2 ppuDataFetch::cpuDst#1 ppuDataFill::size#5 ppuDataTransfer::cpuData#2 ppuDataTransfer::cpuSrc#2 ppuDataTransfer::cpuSrc#6 ppuDataTransfer::cpuSrc#1 ]
zp[1]:15 [ conio_cursor_x ]
zp[1]:16 [ conio_cursor_y ]
zp[2]:17 [ conio_line_text ]
zp[1]:19 [ x_scroll ]
zp[1]:20 [ y_scroll ]
reg byte a [ readJoy1::return#2 ]
reg byte x [ vblank::joy#0 ]
reg byte a [ vblank::$1 ]
reg byte a [ vblank::$3 ]
reg byte a [ vblank::$5 ]
reg byte a [ vblank::$7 ]
reg byte a [ main::initNES1_waitForVBlank1_$0 ]
reg byte a [ main::initNES1_waitForVBlank2_$0 ]
reg byte x [ cputsxy::x#0 ]
reg byte a [ cputsxy::y#0 ]
zp[1]:21 [ readJoy1::$1 ]
reg byte a [ readJoy1::$2 ]
reg byte a [ ppuDataTransfer::ppuDataPrepare1_$0 ]
reg byte a [ ppuDataTransfer::ppuDataPrepare1_$1 ]
reg byte a [ ppuDataTransfer::ppuDataPut1_val#0 ]
reg byte a [ ppuDataFill::ppuDataPrepare1_$0 ]
reg byte a [ ppuDataFill::ppuDataPrepare1_$1 ]
zp[1]:22 [ uctoa::digit_value#0 uctoa_append::sub#0 ]
reg byte x [ uctoa_append::return#0 ]
zp[2]:23 [ gotoxy::$6 gotoxy::line_offset#0 gotoxy::$5 cputs::s#2 cputs::s#0 ]
reg byte a [ cputs::c#1 ]
zp[2]:25 [ ppuDataSet::ppuData#0 cscroll::line2#2 cscroll::line2#1 ]
reg byte a [ ppuDataSet::val#0 ]
reg byte x [ ppuDataSet::ppuDataPrepare1_$0 ]
reg byte x [ ppuDataSet::ppuDataPrepare1_$1 ]
zp[2]:27 [ ppuDataFetch::ppuData#0 ppuDataFill::i#2 ppuDataFill::i#1 ppuDataTransfer::size#3 ]
reg byte a [ ppuDataFetch::ppuDataPrepare1_$0 ]
reg byte a [ ppuDataFetch::ppuDataPrepare1_$1 ]
reg byte a [ ppuDataFetch::ppuDataRead1_return#0 ]
