(label) @1
(label) @begin
(label) @end
(byte*) CHARSET
(const byte*) CHARSET#0 CHARSET = (byte*) 8192
(byte*) COLS
(const byte*) COLS#0 COLS = (byte*) 55296
(word[CORDIC_ITERATIONS_16#0]) CORDIC_ATAN2_ANGLES_16
(const word[CORDIC_ITERATIONS_16#0]) CORDIC_ATAN2_ANGLES_16#0 CORDIC_ATAN2_ANGLES_16 = kickasm {{ .for (var i=0; i<CORDIC_ITERATIONS_16; i++)
        .word 256*2*256*atan(1/pow(2,i))/PI/2
 }}
(byte) CORDIC_ITERATIONS_16
(const byte) CORDIC_ITERATIONS_16#0 CORDIC_ITERATIONS_16 = (byte) $f
(byte*) D018
(const byte*) D018#0 D018 = (byte*) 53272
(byte[]) FONT_HEX_PROTO
(const byte[]) FONT_HEX_PROTO#0 FONT_HEX_PROTO = { (byte) 2, (byte) 5, (byte) 5, (byte) 5, (byte) 2, (byte) 6, (byte) 2, (byte) 2, (byte) 2, (byte) 7, (byte) 6, (byte) 1, (byte) 2, (byte) 4, (byte) 7, (byte) 6, (byte) 1, (byte) 2, (byte) 1, (byte) 6, (byte) 5, (byte) 5, (byte) 7, (byte) 1, (byte) 1, (byte) 7, (byte) 4, (byte) 6, (byte) 1, (byte) 6, (byte) 3, (byte) 4, (byte) 6, (byte) 5, (byte) 2, (byte) 7, (byte) 1, (byte) 1, (byte) 1, (byte) 1, (byte) 2, (byte) 5, (byte) 2, (byte) 5, (byte) 2, (byte) 2, (byte) 5, (byte) 3, (byte) 1, (byte) 1, (byte) 2, (byte) 5, (byte) 7, (byte) 5, (byte) 5, (byte) 6, (byte) 5, (byte) 6, (byte) 5, (byte) 6, (byte) 2, (byte) 5, (byte) 4, (byte) 5, (byte) 2, (byte) 6, (byte) 5, (byte) 5, (byte) 5, (byte) 6, (byte) 7, (byte) 4, (byte) 6, (byte) 4, (byte) 7, (byte) 7, (byte) 4, (byte) 6, (byte) 4, (byte) 4 }
(const byte) RADIX::BINARY BINARY = (number) 2
(const byte) RADIX::DECIMAL DECIMAL = (number) $a
(const byte) RADIX::HEXADECIMAL HEXADECIMAL = (number) $10
(const byte) RADIX::OCTAL OCTAL = (number) 8
(byte*) SCREEN
(const byte*) SCREEN#0 SCREEN = (byte*) 10240
(byte[$3e8]) SCREEN_REF
(const byte[$3e8]) SCREEN_REF#0 SCREEN_REF = kickasm {{ .for(var y=-12;y<=12;y++)
        .for(var x=-19;x<=20;x++)
            .byte round(256*atan2(y, x)/PI/2)
 }}
(word()) atan2_16((signed word) atan2_16::x , (signed word) atan2_16::y)
(signed word~) atan2_16::$2 $2 zp ZP_WORD:17 4.0
(byte~) atan2_16::$23 reg byte a 2002.0
(byte~) atan2_16::$24 reg byte a 2002.0
(signed word~) atan2_16::$7 $7 zp ZP_WORD:4 4.0
(label) atan2_16::@1
(label) atan2_16::@10
(label) atan2_16::@11
(label) atan2_16::@12
(label) atan2_16::@13
(label) atan2_16::@14
(label) atan2_16::@15
(label) atan2_16::@16
(label) atan2_16::@17
(label) atan2_16::@18
(label) atan2_16::@19
(label) atan2_16::@2
(label) atan2_16::@20
(label) atan2_16::@21
(label) atan2_16::@3
(label) atan2_16::@4
(label) atan2_16::@5
(label) atan2_16::@6
(label) atan2_16::@7
(label) atan2_16::@8
(label) atan2_16::@9
(label) atan2_16::@return
(word) atan2_16::angle
(word) atan2_16::angle#1 angle zp ZP_WORD:6 3.0
(word) atan2_16::angle#11 angle zp ZP_WORD:6 4.0
(word) atan2_16::angle#12 angle zp ZP_WORD:6 190.66666666666666
(word) atan2_16::angle#13 angle zp ZP_WORD:6 1334.6666666666667
(word) atan2_16::angle#2 angle zp ZP_WORD:6 2002.0
(word) atan2_16::angle#3 angle zp ZP_WORD:6 2002.0
(word) atan2_16::angle#4 angle zp ZP_WORD:6 4.0
(word) atan2_16::angle#5 angle zp ZP_WORD:6 4.0
(word) atan2_16::angle#6 angle zp ZP_WORD:6 2004.0
(byte) atan2_16::i
(byte) atan2_16::i#1 reg byte x 1501.5
(byte) atan2_16::i#2 reg byte x 208.54166666666669
(word) atan2_16::return
(word) atan2_16::return#0 return zp ZP_WORD:6 34.99999999999999
(word) atan2_16::return#2 return zp ZP_WORD:6 202.0
(byte) atan2_16::shift
(byte) atan2_16::shift#1 reg byte y 20002.0
(byte) atan2_16::shift#2 reg byte y 8001.25
(byte~) atan2_16::shift#5 reg byte y 667.3333333333334
(signed word) atan2_16::x
(signed word) atan2_16::x#0 x zp ZP_WORD:21 2.8684210526315796
(signed word) atan2_16::xd
(signed word) atan2_16::xd#1 xd zp ZP_WORD:10 6667.333333333333
(signed word~) atan2_16::xd#10 xd zp ZP_WORD:10 1001.0
(signed word) atan2_16::xd#2 xd zp ZP_WORD:10 1001.0
(signed word) atan2_16::xd#3 xd zp ZP_WORD:10 7668.333333333332
(signed word) atan2_16::xd#5 xd zp ZP_WORD:10 1001.0
(signed word) atan2_16::xi
(signed word) atan2_16::xi#0 xi zp ZP_WORD:4 6.0
(signed word) atan2_16::xi#1 xi zp ZP_WORD:4 500.5
(signed word~) atan2_16::xi#13 xi zp ZP_WORD:4 4.0
(signed word) atan2_16::xi#2 xi zp ZP_WORD:4 500.5
(signed word) atan2_16::xi#3 xi zp ZP_WORD:4 267.0666666666667
(signed word) atan2_16::xi#8 xi zp ZP_WORD:4 1001.0
(signed word) atan2_16::y
(signed word) atan2_16::y#0 y zp ZP_WORD:23 2.724999999999999
(signed word) atan2_16::yd
(signed word) atan2_16::yd#1 yd zp ZP_WORD:8 10001.0
(signed word~) atan2_16::yd#10 yd zp ZP_WORD:8 2002.0
(signed word) atan2_16::yd#2 yd zp ZP_WORD:8 2002.0
(signed word) atan2_16::yd#3 yd zp ZP_WORD:8 4601.0
(signed word) atan2_16::yd#5 yd zp ZP_WORD:8 2002.0
(signed word) atan2_16::yi
(signed word) atan2_16::yi#0 yi zp ZP_WORD:17 1.2000000000000002
(signed word) atan2_16::yi#1 yi zp ZP_WORD:17 667.3333333333334
(signed word~) atan2_16::yi#16 yi zp ZP_WORD:17 4.0
(signed word) atan2_16::yi#2 yi zp ZP_WORD:17 667.3333333333334
(signed word) atan2_16::yi#3 yi zp ZP_WORD:17 353.4117647058823
(signed word) atan2_16::yi#8 yi zp ZP_WORD:17 1001.0
(byte()) diff((byte) diff::bb1 , (byte) diff::bb2)
(byte~) diff::$2 reg byte a 4.0
(byte~) diff::$4 reg byte a 4.0
(label) diff::@1
(label) diff::@2
(label) diff::@3
(label) diff::@return
(byte) diff::bb1
(byte) diff::bb1#0 reg byte x 35.66666666666666
(byte) diff::bb2
(byte) diff::bb2#0 reg byte a 53.5
(byte) diff::return
(byte) diff::return#0 reg byte a 202.0
(byte) diff::return#1 reg byte a 34.99999999999999
(void()) init_font_hex((byte*) init_font_hex::charset)
(byte~) init_font_hex::$0 $0 zp ZP_BYTE:25 1001.0
(byte~) init_font_hex::$1 reg byte a 2002.0
(byte~) init_font_hex::$2 reg byte a 2002.0
(label) init_font_hex::@1
(label) init_font_hex::@2
(label) init_font_hex::@3
(label) init_font_hex::@4
(label) init_font_hex::@5
(label) init_font_hex::@return
(byte) init_font_hex::c
(byte) init_font_hex::c#1 c zp ZP_BYTE:14 16.5
(byte) init_font_hex::c#6 c zp ZP_BYTE:14 1.1578947368421053
(byte) init_font_hex::c1
(byte) init_font_hex::c1#1 c1 zp ZP_BYTE:19 151.5
(byte) init_font_hex::c1#4 c1 zp ZP_BYTE:19 13.466666666666667
(byte*) init_font_hex::charset
(byte*) init_font_hex::charset#0 charset zp ZP_WORD:15 35.5
(byte*) init_font_hex::charset#2 charset zp ZP_WORD:15 108.35714285714285
(byte*) init_font_hex::charset#5 charset zp ZP_WORD:15 22.0
(byte) init_font_hex::i
(byte) init_font_hex::i#1 reg byte x 1501.5
(byte) init_font_hex::i#2 reg byte x 667.3333333333334
(byte) init_font_hex::idx
(byte) init_font_hex::idx#2 idx zp ZP_BYTE:20 551.0
(byte) init_font_hex::idx#3 reg byte y 202.0
(byte) init_font_hex::idx#5 idx zp ZP_BYTE:20 600.5999999999999
(byte*) init_font_hex::proto_hi
(byte*) init_font_hex::proto_hi#1 proto_hi zp ZP_WORD:12 7.333333333333333
(byte*) init_font_hex::proto_hi#6 proto_hi zp ZP_WORD:12 56.83333333333334
(byte*) init_font_hex::proto_lo
(byte*) init_font_hex::proto_lo#1 proto_lo zp ZP_WORD:17 50.5
(byte*) init_font_hex::proto_lo#4 proto_lo zp ZP_WORD:17 92.53846153846155
(void()) main()
(word~) main::$12 $12 zp ZP_WORD:6 202.0
(byte~) main::$14 reg byte a 202.0
(byte~) main::$15 reg byte a 202.0
(label) main::@1
(label) main::@2
(label) main::@3
(label) main::@4
(label) main::@5
(label) main::@6
(label) main::@7
(label) main::@8
(byte) main::ang_w
(byte) main::ang_w#0 reg byte x 43.285714285714285
(word) main::angle_w
(word) main::angle_w#0 angle_w zp ZP_WORD:6 202.0
(byte*) main::col00
(word) main::diff_sum
(word) main::diff_sum#1 diff_sum zp ZP_WORD:12 23.888888888888886
(word) main::diff_sum#2 diff_sum zp ZP_WORD:12 14.2
(word) main::diff_sum#7 diff_sum zp ZP_WORD:12 22.0
(byte*) main::screen
(byte*) main::screen#1 screen zp ZP_WORD:15 35.5
(byte*) main::screen#2 screen zp ZP_WORD:15 17.444444444444443
(byte*) main::screen#5 screen zp ZP_WORD:15 22.0
(byte*) main::screen_ref
(byte*) main::screen_ref#1 screen_ref zp ZP_WORD:2 42.599999999999994
(byte*) main::screen_ref#2 screen_ref zp ZP_WORD:2 21.842105263157897
(byte*) main::screen_ref#5 screen_ref zp ZP_WORD:2 22.0
(label) main::toD0181
(word~) main::toD0181_$0
(number~) main::toD0181_$1
(number~) main::toD0181_$2
(number~) main::toD0181_$3
(word~) main::toD0181_$4
(byte~) main::toD0181_$5
(number~) main::toD0181_$6
(number~) main::toD0181_$7
(number~) main::toD0181_$8
(byte*) main::toD0181_gfx
(byte) main::toD0181_return
(const byte) main::toD0181_return#0 toD0181_return = >(word)(const byte*) SCREEN#0&(word) $3fff*(byte) 4|>(word)(const byte*) CHARSET#0/(byte) 4&(byte) $f
(byte*) main::toD0181_screen
(signed byte) main::x
(signed byte) main::x#1 x zp ZP_BYTE:19 151.5
(signed byte) main::x#2 x zp ZP_BYTE:19 10.1
(signed word) main::xw
(word) main::xw#0 xw zp ZP_WORD:21 50.5
(signed byte) main::y
(signed byte) main::y#1 y zp ZP_BYTE:14 16.5
(signed byte) main::y#4 y zp ZP_BYTE:14 0.9565217391304348
(signed word) main::yw
(word) main::yw#0 yw zp ZP_WORD:23 50.5
(void()) print_byte((byte) print_byte::b)
(byte~) print_byte::$0 reg byte a 4.0
(byte~) print_byte::$2 reg byte x 4.0
(label) print_byte::@1
(label) print_byte::@return
(byte) print_byte::b
(byte) print_byte::b#0 reg byte x 4.0
(byte) print_byte::b#1 reg byte x 4.0
(byte) print_byte::b#2 reg byte x 2.0
(void()) print_char((byte) print_char::ch)
(label) print_char::@return
(byte) print_char::ch
(byte) print_char::ch#0 reg byte a 4.0
(byte) print_char::ch#1 reg byte a 4.0
(byte) print_char::ch#2 reg byte a 6.0
(byte*) print_char_cursor
(byte*) print_char_cursor#18 print_char_cursor zp ZP_WORD:2 4.0
(byte*) print_char_cursor#19 print_char_cursor zp ZP_WORD:2 0.6666666666666666
(byte*) print_char_cursor#24 print_char_cursor zp ZP_WORD:2 1.3333333333333333
(byte[]) print_hextab
(const byte[]) print_hextab#0 print_hextab = (string) "0123456789abcdef"z
(byte*) print_line_cursor
(byte*) print_screen
(void()) print_word((word) print_word::w)
(label) print_word::@1
(label) print_word::@return
(word) print_word::w
(word) print_word::w#0 w zp ZP_WORD:12 2.0

reg byte x [ print_byte::b#2 print_byte::b#0 print_byte::b#1 ]
reg byte a [ print_char::ch#2 print_char::ch#0 print_char::ch#1 ]
zp ZP_WORD:2 [ print_char_cursor#18 print_char_cursor#24 print_char_cursor#19 main::screen_ref#2 main::screen_ref#5 main::screen_ref#1 ]
reg byte a [ diff::return#1 diff::$4 diff::$2 ]
zp ZP_WORD:4 [ 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 ]
reg byte x [ atan2_16::i#2 atan2_16::i#1 ]
zp ZP_WORD:6 [ 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#5 atan2_16::angle#11 atan2_16::angle#1 atan2_16::angle#4 atan2_16::return#2 main::angle_w#0 main::$12 ]
reg byte y [ atan2_16::shift#2 atan2_16::shift#5 atan2_16::shift#1 ]
zp ZP_WORD:8 [ atan2_16::yd#5 atan2_16::yd#3 atan2_16::yd#10 atan2_16::yd#1 atan2_16::yd#2 ]
zp ZP_WORD:10 [ atan2_16::xd#5 atan2_16::xd#3 atan2_16::xd#10 atan2_16::xd#1 atan2_16::xd#2 ]
zp ZP_WORD:12 [ init_font_hex::proto_hi#6 init_font_hex::proto_hi#1 main::diff_sum#2 main::diff_sum#7 main::diff_sum#1 print_word::w#0 ]
zp ZP_BYTE:14 [ init_font_hex::c#6 init_font_hex::c#1 main::y#4 main::y#1 ]
zp ZP_WORD:15 [ init_font_hex::charset#2 init_font_hex::charset#5 init_font_hex::charset#0 main::screen#2 main::screen#5 main::screen#1 ]
zp ZP_WORD:17 [ init_font_hex::proto_lo#4 init_font_hex::proto_lo#1 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 ]
zp ZP_BYTE:19 [ init_font_hex::c1#4 init_font_hex::c1#1 main::x#2 main::x#1 ]
reg byte x [ init_font_hex::i#2 init_font_hex::i#1 ]
zp ZP_BYTE:20 [ init_font_hex::idx#5 init_font_hex::idx#2 ]
zp ZP_WORD:21 [ main::xw#0 atan2_16::x#0 ]
zp ZP_WORD:23 [ main::yw#0 atan2_16::y#0 ]
reg byte x [ main::ang_w#0 ]
reg byte x [ diff::bb1#0 ]
reg byte a [ diff::bb2#0 ]
reg byte a [ diff::return#0 ]
reg byte a [ main::$14 ]
reg byte a [ main::$15 ]
reg byte a [ print_byte::$0 ]
reg byte x [ print_byte::$2 ]
reg byte a [ atan2_16::$24 ]
reg byte a [ atan2_16::$23 ]
zp ZP_BYTE:25 [ init_font_hex::$0 ]
reg byte a [ init_font_hex::$1 ]
reg byte a [ init_font_hex::$2 ]
reg byte y [ init_font_hex::idx#3 ]
