1
0
mirror of https://gitlab.com/camelot/kickc.git synced 2024-09-29 03:56:15 +00:00
kickc/src/test/ref/bitmap-plot-2.sym
2021-06-13 09:23:37 +02:00

336 lines
14 KiB
Plaintext

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 ]