__constant unsigned int CORDIC_ATAN2_ANGLES_16[CORDIC_ITERATIONS_16] = kickasm {{ .for (var i=0; i<CORDIC_ITERATIONS_16; i++)
        .word 256*2*256*atan(1/pow(2,i))/PI/2
 }}
__constant const char CORDIC_ITERATIONS_16 = $f
__constant const char FILL_CHAR = '@'
__constant char *HEAP_TOP = (char *) 40960
char NUM_SQUARES
__constant char NUM_SQUARES#2 = $30 // NUM_SQUARES
__constant char RADIX::BINARY = 2
__constant char RADIX::DECIMAL = $a
__constant char RADIX::HEXADECIMAL = $10
__constant char RADIX::OCTAL = 8
char *SCREEN_ANGLE
char *SCREEN_ANGLE#0 // SCREEN_ANGLE zp[2]:29 4.956521739130435
char *SCREEN_DIST
char *SCREEN_DIST#0 // SCREEN_DIST zp[2]:27 4.5600000000000005
__constant char * const SCREEN_FILL = (char *) 1024
__constant char SIZEOF_UNSIGNED_INT = 2
unsigned int *SQUARES
void *SQUARES#0 // SQUARES zp[2]:4 16.14516129032258
void __start()
unsigned int atan2_16(int x , int y)
int atan2_16::$2 // zp[2]:21 200002.0
char atan2_16::$22 // reg byte a 2.00000002E8
char atan2_16::$23 // reg byte a 2.00000002E8
int atan2_16::$7 // zp[2]:23 200002.0
unsigned int atan2_16::angle
unsigned int atan2_16::angle#1 // angle zp[2]:25 150001.5
unsigned int atan2_16::angle#11 // angle zp[2]:25 200002.0
unsigned int atan2_16::angle#12 // angle zp[2]:25 1.904761923809524E7
unsigned int atan2_16::angle#13 // angle zp[2]:25 1.3333333466666667E8
unsigned int atan2_16::angle#2 // angle zp[2]:25 2.00000002E8
unsigned int atan2_16::angle#3 // angle zp[2]:25 2.00000002E8
unsigned int atan2_16::angle#4 // angle zp[2]:25 200002.0
unsigned int atan2_16::angle#5 // angle zp[2]:25 200002.0
unsigned int atan2_16::angle#6 // angle zp[2]:25 2.00100003E8
char atan2_16::i
char atan2_16::i#1 // reg byte x 1.500000015E8
char atan2_16::i#2 // reg byte x 2.0833333541666668E7
unsigned int atan2_16::return
unsigned int atan2_16::return#0 // return zp[2]:25 70001.0
unsigned int atan2_16::return#2 // return zp[2]:25 20002.0
char atan2_16::shift
char atan2_16::shift#1 // reg byte y 2.000000002E9
char atan2_16::shift#2 // reg byte y 8.0000000125E8
char atan2_16::shift#5 // reg byte y 6.6666667333333336E7
int atan2_16::x
int atan2_16::x#0 // x zp[2]:36 10789.605263157895
int atan2_16::xd
int atan2_16::xd#1 // xd zp[2]:33 6.666666673333334E8
int atan2_16::xd#10 // xd zp[2]:33 1.00000001E8
int atan2_16::xd#2 // xd zp[2]:33 1.00000001E8
int atan2_16::xd#3 // xd zp[2]:33 7.666666683333335E8
int atan2_16::xd#5 // xd zp[2]:33 1.00000001E8
int atan2_16::xi
int atan2_16::xi#0 // xi zp[2]:23 300003.0
int atan2_16::xi#1 // xi zp[2]:23 5.00000005E7
int atan2_16::xi#13 // xi zp[2]:23 200002.0
int atan2_16::xi#2 // xi zp[2]:23 5.00000005E7
int atan2_16::xi#3 // xi zp[2]:23 2.6673333666666668E7
int atan2_16::xi#8 // xi zp[2]:23 1.00000001E8
int atan2_16::y
int atan2_16::y#0 // y zp[2]:38 10250.125
int atan2_16::yd
int atan2_16::yd#1 // yd zp[2]:31 1.000000001E9
int atan2_16::yd#10 // yd zp[2]:31 2.00000002E8
int atan2_16::yd#2 // yd zp[2]:31 2.00000002E8
int atan2_16::yd#3 // yd zp[2]:31 4.6000000099999994E8
int atan2_16::yd#5 // yd zp[2]:31 2.00000002E8
int atan2_16::yi
int atan2_16::yi#0 // yi zp[2]:21 60000.600000000006
int atan2_16::yi#1 // yi zp[2]:21 6.6666667333333336E7
int atan2_16::yi#16 // yi zp[2]:21 200002.0
int atan2_16::yi#2 // yi zp[2]:21 6.6666667333333336E7
int atan2_16::yi#3 // yi zp[2]:21 3.53000004117647E7
int atan2_16::yi#8 // yi zp[2]:21 1.00000001E8
unsigned int * bsearch16u(unsigned int key , unsigned int *items , char num)
char bsearch16u::$14 // reg byte a 2.000000002E9
unsigned int *bsearch16u::$2 // zp[2]:25 2000002.0
char bsearch16u::$6 // reg byte a 2.000000002E9
unsigned int *bsearch16u::items
unsigned int *bsearch16u::items#0 // items zp[2]:25 1.000000001E9
unsigned int *bsearch16u::items#1 // items zp[2]:25 550001.0
unsigned int *bsearch16u::items#2 // items zp[2]:25 3.337777785555556E8
unsigned int *bsearch16u::items#8 // items zp[2]:25 1.5000000015E9
unsigned int bsearch16u::key
unsigned int bsearch16u::key#0 // key zp[2]:33 73333.46666666667
char bsearch16u::num
char bsearch16u::num#0 // reg byte x 2.000000002E9
char bsearch16u::num#1 // reg byte x 2.000000002E9
char bsearch16u::num#3 // reg byte x 5.555555561111112E8
char bsearch16u::num#5 // reg byte x 3.000000003E9
unsigned int *bsearch16u::pivot
unsigned int *bsearch16u::pivot#0 // pivot zp[2]:36 5.0025000075E8
int bsearch16u::result
int bsearch16u::result#0 // result zp[2]:38 1.5000000015E9
unsigned int *bsearch16u::return
unsigned int *bsearch16u::return#1 // return zp[2]:25 700001.0
unsigned int *bsearch16u::return#2 // return zp[2]:25 3000003.0
unsigned int *bsearch16u::return#3 // return zp[2]:25 200002.0
unsigned int *bsearch16u::return#7 // return zp[2]:25 2000002.0
char *heap_head
char *heap_head#0 // heap_head zp[2]:2 1100.4
char *heap_head#13 // heap_head zp[2]:2 11004.0
void init_angle_screen(char *screen)
char init_angle_screen::$11 // reg byte a 20002.0
char init_angle_screen::$12 // reg byte a 20002.0
char init_angle_screen::$13 // reg byte a 20002.0
char init_angle_screen::$3 // reg byte a 20002.0
char init_angle_screen::$4 // reg byte a 20002.0
char init_angle_screen::$6 // reg byte a 20002.0
unsigned int init_angle_screen::$9 // zp[2]:25 20002.0
char init_angle_screen::ang_w
char init_angle_screen::ang_w#0 // ang_w zp[1]:35 8334.166666666666
unsigned int init_angle_screen::angle_w
unsigned int init_angle_screen::angle_w#0 // angle_w zp[2]:25 20002.0
char *init_angle_screen::screen
char *init_angle_screen::screen#0 // screen zp[2]:17 112.0
char *init_angle_screen::screen_bottomline
char *init_angle_screen::screen_bottomline#0 // screen_bottomline zp[2]:17 151.5
char *init_angle_screen::screen_bottomline#1 // screen_bottomline zp[2]:17 667.3333333333334
char *init_angle_screen::screen_bottomline#6 // screen_bottomline zp[2]:17 884.2
char *init_angle_screen::screen_topline
char *init_angle_screen::screen_topline#1 // screen_topline zp[2]:15 500.5
char *init_angle_screen::screen_topline#6 // screen_topline zp[2]:15 921.0416666666666
char *init_angle_screen::screen_topline#7 // screen_topline zp[2]:15 202.0
char init_angle_screen::x
char init_angle_screen::x#1 // x zp[1]:19 10001.0
char init_angle_screen::x#2 // x zp[1]:19 2857.4285714285716
char init_angle_screen::xb
char init_angle_screen::xb#1 // xb zp[1]:20 20002.0
char init_angle_screen::xb#2 // xb zp[1]:20 1818.3636363636363
int init_angle_screen::xw
unsigned int init_angle_screen::xw#0 // xw zp[2]:36 3333.6666666666665
char init_angle_screen::y
char init_angle_screen::y#1 // y zp[1]:14 1501.5
char init_angle_screen::y#5 // y zp[1]:14 461.65384615384613
int init_angle_screen::yw
unsigned int init_angle_screen::yw#0 // yw zp[2]:38 5000.5
void init_dist_screen(char *screen)
char init_dist_screen::$14 // reg byte a 20002.0
char init_dist_screen::$16 // reg byte a 20002.0
char init_dist_screen::$5 // reg byte a 2002.0
char init_dist_screen::$7 // reg byte a 2002.0
char init_dist_screen::d
char init_dist_screen::d#0 // reg byte a 12501.25
unsigned int init_dist_screen::ds
unsigned int init_dist_screen::ds#0 // ds zp[2]:33 20002.0
char *init_dist_screen::screen
char *init_dist_screen::screen#0 // screen zp[2]:15 53.25
char *init_dist_screen::screen_bottomline
char *init_dist_screen::screen_bottomline#0 // screen_bottomline zp[2]:17 202.0
char *init_dist_screen::screen_bottomline#1 // screen_bottomline zp[2]:17 667.3333333333334
char *init_dist_screen::screen_bottomline#11 // screen_bottomline zp[2]:17 669.8484848484848
char *init_dist_screen::screen_topline
char *init_dist_screen::screen_topline#1 // screen_topline zp[2]:15 500.5
char *init_dist_screen::screen_topline#11 // screen_topline zp[2]:15 690.78125
char init_dist_screen::x
char init_dist_screen::x#1 // x zp[1]:19 10001.0
char init_dist_screen::x#2 // x zp[1]:19 3000.3
char init_dist_screen::x2
char init_dist_screen::x2#0 // reg byte a 20002.0
char init_dist_screen::xb
char init_dist_screen::xb#1 // xb zp[1]:20 20002.0
char init_dist_screen::xb#2 // xb zp[1]:20 1904.952380952381
char init_dist_screen::xd
char init_dist_screen::xd#0 // reg byte a 30003.0
unsigned int init_dist_screen::xds
unsigned int init_dist_screen::xds#0 // xds zp[2]:33 20002.0
char init_dist_screen::y
char init_dist_screen::y#1 // y zp[1]:14 1501.5
char init_dist_screen::y#10 // y zp[1]:14 88.32352941176471
char init_dist_screen::y2
char init_dist_screen::y2#0 // reg byte a 2002.0
char init_dist_screen::yd
char init_dist_screen::yd#0 // reg byte a 3003.0
unsigned int init_dist_screen::yds
unsigned int init_dist_screen::yds#0 // yds zp[2]:31 478.3478260869565
void init_squares()
char init_squares::$3 // reg byte a 20002.0
char init_squares::$4 // reg byte a 20002.0
char init_squares::i
char init_squares::i#1 // reg byte x 20002.0
char init_squares::i#2 // reg byte x 5714.857142857143
unsigned int init_squares::sqr
unsigned int init_squares::sqr#1 // sqr zp[2]:21 10001.0
unsigned int init_squares::sqr#2 // sqr zp[2]:21 5000.5
unsigned int *init_squares::squares
unsigned int *init_squares::squares#0 // squares zp[2]:23 2002.0
unsigned int *init_squares::squares#1 // squares zp[2]:23 4000.4
unsigned int *init_squares::squares#2 // squares zp[2]:23 10334.666666666666
void main()
char *main::angle
char *main::angle#0 // angle zp[2]:6 202.0
char *main::angle#1 // angle zp[2]:6 500.5
char *main::angle#2 // angle zp[2]:6 344.8888888888889
char *main::dist
char *main::dist#0 // dist zp[2]:4 101.0
char *main::dist#1 // dist zp[2]:4 400.4
char *main::dist#2 // dist zp[2]:4 388.0
unsigned int main::dist_angle
unsigned int main::dist_angle#0 // dist_angle zp[2]:12 1001.0
char *main::fill
char *main::fill#1 // fill zp[2]:2 1001.0
char *main::fill#2 // fill zp[2]:2 400.4
unsigned int main::min_dist_angle
unsigned int main::min_dist_angle#2 // min_dist_angle zp[2]:8 1001.0
unsigned int main::min_dist_angle#3 // min_dist_angle_1 zp[2]:12 821.0
unsigned int main::min_dist_angle#6 // min_dist_angle zp[2]:8 2002.0
unsigned int main::min_dist_angle#7 // min_dist_angle_1 zp[2]:12 2002.0
unsigned int main::min_dist_angle#8 // min_dist_angle_1 zp[2]:12 2002.0
char *main::min_fill
char *main::min_fill#10 // min_fill zp[2]:10 2002.0
char *main::min_fill#2 // min_fill zp[2]:10 586.4285714285714
char *main::min_fill#5 // min_fill zp[2]:10 500.5
void * malloc(unsigned int size)
char *malloc::mem
char *malloc::mem#0 // mem zp[2]:4 3333.6666666666665
void *malloc::return
unsigned int malloc::size
unsigned int malloc::size#3 // size zp[2]:4 10001.0
unsigned int sqr(char val)
char sqr::$0 // reg byte a 200002.0
unsigned int sqr::return
unsigned int sqr::return#0 // return zp[2]:33 27750.75
unsigned int sqr::return#2 // return_1 zp[2]:31 2002.0
unsigned int sqr::return#3 // return zp[2]:33 20002.0
char sqr::val
char sqr::val#0 // reg byte a 2002.0
char sqr::val#1 // reg byte a 20002.0
char sqr::val#2 // reg byte a 111003.0
char sqrt(unsigned int val)
unsigned int sqrt::$1 // zp[2]:25 100001.0
unsigned int sqrt::$2 // zp[2]:25 200002.0
unsigned int *sqrt::found
unsigned int *sqrt::found#0 // found zp[2]:25 200002.0
char sqrt::return
char sqrt::return#0 // reg byte a 36667.33333333333
char sqrt::return#2 // reg byte a 20002.0
char sqrt::sq
unsigned int sqrt::val
unsigned int sqrt::val#0 // val zp[2]:33 110002.0

zp[2]:2 [ main::fill#2 main::fill#1 heap_head#13 heap_head#0 ]
zp[2]:4 [ main::dist#2 main::dist#0 main::dist#1 malloc::size#3 malloc::mem#0 SQUARES#0 ]
zp[2]:6 [ main::angle#2 main::angle#0 main::angle#1 ]
zp[2]:8 [ main::min_dist_angle#2 main::min_dist_angle#6 ]
zp[2]:10 [ main::min_fill#5 main::min_fill#2 main::min_fill#10 ]
zp[2]:12 [ main::min_dist_angle#3 main::min_dist_angle#7 main::min_dist_angle#8 main::dist_angle#0 ]
reg byte a [ init_dist_screen::yd#0 init_dist_screen::$7 init_dist_screen::$5 ]
reg byte a [ init_dist_screen::xd#0 init_dist_screen::$16 init_dist_screen::$14 ]
zp[1]:14 [ init_angle_screen::y#5 init_angle_screen::y#1 init_dist_screen::y#10 init_dist_screen::y#1 ]
zp[2]:15 [ init_angle_screen::screen_topline#6 init_angle_screen::screen_topline#7 init_angle_screen::screen_topline#1 init_dist_screen::screen_topline#11 init_dist_screen::screen#0 init_dist_screen::screen_topline#1 ]
zp[2]:17 [ init_angle_screen::screen_bottomline#6 init_angle_screen::screen_bottomline#0 init_angle_screen::screen_bottomline#1 init_angle_screen::screen#0 init_dist_screen::screen_bottomline#11 init_dist_screen::screen_bottomline#0 init_dist_screen::screen_bottomline#1 ]
zp[1]:19 [ init_angle_screen::x#2 init_angle_screen::x#1 init_dist_screen::x#2 init_dist_screen::x#1 ]
zp[1]:20 [ init_angle_screen::xb#2 init_angle_screen::xb#1 init_dist_screen::xb#2 init_dist_screen::xb#1 ]
reg byte x [ init_squares::i#2 init_squares::i#1 ]
reg byte a [ sqr::val#2 sqr::val#1 sqr::val#0 ]
zp[2]:21 [ atan2_16::yi#3 atan2_16::yi#8 atan2_16::yi#0 atan2_16::yi#16 atan2_16::$2 atan2_16::yi#1 atan2_16::yi#2 init_squares::sqr#2 init_squares::sqr#1 ]
zp[2]:23 [ atan2_16::xi#3 atan2_16::xi#8 atan2_16::xi#0 atan2_16::xi#13 atan2_16::$7 atan2_16::xi#1 atan2_16::xi#2 init_squares::squares#2 init_squares::squares#1 init_squares::squares#0 ]
reg byte x [ atan2_16::i#2 atan2_16::i#1 ]
reg byte y [ atan2_16::shift#2 atan2_16::shift#5 atan2_16::shift#1 ]
zp[2]:25 [ bsearch16u::return#1 bsearch16u::return#2 bsearch16u::items#2 bsearch16u::items#1 bsearch16u::items#8 bsearch16u::$2 bsearch16u::return#7 bsearch16u::items#0 bsearch16u::return#3 sqrt::found#0 sqrt::$2 sqrt::$1 atan2_16::angle#6 atan2_16::angle#12 atan2_16::angle#13 atan2_16::angle#2 atan2_16::angle#3 atan2_16::return#0 atan2_16::angle#11 atan2_16::angle#1 atan2_16::angle#4 atan2_16::angle#5 atan2_16::return#2 init_angle_screen::angle_w#0 init_angle_screen::$9 ]
reg byte x [ bsearch16u::num#5 bsearch16u::num#1 bsearch16u::num#3 bsearch16u::num#0 ]
zp[2]:27 [ SCREEN_DIST#0 ]
zp[2]:29 [ SCREEN_ANGLE#0 ]
reg byte a [ init_dist_screen::y2#0 ]
zp[2]:31 [ sqr::return#2 init_dist_screen::yds#0 atan2_16::yd#5 atan2_16::yd#3 atan2_16::yd#10 atan2_16::yd#1 atan2_16::yd#2 ]
reg byte a [ init_dist_screen::x2#0 ]
zp[2]:33 [ sqr::return#3 init_dist_screen::xds#0 sqr::return#0 init_dist_screen::ds#0 sqrt::val#0 bsearch16u::key#0 atan2_16::xd#5 atan2_16::xd#3 atan2_16::xd#10 atan2_16::xd#1 atan2_16::xd#2 ]
reg byte a [ sqrt::return#2 ]
reg byte a [ init_dist_screen::d#0 ]
reg byte a [ init_angle_screen::$3 ]
reg byte a [ init_angle_screen::$4 ]
reg byte a [ init_angle_screen::$6 ]
zp[1]:35 [ init_angle_screen::ang_w#0 ]
reg byte a [ init_angle_screen::$11 ]
reg byte a [ init_angle_screen::$12 ]
reg byte a [ init_angle_screen::$13 ]
reg byte a [ init_squares::$3 ]
reg byte a [ init_squares::$4 ]
reg byte a [ sqr::$0 ]
reg byte a [ sqrt::return#0 ]
reg byte a [ atan2_16::$23 ]
reg byte a [ atan2_16::$22 ]
reg byte a [ bsearch16u::$6 ]
reg byte a [ bsearch16u::$14 ]
zp[2]:36 [ bsearch16u::pivot#0 init_angle_screen::xw#0 atan2_16::x#0 ]
zp[2]:38 [ bsearch16u::result#0 init_angle_screen::yw#0 atan2_16::y#0 ]
