constant byte* const BG_COLOR = (byte*) 53281 constant byte* BITMAP = (byte*) 8192 constant const byte BLACK = 0 constant byte* const BORDER_COLOR = (byte*) 53280 constant struct MOS6526_CIA* const CIA1 = (struct MOS6526_CIA*) 56320 constant const byte CIA_INTERRUPT_CLEAR = $7f constant byte* const D011 = (byte*) 53265 constant byte* const D018 = (byte*) 53272 constant void()** const HARDWARE_IRQ = (void()**) 65534 constant byte* const IRQ_ENABLE = (byte*) 53274 constant const byte IRQ_RASTER = 1 constant byte* const IRQ_STATUS = (byte*) 53273 constant byte OFFSET_STRUCT_MOS6526_CIA_INTERRUPT = $d constant const dword PI2_u4f28 = $6487ed51 constant const dword PI_HALF_u4f28 = $1921fb54 constant const dword PI_u4f28 = $3243f6a9 constant byte* const PROCPORT = (byte*) 1 constant byte* const PROCPORT_DDR = (byte*) 0 constant const byte PROCPORT_DDR_MEMORY_MASK = 7 constant const byte PROCPORT_RAM_IO = 5 constant byte* const RASTER = (byte*) 53266 constant byte* SCREEN = (byte*) 1024 constant signed word* SINE[$200] = { fill( $200, 0) } constant byte SIZEOF_SIGNED_WORD = 2 constant const byte VICII_BMM = $20 constant byte* const VICII_CONTROL1 = (byte*) 53265 constant const byte VICII_DEN = $10 constant const byte VICII_RSEL = 8 constant const byte WHITE = 1 void __start() void bitmap_clear(byte bitmap_clear::bgcol , byte bitmap_clear::fgcol) byte bitmap_clear::bgcol byte bitmap_clear::col constant byte bitmap_clear::col#0 col = WHITE*$10 byte bitmap_clear::fgcol byte* bitmap_gfx void bitmap_init(byte* bitmap_init::gfx , byte* bitmap_init::screen) byte~ bitmap_init::$4 reg byte a 2002.0 byte~ bitmap_init::$5 reg byte a 2002.0 byte~ bitmap_init::$6 reg byte a 2002.0 byte~ bitmap_init::$7 zp[1]:36 500.5 byte bitmap_init::bits byte bitmap_init::bits#1 reg byte a 1001.0 byte bitmap_init::bits#3 reg byte a 1501.5 byte bitmap_init::bits#4 reg byte a 667.3333333333334 byte* bitmap_init::gfx byte* bitmap_init::screen byte bitmap_init::x byte bitmap_init::x#1 reg byte x 1501.5 byte bitmap_init::x#2 reg byte x 500.5 byte bitmap_init::y byte bitmap_init::y#1 reg byte x 1501.5 byte bitmap_init::y#2 reg byte x 500.5 byte* bitmap_init::yoffs byte* bitmap_init::yoffs#1 yoffs zp[2]:30 2002.0 byte* bitmap_init::yoffs#2 yoffs zp[2]:30 625.625 byte* bitmap_init::yoffs#4 yoffs zp[2]:30 1001.0 void bitmap_plot(word bitmap_plot::x , byte bitmap_plot::y) word~ bitmap_plot::$0 zp[2]:45 2002.0 byte~ bitmap_plot::$1 reg byte x 2002.0 byte* bitmap_plot::plotter word bitmap_plot::plotter#0 plotter zp[2]:37 500.5 byte* bitmap_plot::plotter#1 plotter zp[2]:37 1501.5 word bitmap_plot::x word bitmap_plot::x#0 x zp[2]:28 420.59999999999997 byte bitmap_plot::y byte bitmap_plot::y#0 reg byte x 2103.0 constant const byte* bitmap_plot_bit[$100] = { fill( $100, 0) } constant const byte* bitmap_plot_yhi[$100] = { fill( $100, 0) } constant const byte* bitmap_plot_ylo[$100] = { fill( $100, 0) } byte* bitmap_screen dword div32u16u(dword div32u16u::dividend , word div32u16u::divisor) dword div32u16u::dividend word div32u16u::divisor dword div32u16u::quotient word div32u16u::quotient_hi word div32u16u::quotient_hi#0 quotient_hi zp[2]:43 400.4 word div32u16u::quotient_lo word div32u16u::quotient_lo#0 quotient_lo zp[2]:28 2002.0 dword div32u16u::return dword div32u16u::return#0 return zp[4]:32 202.0 dword div32u16u::return#1 return zp[4]:32 367.33333333333337 word divr16u(word divr16u::dividend , word divr16u::divisor , word divr16u::rem) byte~ divr16u::$1 reg byte a 200002.0 byte~ divr16u::$2 reg byte a 200002.0 word divr16u::dividend word divr16u::dividend#0 dividend zp[2]:25 25000.25 word divr16u::dividend#3 dividend zp[2]:25 44286.28571428572 word divr16u::dividend#5 dividend zp[2]:25 10001.0 word divr16u::divisor byte divr16u::i byte divr16u::i#1 reg byte x 150001.5 byte divr16u::i#2 reg byte x 15384.76923076923 word divr16u::quotient word divr16u::quotient#1 quotient zp[2]:28 150001.5 word divr16u::quotient#2 quotient zp[2]:28 100001.0 word divr16u::quotient#3 quotient zp[2]:28 25000.25 word divr16u::rem word divr16u::rem#0 rem zp[2]:45 75000.75 word divr16u::rem#1 rem zp[2]:45 200002.0 word divr16u::rem#10 rem zp[2]:45 11002.0 word divr16u::rem#11 rem zp[2]:45 103334.66666666667 word divr16u::rem#2 rem zp[2]:45 200002.0 word divr16u::rem#4 rem zp[2]:45 2002.0 word divr16u::rem#5 rem zp[2]:45 210003.0 word divr16u::rem#6 rem zp[2]:45 100001.0 word divr16u::return word divr16u::return#0 return zp[2]:28 43143.57142857143 word divr16u::return#2 return zp[2]:28 2002.0 word divr16u::return#3 return zp[2]:28 2002.0 volatile byte frame_cnt loadstore zp[1]:27 3.8181818181818183 void init_irq() __interrupt(hardware_clobber) void irq() void main() signed word~ main::$11 zp[2]:30 202.0 word~ main::$26 zp[2]:13 202.0 word~ main::$27 zp[2]:13 202.0 word~ main::$28 zp[2]:28 101.0 word~ main::$29 zp[2]:30 101.0 signed word*~ main::$30 zp[2]:13 202.0 signed word*~ main::$31 zp[2]:13 202.0 signed word~ main::$7 zp[2]:28 202.0 signed word main::cos_x signed word main::cos_x#0 cos_x zp[2]:13 101.0 word main::idx_x word main::idx_x#1 idx_x zp[2]:2 101.0 word main::idx_x#10 idx_x zp[2]:2 27.545454545454547 word main::idx_x#11 idx_x zp[2]:2 11.222222222222223 word main::idx_y word main::idx_y#1 idx_y zp[2]:6 101.0 word main::idx_y#10 idx_y zp[2]:6 28.857142857142858 word main::idx_y#3 idx_y zp[2]:6 9.774193548387098 signed word main::r signed word main::r#1 r zp[2]:4 50.5 signed word main::r#10 r zp[2]:4 11.542857142857143 byte main::r_add byte main::r_add#1 r_add zp[1]:8 202.0 byte main::r_add#10 r_add zp[1]:8 18.60526315789474 byte main::r_add#12 r_add zp[1]:8 151.5 signed word main::sin_y signed word main::sin_y#0 sin_y zp[2]:13 101.0 byte* main::toD0181_gfx byte main::toD0181_return constant byte main::toD0181_return#0 toD0181_return = >(word)SCREEN&$3fff*4|>(word)BITMAP/4&$f byte* main::toD0181_screen word main::x signed word main::x#0 x zp[2]:28 8.416666666666666 signed dword main::xpos signed dword main::xpos#0 xpos zp[4]:15 202.0 word main::y signed word main::y#0 y zp[2]:30 50.5 signed dword main::ypos signed dword main::ypos#0 ypos zp[4]:15 202.0 void* memset(void* memset::str , byte memset::c , word memset::num) byte memset::c byte memset::c#4 reg byte x 1250.125 byte* memset::dst byte* memset::dst#1 dst zp[2]:37 20002.0 byte* memset::dst#2 dst zp[2]:37 13668.333333333332 byte* memset::dst#4 dst zp[2]:37 2002.0 byte* memset::end byte* memset::end#0 end zp[2]:23 1833.6666666666665 word memset::num word memset::num#2 num zp[2]:23 1001.0 void* memset::return void* memset::str void* memset::str#3 str zp[2]:37 signed dword mul16s(signed word mul16s::a , signed word mul16s::b) word~ mul16s::$11 zp[2]:45 20002.0 word~ mul16s::$12 zp[2]:43 20002.0 word~ mul16s::$6 zp[2]:45 20002.0 word~ mul16s::$9 zp[2]:43 20002.0 signed word mul16s::a signed word mul16s::a#0 a zp[2]:4 2002.0 signed word mul16s::a#1 a zp[2]:4 101.0 signed word mul16s::a#2 a zp[2]:4 101.0 signed word mul16s::a#3 a zp[2]:4 861.8461538461538 signed word mul16s::b signed word mul16s::b#1 b zp[2]:13 202.0 signed word mul16s::b#2 b zp[2]:13 202.0 signed word mul16s::b#3 b zp[2]:13 927.5454545454545 dword mul16s::m dword mul16s::m#0 m zp[4]:15 10001.0 dword mul16s::m#1 m zp[4]:15 20002.0 dword mul16s::m#2 m zp[4]:15 20002.0 dword mul16s::m#4 m zp[4]:15 20002.0 dword mul16s::m#5 m zp[4]:15 12501.25 signed dword mul16s::return signed dword mul16s::return#0 return zp[4]:15 2002.0 signed dword mul16s::return#1 return zp[4]:15 2240.8 signed dword mul16s::return#3 return zp[4]:15 202.0 signed dword mul16s::return#4 return zp[4]:15 202.0 dword mul16u(word mul16u::a , word mul16u::b) byte~ mul16u::$1 reg byte a 2.00000002E8 word mul16u::a word mul16u::a#0 a zp[2]:45 100001.0 word mul16u::a#1 a zp[2]:45 1.00000001E8 word mul16u::a#2 a zp[2]:45 10001.0 word mul16u::a#3 a zp[2]:45 6.683333416666667E7 word mul16u::a#6 a zp[2]:45 555001.5 word mul16u::b word mul16u::b#0 b zp[2]:37 200002.0 word mul16u::b#1 b zp[2]:37 20002.0 word mul16u::b#2 b zp[2]:37 110002.0 dword mul16u::mb dword mul16u::mb#0 mb zp[4]:39 2000002.0 dword mul16u::mb#1 mb zp[4]:39 2.00000002E8 dword mul16u::mb#2 mb zp[4]:39 4.300000057142857E7 dword mul16u::res dword mul16u::res#1 res zp[4]:15 2.00000002E8 dword mul16u::res#2 res zp[4]:15 4.287285785714286E7 dword mul16u::res#6 res zp[4]:15 1.00000001E8 dword mul16u::return dword mul16u::return#0 return zp[4]:15 200002.0 dword mul16u::return#3 return zp[4]:15 20002.0 word mulu16_sel(word mulu16_sel::v1 , word mulu16_sel::v2 , byte mulu16_sel::select) dword~ mulu16_sel::$0 zp[4]:15 200002.0 dword~ mulu16_sel::$1 zp[4]:15 200002.0 word mulu16_sel::return word mulu16_sel::return#0 return zp[2]:45 20002.0 word mulu16_sel::return#1 return_1 zp[2]:25 20002.0 word mulu16_sel::return#10 return_1 zp[2]:25 20002.0 word mulu16_sel::return#11 return zp[2]:45 20002.0 word mulu16_sel::return#12 return zp[2]:45 21429.428571428572 word mulu16_sel::return#2 return zp[2]:45 20002.0 byte mulu16_sel::select byte mulu16_sel::select#5 reg byte x 16666.833333333332 word mulu16_sel::v1 word mulu16_sel::v1#0 v1 zp[2]:25 10001.0 word mulu16_sel::v1#1 v1 zp[2]:25 10001.0 word mulu16_sel::v1#2 v1 zp[2]:25 20002.0 word mulu16_sel::v1#3 v1 zp[2]:25 10001.0 word mulu16_sel::v1#4 v1 zp[2]:25 10001.0 word mulu16_sel::v1#5 v1 zp[2]:25 150006.0 word mulu16_sel::v2 word mulu16_sel::v2#0 v2 zp[2]:37 20002.0 word mulu16_sel::v2#1 v2 zp[2]:37 20002.0 word mulu16_sel::v2#3 v2 zp[2]:37 20002.0 word mulu16_sel::v2#4 v2 zp[2]:37 20002.0 word mulu16_sel::v2#5 v2 zp[2]:37 70002.5 constant byte* plots_per_frame[$100] = { fill( $100, 0) } word rem16u word rem16u#14 rem16u zp[2]:47 2200.4 signed word sin16s(dword sin16s::x) dword~ sin16s::$4 zp[4]:39 20002.0 byte sin16s::isUpper byte sin16s::isUpper#2 reg byte y 303.06060606060606 signed word sin16s::return signed word sin16s::return#0 return zp[2]:4 2002.0 signed word sin16s::return#1 return zp[2]:4 7001.0 signed word sin16s::return#5 return zp[2]:4 20002.0 signed word sin16s::sinx signed word sin16s::sinx#1 sinx zp[2]:4 20002.0 word sin16s::usinx word sin16s::usinx#0 usinx zp[2]:4 1666.8333333333333 word sin16s::usinx#1 usinx zp[2]:4 5000.5 dword sin16s::x dword sin16s::x#0 x zp[4]:19 15502.0 dword sin16s::x#1 x zp[4]:19 20002.0 dword sin16s::x#2 x zp[4]:19 20002.0 dword sin16s::x#4 x zp[4]:19 25002.5 dword sin16s::x#6 x zp[4]:19 30003.0 word sin16s::x1 word sin16s::x1#0 x1 zp[2]:43 3182.1363636363635 word sin16s::x2 word sin16s::x2#0 x2 zp[2]:25 20002.0 word sin16s::x3 word sin16s::x3#0 x3 zp[2]:25 5000.5 word sin16s::x3_6 word sin16s::x3_6#0 x3_6 zp[2]:45 20002.0 word sin16s::x4 word sin16s::x4#0 x4 zp[2]:25 20002.0 word sin16s::x5 word sin16s::x5#0 x5 zp[2]:45 20002.0 word sin16s::x5_128 word sin16s::x5_128#0 x5_128 zp[2]:45 20002.0 void sin16s_gen2(signed word* sin16s_gen2::sintab , word sin16s_gen2::wavelength , signed word sin16s_gen2::min , signed word sin16s_gen2::max) signed dword~ sin16s_gen2::$6 zp[4]:15 2002.0 word~ sin16s_gen2::$8 zp[2]:37 1001.0 signed word sin16s_gen2::ampl constant signed word sin16s_gen2::ampl#0 ampl = sin16s_gen2::max#0-sin16s_gen2::min#0 word sin16s_gen2::i word sin16s_gen2::i#1 i zp[2]:30 2002.0 word sin16s_gen2::i#2 i zp[2]:30 231.0 signed word sin16s_gen2::max constant signed word sin16s_gen2::max#0 max = $1001 signed word sin16s_gen2::min constant signed word sin16s_gen2::min#0 min = -$1001 signed word sin16s_gen2::offs signed word* sin16s_gen2::sintab signed word* sin16s_gen2::sintab#0 sintab zp[2]:23 667.3333333333334 signed word* sin16s_gen2::sintab#2 sintab zp[2]:23 273.0 dword sin16s_gen2::step dword sin16s_gen2::step#0 step zp[4]:32 73.46666666666667 word sin16s_gen2::wavelength constant word sin16s_gen2::wavelength#0 wavelength = $200 dword sin16s_gen2::x dword sin16s_gen2::x#1 x zp[4]:9 1001.0 dword sin16s_gen2::x#2 x zp[4]:9 250.25 zp[2]:2 [ main::idx_x#11 main::idx_x#10 main::idx_x#1 ] zp[2]:4 [ main::r#10 main::r#1 mul16s::a#3 mul16s::a#2 mul16s::a#1 mul16s::a#0 sin16s::return#1 sin16s::return#5 sin16s::sinx#1 sin16s::usinx#1 sin16s::return#0 sin16s::usinx#0 ] zp[2]:6 [ main::idx_y#3 main::idx_y#10 main::idx_y#1 ] zp[1]:8 [ main::r_add#10 main::r_add#12 main::r_add#1 ] zp[4]:9 [ sin16s_gen2::x#2 sin16s_gen2::x#1 ] reg byte a [ bitmap_init::bits#3 bitmap_init::bits#4 bitmap_init::bits#1 ] reg byte x [ bitmap_init::x#2 bitmap_init::x#1 ] reg byte x [ bitmap_init::y#2 bitmap_init::y#1 ] zp[2]:13 [ mul16s::b#3 mul16s::b#2 mul16s::b#1 main::cos_x#0 main::sin_y#0 main::$26 main::$30 main::$27 main::$31 ] zp[4]:15 [ mul16s::m#4 mul16s::m#5 mul16s::m#1 mul16s::m#0 mul16s::m#2 mul16u::return#3 mul16s::return#1 mul16u::res#2 mul16u::res#6 mul16u::res#1 mul16u::return#0 mul16s::return#3 main::xpos#0 mul16s::return#4 main::ypos#0 mul16s::return#0 sin16s_gen2::$6 mulu16_sel::$0 mulu16_sel::$1 ] reg byte y [ sin16s::isUpper#2 ] zp[4]:19 [ sin16s::x#6 sin16s::x#4 sin16s::x#0 sin16s::x#1 sin16s::x#2 ] zp[2]:23 [ memset::num#2 memset::end#0 sin16s_gen2::sintab#2 sin16s_gen2::sintab#0 ] reg byte x [ memset::c#4 ] reg byte x [ divr16u::i#2 divr16u::i#1 ] zp[2]:25 [ mulu16_sel::v1#5 mulu16_sel::v1#4 mulu16_sel::v1#0 mulu16_sel::v1#1 mulu16_sel::v1#2 mulu16_sel::v1#3 sin16s::x3#0 sin16s::x2#0 sin16s::x4#0 mulu16_sel::return#1 mulu16_sel::return#10 divr16u::dividend#3 divr16u::dividend#5 divr16u::dividend#0 ] reg byte x [ mulu16_sel::select#5 ] zp[1]:27 [ frame_cnt ] zp[2]:28 [ main::$28 main::$7 main::x#0 bitmap_plot::x#0 divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 divr16u::return#2 divr16u::return#3 div32u16u::quotient_lo#0 ] zp[2]:30 [ main::$29 main::$11 main::y#0 bitmap_init::yoffs#2 bitmap_init::yoffs#4 bitmap_init::yoffs#1 sin16s_gen2::i#2 sin16s_gen2::i#1 ] reg byte x [ bitmap_plot::y#0 ] zp[4]:32 [ div32u16u::return#0 sin16s_gen2::step#0 div32u16u::return#1 ] zp[1]:36 [ bitmap_init::$7 ] reg byte a [ bitmap_init::$4 ] reg byte a [ bitmap_init::$5 ] reg byte a [ bitmap_init::$6 ] zp[2]:37 [ bitmap_plot::plotter#0 bitmap_plot::plotter#1 sin16s_gen2::$8 mul16u::b#2 mul16u::b#1 mul16u::b#0 mulu16_sel::v2#5 mulu16_sel::v2#4 mulu16_sel::v2#0 mulu16_sel::v2#1 mulu16_sel::v2#3 memset::str#3 memset::dst#2 memset::dst#4 memset::dst#1 ] reg byte x [ bitmap_plot::$1 ] zp[4]:39 [ sin16s::$4 mul16u::mb#2 mul16u::mb#0 mul16u::mb#1 ] zp[2]:43 [ sin16s::x1#0 div32u16u::quotient_hi#0 mul16s::$9 mul16s::$12 ] zp[2]:45 [ mulu16_sel::return#0 mulu16_sel::return#12 mulu16_sel::return#2 sin16s::x3_6#0 mulu16_sel::return#11 sin16s::x5#0 sin16s::x5_128#0 bitmap_plot::$0 mul16s::$6 mul16s::$11 divr16u::rem#5 divr16u::rem#10 divr16u::rem#4 divr16u::rem#11 divr16u::rem#6 divr16u::rem#0 divr16u::rem#1 divr16u::rem#2 mul16u::a#3 mul16u::a#6 mul16u::a#2 mul16u::a#0 mul16u::a#1 ] reg byte a [ mul16u::$1 ] reg byte a [ divr16u::$1 ] reg byte a [ divr16u::$2 ] zp[2]:47 [ rem16u#14 ]