mirror of
https://gitlab.com/camelot/kickc.git
synced 2024-06-26 19:30:00 +00:00
5604 lines
341 KiB
Plaintext
5604 lines
341 KiB
Plaintext
Inlined call (byte~) vicSelectGfxBank::$0 ← call toDd00 (byte*) vicSelectGfxBank::gfx
|
|
Inlined call call __init
|
|
|
|
CONTROL FLOW GRAPH SSA
|
|
|
|
(void()) bitmap_init((byte*) bitmap_init::bitmap)
|
|
bitmap_init: scope:[bitmap_init] from main
|
|
(byte*) bitmap_init::bitmap#2 ← phi( main/(byte*) bitmap_init::bitmap#0 )
|
|
(byte) bitmap_init::bits#0 ← (byte) $80
|
|
(byte) bitmap_init::x#0 ← (byte) 0
|
|
to:bitmap_init::@1
|
|
bitmap_init::@1: scope:[bitmap_init] from bitmap_init bitmap_init::@2
|
|
(byte) bitmap_init::bits#3 ← phi( bitmap_init/(byte) bitmap_init::bits#0 bitmap_init::@2/(byte) bitmap_init::bits#4 )
|
|
(byte*) bitmap_init::bitmap#1 ← phi( bitmap_init/(byte*) bitmap_init::bitmap#2 bitmap_init::@2/(byte*) bitmap_init::bitmap#3 )
|
|
(byte) bitmap_init::x#2 ← phi( bitmap_init/(byte) bitmap_init::x#0 bitmap_init::@2/(byte) bitmap_init::x#1 )
|
|
(number~) bitmap_init::$0 ← (byte) bitmap_init::x#2 & (number) $f8
|
|
*((const to_nomodify byte*) bitmap_plot_xlo + (byte) bitmap_init::x#2) ← (number~) bitmap_init::$0
|
|
(byte~) bitmap_init::$1 ← > (byte*) bitmap_init::bitmap#1
|
|
*((const to_nomodify byte*) bitmap_plot_xhi + (byte) bitmap_init::x#2) ← (byte~) bitmap_init::$1
|
|
*((const to_nomodify byte*) bitmap_plot_bit + (byte) bitmap_init::x#2) ← (byte) bitmap_init::bits#3
|
|
(byte~) bitmap_init::$2 ← (byte) bitmap_init::bits#3 >> (number) 1
|
|
(byte) bitmap_init::bits#1 ← (byte~) bitmap_init::$2
|
|
(bool~) bitmap_init::$3 ← (byte) bitmap_init::bits#1 == (number) 0
|
|
(bool~) bitmap_init::$4 ← ! (bool~) bitmap_init::$3
|
|
if((bool~) bitmap_init::$4) goto bitmap_init::@2
|
|
to:bitmap_init::@3
|
|
bitmap_init::@2: scope:[bitmap_init] from bitmap_init::@1 bitmap_init::@3
|
|
(byte) bitmap_init::bits#4 ← phi( bitmap_init::@1/(byte) bitmap_init::bits#1 bitmap_init::@3/(byte) bitmap_init::bits#2 )
|
|
(byte*) bitmap_init::bitmap#3 ← phi( bitmap_init::@1/(byte*) bitmap_init::bitmap#1 bitmap_init::@3/(byte*) bitmap_init::bitmap#4 )
|
|
(byte) bitmap_init::x#3 ← phi( bitmap_init::@1/(byte) bitmap_init::x#2 bitmap_init::@3/(byte) bitmap_init::x#4 )
|
|
(byte) bitmap_init::x#1 ← (byte) bitmap_init::x#3 + rangenext(0,$ff)
|
|
(bool~) bitmap_init::$5 ← (byte) bitmap_init::x#1 != rangelast(0,$ff)
|
|
if((bool~) bitmap_init::$5) goto bitmap_init::@1
|
|
to:bitmap_init::@4
|
|
bitmap_init::@3: scope:[bitmap_init] from bitmap_init::@1
|
|
(byte*) bitmap_init::bitmap#4 ← phi( bitmap_init::@1/(byte*) bitmap_init::bitmap#1 )
|
|
(byte) bitmap_init::x#4 ← phi( bitmap_init::@1/(byte) bitmap_init::x#2 )
|
|
(byte) bitmap_init::bits#2 ← (number) $80
|
|
to:bitmap_init::@2
|
|
bitmap_init::@4: scope:[bitmap_init] from bitmap_init::@2
|
|
(byte*) bitmap_init::yoffs#0 ← (byte*)(number) 0
|
|
(byte) bitmap_init::y#0 ← (byte) 0
|
|
to:bitmap_init::@5
|
|
bitmap_init::@5: scope:[bitmap_init] from bitmap_init::@4 bitmap_init::@6
|
|
(byte*) bitmap_init::yoffs#2 ← phi( bitmap_init::@4/(byte*) bitmap_init::yoffs#0 bitmap_init::@6/(byte*) bitmap_init::yoffs#4 )
|
|
(byte) bitmap_init::y#2 ← phi( bitmap_init::@4/(byte) bitmap_init::y#0 bitmap_init::@6/(byte) bitmap_init::y#1 )
|
|
(number~) bitmap_init::$6 ← (byte) bitmap_init::y#2 & (number) 7
|
|
(byte~) bitmap_init::$7 ← < (byte*) bitmap_init::yoffs#2
|
|
(number~) bitmap_init::$8 ← (number~) bitmap_init::$6 | (byte~) bitmap_init::$7
|
|
*((const to_nomodify byte*) bitmap_plot_ylo + (byte) bitmap_init::y#2) ← (number~) bitmap_init::$8
|
|
(byte~) bitmap_init::$9 ← > (byte*) bitmap_init::yoffs#2
|
|
*((const to_nomodify byte*) bitmap_plot_yhi + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$9
|
|
(number~) bitmap_init::$10 ← (byte) bitmap_init::y#2 & (number) 7
|
|
(bool~) bitmap_init::$11 ← (number~) bitmap_init::$10 == (number) 7
|
|
(bool~) bitmap_init::$12 ← ! (bool~) bitmap_init::$11
|
|
if((bool~) bitmap_init::$12) goto bitmap_init::@6
|
|
to:bitmap_init::@7
|
|
bitmap_init::@6: scope:[bitmap_init] from bitmap_init::@5 bitmap_init::@7
|
|
(byte*) bitmap_init::yoffs#4 ← phi( bitmap_init::@5/(byte*) bitmap_init::yoffs#2 bitmap_init::@7/(byte*) bitmap_init::yoffs#1 )
|
|
(byte) bitmap_init::y#3 ← phi( bitmap_init::@5/(byte) bitmap_init::y#2 bitmap_init::@7/(byte) bitmap_init::y#4 )
|
|
(byte) bitmap_init::y#1 ← (byte) bitmap_init::y#3 + rangenext(0,$ff)
|
|
(bool~) bitmap_init::$14 ← (byte) bitmap_init::y#1 != rangelast(0,$ff)
|
|
if((bool~) bitmap_init::$14) goto bitmap_init::@5
|
|
to:bitmap_init::@return
|
|
bitmap_init::@7: scope:[bitmap_init] from bitmap_init::@5
|
|
(byte) bitmap_init::y#4 ← phi( bitmap_init::@5/(byte) bitmap_init::y#2 )
|
|
(byte*) bitmap_init::yoffs#3 ← phi( bitmap_init::@5/(byte*) bitmap_init::yoffs#2 )
|
|
(byte*~) bitmap_init::$13 ← (byte*) bitmap_init::yoffs#3 + (number) $28*(number) 8
|
|
(byte*) bitmap_init::yoffs#1 ← (byte*~) bitmap_init::$13
|
|
to:bitmap_init::@6
|
|
bitmap_init::@return: scope:[bitmap_init] from bitmap_init::@6
|
|
return
|
|
to:@return
|
|
|
|
(void()) bitmap_clear()
|
|
bitmap_clear: scope:[bitmap_clear] from main::@2
|
|
(byte*) bitmap_clear::bitmap#0 ← (byte*){ *((const to_nomodify byte*) bitmap_plot_xhi + (number) 0), *((const to_nomodify byte*) bitmap_plot_xlo + (number) 0) }
|
|
(byte) bitmap_clear::y#0 ← (byte) 0
|
|
to:bitmap_clear::@1
|
|
bitmap_clear::@1: scope:[bitmap_clear] from bitmap_clear bitmap_clear::@3
|
|
(byte) bitmap_clear::y#4 ← phi( bitmap_clear/(byte) bitmap_clear::y#0 bitmap_clear::@3/(byte) bitmap_clear::y#1 )
|
|
(byte*) bitmap_clear::bitmap#3 ← phi( bitmap_clear/(byte*) bitmap_clear::bitmap#0 bitmap_clear::@3/(byte*) bitmap_clear::bitmap#4 )
|
|
(byte) bitmap_clear::x#0 ← (byte) 0
|
|
to:bitmap_clear::@2
|
|
bitmap_clear::@2: scope:[bitmap_clear] from bitmap_clear::@1 bitmap_clear::@2
|
|
(byte) bitmap_clear::y#3 ← phi( bitmap_clear::@1/(byte) bitmap_clear::y#4 bitmap_clear::@2/(byte) bitmap_clear::y#3 )
|
|
(byte) bitmap_clear::x#2 ← phi( bitmap_clear::@1/(byte) bitmap_clear::x#0 bitmap_clear::@2/(byte) bitmap_clear::x#1 )
|
|
(byte*) bitmap_clear::bitmap#2 ← phi( bitmap_clear::@1/(byte*) bitmap_clear::bitmap#3 bitmap_clear::@2/(byte*) bitmap_clear::bitmap#1 )
|
|
*((byte*) bitmap_clear::bitmap#2) ← (number) 0
|
|
(byte*) bitmap_clear::bitmap#1 ← ++ (byte*) bitmap_clear::bitmap#2
|
|
(byte) bitmap_clear::x#1 ← (byte) bitmap_clear::x#2 + rangenext(0,$c7)
|
|
(bool~) bitmap_clear::$0 ← (byte) bitmap_clear::x#1 != rangelast(0,$c7)
|
|
if((bool~) bitmap_clear::$0) goto bitmap_clear::@2
|
|
to:bitmap_clear::@3
|
|
bitmap_clear::@3: scope:[bitmap_clear] from bitmap_clear::@2
|
|
(byte*) bitmap_clear::bitmap#4 ← phi( bitmap_clear::@2/(byte*) bitmap_clear::bitmap#1 )
|
|
(byte) bitmap_clear::y#2 ← phi( bitmap_clear::@2/(byte) bitmap_clear::y#3 )
|
|
(byte) bitmap_clear::y#1 ← (byte) bitmap_clear::y#2 + rangenext(0,$27)
|
|
(bool~) bitmap_clear::$1 ← (byte) bitmap_clear::y#1 != rangelast(0,$27)
|
|
if((bool~) bitmap_clear::$1) goto bitmap_clear::@1
|
|
to:bitmap_clear::@return
|
|
bitmap_clear::@return: scope:[bitmap_clear] from bitmap_clear::@3
|
|
return
|
|
to:@return
|
|
|
|
(void()) bitmap_plot((byte) bitmap_plot::x , (byte) bitmap_plot::y)
|
|
bitmap_plot: scope:[bitmap_plot] from bitmap_line_xdyd::@1 bitmap_line_xdyi::@1 bitmap_line_ydxd::@1 bitmap_line_ydxi::@1
|
|
(byte) bitmap_plot::y#4 ← phi( bitmap_line_xdyd::@1/(byte) bitmap_plot::y#1 bitmap_line_xdyi::@1/(byte) bitmap_plot::y#0 bitmap_line_ydxd::@1/(byte) bitmap_plot::y#3 bitmap_line_ydxi::@1/(byte) bitmap_plot::y#2 )
|
|
(byte) bitmap_plot::x#4 ← phi( bitmap_line_xdyd::@1/(byte) bitmap_plot::x#1 bitmap_line_xdyi::@1/(byte) bitmap_plot::x#0 bitmap_line_ydxd::@1/(byte) bitmap_plot::x#3 bitmap_line_ydxi::@1/(byte) bitmap_plot::x#2 )
|
|
(word) bitmap_plot::plotter_x#0 ← (word){ *((const to_nomodify byte*) bitmap_plot_xhi + (byte) bitmap_plot::x#4), *((const to_nomodify byte*) bitmap_plot_xlo + (byte) bitmap_plot::x#4) }
|
|
(word) bitmap_plot::plotter_y#0 ← (word){ *((const to_nomodify byte*) bitmap_plot_yhi + (byte) bitmap_plot::y#4), *((const to_nomodify byte*) bitmap_plot_ylo + (byte) bitmap_plot::y#4) }
|
|
(word~) bitmap_plot::$0 ← (word) bitmap_plot::plotter_x#0 + (word) bitmap_plot::plotter_y#0
|
|
(byte*) bitmap_plot::plotter#0 ← ((byte*)) (word~) bitmap_plot::$0
|
|
(byte~) bitmap_plot::$1 ← *((byte*) bitmap_plot::plotter#0) | *((const to_nomodify byte*) bitmap_plot_bit + (byte) bitmap_plot::x#4)
|
|
*((byte*) bitmap_plot::plotter#0) ← (byte~) bitmap_plot::$1
|
|
to:bitmap_plot::@return
|
|
bitmap_plot::@return: scope:[bitmap_plot] from bitmap_plot
|
|
return
|
|
to:@return
|
|
|
|
(void()) bitmap_line((byte) bitmap_line::x0 , (byte) bitmap_line::x1 , (byte) bitmap_line::y0 , (byte) bitmap_line::y1)
|
|
bitmap_line: scope:[bitmap_line] from main::@1
|
|
(byte) bitmap_line::y1#13 ← phi( main::@1/(byte) bitmap_line::y1#0 )
|
|
(byte) bitmap_line::y0#13 ← phi( main::@1/(byte) bitmap_line::y0#0 )
|
|
(byte) bitmap_line::x1#1 ← phi( main::@1/(byte) bitmap_line::x1#0 )
|
|
(byte) bitmap_line::x0#1 ← phi( main::@1/(byte) bitmap_line::x0#0 )
|
|
(byte) bitmap_line::xd#0 ← (byte) 0
|
|
(byte) bitmap_line::yd#0 ← (byte) 0
|
|
(bool~) bitmap_line::$0 ← (byte) bitmap_line::x0#1 < (byte) bitmap_line::x1#1
|
|
if((bool~) bitmap_line::$0) goto bitmap_line::@1
|
|
to:bitmap_line::@2
|
|
bitmap_line::@1: scope:[bitmap_line] from bitmap_line
|
|
(byte) bitmap_line::y1#1 ← phi( bitmap_line/(byte) bitmap_line::y1#13 )
|
|
(byte) bitmap_line::y0#1 ← phi( bitmap_line/(byte) bitmap_line::y0#13 )
|
|
(byte) bitmap_line::x0#2 ← phi( bitmap_line/(byte) bitmap_line::x0#1 )
|
|
(byte) bitmap_line::x1#2 ← phi( bitmap_line/(byte) bitmap_line::x1#1 )
|
|
(byte~) bitmap_line::$11 ← (byte) bitmap_line::x1#2 - (byte) bitmap_line::x0#2
|
|
(byte) bitmap_line::xd#1 ← (byte~) bitmap_line::$11
|
|
(bool~) bitmap_line::$12 ← (byte) bitmap_line::y0#1 < (byte) bitmap_line::y1#1
|
|
if((bool~) bitmap_line::$12) goto bitmap_line::@11
|
|
to:bitmap_line::@5
|
|
bitmap_line::@2: scope:[bitmap_line] from bitmap_line
|
|
(byte) bitmap_line::y1#2 ← phi( bitmap_line/(byte) bitmap_line::y1#13 )
|
|
(byte) bitmap_line::y0#2 ← phi( bitmap_line/(byte) bitmap_line::y0#13 )
|
|
(byte) bitmap_line::x1#3 ← phi( bitmap_line/(byte) bitmap_line::x1#1 )
|
|
(byte) bitmap_line::x0#3 ← phi( bitmap_line/(byte) bitmap_line::x0#1 )
|
|
(byte~) bitmap_line::$1 ← (byte) bitmap_line::x0#3 - (byte) bitmap_line::x1#3
|
|
(byte) bitmap_line::xd#2 ← (byte~) bitmap_line::$1
|
|
(bool~) bitmap_line::$2 ← (byte) bitmap_line::y0#2 < (byte) bitmap_line::y1#2
|
|
if((bool~) bitmap_line::$2) goto bitmap_line::@7
|
|
to:bitmap_line::@3
|
|
bitmap_line::@7: scope:[bitmap_line] from bitmap_line::@2
|
|
(byte) bitmap_line::x0#11 ← phi( bitmap_line::@2/(byte) bitmap_line::x0#3 )
|
|
(byte) bitmap_line::x1#11 ← phi( bitmap_line::@2/(byte) bitmap_line::x1#3 )
|
|
(byte) bitmap_line::xd#3 ← phi( bitmap_line::@2/(byte) bitmap_line::xd#2 )
|
|
(byte) bitmap_line::y0#3 ← phi( bitmap_line::@2/(byte) bitmap_line::y0#2 )
|
|
(byte) bitmap_line::y1#3 ← phi( bitmap_line::@2/(byte) bitmap_line::y1#2 )
|
|
(byte~) bitmap_line::$7 ← (byte) bitmap_line::y1#3 - (byte) bitmap_line::y0#3
|
|
(byte) bitmap_line::yd#1 ← (byte~) bitmap_line::$7
|
|
(bool~) bitmap_line::$8 ← (byte) bitmap_line::yd#1 < (byte) bitmap_line::xd#3
|
|
if((bool~) bitmap_line::$8) goto bitmap_line::@9
|
|
to:bitmap_line::@10
|
|
bitmap_line::@3: scope:[bitmap_line] from bitmap_line::@2
|
|
(byte) bitmap_line::x0#10 ← phi( bitmap_line::@2/(byte) bitmap_line::x0#3 )
|
|
(byte) bitmap_line::x1#10 ← phi( bitmap_line::@2/(byte) bitmap_line::x1#3 )
|
|
(byte) bitmap_line::xd#4 ← phi( bitmap_line::@2/(byte) bitmap_line::xd#2 )
|
|
(byte) bitmap_line::y1#4 ← phi( bitmap_line::@2/(byte) bitmap_line::y1#2 )
|
|
(byte) bitmap_line::y0#4 ← phi( bitmap_line::@2/(byte) bitmap_line::y0#2 )
|
|
(byte~) bitmap_line::$3 ← (byte) bitmap_line::y0#4 - (byte) bitmap_line::y1#4
|
|
(byte) bitmap_line::yd#2 ← (byte~) bitmap_line::$3
|
|
(bool~) bitmap_line::$4 ← (byte) bitmap_line::yd#2 < (byte) bitmap_line::xd#4
|
|
if((bool~) bitmap_line::$4) goto bitmap_line::@8
|
|
to:bitmap_line::@4
|
|
bitmap_line::@8: scope:[bitmap_line] from bitmap_line::@3
|
|
(byte) bitmap_line::yd#5 ← phi( bitmap_line::@3/(byte) bitmap_line::yd#2 )
|
|
(byte) bitmap_line::xd#5 ← phi( bitmap_line::@3/(byte) bitmap_line::xd#4 )
|
|
(byte) bitmap_line::x0#4 ← phi( bitmap_line::@3/(byte) bitmap_line::x0#10 )
|
|
(byte) bitmap_line::y1#5 ← phi( bitmap_line::@3/(byte) bitmap_line::y1#4 )
|
|
(byte) bitmap_line::x1#4 ← phi( bitmap_line::@3/(byte) bitmap_line::x1#10 )
|
|
(byte) bitmap_line_xdyi::x#0 ← (byte) bitmap_line::x1#4
|
|
(byte) bitmap_line_xdyi::y#0 ← (byte) bitmap_line::y1#5
|
|
(byte) bitmap_line_xdyi::x1#0 ← (byte) bitmap_line::x0#4
|
|
(byte) bitmap_line_xdyi::xd#0 ← (byte) bitmap_line::xd#5
|
|
(byte) bitmap_line_xdyi::yd#0 ← (byte) bitmap_line::yd#5
|
|
call bitmap_line_xdyi
|
|
to:bitmap_line::@15
|
|
bitmap_line::@15: scope:[bitmap_line] from bitmap_line::@8
|
|
to:bitmap_line::@return
|
|
bitmap_line::@4: scope:[bitmap_line] from bitmap_line::@3
|
|
(byte) bitmap_line::xd#6 ← phi( bitmap_line::@3/(byte) bitmap_line::xd#4 )
|
|
(byte) bitmap_line::yd#6 ← phi( bitmap_line::@3/(byte) bitmap_line::yd#2 )
|
|
(byte) bitmap_line::y0#5 ← phi( bitmap_line::@3/(byte) bitmap_line::y0#4 )
|
|
(byte) bitmap_line::x1#5 ← phi( bitmap_line::@3/(byte) bitmap_line::x1#10 )
|
|
(byte) bitmap_line::y1#6 ← phi( bitmap_line::@3/(byte) bitmap_line::y1#4 )
|
|
(byte) bitmap_line_ydxi::y#0 ← (byte) bitmap_line::y1#6
|
|
(byte) bitmap_line_ydxi::x#0 ← (byte) bitmap_line::x1#5
|
|
(byte) bitmap_line_ydxi::y1#0 ← (byte) bitmap_line::y0#5
|
|
(byte) bitmap_line_ydxi::yd#0 ← (byte) bitmap_line::yd#6
|
|
(byte) bitmap_line_ydxi::xd#0 ← (byte) bitmap_line::xd#6
|
|
call bitmap_line_ydxi
|
|
to:bitmap_line::@16
|
|
bitmap_line::@16: scope:[bitmap_line] from bitmap_line::@4
|
|
to:bitmap_line::@return
|
|
bitmap_line::@9: scope:[bitmap_line] from bitmap_line::@7
|
|
(byte) bitmap_line::yd#7 ← phi( bitmap_line::@7/(byte) bitmap_line::yd#1 )
|
|
(byte) bitmap_line::xd#7 ← phi( bitmap_line::@7/(byte) bitmap_line::xd#3 )
|
|
(byte) bitmap_line::x0#5 ← phi( bitmap_line::@7/(byte) bitmap_line::x0#11 )
|
|
(byte) bitmap_line::y1#7 ← phi( bitmap_line::@7/(byte) bitmap_line::y1#3 )
|
|
(byte) bitmap_line::x1#6 ← phi( bitmap_line::@7/(byte) bitmap_line::x1#11 )
|
|
(byte) bitmap_line_xdyd::x#0 ← (byte) bitmap_line::x1#6
|
|
(byte) bitmap_line_xdyd::y#0 ← (byte) bitmap_line::y1#7
|
|
(byte) bitmap_line_xdyd::x1#0 ← (byte) bitmap_line::x0#5
|
|
(byte) bitmap_line_xdyd::xd#0 ← (byte) bitmap_line::xd#7
|
|
(byte) bitmap_line_xdyd::yd#0 ← (byte) bitmap_line::yd#7
|
|
call bitmap_line_xdyd
|
|
to:bitmap_line::@17
|
|
bitmap_line::@17: scope:[bitmap_line] from bitmap_line::@9
|
|
to:bitmap_line::@return
|
|
bitmap_line::@10: scope:[bitmap_line] from bitmap_line::@7
|
|
(byte) bitmap_line::xd#8 ← phi( bitmap_line::@7/(byte) bitmap_line::xd#3 )
|
|
(byte) bitmap_line::yd#8 ← phi( bitmap_line::@7/(byte) bitmap_line::yd#1 )
|
|
(byte) bitmap_line::y1#8 ← phi( bitmap_line::@7/(byte) bitmap_line::y1#3 )
|
|
(byte) bitmap_line::x0#6 ← phi( bitmap_line::@7/(byte) bitmap_line::x0#11 )
|
|
(byte) bitmap_line::y0#6 ← phi( bitmap_line::@7/(byte) bitmap_line::y0#3 )
|
|
(byte) bitmap_line_ydxd::y#0 ← (byte) bitmap_line::y0#6
|
|
(byte) bitmap_line_ydxd::x#0 ← (byte) bitmap_line::x0#6
|
|
(byte) bitmap_line_ydxd::y1#0 ← (byte) bitmap_line::y1#8
|
|
(byte) bitmap_line_ydxd::yd#0 ← (byte) bitmap_line::yd#8
|
|
(byte) bitmap_line_ydxd::xd#0 ← (byte) bitmap_line::xd#8
|
|
call bitmap_line_ydxd
|
|
to:bitmap_line::@18
|
|
bitmap_line::@18: scope:[bitmap_line] from bitmap_line::@10
|
|
to:bitmap_line::@return
|
|
bitmap_line::@11: scope:[bitmap_line] from bitmap_line::@1
|
|
(byte) bitmap_line::x1#13 ← phi( bitmap_line::@1/(byte) bitmap_line::x1#2 )
|
|
(byte) bitmap_line::x0#13 ← phi( bitmap_line::@1/(byte) bitmap_line::x0#2 )
|
|
(byte) bitmap_line::xd#9 ← phi( bitmap_line::@1/(byte) bitmap_line::xd#1 )
|
|
(byte) bitmap_line::y0#7 ← phi( bitmap_line::@1/(byte) bitmap_line::y0#1 )
|
|
(byte) bitmap_line::y1#9 ← phi( bitmap_line::@1/(byte) bitmap_line::y1#1 )
|
|
(byte~) bitmap_line::$17 ← (byte) bitmap_line::y1#9 - (byte) bitmap_line::y0#7
|
|
(byte) bitmap_line::yd#3 ← (byte~) bitmap_line::$17
|
|
(bool~) bitmap_line::$18 ← (byte) bitmap_line::yd#3 < (byte) bitmap_line::xd#9
|
|
if((bool~) bitmap_line::$18) goto bitmap_line::@13
|
|
to:bitmap_line::@14
|
|
bitmap_line::@5: scope:[bitmap_line] from bitmap_line::@1
|
|
(byte) bitmap_line::x1#12 ← phi( bitmap_line::@1/(byte) bitmap_line::x1#2 )
|
|
(byte) bitmap_line::x0#12 ← phi( bitmap_line::@1/(byte) bitmap_line::x0#2 )
|
|
(byte) bitmap_line::xd#10 ← phi( bitmap_line::@1/(byte) bitmap_line::xd#1 )
|
|
(byte) bitmap_line::y1#10 ← phi( bitmap_line::@1/(byte) bitmap_line::y1#1 )
|
|
(byte) bitmap_line::y0#8 ← phi( bitmap_line::@1/(byte) bitmap_line::y0#1 )
|
|
(byte~) bitmap_line::$13 ← (byte) bitmap_line::y0#8 - (byte) bitmap_line::y1#10
|
|
(byte) bitmap_line::yd#4 ← (byte~) bitmap_line::$13
|
|
(bool~) bitmap_line::$14 ← (byte) bitmap_line::yd#4 < (byte) bitmap_line::xd#10
|
|
if((bool~) bitmap_line::$14) goto bitmap_line::@12
|
|
to:bitmap_line::@6
|
|
bitmap_line::@12: scope:[bitmap_line] from bitmap_line::@5
|
|
(byte) bitmap_line::yd#9 ← phi( bitmap_line::@5/(byte) bitmap_line::yd#4 )
|
|
(byte) bitmap_line::xd#11 ← phi( bitmap_line::@5/(byte) bitmap_line::xd#10 )
|
|
(byte) bitmap_line::x1#7 ← phi( bitmap_line::@5/(byte) bitmap_line::x1#12 )
|
|
(byte) bitmap_line::y0#9 ← phi( bitmap_line::@5/(byte) bitmap_line::y0#8 )
|
|
(byte) bitmap_line::x0#7 ← phi( bitmap_line::@5/(byte) bitmap_line::x0#12 )
|
|
(byte) bitmap_line_xdyd::x#1 ← (byte) bitmap_line::x0#7
|
|
(byte) bitmap_line_xdyd::y#1 ← (byte) bitmap_line::y0#9
|
|
(byte) bitmap_line_xdyd::x1#1 ← (byte) bitmap_line::x1#7
|
|
(byte) bitmap_line_xdyd::xd#1 ← (byte) bitmap_line::xd#11
|
|
(byte) bitmap_line_xdyd::yd#1 ← (byte) bitmap_line::yd#9
|
|
call bitmap_line_xdyd
|
|
to:bitmap_line::@19
|
|
bitmap_line::@19: scope:[bitmap_line] from bitmap_line::@12
|
|
to:bitmap_line::@return
|
|
bitmap_line::@6: scope:[bitmap_line] from bitmap_line::@5
|
|
(byte) bitmap_line::xd#12 ← phi( bitmap_line::@5/(byte) bitmap_line::xd#10 )
|
|
(byte) bitmap_line::yd#10 ← phi( bitmap_line::@5/(byte) bitmap_line::yd#4 )
|
|
(byte) bitmap_line::y0#10 ← phi( bitmap_line::@5/(byte) bitmap_line::y0#8 )
|
|
(byte) bitmap_line::x1#8 ← phi( bitmap_line::@5/(byte) bitmap_line::x1#12 )
|
|
(byte) bitmap_line::y1#11 ← phi( bitmap_line::@5/(byte) bitmap_line::y1#10 )
|
|
(byte) bitmap_line_ydxd::y#1 ← (byte) bitmap_line::y1#11
|
|
(byte) bitmap_line_ydxd::x#1 ← (byte) bitmap_line::x1#8
|
|
(byte) bitmap_line_ydxd::y1#1 ← (byte) bitmap_line::y0#10
|
|
(byte) bitmap_line_ydxd::yd#1 ← (byte) bitmap_line::yd#10
|
|
(byte) bitmap_line_ydxd::xd#1 ← (byte) bitmap_line::xd#12
|
|
call bitmap_line_ydxd
|
|
to:bitmap_line::@20
|
|
bitmap_line::@20: scope:[bitmap_line] from bitmap_line::@6
|
|
to:bitmap_line::@return
|
|
bitmap_line::@13: scope:[bitmap_line] from bitmap_line::@11
|
|
(byte) bitmap_line::yd#11 ← phi( bitmap_line::@11/(byte) bitmap_line::yd#3 )
|
|
(byte) bitmap_line::xd#13 ← phi( bitmap_line::@11/(byte) bitmap_line::xd#9 )
|
|
(byte) bitmap_line::x1#9 ← phi( bitmap_line::@11/(byte) bitmap_line::x1#13 )
|
|
(byte) bitmap_line::y0#11 ← phi( bitmap_line::@11/(byte) bitmap_line::y0#7 )
|
|
(byte) bitmap_line::x0#8 ← phi( bitmap_line::@11/(byte) bitmap_line::x0#13 )
|
|
(byte) bitmap_line_xdyi::x#1 ← (byte) bitmap_line::x0#8
|
|
(byte) bitmap_line_xdyi::y#1 ← (byte) bitmap_line::y0#11
|
|
(byte) bitmap_line_xdyi::x1#1 ← (byte) bitmap_line::x1#9
|
|
(byte) bitmap_line_xdyi::xd#1 ← (byte) bitmap_line::xd#13
|
|
(byte) bitmap_line_xdyi::yd#1 ← (byte) bitmap_line::yd#11
|
|
call bitmap_line_xdyi
|
|
to:bitmap_line::@21
|
|
bitmap_line::@21: scope:[bitmap_line] from bitmap_line::@13
|
|
to:bitmap_line::@return
|
|
bitmap_line::@14: scope:[bitmap_line] from bitmap_line::@11
|
|
(byte) bitmap_line::xd#14 ← phi( bitmap_line::@11/(byte) bitmap_line::xd#9 )
|
|
(byte) bitmap_line::yd#12 ← phi( bitmap_line::@11/(byte) bitmap_line::yd#3 )
|
|
(byte) bitmap_line::y1#12 ← phi( bitmap_line::@11/(byte) bitmap_line::y1#9 )
|
|
(byte) bitmap_line::x0#9 ← phi( bitmap_line::@11/(byte) bitmap_line::x0#13 )
|
|
(byte) bitmap_line::y0#12 ← phi( bitmap_line::@11/(byte) bitmap_line::y0#7 )
|
|
(byte) bitmap_line_ydxi::y#1 ← (byte) bitmap_line::y0#12
|
|
(byte) bitmap_line_ydxi::x#1 ← (byte) bitmap_line::x0#9
|
|
(byte) bitmap_line_ydxi::y1#1 ← (byte) bitmap_line::y1#12
|
|
(byte) bitmap_line_ydxi::yd#1 ← (byte) bitmap_line::yd#12
|
|
(byte) bitmap_line_ydxi::xd#1 ← (byte) bitmap_line::xd#14
|
|
call bitmap_line_ydxi
|
|
to:bitmap_line::@22
|
|
bitmap_line::@22: scope:[bitmap_line] from bitmap_line::@14
|
|
to:bitmap_line::@return
|
|
bitmap_line::@return: scope:[bitmap_line] from bitmap_line::@15 bitmap_line::@16 bitmap_line::@17 bitmap_line::@18 bitmap_line::@19 bitmap_line::@20 bitmap_line::@21 bitmap_line::@22
|
|
return
|
|
to:@return
|
|
|
|
(void()) bitmap_line_xdyi((byte) bitmap_line_xdyi::x , (byte) bitmap_line_xdyi::y , (byte) bitmap_line_xdyi::x1 , (byte) bitmap_line_xdyi::xd , (byte) bitmap_line_xdyi::yd)
|
|
bitmap_line_xdyi: scope:[bitmap_line_xdyi] from bitmap_line::@13 bitmap_line::@8
|
|
(byte) bitmap_line_xdyi::x1#6 ← phi( bitmap_line::@13/(byte) bitmap_line_xdyi::x1#1 bitmap_line::@8/(byte) bitmap_line_xdyi::x1#0 )
|
|
(byte) bitmap_line_xdyi::xd#5 ← phi( bitmap_line::@13/(byte) bitmap_line_xdyi::xd#1 bitmap_line::@8/(byte) bitmap_line_xdyi::xd#0 )
|
|
(byte) bitmap_line_xdyi::y#5 ← phi( bitmap_line::@13/(byte) bitmap_line_xdyi::y#1 bitmap_line::@8/(byte) bitmap_line_xdyi::y#0 )
|
|
(byte) bitmap_line_xdyi::x#6 ← phi( bitmap_line::@13/(byte) bitmap_line_xdyi::x#1 bitmap_line::@8/(byte) bitmap_line_xdyi::x#0 )
|
|
(byte) bitmap_line_xdyi::yd#2 ← phi( bitmap_line::@13/(byte) bitmap_line_xdyi::yd#1 bitmap_line::@8/(byte) bitmap_line_xdyi::yd#0 )
|
|
(byte~) bitmap_line_xdyi::$0 ← (byte) bitmap_line_xdyi::yd#2 >> (number) 1
|
|
(byte) bitmap_line_xdyi::e#0 ← (byte~) bitmap_line_xdyi::$0
|
|
to:bitmap_line_xdyi::@1
|
|
bitmap_line_xdyi::@1: scope:[bitmap_line_xdyi] from bitmap_line_xdyi bitmap_line_xdyi::@2
|
|
(byte) bitmap_line_xdyi::x1#5 ← phi( bitmap_line_xdyi/(byte) bitmap_line_xdyi::x1#6 bitmap_line_xdyi::@2/(byte) bitmap_line_xdyi::x1#2 )
|
|
(byte) bitmap_line_xdyi::xd#4 ← phi( bitmap_line_xdyi/(byte) bitmap_line_xdyi::xd#5 bitmap_line_xdyi::@2/(byte) bitmap_line_xdyi::xd#6 )
|
|
(byte) bitmap_line_xdyi::yd#4 ← phi( bitmap_line_xdyi/(byte) bitmap_line_xdyi::yd#2 bitmap_line_xdyi::@2/(byte) bitmap_line_xdyi::yd#5 )
|
|
(byte) bitmap_line_xdyi::e#5 ← phi( bitmap_line_xdyi/(byte) bitmap_line_xdyi::e#0 bitmap_line_xdyi::@2/(byte) bitmap_line_xdyi::e#6 )
|
|
(byte) bitmap_line_xdyi::y#3 ← phi( bitmap_line_xdyi/(byte) bitmap_line_xdyi::y#5 bitmap_line_xdyi::@2/(byte) bitmap_line_xdyi::y#6 )
|
|
(byte) bitmap_line_xdyi::x#3 ← phi( bitmap_line_xdyi/(byte) bitmap_line_xdyi::x#6 bitmap_line_xdyi::@2/(byte) bitmap_line_xdyi::x#5 )
|
|
(byte) bitmap_plot::x#0 ← (byte) bitmap_line_xdyi::x#3
|
|
(byte) bitmap_plot::y#0 ← (byte) bitmap_line_xdyi::y#3
|
|
call bitmap_plot
|
|
to:bitmap_line_xdyi::@4
|
|
bitmap_line_xdyi::@4: scope:[bitmap_line_xdyi] from bitmap_line_xdyi::@1
|
|
(byte) bitmap_line_xdyi::y#7 ← phi( bitmap_line_xdyi::@1/(byte) bitmap_line_xdyi::y#3 )
|
|
(byte) bitmap_line_xdyi::x1#4 ← phi( bitmap_line_xdyi::@1/(byte) bitmap_line_xdyi::x1#5 )
|
|
(byte) bitmap_line_xdyi::xd#2 ← phi( bitmap_line_xdyi::@1/(byte) bitmap_line_xdyi::xd#4 )
|
|
(byte) bitmap_line_xdyi::yd#3 ← phi( bitmap_line_xdyi::@1/(byte) bitmap_line_xdyi::yd#4 )
|
|
(byte) bitmap_line_xdyi::e#3 ← phi( bitmap_line_xdyi::@1/(byte) bitmap_line_xdyi::e#5 )
|
|
(byte) bitmap_line_xdyi::x#4 ← phi( bitmap_line_xdyi::@1/(byte) bitmap_line_xdyi::x#3 )
|
|
(byte) bitmap_line_xdyi::x#2 ← ++ (byte) bitmap_line_xdyi::x#4
|
|
(byte~) bitmap_line_xdyi::$2 ← (byte) bitmap_line_xdyi::e#3 + (byte) bitmap_line_xdyi::yd#3
|
|
(byte) bitmap_line_xdyi::e#1 ← (byte~) bitmap_line_xdyi::$2
|
|
(bool~) bitmap_line_xdyi::$3 ← (byte) bitmap_line_xdyi::xd#2 < (byte) bitmap_line_xdyi::e#1
|
|
(bool~) bitmap_line_xdyi::$4 ← ! (bool~) bitmap_line_xdyi::$3
|
|
if((bool~) bitmap_line_xdyi::$4) goto bitmap_line_xdyi::@2
|
|
to:bitmap_line_xdyi::@3
|
|
bitmap_line_xdyi::@2: scope:[bitmap_line_xdyi] from bitmap_line_xdyi::@3 bitmap_line_xdyi::@4
|
|
(byte) bitmap_line_xdyi::xd#6 ← phi( bitmap_line_xdyi::@3/(byte) bitmap_line_xdyi::xd#3 bitmap_line_xdyi::@4/(byte) bitmap_line_xdyi::xd#2 )
|
|
(byte) bitmap_line_xdyi::yd#5 ← phi( bitmap_line_xdyi::@3/(byte) bitmap_line_xdyi::yd#6 bitmap_line_xdyi::@4/(byte) bitmap_line_xdyi::yd#3 )
|
|
(byte) bitmap_line_xdyi::e#6 ← phi( bitmap_line_xdyi::@3/(byte) bitmap_line_xdyi::e#2 bitmap_line_xdyi::@4/(byte) bitmap_line_xdyi::e#1 )
|
|
(byte) bitmap_line_xdyi::y#6 ← phi( bitmap_line_xdyi::@3/(byte) bitmap_line_xdyi::y#2 bitmap_line_xdyi::@4/(byte) bitmap_line_xdyi::y#7 )
|
|
(byte) bitmap_line_xdyi::x#5 ← phi( bitmap_line_xdyi::@3/(byte) bitmap_line_xdyi::x#7 bitmap_line_xdyi::@4/(byte) bitmap_line_xdyi::x#2 )
|
|
(byte) bitmap_line_xdyi::x1#2 ← phi( bitmap_line_xdyi::@3/(byte) bitmap_line_xdyi::x1#3 bitmap_line_xdyi::@4/(byte) bitmap_line_xdyi::x1#4 )
|
|
(number~) bitmap_line_xdyi::$6 ← (byte) bitmap_line_xdyi::x1#2 + (number) 1
|
|
(bool~) bitmap_line_xdyi::$7 ← (byte) bitmap_line_xdyi::x#5 != (number~) bitmap_line_xdyi::$6
|
|
if((bool~) bitmap_line_xdyi::$7) goto bitmap_line_xdyi::@1
|
|
to:bitmap_line_xdyi::@return
|
|
bitmap_line_xdyi::@3: scope:[bitmap_line_xdyi] from bitmap_line_xdyi::@4
|
|
(byte) bitmap_line_xdyi::yd#6 ← phi( bitmap_line_xdyi::@4/(byte) bitmap_line_xdyi::yd#3 )
|
|
(byte) bitmap_line_xdyi::x#7 ← phi( bitmap_line_xdyi::@4/(byte) bitmap_line_xdyi::x#2 )
|
|
(byte) bitmap_line_xdyi::x1#3 ← phi( bitmap_line_xdyi::@4/(byte) bitmap_line_xdyi::x1#4 )
|
|
(byte) bitmap_line_xdyi::xd#3 ← phi( bitmap_line_xdyi::@4/(byte) bitmap_line_xdyi::xd#2 )
|
|
(byte) bitmap_line_xdyi::e#4 ← phi( bitmap_line_xdyi::@4/(byte) bitmap_line_xdyi::e#1 )
|
|
(byte) bitmap_line_xdyi::y#4 ← phi( bitmap_line_xdyi::@4/(byte) bitmap_line_xdyi::y#7 )
|
|
(byte) bitmap_line_xdyi::y#2 ← ++ (byte) bitmap_line_xdyi::y#4
|
|
(byte~) bitmap_line_xdyi::$5 ← (byte) bitmap_line_xdyi::e#4 - (byte) bitmap_line_xdyi::xd#3
|
|
(byte) bitmap_line_xdyi::e#2 ← (byte~) bitmap_line_xdyi::$5
|
|
to:bitmap_line_xdyi::@2
|
|
bitmap_line_xdyi::@return: scope:[bitmap_line_xdyi] from bitmap_line_xdyi::@2
|
|
return
|
|
to:@return
|
|
|
|
(void()) bitmap_line_xdyd((byte) bitmap_line_xdyd::x , (byte) bitmap_line_xdyd::y , (byte) bitmap_line_xdyd::x1 , (byte) bitmap_line_xdyd::xd , (byte) bitmap_line_xdyd::yd)
|
|
bitmap_line_xdyd: scope:[bitmap_line_xdyd] from bitmap_line::@12 bitmap_line::@9
|
|
(byte) bitmap_line_xdyd::x1#6 ← phi( bitmap_line::@12/(byte) bitmap_line_xdyd::x1#1 bitmap_line::@9/(byte) bitmap_line_xdyd::x1#0 )
|
|
(byte) bitmap_line_xdyd::xd#5 ← phi( bitmap_line::@12/(byte) bitmap_line_xdyd::xd#1 bitmap_line::@9/(byte) bitmap_line_xdyd::xd#0 )
|
|
(byte) bitmap_line_xdyd::y#5 ← phi( bitmap_line::@12/(byte) bitmap_line_xdyd::y#1 bitmap_line::@9/(byte) bitmap_line_xdyd::y#0 )
|
|
(byte) bitmap_line_xdyd::x#6 ← phi( bitmap_line::@12/(byte) bitmap_line_xdyd::x#1 bitmap_line::@9/(byte) bitmap_line_xdyd::x#0 )
|
|
(byte) bitmap_line_xdyd::yd#2 ← phi( bitmap_line::@12/(byte) bitmap_line_xdyd::yd#1 bitmap_line::@9/(byte) bitmap_line_xdyd::yd#0 )
|
|
(byte~) bitmap_line_xdyd::$0 ← (byte) bitmap_line_xdyd::yd#2 >> (number) 1
|
|
(byte) bitmap_line_xdyd::e#0 ← (byte~) bitmap_line_xdyd::$0
|
|
to:bitmap_line_xdyd::@1
|
|
bitmap_line_xdyd::@1: scope:[bitmap_line_xdyd] from bitmap_line_xdyd bitmap_line_xdyd::@2
|
|
(byte) bitmap_line_xdyd::x1#5 ← phi( bitmap_line_xdyd/(byte) bitmap_line_xdyd::x1#6 bitmap_line_xdyd::@2/(byte) bitmap_line_xdyd::x1#2 )
|
|
(byte) bitmap_line_xdyd::xd#4 ← phi( bitmap_line_xdyd/(byte) bitmap_line_xdyd::xd#5 bitmap_line_xdyd::@2/(byte) bitmap_line_xdyd::xd#6 )
|
|
(byte) bitmap_line_xdyd::yd#4 ← phi( bitmap_line_xdyd/(byte) bitmap_line_xdyd::yd#2 bitmap_line_xdyd::@2/(byte) bitmap_line_xdyd::yd#5 )
|
|
(byte) bitmap_line_xdyd::e#5 ← phi( bitmap_line_xdyd/(byte) bitmap_line_xdyd::e#0 bitmap_line_xdyd::@2/(byte) bitmap_line_xdyd::e#6 )
|
|
(byte) bitmap_line_xdyd::y#3 ← phi( bitmap_line_xdyd/(byte) bitmap_line_xdyd::y#5 bitmap_line_xdyd::@2/(byte) bitmap_line_xdyd::y#6 )
|
|
(byte) bitmap_line_xdyd::x#3 ← phi( bitmap_line_xdyd/(byte) bitmap_line_xdyd::x#6 bitmap_line_xdyd::@2/(byte) bitmap_line_xdyd::x#5 )
|
|
(byte) bitmap_plot::x#1 ← (byte) bitmap_line_xdyd::x#3
|
|
(byte) bitmap_plot::y#1 ← (byte) bitmap_line_xdyd::y#3
|
|
call bitmap_plot
|
|
to:bitmap_line_xdyd::@4
|
|
bitmap_line_xdyd::@4: scope:[bitmap_line_xdyd] from bitmap_line_xdyd::@1
|
|
(byte) bitmap_line_xdyd::y#7 ← phi( bitmap_line_xdyd::@1/(byte) bitmap_line_xdyd::y#3 )
|
|
(byte) bitmap_line_xdyd::x1#4 ← phi( bitmap_line_xdyd::@1/(byte) bitmap_line_xdyd::x1#5 )
|
|
(byte) bitmap_line_xdyd::xd#2 ← phi( bitmap_line_xdyd::@1/(byte) bitmap_line_xdyd::xd#4 )
|
|
(byte) bitmap_line_xdyd::yd#3 ← phi( bitmap_line_xdyd::@1/(byte) bitmap_line_xdyd::yd#4 )
|
|
(byte) bitmap_line_xdyd::e#3 ← phi( bitmap_line_xdyd::@1/(byte) bitmap_line_xdyd::e#5 )
|
|
(byte) bitmap_line_xdyd::x#4 ← phi( bitmap_line_xdyd::@1/(byte) bitmap_line_xdyd::x#3 )
|
|
(byte) bitmap_line_xdyd::x#2 ← ++ (byte) bitmap_line_xdyd::x#4
|
|
(byte~) bitmap_line_xdyd::$2 ← (byte) bitmap_line_xdyd::e#3 + (byte) bitmap_line_xdyd::yd#3
|
|
(byte) bitmap_line_xdyd::e#1 ← (byte~) bitmap_line_xdyd::$2
|
|
(bool~) bitmap_line_xdyd::$3 ← (byte) bitmap_line_xdyd::xd#2 < (byte) bitmap_line_xdyd::e#1
|
|
(bool~) bitmap_line_xdyd::$4 ← ! (bool~) bitmap_line_xdyd::$3
|
|
if((bool~) bitmap_line_xdyd::$4) goto bitmap_line_xdyd::@2
|
|
to:bitmap_line_xdyd::@3
|
|
bitmap_line_xdyd::@2: scope:[bitmap_line_xdyd] from bitmap_line_xdyd::@3 bitmap_line_xdyd::@4
|
|
(byte) bitmap_line_xdyd::xd#6 ← phi( bitmap_line_xdyd::@3/(byte) bitmap_line_xdyd::xd#3 bitmap_line_xdyd::@4/(byte) bitmap_line_xdyd::xd#2 )
|
|
(byte) bitmap_line_xdyd::yd#5 ← phi( bitmap_line_xdyd::@3/(byte) bitmap_line_xdyd::yd#6 bitmap_line_xdyd::@4/(byte) bitmap_line_xdyd::yd#3 )
|
|
(byte) bitmap_line_xdyd::e#6 ← phi( bitmap_line_xdyd::@3/(byte) bitmap_line_xdyd::e#2 bitmap_line_xdyd::@4/(byte) bitmap_line_xdyd::e#1 )
|
|
(byte) bitmap_line_xdyd::y#6 ← phi( bitmap_line_xdyd::@3/(byte) bitmap_line_xdyd::y#2 bitmap_line_xdyd::@4/(byte) bitmap_line_xdyd::y#7 )
|
|
(byte) bitmap_line_xdyd::x#5 ← phi( bitmap_line_xdyd::@3/(byte) bitmap_line_xdyd::x#7 bitmap_line_xdyd::@4/(byte) bitmap_line_xdyd::x#2 )
|
|
(byte) bitmap_line_xdyd::x1#2 ← phi( bitmap_line_xdyd::@3/(byte) bitmap_line_xdyd::x1#3 bitmap_line_xdyd::@4/(byte) bitmap_line_xdyd::x1#4 )
|
|
(number~) bitmap_line_xdyd::$6 ← (byte) bitmap_line_xdyd::x1#2 + (number) 1
|
|
(bool~) bitmap_line_xdyd::$7 ← (byte) bitmap_line_xdyd::x#5 != (number~) bitmap_line_xdyd::$6
|
|
if((bool~) bitmap_line_xdyd::$7) goto bitmap_line_xdyd::@1
|
|
to:bitmap_line_xdyd::@return
|
|
bitmap_line_xdyd::@3: scope:[bitmap_line_xdyd] from bitmap_line_xdyd::@4
|
|
(byte) bitmap_line_xdyd::yd#6 ← phi( bitmap_line_xdyd::@4/(byte) bitmap_line_xdyd::yd#3 )
|
|
(byte) bitmap_line_xdyd::x#7 ← phi( bitmap_line_xdyd::@4/(byte) bitmap_line_xdyd::x#2 )
|
|
(byte) bitmap_line_xdyd::x1#3 ← phi( bitmap_line_xdyd::@4/(byte) bitmap_line_xdyd::x1#4 )
|
|
(byte) bitmap_line_xdyd::xd#3 ← phi( bitmap_line_xdyd::@4/(byte) bitmap_line_xdyd::xd#2 )
|
|
(byte) bitmap_line_xdyd::e#4 ← phi( bitmap_line_xdyd::@4/(byte) bitmap_line_xdyd::e#1 )
|
|
(byte) bitmap_line_xdyd::y#4 ← phi( bitmap_line_xdyd::@4/(byte) bitmap_line_xdyd::y#7 )
|
|
(byte) bitmap_line_xdyd::y#2 ← -- (byte) bitmap_line_xdyd::y#4
|
|
(byte~) bitmap_line_xdyd::$5 ← (byte) bitmap_line_xdyd::e#4 - (byte) bitmap_line_xdyd::xd#3
|
|
(byte) bitmap_line_xdyd::e#2 ← (byte~) bitmap_line_xdyd::$5
|
|
to:bitmap_line_xdyd::@2
|
|
bitmap_line_xdyd::@return: scope:[bitmap_line_xdyd] from bitmap_line_xdyd::@2
|
|
return
|
|
to:@return
|
|
|
|
(void()) bitmap_line_ydxi((byte) bitmap_line_ydxi::y , (byte) bitmap_line_ydxi::x , (byte) bitmap_line_ydxi::y1 , (byte) bitmap_line_ydxi::yd , (byte) bitmap_line_ydxi::xd)
|
|
bitmap_line_ydxi: scope:[bitmap_line_ydxi] from bitmap_line::@14 bitmap_line::@4
|
|
(byte) bitmap_line_ydxi::y1#6 ← phi( bitmap_line::@14/(byte) bitmap_line_ydxi::y1#1 bitmap_line::@4/(byte) bitmap_line_ydxi::y1#0 )
|
|
(byte) bitmap_line_ydxi::yd#5 ← phi( bitmap_line::@14/(byte) bitmap_line_ydxi::yd#1 bitmap_line::@4/(byte) bitmap_line_ydxi::yd#0 )
|
|
(byte) bitmap_line_ydxi::y#6 ← phi( bitmap_line::@14/(byte) bitmap_line_ydxi::y#1 bitmap_line::@4/(byte) bitmap_line_ydxi::y#0 )
|
|
(byte) bitmap_line_ydxi::x#5 ← phi( bitmap_line::@14/(byte) bitmap_line_ydxi::x#1 bitmap_line::@4/(byte) bitmap_line_ydxi::x#0 )
|
|
(byte) bitmap_line_ydxi::xd#2 ← phi( bitmap_line::@14/(byte) bitmap_line_ydxi::xd#1 bitmap_line::@4/(byte) bitmap_line_ydxi::xd#0 )
|
|
(byte~) bitmap_line_ydxi::$0 ← (byte) bitmap_line_ydxi::xd#2 >> (number) 1
|
|
(byte) bitmap_line_ydxi::e#0 ← (byte~) bitmap_line_ydxi::$0
|
|
to:bitmap_line_ydxi::@1
|
|
bitmap_line_ydxi::@1: scope:[bitmap_line_ydxi] from bitmap_line_ydxi bitmap_line_ydxi::@2
|
|
(byte) bitmap_line_ydxi::y1#5 ← phi( bitmap_line_ydxi/(byte) bitmap_line_ydxi::y1#6 bitmap_line_ydxi::@2/(byte) bitmap_line_ydxi::y1#2 )
|
|
(byte) bitmap_line_ydxi::yd#4 ← phi( bitmap_line_ydxi/(byte) bitmap_line_ydxi::yd#5 bitmap_line_ydxi::@2/(byte) bitmap_line_ydxi::yd#6 )
|
|
(byte) bitmap_line_ydxi::xd#4 ← phi( bitmap_line_ydxi/(byte) bitmap_line_ydxi::xd#2 bitmap_line_ydxi::@2/(byte) bitmap_line_ydxi::xd#5 )
|
|
(byte) bitmap_line_ydxi::e#5 ← phi( bitmap_line_ydxi/(byte) bitmap_line_ydxi::e#0 bitmap_line_ydxi::@2/(byte) bitmap_line_ydxi::e#6 )
|
|
(byte) bitmap_line_ydxi::y#3 ← phi( bitmap_line_ydxi/(byte) bitmap_line_ydxi::y#6 bitmap_line_ydxi::@2/(byte) bitmap_line_ydxi::y#5 )
|
|
(byte) bitmap_line_ydxi::x#3 ← phi( bitmap_line_ydxi/(byte) bitmap_line_ydxi::x#5 bitmap_line_ydxi::@2/(byte) bitmap_line_ydxi::x#6 )
|
|
(byte) bitmap_plot::x#2 ← (byte) bitmap_line_ydxi::x#3
|
|
(byte) bitmap_plot::y#2 ← (byte) bitmap_line_ydxi::y#3
|
|
call bitmap_plot
|
|
to:bitmap_line_ydxi::@4
|
|
bitmap_line_ydxi::@4: scope:[bitmap_line_ydxi] from bitmap_line_ydxi::@1
|
|
(byte) bitmap_line_ydxi::x#7 ← phi( bitmap_line_ydxi::@1/(byte) bitmap_line_ydxi::x#3 )
|
|
(byte) bitmap_line_ydxi::y1#4 ← phi( bitmap_line_ydxi::@1/(byte) bitmap_line_ydxi::y1#5 )
|
|
(byte) bitmap_line_ydxi::yd#2 ← phi( bitmap_line_ydxi::@1/(byte) bitmap_line_ydxi::yd#4 )
|
|
(byte) bitmap_line_ydxi::xd#3 ← phi( bitmap_line_ydxi::@1/(byte) bitmap_line_ydxi::xd#4 )
|
|
(byte) bitmap_line_ydxi::e#3 ← phi( bitmap_line_ydxi::@1/(byte) bitmap_line_ydxi::e#5 )
|
|
(byte) bitmap_line_ydxi::y#4 ← phi( bitmap_line_ydxi::@1/(byte) bitmap_line_ydxi::y#3 )
|
|
(byte) bitmap_line_ydxi::y#2 ← ++ (byte) bitmap_line_ydxi::y#4
|
|
(byte~) bitmap_line_ydxi::$2 ← (byte) bitmap_line_ydxi::e#3 + (byte) bitmap_line_ydxi::xd#3
|
|
(byte) bitmap_line_ydxi::e#1 ← (byte~) bitmap_line_ydxi::$2
|
|
(bool~) bitmap_line_ydxi::$3 ← (byte) bitmap_line_ydxi::yd#2 < (byte) bitmap_line_ydxi::e#1
|
|
(bool~) bitmap_line_ydxi::$4 ← ! (bool~) bitmap_line_ydxi::$3
|
|
if((bool~) bitmap_line_ydxi::$4) goto bitmap_line_ydxi::@2
|
|
to:bitmap_line_ydxi::@3
|
|
bitmap_line_ydxi::@2: scope:[bitmap_line_ydxi] from bitmap_line_ydxi::@3 bitmap_line_ydxi::@4
|
|
(byte) bitmap_line_ydxi::yd#6 ← phi( bitmap_line_ydxi::@3/(byte) bitmap_line_ydxi::yd#3 bitmap_line_ydxi::@4/(byte) bitmap_line_ydxi::yd#2 )
|
|
(byte) bitmap_line_ydxi::xd#5 ← phi( bitmap_line_ydxi::@3/(byte) bitmap_line_ydxi::xd#6 bitmap_line_ydxi::@4/(byte) bitmap_line_ydxi::xd#3 )
|
|
(byte) bitmap_line_ydxi::e#6 ← phi( bitmap_line_ydxi::@3/(byte) bitmap_line_ydxi::e#2 bitmap_line_ydxi::@4/(byte) bitmap_line_ydxi::e#1 )
|
|
(byte) bitmap_line_ydxi::x#6 ← phi( bitmap_line_ydxi::@3/(byte) bitmap_line_ydxi::x#2 bitmap_line_ydxi::@4/(byte) bitmap_line_ydxi::x#7 )
|
|
(byte) bitmap_line_ydxi::y#5 ← phi( bitmap_line_ydxi::@3/(byte) bitmap_line_ydxi::y#7 bitmap_line_ydxi::@4/(byte) bitmap_line_ydxi::y#2 )
|
|
(byte) bitmap_line_ydxi::y1#2 ← phi( bitmap_line_ydxi::@3/(byte) bitmap_line_ydxi::y1#3 bitmap_line_ydxi::@4/(byte) bitmap_line_ydxi::y1#4 )
|
|
(number~) bitmap_line_ydxi::$6 ← (byte) bitmap_line_ydxi::y1#2 + (number) 1
|
|
(bool~) bitmap_line_ydxi::$7 ← (byte) bitmap_line_ydxi::y#5 != (number~) bitmap_line_ydxi::$6
|
|
if((bool~) bitmap_line_ydxi::$7) goto bitmap_line_ydxi::@1
|
|
to:bitmap_line_ydxi::@return
|
|
bitmap_line_ydxi::@3: scope:[bitmap_line_ydxi] from bitmap_line_ydxi::@4
|
|
(byte) bitmap_line_ydxi::xd#6 ← phi( bitmap_line_ydxi::@4/(byte) bitmap_line_ydxi::xd#3 )
|
|
(byte) bitmap_line_ydxi::y#7 ← phi( bitmap_line_ydxi::@4/(byte) bitmap_line_ydxi::y#2 )
|
|
(byte) bitmap_line_ydxi::y1#3 ← phi( bitmap_line_ydxi::@4/(byte) bitmap_line_ydxi::y1#4 )
|
|
(byte) bitmap_line_ydxi::yd#3 ← phi( bitmap_line_ydxi::@4/(byte) bitmap_line_ydxi::yd#2 )
|
|
(byte) bitmap_line_ydxi::e#4 ← phi( bitmap_line_ydxi::@4/(byte) bitmap_line_ydxi::e#1 )
|
|
(byte) bitmap_line_ydxi::x#4 ← phi( bitmap_line_ydxi::@4/(byte) bitmap_line_ydxi::x#7 )
|
|
(byte) bitmap_line_ydxi::x#2 ← ++ (byte) bitmap_line_ydxi::x#4
|
|
(byte~) bitmap_line_ydxi::$5 ← (byte) bitmap_line_ydxi::e#4 - (byte) bitmap_line_ydxi::yd#3
|
|
(byte) bitmap_line_ydxi::e#2 ← (byte~) bitmap_line_ydxi::$5
|
|
to:bitmap_line_ydxi::@2
|
|
bitmap_line_ydxi::@return: scope:[bitmap_line_ydxi] from bitmap_line_ydxi::@2
|
|
return
|
|
to:@return
|
|
|
|
(void()) bitmap_line_ydxd((byte) bitmap_line_ydxd::y , (byte) bitmap_line_ydxd::x , (byte) bitmap_line_ydxd::y1 , (byte) bitmap_line_ydxd::yd , (byte) bitmap_line_ydxd::xd)
|
|
bitmap_line_ydxd: scope:[bitmap_line_ydxd] from bitmap_line::@10 bitmap_line::@6
|
|
(byte) bitmap_line_ydxd::y1#6 ← phi( bitmap_line::@10/(byte) bitmap_line_ydxd::y1#0 bitmap_line::@6/(byte) bitmap_line_ydxd::y1#1 )
|
|
(byte) bitmap_line_ydxd::yd#5 ← phi( bitmap_line::@10/(byte) bitmap_line_ydxd::yd#0 bitmap_line::@6/(byte) bitmap_line_ydxd::yd#1 )
|
|
(byte) bitmap_line_ydxd::y#7 ← phi( bitmap_line::@10/(byte) bitmap_line_ydxd::y#0 bitmap_line::@6/(byte) bitmap_line_ydxd::y#1 )
|
|
(byte) bitmap_line_ydxd::x#5 ← phi( bitmap_line::@10/(byte) bitmap_line_ydxd::x#0 bitmap_line::@6/(byte) bitmap_line_ydxd::x#1 )
|
|
(byte) bitmap_line_ydxd::xd#2 ← phi( bitmap_line::@10/(byte) bitmap_line_ydxd::xd#0 bitmap_line::@6/(byte) bitmap_line_ydxd::xd#1 )
|
|
(byte~) bitmap_line_ydxd::$0 ← (byte) bitmap_line_ydxd::xd#2 >> (number) 1
|
|
(byte) bitmap_line_ydxd::e#0 ← (byte~) bitmap_line_ydxd::$0
|
|
to:bitmap_line_ydxd::@1
|
|
bitmap_line_ydxd::@1: scope:[bitmap_line_ydxd] from bitmap_line_ydxd bitmap_line_ydxd::@2
|
|
(byte) bitmap_line_ydxd::y1#5 ← phi( bitmap_line_ydxd/(byte) bitmap_line_ydxd::y1#6 bitmap_line_ydxd::@2/(byte) bitmap_line_ydxd::y1#2 )
|
|
(byte) bitmap_line_ydxd::yd#4 ← phi( bitmap_line_ydxd/(byte) bitmap_line_ydxd::yd#5 bitmap_line_ydxd::@2/(byte) bitmap_line_ydxd::yd#6 )
|
|
(byte) bitmap_line_ydxd::xd#4 ← phi( bitmap_line_ydxd/(byte) bitmap_line_ydxd::xd#2 bitmap_line_ydxd::@2/(byte) bitmap_line_ydxd::xd#5 )
|
|
(byte) bitmap_line_ydxd::e#5 ← phi( bitmap_line_ydxd/(byte) bitmap_line_ydxd::e#0 bitmap_line_ydxd::@2/(byte) bitmap_line_ydxd::e#6 )
|
|
(byte) bitmap_line_ydxd::y#4 ← phi( bitmap_line_ydxd/(byte) bitmap_line_ydxd::y#7 bitmap_line_ydxd::@2/(byte) bitmap_line_ydxd::y#6 )
|
|
(byte) bitmap_line_ydxd::x#3 ← phi( bitmap_line_ydxd/(byte) bitmap_line_ydxd::x#5 bitmap_line_ydxd::@2/(byte) bitmap_line_ydxd::x#6 )
|
|
(byte) bitmap_plot::x#3 ← (byte) bitmap_line_ydxd::x#3
|
|
(byte) bitmap_plot::y#3 ← (byte) bitmap_line_ydxd::y#4
|
|
call bitmap_plot
|
|
to:bitmap_line_ydxd::@4
|
|
bitmap_line_ydxd::@4: scope:[bitmap_line_ydxd] from bitmap_line_ydxd::@1
|
|
(byte) bitmap_line_ydxd::x#7 ← phi( bitmap_line_ydxd::@1/(byte) bitmap_line_ydxd::x#3 )
|
|
(byte) bitmap_line_ydxd::y1#4 ← phi( bitmap_line_ydxd::@1/(byte) bitmap_line_ydxd::y1#5 )
|
|
(byte) bitmap_line_ydxd::yd#2 ← phi( bitmap_line_ydxd::@1/(byte) bitmap_line_ydxd::yd#4 )
|
|
(byte) bitmap_line_ydxd::xd#3 ← phi( bitmap_line_ydxd::@1/(byte) bitmap_line_ydxd::xd#4 )
|
|
(byte) bitmap_line_ydxd::e#3 ← phi( bitmap_line_ydxd::@1/(byte) bitmap_line_ydxd::e#5 )
|
|
(byte) bitmap_line_ydxd::y#5 ← phi( bitmap_line_ydxd::@1/(byte) bitmap_line_ydxd::y#4 )
|
|
(byte) bitmap_line_ydxd::y#2 ← (byte) bitmap_line_ydxd::y#5
|
|
(byte) bitmap_line_ydxd::y#3 ← ++ (byte) bitmap_line_ydxd::y#2
|
|
(byte~) bitmap_line_ydxd::$2 ← (byte) bitmap_line_ydxd::e#3 + (byte) bitmap_line_ydxd::xd#3
|
|
(byte) bitmap_line_ydxd::e#1 ← (byte~) bitmap_line_ydxd::$2
|
|
(bool~) bitmap_line_ydxd::$3 ← (byte) bitmap_line_ydxd::yd#2 < (byte) bitmap_line_ydxd::e#1
|
|
(bool~) bitmap_line_ydxd::$4 ← ! (bool~) bitmap_line_ydxd::$3
|
|
if((bool~) bitmap_line_ydxd::$4) goto bitmap_line_ydxd::@2
|
|
to:bitmap_line_ydxd::@3
|
|
bitmap_line_ydxd::@2: scope:[bitmap_line_ydxd] from bitmap_line_ydxd::@3 bitmap_line_ydxd::@4
|
|
(byte) bitmap_line_ydxd::yd#6 ← phi( bitmap_line_ydxd::@3/(byte) bitmap_line_ydxd::yd#3 bitmap_line_ydxd::@4/(byte) bitmap_line_ydxd::yd#2 )
|
|
(byte) bitmap_line_ydxd::xd#5 ← phi( bitmap_line_ydxd::@3/(byte) bitmap_line_ydxd::xd#6 bitmap_line_ydxd::@4/(byte) bitmap_line_ydxd::xd#3 )
|
|
(byte) bitmap_line_ydxd::e#6 ← phi( bitmap_line_ydxd::@3/(byte) bitmap_line_ydxd::e#2 bitmap_line_ydxd::@4/(byte) bitmap_line_ydxd::e#1 )
|
|
(byte) bitmap_line_ydxd::x#6 ← phi( bitmap_line_ydxd::@3/(byte) bitmap_line_ydxd::x#2 bitmap_line_ydxd::@4/(byte) bitmap_line_ydxd::x#7 )
|
|
(byte) bitmap_line_ydxd::y#6 ← phi( bitmap_line_ydxd::@3/(byte) bitmap_line_ydxd::y#8 bitmap_line_ydxd::@4/(byte) bitmap_line_ydxd::y#3 )
|
|
(byte) bitmap_line_ydxd::y1#2 ← phi( bitmap_line_ydxd::@3/(byte) bitmap_line_ydxd::y1#3 bitmap_line_ydxd::@4/(byte) bitmap_line_ydxd::y1#4 )
|
|
(number~) bitmap_line_ydxd::$6 ← (byte) bitmap_line_ydxd::y1#2 + (number) 1
|
|
(bool~) bitmap_line_ydxd::$7 ← (byte) bitmap_line_ydxd::y#6 != (number~) bitmap_line_ydxd::$6
|
|
if((bool~) bitmap_line_ydxd::$7) goto bitmap_line_ydxd::@1
|
|
to:bitmap_line_ydxd::@return
|
|
bitmap_line_ydxd::@3: scope:[bitmap_line_ydxd] from bitmap_line_ydxd::@4
|
|
(byte) bitmap_line_ydxd::xd#6 ← phi( bitmap_line_ydxd::@4/(byte) bitmap_line_ydxd::xd#3 )
|
|
(byte) bitmap_line_ydxd::y#8 ← phi( bitmap_line_ydxd::@4/(byte) bitmap_line_ydxd::y#3 )
|
|
(byte) bitmap_line_ydxd::y1#3 ← phi( bitmap_line_ydxd::@4/(byte) bitmap_line_ydxd::y1#4 )
|
|
(byte) bitmap_line_ydxd::yd#3 ← phi( bitmap_line_ydxd::@4/(byte) bitmap_line_ydxd::yd#2 )
|
|
(byte) bitmap_line_ydxd::e#4 ← phi( bitmap_line_ydxd::@4/(byte) bitmap_line_ydxd::e#1 )
|
|
(byte) bitmap_line_ydxd::x#4 ← phi( bitmap_line_ydxd::@4/(byte) bitmap_line_ydxd::x#7 )
|
|
(byte) bitmap_line_ydxd::x#2 ← -- (byte) bitmap_line_ydxd::x#4
|
|
(byte~) bitmap_line_ydxd::$5 ← (byte) bitmap_line_ydxd::e#4 - (byte) bitmap_line_ydxd::yd#3
|
|
(byte) bitmap_line_ydxd::e#2 ← (byte~) bitmap_line_ydxd::$5
|
|
to:bitmap_line_ydxd::@2
|
|
bitmap_line_ydxd::@return: scope:[bitmap_line_ydxd] from bitmap_line_ydxd::@2
|
|
return
|
|
to:@return
|
|
|
|
(void()) main()
|
|
main: scope:[main] from __start::@1
|
|
(byte) next#14 ← phi( __start::@1/(byte) next#11 )
|
|
*((const nomodify byte*) BORDER_COLOR) ← (number) 0
|
|
*((const nomodify byte*) BG_COLOR) ← (number) 0
|
|
*((const nomodify byte*) D011) ← (const nomodify byte) VIC_BMM|(const nomodify byte) VIC_DEN|(const nomodify byte) VIC_RSEL|(number) 3
|
|
*((const nomodify byte*) VIC_MEMORY) ← (byte)(word)(const nomodify byte*) SCREEN&(number) $3fff/(number) $40|(word)(const nomodify byte*) BITMAP&(number) $3fff/(number) $400
|
|
(byte*) bitmap_init::bitmap#0 ← (const nomodify byte*) BITMAP
|
|
call bitmap_init
|
|
to:main::@2
|
|
main::@2: scope:[main] from main
|
|
(byte) next#13 ← phi( main/(byte) next#14 )
|
|
call bitmap_clear
|
|
to:main::@3
|
|
main::@3: scope:[main] from main::@2
|
|
(byte) next#12 ← phi( main::@2/(byte) next#13 )
|
|
call init_screen
|
|
to:main::@4
|
|
main::@4: scope:[main] from main::@3
|
|
(byte) next#10 ← phi( main::@3/(byte) next#12 )
|
|
to:main::@1
|
|
main::@1: scope:[main] from main::@4 main::@5
|
|
(byte) next#5 ← phi( main::@4/(byte) next#10 main::@5/(byte) next#0 )
|
|
(byte) bitmap_line::x0#0 ← (number) 0
|
|
(byte) bitmap_line::x1#0 ← (byte) next#5
|
|
(byte) bitmap_line::y0#0 ← (number) 0
|
|
(byte) bitmap_line::y1#0 ← (number) $64
|
|
call bitmap_line
|
|
to:main::@5
|
|
main::@5: scope:[main] from main::@1
|
|
(byte) next#6 ← phi( main::@1/(byte) next#5 )
|
|
(byte) next#0 ← ++ (byte) next#6
|
|
if(true) goto main::@1
|
|
to:main::@return
|
|
main::@return: scope:[main] from main::@5
|
|
(byte) next#7 ← phi( main::@5/(byte) next#0 )
|
|
(byte) next#1 ← (byte) next#7
|
|
return
|
|
to:@return
|
|
|
|
(void()) init_screen()
|
|
init_screen: scope:[init_screen] from main::@3
|
|
(byte*) init_screen::c#0 ← (const nomodify byte*) SCREEN
|
|
to:init_screen::@1
|
|
init_screen::@1: scope:[init_screen] from init_screen init_screen::@2
|
|
(byte*) init_screen::c#2 ← phi( init_screen/(byte*) init_screen::c#0 init_screen::@2/(byte*) init_screen::c#1 )
|
|
(bool~) init_screen::$0 ← (byte*) init_screen::c#2 != (const nomodify byte*) SCREEN+(number) $400
|
|
if((bool~) init_screen::$0) goto init_screen::@2
|
|
to:init_screen::@return
|
|
init_screen::@2: scope:[init_screen] from init_screen::@1
|
|
(byte*) init_screen::c#3 ← phi( init_screen::@1/(byte*) init_screen::c#2 )
|
|
*((byte*) init_screen::c#3) ← (number) $14
|
|
(byte*) init_screen::c#1 ← ++ (byte*) init_screen::c#3
|
|
to:init_screen::@1
|
|
init_screen::@return: scope:[init_screen] from init_screen::@1
|
|
return
|
|
to:@return
|
|
|
|
(void()) __start()
|
|
__start: scope:[__start] from
|
|
to:__start::__init1
|
|
__start::__init1: scope:[__start] from __start
|
|
(byte) next#2 ← (byte) 0
|
|
to:__start::@1
|
|
__start::@1: scope:[__start] from __start::__init1
|
|
(byte) next#11 ← phi( __start::__init1/(byte) next#2 )
|
|
call main
|
|
to:__start::@2
|
|
__start::@2: scope:[__start] from __start::@1
|
|
(byte) next#8 ← phi( __start::@1/(byte) next#1 )
|
|
(byte) next#3 ← (byte) next#8
|
|
to:__start::@return
|
|
__start::@return: scope:[__start] from __start::@2
|
|
(byte) next#9 ← phi( __start::@2/(byte) next#3 )
|
|
(byte) next#4 ← (byte) next#9
|
|
return
|
|
to:@return
|
|
|
|
SYMBOL TABLE SSA
|
|
(const nomodify byte*) BG_COLOR = (byte*)(number) $d021
|
|
(const nomodify byte*) BITMAP = (byte*)(number) $2000
|
|
(const nomodify byte*) BORDER_COLOR = (byte*)(number) $d020
|
|
(const nomodify byte*) D011 = (byte*)(number) $d011
|
|
(byte) MOS6526_CIA::INTERRUPT
|
|
(byte) MOS6526_CIA::PORT_A
|
|
(byte) MOS6526_CIA::PORT_A_DDR
|
|
(byte) MOS6526_CIA::PORT_B
|
|
(byte) MOS6526_CIA::PORT_B_DDR
|
|
(byte) MOS6526_CIA::SERIAL_DATA
|
|
(word) MOS6526_CIA::TIMER_A
|
|
(byte) MOS6526_CIA::TIMER_A_CONTROL
|
|
(word) MOS6526_CIA::TIMER_B
|
|
(byte) MOS6526_CIA::TIMER_B_CONTROL
|
|
(byte) MOS6526_CIA::TOD_10THS
|
|
(byte) MOS6526_CIA::TOD_HOURS
|
|
(byte) MOS6526_CIA::TOD_MIN
|
|
(byte) MOS6526_CIA::TOD_SEC
|
|
(byte) MOS6569_VICII::BG_COLOR
|
|
(byte) MOS6569_VICII::BG_COLOR1
|
|
(byte) MOS6569_VICII::BG_COLOR2
|
|
(byte) MOS6569_VICII::BG_COLOR3
|
|
(byte) MOS6569_VICII::BORDER_COLOR
|
|
(byte) MOS6569_VICII::CONTROL1
|
|
(byte) MOS6569_VICII::CONTROL2
|
|
(byte) MOS6569_VICII::IRQ_ENABLE
|
|
(byte) MOS6569_VICII::IRQ_STATUS
|
|
(byte) MOS6569_VICII::LIGHTPEN_X
|
|
(byte) MOS6569_VICII::LIGHTPEN_Y
|
|
(byte) MOS6569_VICII::MEMORY
|
|
(byte) MOS6569_VICII::RASTER
|
|
(byte) MOS6569_VICII::SPRITE0_COLOR
|
|
(byte) MOS6569_VICII::SPRITE0_X
|
|
(byte) MOS6569_VICII::SPRITE0_Y
|
|
(byte) MOS6569_VICII::SPRITE1_COLOR
|
|
(byte) MOS6569_VICII::SPRITE1_X
|
|
(byte) MOS6569_VICII::SPRITE1_Y
|
|
(byte) MOS6569_VICII::SPRITE2_COLOR
|
|
(byte) MOS6569_VICII::SPRITE2_X
|
|
(byte) MOS6569_VICII::SPRITE2_Y
|
|
(byte) MOS6569_VICII::SPRITE3_COLOR
|
|
(byte) MOS6569_VICII::SPRITE3_X
|
|
(byte) MOS6569_VICII::SPRITE3_Y
|
|
(byte) MOS6569_VICII::SPRITE4_COLOR
|
|
(byte) MOS6569_VICII::SPRITE4_X
|
|
(byte) MOS6569_VICII::SPRITE4_Y
|
|
(byte) MOS6569_VICII::SPRITE5_COLOR
|
|
(byte) MOS6569_VICII::SPRITE5_X
|
|
(byte) MOS6569_VICII::SPRITE5_Y
|
|
(byte) MOS6569_VICII::SPRITE6_COLOR
|
|
(byte) MOS6569_VICII::SPRITE6_X
|
|
(byte) MOS6569_VICII::SPRITE6_Y
|
|
(byte) MOS6569_VICII::SPRITE7_COLOR
|
|
(byte) MOS6569_VICII::SPRITE7_X
|
|
(byte) MOS6569_VICII::SPRITE7_Y
|
|
(byte) MOS6569_VICII::SPRITES_BG_COLLISION
|
|
(byte) MOS6569_VICII::SPRITES_COLLISION
|
|
(byte) MOS6569_VICII::SPRITES_ENABLE
|
|
(byte) MOS6569_VICII::SPRITES_EXPAND_X
|
|
(byte) MOS6569_VICII::SPRITES_EXPAND_Y
|
|
(byte) MOS6569_VICII::SPRITES_MC
|
|
(byte) MOS6569_VICII::SPRITES_MCOLOR1
|
|
(byte) MOS6569_VICII::SPRITES_MCOLOR2
|
|
(byte) MOS6569_VICII::SPRITES_PRIORITY
|
|
(byte) MOS6569_VICII::SPRITES_XMSB
|
|
(byte) MOS6581_SID::CH1_ATTACK_DECAY
|
|
(byte) MOS6581_SID::CH1_CONTROL
|
|
(word) MOS6581_SID::CH1_FREQ
|
|
(word) MOS6581_SID::CH1_PULSE_WIDTH
|
|
(byte) MOS6581_SID::CH1_SUSTAIN_RELEASE
|
|
(byte) MOS6581_SID::CH2_ATTACK_DECAY
|
|
(byte) MOS6581_SID::CH2_CONTROL
|
|
(word) MOS6581_SID::CH2_FREQ
|
|
(word) MOS6581_SID::CH2_PULSE_WIDTH
|
|
(byte) MOS6581_SID::CH2_SUSTAIN_RELEASE
|
|
(byte) MOS6581_SID::CH3_ATTACK_DECAY
|
|
(byte) MOS6581_SID::CH3_CONTROL
|
|
(byte) MOS6581_SID::CH3_ENV
|
|
(word) MOS6581_SID::CH3_FREQ
|
|
(byte) MOS6581_SID::CH3_OSC
|
|
(word) MOS6581_SID::CH3_PULSE_WIDTH
|
|
(byte) MOS6581_SID::CH3_SUSTAIN_RELEASE
|
|
(byte) MOS6581_SID::FILTER_CUTOFF_HIGH
|
|
(byte) MOS6581_SID::FILTER_CUTOFF_LOW
|
|
(byte) MOS6581_SID::FILTER_SETUP
|
|
(byte) MOS6581_SID::POT_X
|
|
(byte) MOS6581_SID::POT_Y
|
|
(byte) MOS6581_SID::VOLUME_FILTER_MODE
|
|
(const nomodify byte*) SCREEN = (byte*)(number) $400
|
|
(const nomodify byte) VIC_BMM = (byte) $20
|
|
(const nomodify byte) VIC_DEN = (byte) $10
|
|
(const nomodify byte*) VIC_MEMORY = (byte*)(number) $d018
|
|
(const nomodify byte) VIC_RSEL = (byte) 8
|
|
(void()) __start()
|
|
(label) __start::@1
|
|
(label) __start::@2
|
|
(label) __start::@return
|
|
(label) __start::__init1
|
|
(void()) bitmap_clear()
|
|
(bool~) bitmap_clear::$0
|
|
(bool~) bitmap_clear::$1
|
|
(label) bitmap_clear::@1
|
|
(label) bitmap_clear::@2
|
|
(label) bitmap_clear::@3
|
|
(label) bitmap_clear::@return
|
|
(byte*) bitmap_clear::bitmap
|
|
(byte*) bitmap_clear::bitmap#0
|
|
(byte*) bitmap_clear::bitmap#1
|
|
(byte*) bitmap_clear::bitmap#2
|
|
(byte*) bitmap_clear::bitmap#3
|
|
(byte*) bitmap_clear::bitmap#4
|
|
(byte) bitmap_clear::x
|
|
(byte) bitmap_clear::x#0
|
|
(byte) bitmap_clear::x#1
|
|
(byte) bitmap_clear::x#2
|
|
(byte) bitmap_clear::y
|
|
(byte) bitmap_clear::y#0
|
|
(byte) bitmap_clear::y#1
|
|
(byte) bitmap_clear::y#2
|
|
(byte) bitmap_clear::y#3
|
|
(byte) bitmap_clear::y#4
|
|
(void()) bitmap_init((byte*) bitmap_init::bitmap)
|
|
(number~) bitmap_init::$0
|
|
(byte~) bitmap_init::$1
|
|
(number~) bitmap_init::$10
|
|
(bool~) bitmap_init::$11
|
|
(bool~) bitmap_init::$12
|
|
(byte*~) bitmap_init::$13
|
|
(bool~) bitmap_init::$14
|
|
(byte~) bitmap_init::$2
|
|
(bool~) bitmap_init::$3
|
|
(bool~) bitmap_init::$4
|
|
(bool~) bitmap_init::$5
|
|
(number~) bitmap_init::$6
|
|
(byte~) bitmap_init::$7
|
|
(number~) bitmap_init::$8
|
|
(byte~) bitmap_init::$9
|
|
(label) bitmap_init::@1
|
|
(label) bitmap_init::@2
|
|
(label) bitmap_init::@3
|
|
(label) bitmap_init::@4
|
|
(label) bitmap_init::@5
|
|
(label) bitmap_init::@6
|
|
(label) bitmap_init::@7
|
|
(label) bitmap_init::@return
|
|
(byte*) bitmap_init::bitmap
|
|
(byte*) bitmap_init::bitmap#0
|
|
(byte*) bitmap_init::bitmap#1
|
|
(byte*) bitmap_init::bitmap#2
|
|
(byte*) bitmap_init::bitmap#3
|
|
(byte*) bitmap_init::bitmap#4
|
|
(byte) bitmap_init::bits
|
|
(byte) bitmap_init::bits#0
|
|
(byte) bitmap_init::bits#1
|
|
(byte) bitmap_init::bits#2
|
|
(byte) bitmap_init::bits#3
|
|
(byte) bitmap_init::bits#4
|
|
(byte) bitmap_init::x
|
|
(byte) bitmap_init::x#0
|
|
(byte) bitmap_init::x#1
|
|
(byte) bitmap_init::x#2
|
|
(byte) bitmap_init::x#3
|
|
(byte) bitmap_init::x#4
|
|
(byte) bitmap_init::y
|
|
(byte) bitmap_init::y#0
|
|
(byte) bitmap_init::y#1
|
|
(byte) bitmap_init::y#2
|
|
(byte) bitmap_init::y#3
|
|
(byte) bitmap_init::y#4
|
|
(byte*) bitmap_init::yoffs
|
|
(byte*) bitmap_init::yoffs#0
|
|
(byte*) bitmap_init::yoffs#1
|
|
(byte*) bitmap_init::yoffs#2
|
|
(byte*) bitmap_init::yoffs#3
|
|
(byte*) bitmap_init::yoffs#4
|
|
(void()) bitmap_line((byte) bitmap_line::x0 , (byte) bitmap_line::x1 , (byte) bitmap_line::y0 , (byte) bitmap_line::y1)
|
|
(bool~) bitmap_line::$0
|
|
(byte~) bitmap_line::$1
|
|
(byte~) bitmap_line::$11
|
|
(bool~) bitmap_line::$12
|
|
(byte~) bitmap_line::$13
|
|
(bool~) bitmap_line::$14
|
|
(byte~) bitmap_line::$17
|
|
(bool~) bitmap_line::$18
|
|
(bool~) bitmap_line::$2
|
|
(byte~) bitmap_line::$3
|
|
(bool~) bitmap_line::$4
|
|
(byte~) bitmap_line::$7
|
|
(bool~) bitmap_line::$8
|
|
(label) bitmap_line::@1
|
|
(label) bitmap_line::@10
|
|
(label) bitmap_line::@11
|
|
(label) bitmap_line::@12
|
|
(label) bitmap_line::@13
|
|
(label) bitmap_line::@14
|
|
(label) bitmap_line::@15
|
|
(label) bitmap_line::@16
|
|
(label) bitmap_line::@17
|
|
(label) bitmap_line::@18
|
|
(label) bitmap_line::@19
|
|
(label) bitmap_line::@2
|
|
(label) bitmap_line::@20
|
|
(label) bitmap_line::@21
|
|
(label) bitmap_line::@22
|
|
(label) bitmap_line::@3
|
|
(label) bitmap_line::@4
|
|
(label) bitmap_line::@5
|
|
(label) bitmap_line::@6
|
|
(label) bitmap_line::@7
|
|
(label) bitmap_line::@8
|
|
(label) bitmap_line::@9
|
|
(label) bitmap_line::@return
|
|
(byte) bitmap_line::x0
|
|
(byte) bitmap_line::x0#0
|
|
(byte) bitmap_line::x0#1
|
|
(byte) bitmap_line::x0#10
|
|
(byte) bitmap_line::x0#11
|
|
(byte) bitmap_line::x0#12
|
|
(byte) bitmap_line::x0#13
|
|
(byte) bitmap_line::x0#2
|
|
(byte) bitmap_line::x0#3
|
|
(byte) bitmap_line::x0#4
|
|
(byte) bitmap_line::x0#5
|
|
(byte) bitmap_line::x0#6
|
|
(byte) bitmap_line::x0#7
|
|
(byte) bitmap_line::x0#8
|
|
(byte) bitmap_line::x0#9
|
|
(byte) bitmap_line::x1
|
|
(byte) bitmap_line::x1#0
|
|
(byte) bitmap_line::x1#1
|
|
(byte) bitmap_line::x1#10
|
|
(byte) bitmap_line::x1#11
|
|
(byte) bitmap_line::x1#12
|
|
(byte) bitmap_line::x1#13
|
|
(byte) bitmap_line::x1#2
|
|
(byte) bitmap_line::x1#3
|
|
(byte) bitmap_line::x1#4
|
|
(byte) bitmap_line::x1#5
|
|
(byte) bitmap_line::x1#6
|
|
(byte) bitmap_line::x1#7
|
|
(byte) bitmap_line::x1#8
|
|
(byte) bitmap_line::x1#9
|
|
(byte) bitmap_line::xd
|
|
(byte) bitmap_line::xd#0
|
|
(byte) bitmap_line::xd#1
|
|
(byte) bitmap_line::xd#10
|
|
(byte) bitmap_line::xd#11
|
|
(byte) bitmap_line::xd#12
|
|
(byte) bitmap_line::xd#13
|
|
(byte) bitmap_line::xd#14
|
|
(byte) bitmap_line::xd#2
|
|
(byte) bitmap_line::xd#3
|
|
(byte) bitmap_line::xd#4
|
|
(byte) bitmap_line::xd#5
|
|
(byte) bitmap_line::xd#6
|
|
(byte) bitmap_line::xd#7
|
|
(byte) bitmap_line::xd#8
|
|
(byte) bitmap_line::xd#9
|
|
(byte) bitmap_line::y0
|
|
(byte) bitmap_line::y0#0
|
|
(byte) bitmap_line::y0#1
|
|
(byte) bitmap_line::y0#10
|
|
(byte) bitmap_line::y0#11
|
|
(byte) bitmap_line::y0#12
|
|
(byte) bitmap_line::y0#13
|
|
(byte) bitmap_line::y0#2
|
|
(byte) bitmap_line::y0#3
|
|
(byte) bitmap_line::y0#4
|
|
(byte) bitmap_line::y0#5
|
|
(byte) bitmap_line::y0#6
|
|
(byte) bitmap_line::y0#7
|
|
(byte) bitmap_line::y0#8
|
|
(byte) bitmap_line::y0#9
|
|
(byte) bitmap_line::y1
|
|
(byte) bitmap_line::y1#0
|
|
(byte) bitmap_line::y1#1
|
|
(byte) bitmap_line::y1#10
|
|
(byte) bitmap_line::y1#11
|
|
(byte) bitmap_line::y1#12
|
|
(byte) bitmap_line::y1#13
|
|
(byte) bitmap_line::y1#2
|
|
(byte) bitmap_line::y1#3
|
|
(byte) bitmap_line::y1#4
|
|
(byte) bitmap_line::y1#5
|
|
(byte) bitmap_line::y1#6
|
|
(byte) bitmap_line::y1#7
|
|
(byte) bitmap_line::y1#8
|
|
(byte) bitmap_line::y1#9
|
|
(byte) bitmap_line::yd
|
|
(byte) bitmap_line::yd#0
|
|
(byte) bitmap_line::yd#1
|
|
(byte) bitmap_line::yd#10
|
|
(byte) bitmap_line::yd#11
|
|
(byte) bitmap_line::yd#12
|
|
(byte) bitmap_line::yd#2
|
|
(byte) bitmap_line::yd#3
|
|
(byte) bitmap_line::yd#4
|
|
(byte) bitmap_line::yd#5
|
|
(byte) bitmap_line::yd#6
|
|
(byte) bitmap_line::yd#7
|
|
(byte) bitmap_line::yd#8
|
|
(byte) bitmap_line::yd#9
|
|
(void()) bitmap_line_xdyd((byte) bitmap_line_xdyd::x , (byte) bitmap_line_xdyd::y , (byte) bitmap_line_xdyd::x1 , (byte) bitmap_line_xdyd::xd , (byte) bitmap_line_xdyd::yd)
|
|
(byte~) bitmap_line_xdyd::$0
|
|
(byte~) bitmap_line_xdyd::$2
|
|
(bool~) bitmap_line_xdyd::$3
|
|
(bool~) bitmap_line_xdyd::$4
|
|
(byte~) bitmap_line_xdyd::$5
|
|
(number~) bitmap_line_xdyd::$6
|
|
(bool~) bitmap_line_xdyd::$7
|
|
(label) bitmap_line_xdyd::@1
|
|
(label) bitmap_line_xdyd::@2
|
|
(label) bitmap_line_xdyd::@3
|
|
(label) bitmap_line_xdyd::@4
|
|
(label) bitmap_line_xdyd::@return
|
|
(byte) bitmap_line_xdyd::e
|
|
(byte) bitmap_line_xdyd::e#0
|
|
(byte) bitmap_line_xdyd::e#1
|
|
(byte) bitmap_line_xdyd::e#2
|
|
(byte) bitmap_line_xdyd::e#3
|
|
(byte) bitmap_line_xdyd::e#4
|
|
(byte) bitmap_line_xdyd::e#5
|
|
(byte) bitmap_line_xdyd::e#6
|
|
(byte) bitmap_line_xdyd::x
|
|
(byte) bitmap_line_xdyd::x#0
|
|
(byte) bitmap_line_xdyd::x#1
|
|
(byte) bitmap_line_xdyd::x#2
|
|
(byte) bitmap_line_xdyd::x#3
|
|
(byte) bitmap_line_xdyd::x#4
|
|
(byte) bitmap_line_xdyd::x#5
|
|
(byte) bitmap_line_xdyd::x#6
|
|
(byte) bitmap_line_xdyd::x#7
|
|
(byte) bitmap_line_xdyd::x1
|
|
(byte) bitmap_line_xdyd::x1#0
|
|
(byte) bitmap_line_xdyd::x1#1
|
|
(byte) bitmap_line_xdyd::x1#2
|
|
(byte) bitmap_line_xdyd::x1#3
|
|
(byte) bitmap_line_xdyd::x1#4
|
|
(byte) bitmap_line_xdyd::x1#5
|
|
(byte) bitmap_line_xdyd::x1#6
|
|
(byte) bitmap_line_xdyd::xd
|
|
(byte) bitmap_line_xdyd::xd#0
|
|
(byte) bitmap_line_xdyd::xd#1
|
|
(byte) bitmap_line_xdyd::xd#2
|
|
(byte) bitmap_line_xdyd::xd#3
|
|
(byte) bitmap_line_xdyd::xd#4
|
|
(byte) bitmap_line_xdyd::xd#5
|
|
(byte) bitmap_line_xdyd::xd#6
|
|
(byte) bitmap_line_xdyd::y
|
|
(byte) bitmap_line_xdyd::y#0
|
|
(byte) bitmap_line_xdyd::y#1
|
|
(byte) bitmap_line_xdyd::y#2
|
|
(byte) bitmap_line_xdyd::y#3
|
|
(byte) bitmap_line_xdyd::y#4
|
|
(byte) bitmap_line_xdyd::y#5
|
|
(byte) bitmap_line_xdyd::y#6
|
|
(byte) bitmap_line_xdyd::y#7
|
|
(byte) bitmap_line_xdyd::yd
|
|
(byte) bitmap_line_xdyd::yd#0
|
|
(byte) bitmap_line_xdyd::yd#1
|
|
(byte) bitmap_line_xdyd::yd#2
|
|
(byte) bitmap_line_xdyd::yd#3
|
|
(byte) bitmap_line_xdyd::yd#4
|
|
(byte) bitmap_line_xdyd::yd#5
|
|
(byte) bitmap_line_xdyd::yd#6
|
|
(void()) bitmap_line_xdyi((byte) bitmap_line_xdyi::x , (byte) bitmap_line_xdyi::y , (byte) bitmap_line_xdyi::x1 , (byte) bitmap_line_xdyi::xd , (byte) bitmap_line_xdyi::yd)
|
|
(byte~) bitmap_line_xdyi::$0
|
|
(byte~) bitmap_line_xdyi::$2
|
|
(bool~) bitmap_line_xdyi::$3
|
|
(bool~) bitmap_line_xdyi::$4
|
|
(byte~) bitmap_line_xdyi::$5
|
|
(number~) bitmap_line_xdyi::$6
|
|
(bool~) bitmap_line_xdyi::$7
|
|
(label) bitmap_line_xdyi::@1
|
|
(label) bitmap_line_xdyi::@2
|
|
(label) bitmap_line_xdyi::@3
|
|
(label) bitmap_line_xdyi::@4
|
|
(label) bitmap_line_xdyi::@return
|
|
(byte) bitmap_line_xdyi::e
|
|
(byte) bitmap_line_xdyi::e#0
|
|
(byte) bitmap_line_xdyi::e#1
|
|
(byte) bitmap_line_xdyi::e#2
|
|
(byte) bitmap_line_xdyi::e#3
|
|
(byte) bitmap_line_xdyi::e#4
|
|
(byte) bitmap_line_xdyi::e#5
|
|
(byte) bitmap_line_xdyi::e#6
|
|
(byte) bitmap_line_xdyi::x
|
|
(byte) bitmap_line_xdyi::x#0
|
|
(byte) bitmap_line_xdyi::x#1
|
|
(byte) bitmap_line_xdyi::x#2
|
|
(byte) bitmap_line_xdyi::x#3
|
|
(byte) bitmap_line_xdyi::x#4
|
|
(byte) bitmap_line_xdyi::x#5
|
|
(byte) bitmap_line_xdyi::x#6
|
|
(byte) bitmap_line_xdyi::x#7
|
|
(byte) bitmap_line_xdyi::x1
|
|
(byte) bitmap_line_xdyi::x1#0
|
|
(byte) bitmap_line_xdyi::x1#1
|
|
(byte) bitmap_line_xdyi::x1#2
|
|
(byte) bitmap_line_xdyi::x1#3
|
|
(byte) bitmap_line_xdyi::x1#4
|
|
(byte) bitmap_line_xdyi::x1#5
|
|
(byte) bitmap_line_xdyi::x1#6
|
|
(byte) bitmap_line_xdyi::xd
|
|
(byte) bitmap_line_xdyi::xd#0
|
|
(byte) bitmap_line_xdyi::xd#1
|
|
(byte) bitmap_line_xdyi::xd#2
|
|
(byte) bitmap_line_xdyi::xd#3
|
|
(byte) bitmap_line_xdyi::xd#4
|
|
(byte) bitmap_line_xdyi::xd#5
|
|
(byte) bitmap_line_xdyi::xd#6
|
|
(byte) bitmap_line_xdyi::y
|
|
(byte) bitmap_line_xdyi::y#0
|
|
(byte) bitmap_line_xdyi::y#1
|
|
(byte) bitmap_line_xdyi::y#2
|
|
(byte) bitmap_line_xdyi::y#3
|
|
(byte) bitmap_line_xdyi::y#4
|
|
(byte) bitmap_line_xdyi::y#5
|
|
(byte) bitmap_line_xdyi::y#6
|
|
(byte) bitmap_line_xdyi::y#7
|
|
(byte) bitmap_line_xdyi::yd
|
|
(byte) bitmap_line_xdyi::yd#0
|
|
(byte) bitmap_line_xdyi::yd#1
|
|
(byte) bitmap_line_xdyi::yd#2
|
|
(byte) bitmap_line_xdyi::yd#3
|
|
(byte) bitmap_line_xdyi::yd#4
|
|
(byte) bitmap_line_xdyi::yd#5
|
|
(byte) bitmap_line_xdyi::yd#6
|
|
(void()) bitmap_line_ydxd((byte) bitmap_line_ydxd::y , (byte) bitmap_line_ydxd::x , (byte) bitmap_line_ydxd::y1 , (byte) bitmap_line_ydxd::yd , (byte) bitmap_line_ydxd::xd)
|
|
(byte~) bitmap_line_ydxd::$0
|
|
(byte~) bitmap_line_ydxd::$2
|
|
(bool~) bitmap_line_ydxd::$3
|
|
(bool~) bitmap_line_ydxd::$4
|
|
(byte~) bitmap_line_ydxd::$5
|
|
(number~) bitmap_line_ydxd::$6
|
|
(bool~) bitmap_line_ydxd::$7
|
|
(label) bitmap_line_ydxd::@1
|
|
(label) bitmap_line_ydxd::@2
|
|
(label) bitmap_line_ydxd::@3
|
|
(label) bitmap_line_ydxd::@4
|
|
(label) bitmap_line_ydxd::@return
|
|
(byte) bitmap_line_ydxd::e
|
|
(byte) bitmap_line_ydxd::e#0
|
|
(byte) bitmap_line_ydxd::e#1
|
|
(byte) bitmap_line_ydxd::e#2
|
|
(byte) bitmap_line_ydxd::e#3
|
|
(byte) bitmap_line_ydxd::e#4
|
|
(byte) bitmap_line_ydxd::e#5
|
|
(byte) bitmap_line_ydxd::e#6
|
|
(byte) bitmap_line_ydxd::x
|
|
(byte) bitmap_line_ydxd::x#0
|
|
(byte) bitmap_line_ydxd::x#1
|
|
(byte) bitmap_line_ydxd::x#2
|
|
(byte) bitmap_line_ydxd::x#3
|
|
(byte) bitmap_line_ydxd::x#4
|
|
(byte) bitmap_line_ydxd::x#5
|
|
(byte) bitmap_line_ydxd::x#6
|
|
(byte) bitmap_line_ydxd::x#7
|
|
(byte) bitmap_line_ydxd::xd
|
|
(byte) bitmap_line_ydxd::xd#0
|
|
(byte) bitmap_line_ydxd::xd#1
|
|
(byte) bitmap_line_ydxd::xd#2
|
|
(byte) bitmap_line_ydxd::xd#3
|
|
(byte) bitmap_line_ydxd::xd#4
|
|
(byte) bitmap_line_ydxd::xd#5
|
|
(byte) bitmap_line_ydxd::xd#6
|
|
(byte) bitmap_line_ydxd::y
|
|
(byte) bitmap_line_ydxd::y#0
|
|
(byte) bitmap_line_ydxd::y#1
|
|
(byte) bitmap_line_ydxd::y#2
|
|
(byte) bitmap_line_ydxd::y#3
|
|
(byte) bitmap_line_ydxd::y#4
|
|
(byte) bitmap_line_ydxd::y#5
|
|
(byte) bitmap_line_ydxd::y#6
|
|
(byte) bitmap_line_ydxd::y#7
|
|
(byte) bitmap_line_ydxd::y#8
|
|
(byte) bitmap_line_ydxd::y1
|
|
(byte) bitmap_line_ydxd::y1#0
|
|
(byte) bitmap_line_ydxd::y1#1
|
|
(byte) bitmap_line_ydxd::y1#2
|
|
(byte) bitmap_line_ydxd::y1#3
|
|
(byte) bitmap_line_ydxd::y1#4
|
|
(byte) bitmap_line_ydxd::y1#5
|
|
(byte) bitmap_line_ydxd::y1#6
|
|
(byte) bitmap_line_ydxd::yd
|
|
(byte) bitmap_line_ydxd::yd#0
|
|
(byte) bitmap_line_ydxd::yd#1
|
|
(byte) bitmap_line_ydxd::yd#2
|
|
(byte) bitmap_line_ydxd::yd#3
|
|
(byte) bitmap_line_ydxd::yd#4
|
|
(byte) bitmap_line_ydxd::yd#5
|
|
(byte) bitmap_line_ydxd::yd#6
|
|
(void()) bitmap_line_ydxi((byte) bitmap_line_ydxi::y , (byte) bitmap_line_ydxi::x , (byte) bitmap_line_ydxi::y1 , (byte) bitmap_line_ydxi::yd , (byte) bitmap_line_ydxi::xd)
|
|
(byte~) bitmap_line_ydxi::$0
|
|
(byte~) bitmap_line_ydxi::$2
|
|
(bool~) bitmap_line_ydxi::$3
|
|
(bool~) bitmap_line_ydxi::$4
|
|
(byte~) bitmap_line_ydxi::$5
|
|
(number~) bitmap_line_ydxi::$6
|
|
(bool~) bitmap_line_ydxi::$7
|
|
(label) bitmap_line_ydxi::@1
|
|
(label) bitmap_line_ydxi::@2
|
|
(label) bitmap_line_ydxi::@3
|
|
(label) bitmap_line_ydxi::@4
|
|
(label) bitmap_line_ydxi::@return
|
|
(byte) bitmap_line_ydxi::e
|
|
(byte) bitmap_line_ydxi::e#0
|
|
(byte) bitmap_line_ydxi::e#1
|
|
(byte) bitmap_line_ydxi::e#2
|
|
(byte) bitmap_line_ydxi::e#3
|
|
(byte) bitmap_line_ydxi::e#4
|
|
(byte) bitmap_line_ydxi::e#5
|
|
(byte) bitmap_line_ydxi::e#6
|
|
(byte) bitmap_line_ydxi::x
|
|
(byte) bitmap_line_ydxi::x#0
|
|
(byte) bitmap_line_ydxi::x#1
|
|
(byte) bitmap_line_ydxi::x#2
|
|
(byte) bitmap_line_ydxi::x#3
|
|
(byte) bitmap_line_ydxi::x#4
|
|
(byte) bitmap_line_ydxi::x#5
|
|
(byte) bitmap_line_ydxi::x#6
|
|
(byte) bitmap_line_ydxi::x#7
|
|
(byte) bitmap_line_ydxi::xd
|
|
(byte) bitmap_line_ydxi::xd#0
|
|
(byte) bitmap_line_ydxi::xd#1
|
|
(byte) bitmap_line_ydxi::xd#2
|
|
(byte) bitmap_line_ydxi::xd#3
|
|
(byte) bitmap_line_ydxi::xd#4
|
|
(byte) bitmap_line_ydxi::xd#5
|
|
(byte) bitmap_line_ydxi::xd#6
|
|
(byte) bitmap_line_ydxi::y
|
|
(byte) bitmap_line_ydxi::y#0
|
|
(byte) bitmap_line_ydxi::y#1
|
|
(byte) bitmap_line_ydxi::y#2
|
|
(byte) bitmap_line_ydxi::y#3
|
|
(byte) bitmap_line_ydxi::y#4
|
|
(byte) bitmap_line_ydxi::y#5
|
|
(byte) bitmap_line_ydxi::y#6
|
|
(byte) bitmap_line_ydxi::y#7
|
|
(byte) bitmap_line_ydxi::y1
|
|
(byte) bitmap_line_ydxi::y1#0
|
|
(byte) bitmap_line_ydxi::y1#1
|
|
(byte) bitmap_line_ydxi::y1#2
|
|
(byte) bitmap_line_ydxi::y1#3
|
|
(byte) bitmap_line_ydxi::y1#4
|
|
(byte) bitmap_line_ydxi::y1#5
|
|
(byte) bitmap_line_ydxi::y1#6
|
|
(byte) bitmap_line_ydxi::yd
|
|
(byte) bitmap_line_ydxi::yd#0
|
|
(byte) bitmap_line_ydxi::yd#1
|
|
(byte) bitmap_line_ydxi::yd#2
|
|
(byte) bitmap_line_ydxi::yd#3
|
|
(byte) bitmap_line_ydxi::yd#4
|
|
(byte) bitmap_line_ydxi::yd#5
|
|
(byte) bitmap_line_ydxi::yd#6
|
|
(void()) bitmap_plot((byte) bitmap_plot::x , (byte) bitmap_plot::y)
|
|
(word~) bitmap_plot::$0
|
|
(byte~) bitmap_plot::$1
|
|
(label) bitmap_plot::@return
|
|
(byte*) bitmap_plot::plotter
|
|
(byte*) bitmap_plot::plotter#0
|
|
(word) bitmap_plot::plotter_x
|
|
(word) bitmap_plot::plotter_x#0
|
|
(word) bitmap_plot::plotter_y
|
|
(word) bitmap_plot::plotter_y#0
|
|
(byte) bitmap_plot::x
|
|
(byte) bitmap_plot::x#0
|
|
(byte) bitmap_plot::x#1
|
|
(byte) bitmap_plot::x#2
|
|
(byte) bitmap_plot::x#3
|
|
(byte) bitmap_plot::x#4
|
|
(byte) bitmap_plot::y
|
|
(byte) bitmap_plot::y#0
|
|
(byte) bitmap_plot::y#1
|
|
(byte) bitmap_plot::y#2
|
|
(byte) bitmap_plot::y#3
|
|
(byte) bitmap_plot::y#4
|
|
(const to_nomodify byte*) bitmap_plot_bit[(number) $100] = { fill( $100, 0) }
|
|
(const to_nomodify byte*) bitmap_plot_xhi[(number) $100] = { fill( $100, 0) }
|
|
(const to_nomodify byte*) bitmap_plot_xlo[(number) $100] = { fill( $100, 0) }
|
|
(const to_nomodify byte*) bitmap_plot_yhi[(number) $100] = { fill( $100, 0) }
|
|
(const to_nomodify byte*) bitmap_plot_ylo[(number) $100] = { fill( $100, 0) }
|
|
(void()) init_screen()
|
|
(bool~) init_screen::$0
|
|
(label) init_screen::@1
|
|
(label) init_screen::@2
|
|
(label) init_screen::@return
|
|
(byte*) init_screen::c
|
|
(byte*) init_screen::c#0
|
|
(byte*) init_screen::c#1
|
|
(byte*) init_screen::c#2
|
|
(byte*) init_screen::c#3
|
|
(void()) main()
|
|
(label) main::@1
|
|
(label) main::@2
|
|
(label) main::@3
|
|
(label) main::@4
|
|
(label) main::@5
|
|
(label) main::@return
|
|
(byte) next
|
|
(byte) next#0
|
|
(byte) next#1
|
|
(byte) next#10
|
|
(byte) next#11
|
|
(byte) next#12
|
|
(byte) next#13
|
|
(byte) next#14
|
|
(byte) next#2
|
|
(byte) next#3
|
|
(byte) next#4
|
|
(byte) next#5
|
|
(byte) next#6
|
|
(byte) next#7
|
|
(byte) next#8
|
|
(byte) next#9
|
|
|
|
Fixing inline constructor with bitmap_clear::$2 ← (byte)*(bitmap_plot_xhi + 0) w= (byte)*(bitmap_plot_xlo + 0)
|
|
Fixing inline constructor with bitmap_plot::$2 ← (byte)*(bitmap_plot_xhi + bitmap_plot::x#4) w= (byte)*(bitmap_plot_xlo + bitmap_plot::x#4)
|
|
Fixing inline constructor with bitmap_plot::$3 ← (byte)*(bitmap_plot_yhi + bitmap_plot::y#4) w= (byte)*(bitmap_plot_ylo + bitmap_plot::y#4)
|
|
Successful SSA optimization Pass2FixInlineConstructors
|
|
Adding number conversion cast (unumber) $f8 in (number~) bitmap_init::$0 ← (byte) bitmap_init::x#2 & (number) $f8
|
|
Adding number conversion cast (unumber) bitmap_init::$0 in (number~) bitmap_init::$0 ← (byte) bitmap_init::x#2 & (unumber)(number) $f8
|
|
Adding number conversion cast (unumber) 1 in (byte~) bitmap_init::$2 ← (byte) bitmap_init::bits#3 >> (number) 1
|
|
Adding number conversion cast (unumber) 0 in (bool~) bitmap_init::$3 ← (byte) bitmap_init::bits#1 == (number) 0
|
|
Adding number conversion cast (unumber) $80 in (byte) bitmap_init::bits#2 ← (number) $80
|
|
Adding number conversion cast (unumber) 7 in (number~) bitmap_init::$6 ← (byte) bitmap_init::y#2 & (number) 7
|
|
Adding number conversion cast (unumber) bitmap_init::$6 in (number~) bitmap_init::$6 ← (byte) bitmap_init::y#2 & (unumber)(number) 7
|
|
Adding number conversion cast (unumber) bitmap_init::$8 in (number~) bitmap_init::$8 ← (unumber~) bitmap_init::$6 | (byte~) bitmap_init::$7
|
|
Adding number conversion cast (unumber) 7 in (number~) bitmap_init::$10 ← (byte) bitmap_init::y#2 & (number) 7
|
|
Adding number conversion cast (unumber) bitmap_init::$10 in (number~) bitmap_init::$10 ← (byte) bitmap_init::y#2 & (unumber)(number) 7
|
|
Adding number conversion cast (unumber) 7 in (bool~) bitmap_init::$11 ← (unumber~) bitmap_init::$10 == (number) 7
|
|
Adding number conversion cast (unumber) $28*8 in (byte*~) bitmap_init::$13 ← (byte*) bitmap_init::yoffs#3 + (number) $28*(number) 8
|
|
Adding number conversion cast (unumber) 0 in (byte*~) bitmap_clear::$2 ← (byte)*((const to_nomodify byte*) bitmap_plot_xhi + (number) 0) w= (byte)*((const to_nomodify byte*) bitmap_plot_xlo + (number) 0)
|
|
Adding number conversion cast (unumber) 0 in (byte*~) bitmap_clear::$2 ← (byte)*((const to_nomodify byte*) bitmap_plot_xhi + (unumber)(number) 0) w= (byte)*((const to_nomodify byte*) bitmap_plot_xlo + (number) 0)
|
|
Adding number conversion cast (unumber) 0 in *((byte*) bitmap_clear::bitmap#2) ← (number) 0
|
|
Adding number conversion cast (unumber) 1 in (byte~) bitmap_line_xdyi::$0 ← (byte) bitmap_line_xdyi::yd#2 >> (number) 1
|
|
Adding number conversion cast (unumber) 1 in (number~) bitmap_line_xdyi::$6 ← (byte) bitmap_line_xdyi::x1#2 + (number) 1
|
|
Adding number conversion cast (unumber) bitmap_line_xdyi::$6 in (number~) bitmap_line_xdyi::$6 ← (byte) bitmap_line_xdyi::x1#2 + (unumber)(number) 1
|
|
Adding number conversion cast (unumber) 1 in (byte~) bitmap_line_xdyd::$0 ← (byte) bitmap_line_xdyd::yd#2 >> (number) 1
|
|
Adding number conversion cast (unumber) 1 in (number~) bitmap_line_xdyd::$6 ← (byte) bitmap_line_xdyd::x1#2 + (number) 1
|
|
Adding number conversion cast (unumber) bitmap_line_xdyd::$6 in (number~) bitmap_line_xdyd::$6 ← (byte) bitmap_line_xdyd::x1#2 + (unumber)(number) 1
|
|
Adding number conversion cast (unumber) 1 in (byte~) bitmap_line_ydxi::$0 ← (byte) bitmap_line_ydxi::xd#2 >> (number) 1
|
|
Adding number conversion cast (unumber) 1 in (number~) bitmap_line_ydxi::$6 ← (byte) bitmap_line_ydxi::y1#2 + (number) 1
|
|
Adding number conversion cast (unumber) bitmap_line_ydxi::$6 in (number~) bitmap_line_ydxi::$6 ← (byte) bitmap_line_ydxi::y1#2 + (unumber)(number) 1
|
|
Adding number conversion cast (unumber) 1 in (byte~) bitmap_line_ydxd::$0 ← (byte) bitmap_line_ydxd::xd#2 >> (number) 1
|
|
Adding number conversion cast (unumber) 1 in (number~) bitmap_line_ydxd::$6 ← (byte) bitmap_line_ydxd::y1#2 + (number) 1
|
|
Adding number conversion cast (unumber) bitmap_line_ydxd::$6 in (number~) bitmap_line_ydxd::$6 ← (byte) bitmap_line_ydxd::y1#2 + (unumber)(number) 1
|
|
Adding number conversion cast (unumber) 0 in *((const nomodify byte*) BORDER_COLOR) ← (number) 0
|
|
Adding number conversion cast (unumber) 0 in *((const nomodify byte*) BG_COLOR) ← (number) 0
|
|
Adding number conversion cast (unumber) VIC_BMM|VIC_DEN|VIC_RSEL|3 in *((const nomodify byte*) D011) ← (const nomodify byte) VIC_BMM|(const nomodify byte) VIC_DEN|(const nomodify byte) VIC_RSEL|(number) 3
|
|
Adding number conversion cast (unumber) 3 in *((const nomodify byte*) D011) ← ((unumber)) (const nomodify byte) VIC_BMM|(const nomodify byte) VIC_DEN|(const nomodify byte) VIC_RSEL|(number) 3
|
|
Adding number conversion cast (unumber) $3fff in *((const nomodify byte*) VIC_MEMORY) ← (byte)(word)(const nomodify byte*) SCREEN&(number) $3fff/(number) $40|(word)(const nomodify byte*) BITMAP&(number) $3fff/(number) $400
|
|
Adding number conversion cast (unumber) $3fff in *((const nomodify byte*) VIC_MEMORY) ← (byte)(word)(const nomodify byte*) SCREEN&(unumber)(number) $3fff/(number) $40|(word)(const nomodify byte*) BITMAP&(number) $3fff/(number) $400
|
|
Adding number conversion cast (unumber) 0 in (byte) bitmap_line::x0#0 ← (number) 0
|
|
Adding number conversion cast (unumber) 0 in (byte) bitmap_line::y0#0 ← (number) 0
|
|
Adding number conversion cast (unumber) $64 in (byte) bitmap_line::y1#0 ← (number) $64
|
|
Adding number conversion cast (unumber) $400 in (bool~) init_screen::$0 ← (byte*) init_screen::c#2 != (const nomodify byte*) SCREEN+(number) $400
|
|
Adding number conversion cast (unumber) $14 in *((byte*) init_screen::c#3) ← (number) $14
|
|
Successful SSA optimization PassNAddNumberTypeConversions
|
|
Adding number conversion cast (unumber) $40 in *((const nomodify byte*) VIC_MEMORY) ← (byte)(word)(const nomodify byte*) SCREEN&(unumber)(number) $3fff/(number) $40|(word)(const nomodify byte*) BITMAP&(unumber)(number) $3fff/(number) $400
|
|
Adding number conversion cast (unumber) $400 in *((const nomodify byte*) VIC_MEMORY) ← (byte)(word)(const nomodify byte*) SCREEN&(unumber)(number) $3fff/(unumber)(number) $40|(word)(const nomodify byte*) BITMAP&(unumber)(number) $3fff/(number) $400
|
|
Successful SSA optimization PassNAddNumberTypeConversions
|
|
Inlining cast (byte) bitmap_init::bits#2 ← (unumber)(number) $80
|
|
Inlining cast *((byte*) bitmap_clear::bitmap#2) ← (unumber)(number) 0
|
|
Inlining cast (byte*) bitmap_plot::plotter#0 ← (byte*)(word~) bitmap_plot::$0
|
|
Inlining cast *((const nomodify byte*) BORDER_COLOR) ← (unumber)(number) 0
|
|
Inlining cast *((const nomodify byte*) BG_COLOR) ← (unumber)(number) 0
|
|
Inlining cast *((const nomodify byte*) D011) ← (unumber)(const nomodify byte) VIC_BMM|(const nomodify byte) VIC_DEN|(const nomodify byte) VIC_RSEL|(unumber)(number) 3
|
|
Inlining cast (byte) bitmap_line::x0#0 ← (unumber)(number) 0
|
|
Inlining cast (byte) bitmap_line::y0#0 ← (unumber)(number) 0
|
|
Inlining cast (byte) bitmap_line::y1#0 ← (unumber)(number) $64
|
|
Inlining cast *((byte*) init_screen::c#3) ← (unumber)(number) $14
|
|
Successful SSA optimization Pass2InlineCast
|
|
Simplifying constant pointer cast (byte*) 53280
|
|
Simplifying constant pointer cast (byte*) 53281
|
|
Simplifying constant pointer cast (byte*) 53265
|
|
Simplifying constant pointer cast (byte*) 53272
|
|
Simplifying constant pointer cast (byte*) 1024
|
|
Simplifying constant pointer cast (byte*) 8192
|
|
Simplifying constant integer cast $f8
|
|
Simplifying constant integer cast 1
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast $80
|
|
Simplifying constant pointer cast (byte*) 0
|
|
Simplifying constant integer cast 7
|
|
Simplifying constant integer cast 7
|
|
Simplifying constant integer cast 7
|
|
Simplifying constant integer cast *((const to_nomodify byte*) bitmap_plot_xhi + (unumber)(number) 0)
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast *((const to_nomodify byte*) bitmap_plot_xlo + (unumber)(number) 0)
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast *((const to_nomodify byte*) bitmap_plot_xhi + (byte) bitmap_plot::x#4)
|
|
Simplifying constant integer cast *((const to_nomodify byte*) bitmap_plot_xlo + (byte) bitmap_plot::x#4)
|
|
Simplifying constant integer cast *((const to_nomodify byte*) bitmap_plot_yhi + (byte) bitmap_plot::y#4)
|
|
Simplifying constant integer cast *((const to_nomodify byte*) bitmap_plot_ylo + (byte) bitmap_plot::y#4)
|
|
Simplifying constant integer cast 1
|
|
Simplifying constant integer cast 1
|
|
Simplifying constant integer cast 1
|
|
Simplifying constant integer cast 1
|
|
Simplifying constant integer cast 1
|
|
Simplifying constant integer cast 1
|
|
Simplifying constant integer cast 1
|
|
Simplifying constant integer cast 1
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast (const nomodify byte) VIC_BMM|(const nomodify byte) VIC_DEN|(const nomodify byte) VIC_RSEL|(unumber)(number) 3
|
|
Simplifying constant integer cast 3
|
|
Simplifying constant integer cast $3fff
|
|
Simplifying constant integer cast $40
|
|
Simplifying constant integer cast $3fff
|
|
Simplifying constant integer cast $400
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast $64
|
|
Simplifying constant integer cast $400
|
|
Simplifying constant integer cast $14
|
|
Successful SSA optimization PassNCastSimplification
|
|
Finalized unsigned number type (byte) $f8
|
|
Finalized unsigned number type (byte) 1
|
|
Finalized unsigned number type (byte) 0
|
|
Finalized unsigned number type (byte) $80
|
|
Finalized unsigned number type (byte) 7
|
|
Finalized unsigned number type (byte) 7
|
|
Finalized unsigned number type (byte) 7
|
|
Finalized unsigned number type (byte) 0
|
|
Finalized unsigned number type (byte) 0
|
|
Finalized unsigned number type (byte) 0
|
|
Finalized unsigned number type (byte) 1
|
|
Finalized unsigned number type (byte) 1
|
|
Finalized unsigned number type (byte) 1
|
|
Finalized unsigned number type (byte) 1
|
|
Finalized unsigned number type (byte) 1
|
|
Finalized unsigned number type (byte) 1
|
|
Finalized unsigned number type (byte) 1
|
|
Finalized unsigned number type (byte) 1
|
|
Finalized unsigned number type (byte) 0
|
|
Finalized unsigned number type (byte) 0
|
|
Finalized unsigned number type (byte) 3
|
|
Finalized unsigned number type (word) $3fff
|
|
Finalized unsigned number type (byte) $40
|
|
Finalized unsigned number type (word) $3fff
|
|
Finalized unsigned number type (word) $400
|
|
Finalized unsigned number type (byte) 0
|
|
Finalized unsigned number type (byte) 0
|
|
Finalized unsigned number type (byte) $64
|
|
Finalized unsigned number type (word) $400
|
|
Finalized unsigned number type (byte) $14
|
|
Successful SSA optimization PassNFinalizeNumberTypeConversions
|
|
Inferred type updated to byte in (unumber~) bitmap_init::$0 ← (byte) bitmap_init::x#2 & (byte) $f8
|
|
Inferred type updated to byte in (unumber~) bitmap_init::$6 ← (byte) bitmap_init::y#2 & (byte) 7
|
|
Inferred type updated to byte in (unumber~) bitmap_init::$8 ← (byte~) bitmap_init::$6 | (byte~) bitmap_init::$7
|
|
Inferred type updated to byte in (unumber~) bitmap_init::$10 ← (byte) bitmap_init::y#2 & (byte) 7
|
|
Inferred type updated to byte in (unumber~) bitmap_line_xdyi::$6 ← (byte) bitmap_line_xdyi::x1#2 + (byte) 1
|
|
Inferred type updated to byte in (unumber~) bitmap_line_xdyd::$6 ← (byte) bitmap_line_xdyd::x1#2 + (byte) 1
|
|
Inferred type updated to byte in (unumber~) bitmap_line_ydxi::$6 ← (byte) bitmap_line_ydxi::y1#2 + (byte) 1
|
|
Inferred type updated to byte in (unumber~) bitmap_line_ydxd::$6 ← (byte) bitmap_line_ydxd::y1#2 + (byte) 1
|
|
Adding pointer type conversion cast (byte*) bitmap_clear::$2 in (byte*~) bitmap_clear::$2 ← *((const to_nomodify byte*) bitmap_plot_xhi + (byte) 0) w= *((const to_nomodify byte*) bitmap_plot_xlo + (byte) 0)
|
|
Successful SSA optimization PassNAddTypeConversionAssignment
|
|
Inversing boolean not [12] (bool~) bitmap_init::$4 ← (byte) bitmap_init::bits#1 != (byte) 0 from [11] (bool~) bitmap_init::$3 ← (byte) bitmap_init::bits#1 == (byte) 0
|
|
Inversing boolean not [31] (bool~) bitmap_init::$12 ← (byte~) bitmap_init::$10 != (byte) 7 from [30] (bool~) bitmap_init::$11 ← (byte~) bitmap_init::$10 == (byte) 7
|
|
Inversing boolean not [172] (bool~) bitmap_line_xdyi::$4 ← (byte) bitmap_line_xdyi::xd#2 >= (byte) bitmap_line_xdyi::e#1 from [171] (bool~) bitmap_line_xdyi::$3 ← (byte) bitmap_line_xdyi::xd#2 < (byte) bitmap_line_xdyi::e#1
|
|
Inversing boolean not [195] (bool~) bitmap_line_xdyd::$4 ← (byte) bitmap_line_xdyd::xd#2 >= (byte) bitmap_line_xdyd::e#1 from [194] (bool~) bitmap_line_xdyd::$3 ← (byte) bitmap_line_xdyd::xd#2 < (byte) bitmap_line_xdyd::e#1
|
|
Inversing boolean not [218] (bool~) bitmap_line_ydxi::$4 ← (byte) bitmap_line_ydxi::yd#2 >= (byte) bitmap_line_ydxi::e#1 from [217] (bool~) bitmap_line_ydxi::$3 ← (byte) bitmap_line_ydxi::yd#2 < (byte) bitmap_line_ydxi::e#1
|
|
Inversing boolean not [242] (bool~) bitmap_line_ydxd::$4 ← (byte) bitmap_line_ydxd::yd#2 >= (byte) bitmap_line_ydxd::e#1 from [241] (bool~) bitmap_line_ydxd::$3 ← (byte) bitmap_line_ydxd::yd#2 < (byte) bitmap_line_ydxd::e#1
|
|
Successful SSA optimization Pass2UnaryNotSimplification
|
|
Alias bitmap_init::bits#1 = bitmap_init::$2
|
|
Alias bitmap_init::x#2 = bitmap_init::x#4
|
|
Alias bitmap_init::bitmap#1 = bitmap_init::bitmap#4
|
|
Alias bitmap_init::yoffs#2 = bitmap_init::yoffs#3
|
|
Alias bitmap_init::y#2 = bitmap_init::y#4
|
|
Alias bitmap_init::yoffs#1 = bitmap_init::$13
|
|
Alias bitmap_clear::bitmap#0 = bitmap_clear::$2
|
|
Alias bitmap_clear::y#2 = bitmap_clear::y#3
|
|
Alias bitmap_clear::bitmap#1 = bitmap_clear::bitmap#4
|
|
Alias bitmap_plot::plotter_x#0 = bitmap_plot::$2
|
|
Alias bitmap_plot::plotter_y#0 = bitmap_plot::$3
|
|
Alias bitmap_line::x1#1 = bitmap_line::x1#2 bitmap_line::x1#3 bitmap_line::x1#11 bitmap_line::x1#10 bitmap_line::x1#4 bitmap_line::x1#5 bitmap_line::x1#6 bitmap_line::x1#13 bitmap_line::x1#12 bitmap_line::x1#7 bitmap_line::x1#8 bitmap_line::x1#9
|
|
Alias bitmap_line::x0#1 = bitmap_line::x0#2 bitmap_line::x0#3 bitmap_line::x0#11 bitmap_line::x0#10 bitmap_line::x0#4 bitmap_line::x0#5 bitmap_line::x0#6 bitmap_line::x0#13 bitmap_line::x0#12 bitmap_line::x0#7 bitmap_line::x0#8 bitmap_line::x0#9
|
|
Alias bitmap_line::y0#1 = bitmap_line::y0#13 bitmap_line::y0#2 bitmap_line::y0#3 bitmap_line::y0#4 bitmap_line::y0#5 bitmap_line::y0#6 bitmap_line::y0#7 bitmap_line::y0#8 bitmap_line::y0#9 bitmap_line::y0#10 bitmap_line::y0#11 bitmap_line::y0#12
|
|
Alias bitmap_line::y1#1 = bitmap_line::y1#13 bitmap_line::y1#2 bitmap_line::y1#3 bitmap_line::y1#4 bitmap_line::y1#5 bitmap_line::y1#6 bitmap_line::y1#7 bitmap_line::y1#8 bitmap_line::y1#9 bitmap_line::y1#10 bitmap_line::y1#11 bitmap_line::y1#12
|
|
Alias bitmap_line::xd#1 = bitmap_line::$11 bitmap_line::xd#9 bitmap_line::xd#10 bitmap_line::xd#11 bitmap_line::xd#12 bitmap_line::xd#13 bitmap_line::xd#14
|
|
Alias bitmap_line::xd#2 = bitmap_line::$1 bitmap_line::xd#3 bitmap_line::xd#4 bitmap_line::xd#5 bitmap_line::xd#6 bitmap_line::xd#7 bitmap_line::xd#8
|
|
Alias bitmap_line::yd#1 = bitmap_line::$7 bitmap_line::yd#7 bitmap_line::yd#8
|
|
Alias bitmap_line::yd#2 = bitmap_line::$3 bitmap_line::yd#5 bitmap_line::yd#6
|
|
Alias bitmap_line::yd#11 = bitmap_line::yd#3 bitmap_line::$17 bitmap_line::yd#12
|
|
Alias bitmap_line::yd#10 = bitmap_line::yd#4 bitmap_line::$13 bitmap_line::yd#9
|
|
Alias bitmap_line_xdyi::e#0 = bitmap_line_xdyi::$0
|
|
Alias bitmap_line_xdyi::x#3 = bitmap_line_xdyi::x#4
|
|
Alias bitmap_line_xdyi::e#3 = bitmap_line_xdyi::e#5
|
|
Alias bitmap_line_xdyi::yd#3 = bitmap_line_xdyi::yd#4 bitmap_line_xdyi::yd#6
|
|
Alias bitmap_line_xdyi::xd#2 = bitmap_line_xdyi::xd#4 bitmap_line_xdyi::xd#3
|
|
Alias bitmap_line_xdyi::x1#3 = bitmap_line_xdyi::x1#4 bitmap_line_xdyi::x1#5
|
|
Alias bitmap_line_xdyi::y#3 = bitmap_line_xdyi::y#7 bitmap_line_xdyi::y#4
|
|
Alias bitmap_line_xdyi::e#1 = bitmap_line_xdyi::$2 bitmap_line_xdyi::e#4
|
|
Alias bitmap_line_xdyi::x#2 = bitmap_line_xdyi::x#7
|
|
Alias bitmap_line_xdyi::e#2 = bitmap_line_xdyi::$5
|
|
Alias bitmap_line_xdyd::e#0 = bitmap_line_xdyd::$0
|
|
Alias bitmap_line_xdyd::x#3 = bitmap_line_xdyd::x#4
|
|
Alias bitmap_line_xdyd::e#3 = bitmap_line_xdyd::e#5
|
|
Alias bitmap_line_xdyd::yd#3 = bitmap_line_xdyd::yd#4 bitmap_line_xdyd::yd#6
|
|
Alias bitmap_line_xdyd::xd#2 = bitmap_line_xdyd::xd#4 bitmap_line_xdyd::xd#3
|
|
Alias bitmap_line_xdyd::x1#3 = bitmap_line_xdyd::x1#4 bitmap_line_xdyd::x1#5
|
|
Alias bitmap_line_xdyd::y#3 = bitmap_line_xdyd::y#7 bitmap_line_xdyd::y#4
|
|
Alias bitmap_line_xdyd::e#1 = bitmap_line_xdyd::$2 bitmap_line_xdyd::e#4
|
|
Alias bitmap_line_xdyd::x#2 = bitmap_line_xdyd::x#7
|
|
Alias bitmap_line_xdyd::e#2 = bitmap_line_xdyd::$5
|
|
Alias bitmap_line_ydxi::e#0 = bitmap_line_ydxi::$0
|
|
Alias bitmap_line_ydxi::y#3 = bitmap_line_ydxi::y#4
|
|
Alias bitmap_line_ydxi::e#3 = bitmap_line_ydxi::e#5
|
|
Alias bitmap_line_ydxi::xd#3 = bitmap_line_ydxi::xd#4 bitmap_line_ydxi::xd#6
|
|
Alias bitmap_line_ydxi::yd#2 = bitmap_line_ydxi::yd#4 bitmap_line_ydxi::yd#3
|
|
Alias bitmap_line_ydxi::y1#3 = bitmap_line_ydxi::y1#4 bitmap_line_ydxi::y1#5
|
|
Alias bitmap_line_ydxi::x#3 = bitmap_line_ydxi::x#7 bitmap_line_ydxi::x#4
|
|
Alias bitmap_line_ydxi::e#1 = bitmap_line_ydxi::$2 bitmap_line_ydxi::e#4
|
|
Alias bitmap_line_ydxi::y#2 = bitmap_line_ydxi::y#7
|
|
Alias bitmap_line_ydxi::e#2 = bitmap_line_ydxi::$5
|
|
Alias bitmap_line_ydxd::e#0 = bitmap_line_ydxd::$0
|
|
Alias bitmap_line_ydxd::y#2 = bitmap_line_ydxd::y#5 bitmap_line_ydxd::y#4
|
|
Alias bitmap_line_ydxd::e#3 = bitmap_line_ydxd::e#5
|
|
Alias bitmap_line_ydxd::xd#3 = bitmap_line_ydxd::xd#4 bitmap_line_ydxd::xd#6
|
|
Alias bitmap_line_ydxd::yd#2 = bitmap_line_ydxd::yd#4 bitmap_line_ydxd::yd#3
|
|
Alias bitmap_line_ydxd::y1#3 = bitmap_line_ydxd::y1#4 bitmap_line_ydxd::y1#5
|
|
Alias bitmap_line_ydxd::x#3 = bitmap_line_ydxd::x#7 bitmap_line_ydxd::x#4
|
|
Alias bitmap_line_ydxd::e#1 = bitmap_line_ydxd::$2 bitmap_line_ydxd::e#4
|
|
Alias bitmap_line_ydxd::y#3 = bitmap_line_ydxd::y#8
|
|
Alias bitmap_line_ydxd::e#2 = bitmap_line_ydxd::$5
|
|
Alias next#10 = next#13 next#14 next#12
|
|
Alias next#5 = next#6
|
|
Alias next#0 = next#7 next#1
|
|
Alias init_screen::c#2 = init_screen::c#3
|
|
Alias next#11 = next#2
|
|
Alias next#3 = next#8 next#9 next#4
|
|
Successful SSA optimization Pass2AliasElimination
|
|
Alias bitmap_init::x#2 = bitmap_init::x#3
|
|
Alias bitmap_init::bitmap#1 = bitmap_init::bitmap#3
|
|
Alias bitmap_init::y#2 = bitmap_init::y#3
|
|
Alias bitmap_line_xdyi::x1#2 = bitmap_line_xdyi::x1#3
|
|
Alias bitmap_line_xdyi::x#2 = bitmap_line_xdyi::x#5
|
|
Alias bitmap_line_xdyi::yd#3 = bitmap_line_xdyi::yd#5
|
|
Alias bitmap_line_xdyi::xd#2 = bitmap_line_xdyi::xd#6
|
|
Alias bitmap_line_xdyd::x1#2 = bitmap_line_xdyd::x1#3
|
|
Alias bitmap_line_xdyd::x#2 = bitmap_line_xdyd::x#5
|
|
Alias bitmap_line_xdyd::yd#3 = bitmap_line_xdyd::yd#5
|
|
Alias bitmap_line_xdyd::xd#2 = bitmap_line_xdyd::xd#6
|
|
Alias bitmap_line_ydxi::y1#2 = bitmap_line_ydxi::y1#3
|
|
Alias bitmap_line_ydxi::y#2 = bitmap_line_ydxi::y#5
|
|
Alias bitmap_line_ydxi::xd#3 = bitmap_line_ydxi::xd#5
|
|
Alias bitmap_line_ydxi::yd#2 = bitmap_line_ydxi::yd#6
|
|
Alias bitmap_line_ydxd::y1#2 = bitmap_line_ydxd::y1#3
|
|
Alias bitmap_line_ydxd::y#3 = bitmap_line_ydxd::y#6
|
|
Alias bitmap_line_ydxd::xd#3 = bitmap_line_ydxd::xd#5
|
|
Alias bitmap_line_ydxd::yd#2 = bitmap_line_ydxd::yd#6
|
|
Successful SSA optimization Pass2AliasElimination
|
|
Identical Phi Values (byte*) bitmap_init::bitmap#2 (byte*) bitmap_init::bitmap#0
|
|
Identical Phi Values (byte*) bitmap_init::bitmap#1 (byte*) bitmap_init::bitmap#2
|
|
Identical Phi Values (byte) bitmap_clear::y#2 (byte) bitmap_clear::y#4
|
|
Identical Phi Values (byte) bitmap_line::x0#1 (byte) bitmap_line::x0#0
|
|
Identical Phi Values (byte) bitmap_line::x1#1 (byte) bitmap_line::x1#0
|
|
Identical Phi Values (byte) bitmap_line::y0#1 (byte) bitmap_line::y0#0
|
|
Identical Phi Values (byte) bitmap_line::y1#1 (byte) bitmap_line::y1#0
|
|
Identical Phi Values (byte) bitmap_line_xdyi::yd#3 (byte) bitmap_line_xdyi::yd#2
|
|
Identical Phi Values (byte) bitmap_line_xdyi::xd#2 (byte) bitmap_line_xdyi::xd#5
|
|
Identical Phi Values (byte) bitmap_line_xdyi::x1#2 (byte) bitmap_line_xdyi::x1#6
|
|
Identical Phi Values (byte) bitmap_line_xdyd::yd#3 (byte) bitmap_line_xdyd::yd#2
|
|
Identical Phi Values (byte) bitmap_line_xdyd::xd#2 (byte) bitmap_line_xdyd::xd#5
|
|
Identical Phi Values (byte) bitmap_line_xdyd::x1#2 (byte) bitmap_line_xdyd::x1#6
|
|
Identical Phi Values (byte) bitmap_line_ydxi::xd#3 (byte) bitmap_line_ydxi::xd#2
|
|
Identical Phi Values (byte) bitmap_line_ydxi::yd#2 (byte) bitmap_line_ydxi::yd#5
|
|
Identical Phi Values (byte) bitmap_line_ydxi::y1#2 (byte) bitmap_line_ydxi::y1#6
|
|
Identical Phi Values (byte) bitmap_line_ydxd::xd#3 (byte) bitmap_line_ydxd::xd#2
|
|
Identical Phi Values (byte) bitmap_line_ydxd::yd#2 (byte) bitmap_line_ydxd::yd#5
|
|
Identical Phi Values (byte) bitmap_line_ydxd::y1#2 (byte) bitmap_line_ydxd::y1#6
|
|
Identical Phi Values (byte) next#10 (byte) next#11
|
|
Identical Phi Values (byte) next#3 (byte) next#0
|
|
Successful SSA optimization Pass2IdenticalPhiElimination
|
|
Identified duplicate assignment right side [29] (byte~) bitmap_init::$10 ← (byte) bitmap_init::y#2 & (byte) 7
|
|
Successful SSA optimization Pass2DuplicateRValueIdentification
|
|
Simple Condition (bool~) bitmap_init::$4 [11] if((byte) bitmap_init::bits#1!=(byte) 0) goto bitmap_init::@2
|
|
Simple Condition (bool~) bitmap_init::$5 [15] if((byte) bitmap_init::x#1!=rangelast(0,$ff)) goto bitmap_init::@1
|
|
Simple Condition (bool~) bitmap_init::$12 [28] if((byte~) bitmap_init::$10!=(byte) 7) goto bitmap_init::@6
|
|
Simple Condition (bool~) bitmap_init::$14 [32] if((byte) bitmap_init::y#1!=rangelast(0,$ff)) goto bitmap_init::@5
|
|
Simple Condition (bool~) bitmap_clear::$0 [45] if((byte) bitmap_clear::x#1!=rangelast(0,$c7)) goto bitmap_clear::@2
|
|
Simple Condition (bool~) bitmap_clear::$1 [48] if((byte) bitmap_clear::y#1!=rangelast(0,$27)) goto bitmap_clear::@1
|
|
Simple Condition (bool~) bitmap_line::$0 [62] if((byte) bitmap_line::x0#0<(byte) bitmap_line::x1#0) goto bitmap_line::@1
|
|
Simple Condition (bool~) bitmap_line::$12 [65] if((byte) bitmap_line::y0#0<(byte) bitmap_line::y1#0) goto bitmap_line::@11
|
|
Simple Condition (bool~) bitmap_line::$2 [68] if((byte) bitmap_line::y0#0<(byte) bitmap_line::y1#0) goto bitmap_line::@7
|
|
Simple Condition (bool~) bitmap_line::$8 [71] if((byte) bitmap_line::yd#1<(byte) bitmap_line::xd#2) goto bitmap_line::@9
|
|
Simple Condition (bool~) bitmap_line::$4 [74] if((byte) bitmap_line::yd#2<(byte) bitmap_line::xd#2) goto bitmap_line::@8
|
|
Simple Condition (bool~) bitmap_line::$18 [101] if((byte) bitmap_line::yd#11<(byte) bitmap_line::xd#1) goto bitmap_line::@13
|
|
Simple Condition (bool~) bitmap_line::$14 [104] if((byte) bitmap_line::yd#10<(byte) bitmap_line::xd#1) goto bitmap_line::@12
|
|
Simple Condition (bool~) bitmap_line_xdyi::$4 [139] if((byte) bitmap_line_xdyi::xd#5>=(byte) bitmap_line_xdyi::e#1) goto bitmap_line_xdyi::@2
|
|
Simple Condition (bool~) bitmap_line_xdyi::$7 [143] if((byte) bitmap_line_xdyi::x#2!=(byte~) bitmap_line_xdyi::$6) goto bitmap_line_xdyi::@1
|
|
Simple Condition (bool~) bitmap_line_xdyd::$4 [156] if((byte) bitmap_line_xdyd::xd#5>=(byte) bitmap_line_xdyd::e#1) goto bitmap_line_xdyd::@2
|
|
Simple Condition (bool~) bitmap_line_xdyd::$7 [160] if((byte) bitmap_line_xdyd::x#2!=(byte~) bitmap_line_xdyd::$6) goto bitmap_line_xdyd::@1
|
|
Simple Condition (bool~) bitmap_line_ydxi::$4 [173] if((byte) bitmap_line_ydxi::yd#5>=(byte) bitmap_line_ydxi::e#1) goto bitmap_line_ydxi::@2
|
|
Simple Condition (bool~) bitmap_line_ydxi::$7 [177] if((byte) bitmap_line_ydxi::y#2!=(byte~) bitmap_line_ydxi::$6) goto bitmap_line_ydxi::@1
|
|
Simple Condition (bool~) bitmap_line_ydxd::$4 [190] if((byte) bitmap_line_ydxd::yd#5>=(byte) bitmap_line_ydxd::e#1) goto bitmap_line_ydxd::@2
|
|
Simple Condition (bool~) bitmap_line_ydxd::$7 [194] if((byte) bitmap_line_ydxd::y#3!=(byte~) bitmap_line_ydxd::$6) goto bitmap_line_ydxd::@1
|
|
Simple Condition (bool~) init_screen::$0 [219] if((byte*) init_screen::c#2!=(const nomodify byte*) SCREEN+(word) $400) goto init_screen::@2
|
|
Successful SSA optimization Pass2ConditionalJumpSimplification
|
|
Constant (const byte) bitmap_init::bits#0 = $80
|
|
Constant (const byte) bitmap_init::x#0 = 0
|
|
Constant (const byte) bitmap_init::bits#2 = $80
|
|
Constant (const byte*) bitmap_init::yoffs#0 = (byte*) 0
|
|
Constant (const byte) bitmap_init::y#0 = 0
|
|
Constant (const byte) bitmap_clear::y#0 = 0
|
|
Constant (const byte) bitmap_clear::x#0 = 0
|
|
Constant (const byte) bitmap_line::xd#0 = 0
|
|
Constant (const byte) bitmap_line::yd#0 = 0
|
|
Constant (const byte*) bitmap_init::bitmap#0 = BITMAP
|
|
Constant (const byte) bitmap_line::x0#0 = 0
|
|
Constant (const byte) bitmap_line::y0#0 = 0
|
|
Constant (const byte) bitmap_line::y1#0 = $64
|
|
Constant (const byte*) init_screen::c#0 = SCREEN
|
|
Constant (const byte) next#11 = 0
|
|
Successful SSA optimization Pass2ConstantIdentification
|
|
Constant (const byte) bitmap_line_xdyi::y#0 = bitmap_line::y1#0
|
|
Constant (const byte) bitmap_line_xdyi::x1#0 = bitmap_line::x0#0
|
|
Constant (const byte) bitmap_line_ydxi::y#0 = bitmap_line::y1#0
|
|
Constant (const byte) bitmap_line_ydxi::y1#0 = bitmap_line::y0#0
|
|
Constant (const byte) bitmap_line_xdyd::y#0 = bitmap_line::y1#0
|
|
Constant (const byte) bitmap_line_xdyd::x1#0 = bitmap_line::x0#0
|
|
Constant (const byte) bitmap_line_ydxd::y#0 = bitmap_line::y0#0
|
|
Constant (const byte) bitmap_line_ydxd::x#0 = bitmap_line::x0#0
|
|
Constant (const byte) bitmap_line_ydxd::y1#0 = bitmap_line::y1#0
|
|
Constant (const byte) bitmap_line_xdyd::x#1 = bitmap_line::x0#0
|
|
Constant (const byte) bitmap_line_xdyd::y#1 = bitmap_line::y0#0
|
|
Constant (const byte) bitmap_line_ydxd::y#1 = bitmap_line::y1#0
|
|
Constant (const byte) bitmap_line_ydxd::y1#1 = bitmap_line::y0#0
|
|
Constant (const byte) bitmap_line_xdyi::x#1 = bitmap_line::x0#0
|
|
Constant (const byte) bitmap_line_xdyi::y#1 = bitmap_line::y0#0
|
|
Constant (const byte) bitmap_line_ydxi::y#1 = bitmap_line::y0#0
|
|
Constant (const byte) bitmap_line_ydxi::x#1 = bitmap_line::x0#0
|
|
Constant (const byte) bitmap_line_ydxi::y1#1 = bitmap_line::y1#0
|
|
Successful SSA optimization Pass2ConstantIdentification
|
|
if() condition always true - replacing block destination [65] if((const byte) bitmap_line::y0#0<(const byte) bitmap_line::y1#0) goto bitmap_line::@11
|
|
if() condition always true - replacing block destination [68] if((const byte) bitmap_line::y0#0<(const byte) bitmap_line::y1#0) goto bitmap_line::@7
|
|
if() condition always true - replacing block destination [214] if(true) goto main::@1
|
|
Successful SSA optimization Pass2ConstantIfs
|
|
Resolved ranged next value [13] bitmap_init::x#1 ← ++ bitmap_init::x#2 to ++
|
|
Resolved ranged comparison value [15] if(bitmap_init::x#1!=rangelast(0,$ff)) goto bitmap_init::@1 to (number) 0
|
|
Resolved ranged next value [30] bitmap_init::y#1 ← ++ bitmap_init::y#2 to ++
|
|
Resolved ranged comparison value [32] if(bitmap_init::y#1!=rangelast(0,$ff)) goto bitmap_init::@5 to (number) 0
|
|
Resolved ranged next value [43] bitmap_clear::x#1 ← ++ bitmap_clear::x#2 to ++
|
|
Resolved ranged comparison value [45] if(bitmap_clear::x#1!=rangelast(0,$c7)) goto bitmap_clear::@2 to (number) $c8
|
|
Resolved ranged next value [46] bitmap_clear::y#1 ← ++ bitmap_clear::y#4 to ++
|
|
Resolved ranged comparison value [48] if(bitmap_clear::y#1!=rangelast(0,$27)) goto bitmap_clear::@1 to (number) $28
|
|
Simplifying expression containing zero bitmap_plot_xhi in [35] (word~) bitmap_clear::$3 ← *((const to_nomodify byte*) bitmap_plot_xhi + (byte) 0) w= *((const to_nomodify byte*) bitmap_plot_xlo + (byte) 0)
|
|
Simplifying expression containing zero bitmap_plot_xlo in [35] (word~) bitmap_clear::$3 ← *((const to_nomodify byte*) bitmap_plot_xhi) w= *((const to_nomodify byte*) bitmap_plot_xlo + (byte) 0)
|
|
Simplifying expression containing zero bitmap_line::x1#0 in [63] (byte) bitmap_line::xd#1 ← (byte) bitmap_line::x1#0 - (const byte) bitmap_line::x0#0
|
|
Simplifying expression containing zero bitmap_line::x1#0 in [66] (byte) bitmap_line::xd#2 ← (const byte) bitmap_line::x0#0 - (byte) bitmap_line::x1#0
|
|
Simplifying expression containing zero bitmap_line::y1#0 in [69] (byte) bitmap_line::yd#1 ← (const byte) bitmap_line::y1#0 - (const byte) bitmap_line::y0#0
|
|
Simplifying expression containing zero bitmap_line::y1#0 in [72] (byte) bitmap_line::yd#2 ← (const byte) bitmap_line::y0#0 - (const byte) bitmap_line::y1#0
|
|
Simplifying expression containing zero bitmap_line::y1#0 in [99] (byte) bitmap_line::yd#11 ← (const byte) bitmap_line::y1#0 - (const byte) bitmap_line::y0#0
|
|
Simplifying expression containing zero bitmap_line::y1#0 in [102] (byte) bitmap_line::yd#10 ← (const byte) bitmap_line::y0#0 - (const byte) bitmap_line::y1#0
|
|
Successful SSA optimization PassNSimplifyExpressionWithZero
|
|
Eliminating unused constant (const byte) bitmap_line::xd#0
|
|
Eliminating unused constant (const byte) bitmap_line::yd#0
|
|
Successful SSA optimization PassNEliminateUnusedVars
|
|
Eliminating variable (byte) bitmap_line::yd#2 from unused block bitmap_line::@3
|
|
Eliminating variable (byte) bitmap_line_xdyi::x#0 from unused block bitmap_line::@8
|
|
Eliminating variable (byte) bitmap_line_xdyi::xd#0 from unused block bitmap_line::@8
|
|
Eliminating variable (byte) bitmap_line_xdyi::yd#0 from unused block bitmap_line::@8
|
|
Eliminating variable (byte) bitmap_line_ydxi::x#0 from unused block bitmap_line::@4
|
|
Eliminating variable (byte) bitmap_line_ydxi::yd#0 from unused block bitmap_line::@4
|
|
Eliminating variable (byte) bitmap_line_ydxi::xd#0 from unused block bitmap_line::@4
|
|
Eliminating variable (byte) bitmap_line::yd#10 from unused block bitmap_line::@5
|
|
Eliminating variable (byte) bitmap_line_xdyd::x1#1 from unused block bitmap_line::@12
|
|
Eliminating variable (byte) bitmap_line_xdyd::xd#1 from unused block bitmap_line::@12
|
|
Eliminating variable (byte) bitmap_line_xdyd::yd#1 from unused block bitmap_line::@12
|
|
Eliminating variable (byte) bitmap_line_ydxd::x#1 from unused block bitmap_line::@6
|
|
Eliminating variable (byte) bitmap_line_ydxd::yd#1 from unused block bitmap_line::@6
|
|
Eliminating variable (byte) bitmap_line_ydxd::xd#1 from unused block bitmap_line::@6
|
|
Removing unused block bitmap_line::@3
|
|
Removing PHI-reference to removed block (bitmap_line::@8) in block bitmap_line_xdyi
|
|
Removing PHI-reference to removed block (bitmap_line::@8) in block bitmap_line_xdyi
|
|
Removing PHI-reference to removed block (bitmap_line::@8) in block bitmap_line_xdyi
|
|
Removing PHI-reference to removed block (bitmap_line::@8) in block bitmap_line_xdyi
|
|
Removing PHI-reference to removed block (bitmap_line::@8) in block bitmap_line_xdyi
|
|
Removing unused block bitmap_line::@8
|
|
Removing unused block bitmap_line::@15
|
|
Removing PHI-reference to removed block (bitmap_line::@4) in block bitmap_line_ydxi
|
|
Removing PHI-reference to removed block (bitmap_line::@4) in block bitmap_line_ydxi
|
|
Removing PHI-reference to removed block (bitmap_line::@4) in block bitmap_line_ydxi
|
|
Removing PHI-reference to removed block (bitmap_line::@4) in block bitmap_line_ydxi
|
|
Removing PHI-reference to removed block (bitmap_line::@4) in block bitmap_line_ydxi
|
|
Removing unused block bitmap_line::@4
|
|
Removing unused block bitmap_line::@16
|
|
Removing unused block bitmap_line::@5
|
|
Removing PHI-reference to removed block (bitmap_line::@12) in block bitmap_line_xdyd
|
|
Removing PHI-reference to removed block (bitmap_line::@12) in block bitmap_line_xdyd
|
|
Removing PHI-reference to removed block (bitmap_line::@12) in block bitmap_line_xdyd
|
|
Removing PHI-reference to removed block (bitmap_line::@12) in block bitmap_line_xdyd
|
|
Removing PHI-reference to removed block (bitmap_line::@12) in block bitmap_line_xdyd
|
|
Removing unused block bitmap_line::@12
|
|
Removing unused block bitmap_line::@19
|
|
Removing PHI-reference to removed block (bitmap_line::@6) in block bitmap_line_ydxd
|
|
Removing PHI-reference to removed block (bitmap_line::@6) in block bitmap_line_ydxd
|
|
Removing PHI-reference to removed block (bitmap_line::@6) in block bitmap_line_ydxd
|
|
Removing PHI-reference to removed block (bitmap_line::@6) in block bitmap_line_ydxd
|
|
Removing PHI-reference to removed block (bitmap_line::@6) in block bitmap_line_ydxd
|
|
Removing unused block bitmap_line::@6
|
|
Removing unused block bitmap_line::@20
|
|
Removing unused block main::@return
|
|
Successful SSA optimization Pass2EliminateUnusedBlocks
|
|
Removing unused procedure __start
|
|
Removing unused procedure block __start
|
|
Removing unused procedure block __start::__init1
|
|
Removing unused procedure block __start::@1
|
|
Removing unused procedure block __start::@2
|
|
Removing unused procedure block __start::@return
|
|
Successful SSA optimization PassNEliminateEmptyStart
|
|
Adding number conversion cast (unumber) 0 in [10] if((byte) bitmap_init::x#1!=(number) 0) goto bitmap_init::@1
|
|
Adding number conversion cast (unumber) 0 in [22] if((byte) bitmap_init::y#1!=(number) 0) goto bitmap_init::@5
|
|
Adding number conversion cast (unumber) $c8 in [32] if((byte) bitmap_clear::x#1!=(number) $c8) goto bitmap_clear::@2
|
|
Adding number conversion cast (unumber) $28 in [34] if((byte) bitmap_clear::y#1!=(number) $28) goto bitmap_clear::@1
|
|
Successful SSA optimization PassNAddNumberTypeConversions
|
|
Inlining cast [26] (byte*) bitmap_clear::bitmap#0 ← (byte*)(word~) bitmap_clear::$3
|
|
Successful SSA optimization Pass2InlineCast
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast 0
|
|
Simplifying constant integer cast $c8
|
|
Simplifying constant integer cast $28
|
|
Successful SSA optimization PassNCastSimplification
|
|
Finalized unsigned number type (byte) 0
|
|
Finalized unsigned number type (byte) 0
|
|
Finalized unsigned number type (byte) $c8
|
|
Finalized unsigned number type (byte) $28
|
|
Successful SSA optimization PassNFinalizeNumberTypeConversions
|
|
Alias bitmap_init::$10 = bitmap_init::$6
|
|
Successful SSA optimization Pass2AliasElimination
|
|
Identical Phi Values (byte) bitmap_line_xdyi::yd#2 (byte) bitmap_line_xdyi::yd#1
|
|
Identical Phi Values (byte) bitmap_line_xdyi::x#6 (const byte) bitmap_line_xdyi::x#1
|
|
Identical Phi Values (byte) bitmap_line_xdyi::y#5 (const byte) bitmap_line_xdyi::y#1
|
|
Identical Phi Values (byte) bitmap_line_xdyi::xd#5 (byte) bitmap_line_xdyi::xd#1
|
|
Identical Phi Values (byte) bitmap_line_xdyi::x1#6 (byte) bitmap_line_xdyi::x1#1
|
|
Identical Phi Values (byte) bitmap_line_xdyd::yd#2 (byte) bitmap_line_xdyd::yd#0
|
|
Identical Phi Values (byte) bitmap_line_xdyd::x#6 (byte) bitmap_line_xdyd::x#0
|
|
Identical Phi Values (byte) bitmap_line_xdyd::y#5 (const byte) bitmap_line_xdyd::y#0
|
|
Identical Phi Values (byte) bitmap_line_xdyd::xd#5 (byte) bitmap_line_xdyd::xd#0
|
|
Identical Phi Values (byte) bitmap_line_xdyd::x1#6 (const byte) bitmap_line_xdyd::x1#0
|
|
Identical Phi Values (byte) bitmap_line_ydxi::xd#2 (byte) bitmap_line_ydxi::xd#1
|
|
Identical Phi Values (byte) bitmap_line_ydxi::x#5 (const byte) bitmap_line_ydxi::x#1
|
|
Identical Phi Values (byte) bitmap_line_ydxi::y#6 (const byte) bitmap_line_ydxi::y#1
|
|
Identical Phi Values (byte) bitmap_line_ydxi::yd#5 (byte) bitmap_line_ydxi::yd#1
|
|
Identical Phi Values (byte) bitmap_line_ydxi::y1#6 (const byte) bitmap_line_ydxi::y1#1
|
|
Identical Phi Values (byte) bitmap_line_ydxd::xd#2 (byte) bitmap_line_ydxd::xd#0
|
|
Identical Phi Values (byte) bitmap_line_ydxd::x#5 (const byte) bitmap_line_ydxd::x#0
|
|
Identical Phi Values (byte) bitmap_line_ydxd::y#7 (const byte) bitmap_line_ydxd::y#0
|
|
Identical Phi Values (byte) bitmap_line_ydxd::yd#5 (byte) bitmap_line_ydxd::yd#0
|
|
Identical Phi Values (byte) bitmap_line_ydxd::y1#6 (const byte) bitmap_line_ydxd::y1#0
|
|
Successful SSA optimization Pass2IdenticalPhiElimination
|
|
Constant right-side identified [3] (byte~) bitmap_init::$1 ← > (const byte*) bitmap_init::bitmap#0
|
|
Constant right-side identified [90] (byte~) bitmap_line_xdyd::$6 ← (const byte) bitmap_line_xdyd::x1#0 + (byte) 1
|
|
Constant right-side identified [105] (byte~) bitmap_line_ydxi::$6 ← (const byte) bitmap_line_ydxi::y1#1 + (byte) 1
|
|
Constant right-side identified [120] (byte~) bitmap_line_ydxd::$6 ← (const byte) bitmap_line_ydxd::y1#0 + (byte) 1
|
|
Successful SSA optimization Pass2ConstantRValueConsolidation
|
|
Constant (const byte) bitmap_init::$1 = >bitmap_init::bitmap#0
|
|
Constant (const byte) bitmap_line::yd#1 = bitmap_line::y1#0
|
|
Constant (const byte) bitmap_line::yd#11 = bitmap_line::y1#0
|
|
Constant (const byte) bitmap_line_xdyd::$6 = bitmap_line_xdyd::x1#0+1
|
|
Constant (const byte) bitmap_line_ydxi::$6 = bitmap_line_ydxi::y1#1+1
|
|
Constant (const byte) bitmap_line_ydxd::$6 = bitmap_line_ydxd::y1#0+1
|
|
Successful SSA optimization Pass2ConstantIdentification
|
|
Constant (const byte) bitmap_line_xdyd::yd#0 = bitmap_line::yd#1
|
|
Constant (const byte) bitmap_line_ydxd::yd#0 = bitmap_line::yd#1
|
|
Constant (const byte) bitmap_line_xdyi::yd#1 = bitmap_line::yd#11
|
|
Constant (const byte) bitmap_line_ydxi::yd#1 = bitmap_line::yd#11
|
|
Successful SSA optimization Pass2ConstantIdentification
|
|
Simplifying expression containing zero 1 in
|
|
Successful SSA optimization PassNSimplifyExpressionWithZero
|
|
Eliminating unused constant (const byte) bitmap_line_xdyi::y#0
|
|
Eliminating unused constant (const byte) bitmap_line_xdyi::x1#0
|
|
Eliminating unused constant (const byte) bitmap_line_xdyd::x1#0
|
|
Eliminating unused constant (const byte) bitmap_line_xdyd::x#1
|
|
Eliminating unused constant (const byte) bitmap_line_xdyd::y#1
|
|
Eliminating unused constant (const byte) bitmap_line_ydxi::y#0
|
|
Eliminating unused constant (const byte) bitmap_line_ydxi::y1#0
|
|
Eliminating unused constant (const byte) bitmap_line_ydxd::y#1
|
|
Eliminating unused constant (const byte) bitmap_line_ydxd::y1#1
|
|
Successful SSA optimization PassNEliminateUnusedVars
|
|
Constant right-side identified [58] (byte) bitmap_line_xdyi::e#0 ← (const byte) bitmap_line_xdyi::yd#1 >> (byte) 1
|
|
Constant right-side identified [72] (byte) bitmap_line_xdyd::e#0 ← (const byte) bitmap_line_xdyd::yd#0 >> (byte) 1
|
|
Successful SSA optimization Pass2ConstantRValueConsolidation
|
|
Constant (const byte) bitmap_line_xdyi::e#0 = bitmap_line_xdyi::yd#1>>1
|
|
Constant (const byte) bitmap_line_xdyd::e#0 = bitmap_line_xdyd::yd#0>>1
|
|
Successful SSA optimization Pass2ConstantIdentification
|
|
Inlining Noop Cast [24] (byte*) bitmap_clear::bitmap#0 ← (byte*)(word~) bitmap_clear::$3 keeping bitmap_clear::bitmap#0
|
|
Inlining Noop Cast [38] (byte*) bitmap_plot::plotter#0 ← (byte*)(word~) bitmap_plot::$0 keeping bitmap_plot::plotter#0
|
|
Successful SSA optimization Pass2NopCastInlining
|
|
Inlining constant with var siblings (const byte) bitmap_init::bits#0
|
|
Inlining constant with var siblings (const byte) bitmap_init::x#0
|
|
Inlining constant with var siblings (const byte) bitmap_init::bits#2
|
|
Inlining constant with var siblings (const byte*) bitmap_init::yoffs#0
|
|
Inlining constant with var siblings (const byte) bitmap_init::y#0
|
|
Inlining constant with var siblings (const byte) bitmap_clear::y#0
|
|
Inlining constant with var siblings (const byte) bitmap_clear::x#0
|
|
Inlining constant with var siblings (const byte) bitmap_line_xdyi::x#1
|
|
Inlining constant with var siblings (const byte) bitmap_line_xdyi::y#1
|
|
Inlining constant with var siblings (const byte) bitmap_line_xdyi::e#0
|
|
Inlining constant with var siblings (const byte) bitmap_line_xdyd::y#0
|
|
Inlining constant with var siblings (const byte) bitmap_line_xdyd::e#0
|
|
Inlining constant with var siblings (const byte) bitmap_line_ydxi::y#1
|
|
Inlining constant with var siblings (const byte) bitmap_line_ydxi::x#1
|
|
Inlining constant with var siblings (const byte) bitmap_line_ydxd::y#0
|
|
Inlining constant with var siblings (const byte) bitmap_line_ydxd::x#0
|
|
Inlining constant with var siblings (const byte*) init_screen::c#0
|
|
Inlining constant with var siblings (const byte) next#11
|
|
Constant inlined bitmap_line_ydxi::x#1 = (const byte) bitmap_line::x0#0
|
|
Constant inlined bitmap_line::yd#1 = (const byte) bitmap_line::y1#0
|
|
Constant inlined bitmap_line_xdyd::e#0 = (const byte) bitmap_line::y1#0>>(byte) 1
|
|
Constant inlined bitmap_line_xdyd::$6 = (byte) 1
|
|
Constant inlined bitmap_line_ydxi::$6 = (const byte) bitmap_line::y1#0+(byte) 1
|
|
Constant inlined bitmap_init::bits#0 = (byte) $80
|
|
Constant inlined bitmap_init::bits#2 = (byte) $80
|
|
Constant inlined bitmap_line_xdyi::e#0 = (const byte) bitmap_line::y1#0>>(byte) 1
|
|
Constant inlined bitmap_line_xdyd::y#0 = (const byte) bitmap_line::y1#0
|
|
Constant inlined init_screen::c#0 = (const nomodify byte*) SCREEN
|
|
Constant inlined bitmap_line_ydxi::y#1 = (const byte) bitmap_line::y0#0
|
|
Constant inlined bitmap_line_xdyi::y#1 = (const byte) bitmap_line::y0#0
|
|
Constant inlined bitmap_init::yoffs#0 = (byte*) 0
|
|
Constant inlined next#11 = (byte) 0
|
|
Constant inlined bitmap_line_ydxd::yd#0 = (const byte) bitmap_line::y1#0
|
|
Constant inlined bitmap_clear::x#0 = (byte) 0
|
|
Constant inlined bitmap_line_xdyi::yd#1 = (const byte) bitmap_line::y1#0
|
|
Constant inlined bitmap_clear::y#0 = (byte) 0
|
|
Constant inlined bitmap_line::yd#11 = (const byte) bitmap_line::y1#0
|
|
Constant inlined bitmap_line_xdyd::yd#0 = (const byte) bitmap_line::y1#0
|
|
Constant inlined bitmap_line_ydxi::yd#1 = (const byte) bitmap_line::y1#0
|
|
Constant inlined bitmap_line_ydxd::y#0 = (const byte) bitmap_line::y0#0
|
|
Constant inlined bitmap_line_ydxd::x#0 = (const byte) bitmap_line::x0#0
|
|
Constant inlined bitmap_line_ydxd::y1#0 = (const byte) bitmap_line::y1#0
|
|
Constant inlined bitmap_init::$1 = >(const nomodify byte*) BITMAP
|
|
Constant inlined bitmap_line_ydxd::$6 = (const byte) bitmap_line::y1#0+(byte) 1
|
|
Constant inlined bitmap_init::y#0 = (byte) 0
|
|
Constant inlined bitmap_init::x#0 = (byte) 0
|
|
Constant inlined bitmap_line_ydxi::y1#1 = (const byte) bitmap_line::y1#0
|
|
Constant inlined bitmap_init::bitmap#0 = (const nomodify byte*) BITMAP
|
|
Constant inlined bitmap_line_xdyi::x#1 = (const byte) bitmap_line::x0#0
|
|
Successful SSA optimization Pass2ConstantInlining
|
|
Added new block during phi lifting bitmap_init::@8(between bitmap_init::@2 and bitmap_init::@1)
|
|
Added new block during phi lifting bitmap_init::@9(between bitmap_init::@1 and bitmap_init::@2)
|
|
Added new block during phi lifting bitmap_init::@10(between bitmap_init::@6 and bitmap_init::@5)
|
|
Added new block during phi lifting bitmap_init::@11(between bitmap_init::@5 and bitmap_init::@6)
|
|
Added new block during phi lifting bitmap_clear::@4(between bitmap_clear::@3 and bitmap_clear::@1)
|
|
Added new block during phi lifting bitmap_clear::@5(between bitmap_clear::@2 and bitmap_clear::@2)
|
|
Added new block during phi lifting bitmap_line_xdyi::@5(between bitmap_line_xdyi::@2 and bitmap_line_xdyi::@1)
|
|
Added new block during phi lifting bitmap_line_xdyi::@6(between bitmap_line_xdyi::@4 and bitmap_line_xdyi::@2)
|
|
Added new block during phi lifting bitmap_line_xdyd::@5(between bitmap_line_xdyd::@2 and bitmap_line_xdyd::@1)
|
|
Added new block during phi lifting bitmap_line_xdyd::@6(between bitmap_line_xdyd::@4 and bitmap_line_xdyd::@2)
|
|
Added new block during phi lifting bitmap_line_ydxi::@5(between bitmap_line_ydxi::@2 and bitmap_line_ydxi::@1)
|
|
Added new block during phi lifting bitmap_line_ydxi::@6(between bitmap_line_ydxi::@4 and bitmap_line_ydxi::@2)
|
|
Added new block during phi lifting bitmap_line_ydxd::@5(between bitmap_line_ydxd::@2 and bitmap_line_ydxd::@1)
|
|
Added new block during phi lifting bitmap_line_ydxd::@6(between bitmap_line_ydxd::@4 and bitmap_line_ydxd::@2)
|
|
Adding NOP phi() at start of main::@2
|
|
Adding NOP phi() at start of main::@3
|
|
Adding NOP phi() at start of main::@4
|
|
Adding NOP phi() at start of bitmap_init
|
|
Adding NOP phi() at start of bitmap_init::@3
|
|
Adding NOP phi() at start of bitmap_init::@4
|
|
Adding NOP phi() at start of init_screen
|
|
Adding NOP phi() at start of bitmap_line::@18
|
|
Adding NOP phi() at start of bitmap_line::@17
|
|
Adding NOP phi() at start of bitmap_line::@22
|
|
Adding NOP phi() at start of bitmap_line::@21
|
|
Adding NOP phi() at start of bitmap_line_xdyi
|
|
CALL GRAPH
|
|
Calls in [main] to bitmap_init:4 bitmap_clear:6 init_screen:8 bitmap_line:12
|
|
Calls in [bitmap_line] to bitmap_line_ydxd:75 bitmap_line_xdyd:80 bitmap_line_ydxi:85 bitmap_line_xdyi:89
|
|
Calls in [bitmap_line_ydxd] to bitmap_plot:98
|
|
Calls in [bitmap_line_xdyd] to bitmap_plot:120
|
|
Calls in [bitmap_line_ydxi] to bitmap_plot:143
|
|
Calls in [bitmap_line_xdyi] to bitmap_plot:165
|
|
|
|
Created 34 initial phi equivalence classes
|
|
Coalesced [14] next#15 ← next#0
|
|
Coalesced [37] bitmap_init::yoffs#7 ← bitmap_init::yoffs#1
|
|
Coalesced [42] bitmap_init::y#5 ← bitmap_init::y#1
|
|
Coalesced [43] bitmap_init::yoffs#5 ← bitmap_init::yoffs#4
|
|
Coalesced (already) [44] bitmap_init::yoffs#6 ← bitmap_init::yoffs#2
|
|
Coalesced [45] bitmap_init::x#5 ← bitmap_init::x#1
|
|
Coalesced [46] bitmap_init::bits#5 ← bitmap_init::bits#4
|
|
Coalesced [47] bitmap_init::bits#6 ← bitmap_init::bits#1
|
|
Coalesced [51] bitmap_clear::bitmap#7 ← bitmap_clear::bitmap#3
|
|
Coalesced [60] bitmap_clear::bitmap#6 ← bitmap_clear::bitmap#1
|
|
Coalesced [61] bitmap_clear::y#5 ← bitmap_clear::y#1
|
|
Coalesced (already) [62] bitmap_clear::bitmap#8 ← bitmap_clear::bitmap#1
|
|
Coalesced [63] bitmap_clear::x#3 ← bitmap_clear::x#1
|
|
Coalesced [70] init_screen::c#4 ← init_screen::c#1
|
|
Coalesced [92] bitmap_line_ydxd::e#7 ← bitmap_line_ydxd::e#0
|
|
Coalesced [96] bitmap_plot::x#7 ← bitmap_plot::x#3
|
|
Coalesced [97] bitmap_plot::y#7 ← bitmap_plot::y#3
|
|
Coalesced [104] bitmap_line_ydxd::x#9 ← bitmap_line_ydxd::x#2
|
|
Coalesced [105] bitmap_line_ydxd::e#9 ← bitmap_line_ydxd::e#2
|
|
Coalesced [109] bitmap_line_ydxd::x#8 ← bitmap_line_ydxd::x#6
|
|
Coalesced [110] bitmap_line_ydxd::y#9 ← bitmap_line_ydxd::y#3
|
|
Coalesced [111] bitmap_line_ydxd::e#8 ← bitmap_line_ydxd::e#6
|
|
Coalesced (already) [112] bitmap_line_ydxd::x#10 ← bitmap_line_ydxd::x#3
|
|
Coalesced [113] bitmap_line_ydxd::e#10 ← bitmap_line_ydxd::e#1
|
|
Coalesced [114] bitmap_line_xdyd::x#8 ← bitmap_line_xdyd::x#0
|
|
Coalesced [118] bitmap_plot::x#5 ← bitmap_plot::x#1
|
|
Coalesced [119] bitmap_plot::y#5 ← bitmap_plot::y#1
|
|
Coalesced [126] bitmap_line_xdyd::y#9 ← bitmap_line_xdyd::y#2
|
|
Coalesced [127] bitmap_line_xdyd::e#8 ← bitmap_line_xdyd::e#2
|
|
Coalesced [131] bitmap_line_xdyd::x#9 ← bitmap_line_xdyd::x#2
|
|
Coalesced [132] bitmap_line_xdyd::y#8 ← bitmap_line_xdyd::y#6
|
|
Coalesced [133] bitmap_line_xdyd::e#7 ← bitmap_line_xdyd::e#6
|
|
Coalesced (already) [134] bitmap_line_xdyd::y#10 ← bitmap_line_xdyd::y#3
|
|
Coalesced [135] bitmap_line_xdyd::e#9 ← bitmap_line_xdyd::e#1
|
|
Coalesced [137] bitmap_line_ydxi::e#7 ← bitmap_line_ydxi::e#0
|
|
Coalesced [141] bitmap_plot::x#8 ← bitmap_plot::x#2
|
|
Coalesced [142] bitmap_plot::y#8 ← bitmap_plot::y#2
|
|
Coalesced [149] bitmap_line_ydxi::x#9 ← bitmap_line_ydxi::x#2
|
|
Coalesced [150] bitmap_line_ydxi::e#9 ← bitmap_line_ydxi::e#2
|
|
Coalesced [154] bitmap_line_ydxi::x#8 ← bitmap_line_ydxi::x#6
|
|
Coalesced [155] bitmap_line_ydxi::y#8 ← bitmap_line_ydxi::y#2
|
|
Coalesced [156] bitmap_line_ydxi::e#8 ← bitmap_line_ydxi::e#6
|
|
Coalesced (already) [157] bitmap_line_ydxi::x#10 ← bitmap_line_ydxi::x#3
|
|
Coalesced [158] bitmap_line_ydxi::e#10 ← bitmap_line_ydxi::e#1
|
|
Coalesced [163] bitmap_plot::x#6 ← bitmap_plot::x#0
|
|
Coalesced [164] bitmap_plot::y#6 ← bitmap_plot::y#0
|
|
Coalesced [171] bitmap_line_xdyi::y#9 ← bitmap_line_xdyi::y#2
|
|
Coalesced [172] bitmap_line_xdyi::e#8 ← bitmap_line_xdyi::e#2
|
|
Coalesced [177] bitmap_line_xdyi::x#8 ← bitmap_line_xdyi::x#2
|
|
Coalesced [178] bitmap_line_xdyi::y#8 ← bitmap_line_xdyi::y#6
|
|
Coalesced [179] bitmap_line_xdyi::e#7 ← bitmap_line_xdyi::e#6
|
|
Coalesced (already) [180] bitmap_line_xdyi::y#10 ← bitmap_line_xdyi::y#3
|
|
Coalesced [181] bitmap_line_xdyi::e#9 ← bitmap_line_xdyi::e#1
|
|
Coalesced down to 23 phi equivalence classes
|
|
Culled Empty Block (label) main::@4
|
|
Culled Empty Block (label) bitmap_init::@3
|
|
Culled Empty Block (label) bitmap_init::@4
|
|
Culled Empty Block (label) bitmap_init::@10
|
|
Culled Empty Block (label) bitmap_init::@11
|
|
Culled Empty Block (label) bitmap_init::@8
|
|
Culled Empty Block (label) bitmap_clear::@4
|
|
Culled Empty Block (label) bitmap_clear::@5
|
|
Culled Empty Block (label) bitmap_line::@18
|
|
Culled Empty Block (label) bitmap_line::@17
|
|
Culled Empty Block (label) bitmap_line::@22
|
|
Culled Empty Block (label) bitmap_line::@21
|
|
Culled Empty Block (label) bitmap_line_ydxd::@5
|
|
Culled Empty Block (label) bitmap_line_ydxd::@6
|
|
Culled Empty Block (label) bitmap_line_xdyd::@5
|
|
Culled Empty Block (label) bitmap_line_xdyd::@6
|
|
Culled Empty Block (label) bitmap_line_ydxi::@5
|
|
Culled Empty Block (label) bitmap_line_ydxi::@6
|
|
Culled Empty Block (label) bitmap_line_xdyi::@5
|
|
Culled Empty Block (label) bitmap_line_xdyi::@6
|
|
Renumbering block bitmap_init::@5 to bitmap_init::@3
|
|
Renumbering block bitmap_init::@6 to bitmap_init::@4
|
|
Renumbering block bitmap_init::@7 to bitmap_init::@5
|
|
Renumbering block bitmap_init::@9 to bitmap_init::@6
|
|
Renumbering block bitmap_line::@7 to bitmap_line::@3
|
|
Renumbering block bitmap_line::@9 to bitmap_line::@4
|
|
Renumbering block bitmap_line::@10 to bitmap_line::@5
|
|
Renumbering block bitmap_line::@11 to bitmap_line::@6
|
|
Renumbering block bitmap_line::@13 to bitmap_line::@7
|
|
Renumbering block bitmap_line::@14 to bitmap_line::@8
|
|
Renumbering block main::@5 to main::@4
|
|
Adding NOP phi() at start of main::@2
|
|
Adding NOP phi() at start of main::@3
|
|
Adding NOP phi() at start of bitmap_init
|
|
Adding NOP phi() at start of bitmap_init::@6
|
|
Adding NOP phi() at start of init_screen
|
|
Adding NOP phi() at start of bitmap_line_xdyd
|
|
Adding NOP phi() at start of bitmap_line_xdyi
|
|
|
|
FINAL CONTROL FLOW GRAPH
|
|
|
|
(void()) main()
|
|
main: scope:[main] from
|
|
[0] *((const nomodify byte*) BORDER_COLOR) ← (byte) 0
|
|
[1] *((const nomodify byte*) BG_COLOR) ← (byte) 0
|
|
[2] *((const nomodify byte*) D011) ← (const nomodify byte) VIC_BMM|(const nomodify byte) VIC_DEN|(const nomodify byte) VIC_RSEL|(byte) 3
|
|
[3] *((const nomodify byte*) VIC_MEMORY) ← (byte)(word)(const nomodify byte*) SCREEN&(word) $3fff/(byte) $40|(word)(const nomodify byte*) BITMAP&(word) $3fff/(word) $400
|
|
[4] call bitmap_init
|
|
to:main::@2
|
|
main::@2: scope:[main] from main
|
|
[5] phi()
|
|
[6] call bitmap_clear
|
|
to:main::@3
|
|
main::@3: scope:[main] from main::@2
|
|
[7] phi()
|
|
[8] call init_screen
|
|
to:main::@1
|
|
main::@1: scope:[main] from main::@3 main::@4
|
|
[9] (byte) next#5 ← phi( main::@3/(byte) 0 main::@4/(byte) next#0 )
|
|
[10] (byte) bitmap_line::x1#0 ← (byte) next#5
|
|
[11] call bitmap_line
|
|
to:main::@4
|
|
main::@4: scope:[main] from main::@1
|
|
[12] (byte) next#0 ← ++ (byte) next#5
|
|
to:main::@1
|
|
|
|
(void()) bitmap_init((byte*) bitmap_init::bitmap)
|
|
bitmap_init: scope:[bitmap_init] from main
|
|
[13] phi()
|
|
to:bitmap_init::@1
|
|
bitmap_init::@1: scope:[bitmap_init] from bitmap_init bitmap_init::@2
|
|
[14] (byte) bitmap_init::bits#3 ← phi( bitmap_init/(byte) $80 bitmap_init::@2/(byte) bitmap_init::bits#4 )
|
|
[14] (byte) bitmap_init::x#2 ← phi( bitmap_init/(byte) 0 bitmap_init::@2/(byte) bitmap_init::x#1 )
|
|
[15] (byte~) bitmap_init::$0 ← (byte) bitmap_init::x#2 & (byte) $f8
|
|
[16] *((const to_nomodify byte*) bitmap_plot_xlo + (byte) bitmap_init::x#2) ← (byte~) bitmap_init::$0
|
|
[17] *((const to_nomodify byte*) bitmap_plot_xhi + (byte) bitmap_init::x#2) ← >(const nomodify byte*) BITMAP
|
|
[18] *((const to_nomodify byte*) bitmap_plot_bit + (byte) bitmap_init::x#2) ← (byte) bitmap_init::bits#3
|
|
[19] (byte) bitmap_init::bits#1 ← (byte) bitmap_init::bits#3 >> (byte) 1
|
|
[20] if((byte) bitmap_init::bits#1!=(byte) 0) goto bitmap_init::@6
|
|
to:bitmap_init::@2
|
|
bitmap_init::@6: scope:[bitmap_init] from bitmap_init::@1
|
|
[21] phi()
|
|
to:bitmap_init::@2
|
|
bitmap_init::@2: scope:[bitmap_init] from bitmap_init::@1 bitmap_init::@6
|
|
[22] (byte) bitmap_init::bits#4 ← phi( bitmap_init::@6/(byte) bitmap_init::bits#1 bitmap_init::@1/(byte) $80 )
|
|
[23] (byte) bitmap_init::x#1 ← ++ (byte) bitmap_init::x#2
|
|
[24] if((byte) bitmap_init::x#1!=(byte) 0) goto bitmap_init::@1
|
|
to:bitmap_init::@3
|
|
bitmap_init::@3: scope:[bitmap_init] from bitmap_init::@2 bitmap_init::@4
|
|
[25] (byte*) bitmap_init::yoffs#2 ← phi( bitmap_init::@2/(byte*) 0 bitmap_init::@4/(byte*) bitmap_init::yoffs#4 )
|
|
[25] (byte) bitmap_init::y#2 ← phi( bitmap_init::@2/(byte) 0 bitmap_init::@4/(byte) bitmap_init::y#1 )
|
|
[26] (byte~) bitmap_init::$10 ← (byte) bitmap_init::y#2 & (byte) 7
|
|
[27] (byte~) bitmap_init::$7 ← < (byte*) bitmap_init::yoffs#2
|
|
[28] (byte~) bitmap_init::$8 ← (byte~) bitmap_init::$10 | (byte~) bitmap_init::$7
|
|
[29] *((const to_nomodify byte*) bitmap_plot_ylo + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$8
|
|
[30] (byte~) bitmap_init::$9 ← > (byte*) bitmap_init::yoffs#2
|
|
[31] *((const to_nomodify byte*) bitmap_plot_yhi + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$9
|
|
[32] if((byte~) bitmap_init::$10!=(byte) 7) goto bitmap_init::@4
|
|
to:bitmap_init::@5
|
|
bitmap_init::@5: scope:[bitmap_init] from bitmap_init::@3
|
|
[33] (byte*) bitmap_init::yoffs#1 ← (byte*) bitmap_init::yoffs#2 + (word)(number) $28*(number) 8
|
|
to:bitmap_init::@4
|
|
bitmap_init::@4: scope:[bitmap_init] from bitmap_init::@3 bitmap_init::@5
|
|
[34] (byte*) bitmap_init::yoffs#4 ← phi( bitmap_init::@3/(byte*) bitmap_init::yoffs#2 bitmap_init::@5/(byte*) bitmap_init::yoffs#1 )
|
|
[35] (byte) bitmap_init::y#1 ← ++ (byte) bitmap_init::y#2
|
|
[36] if((byte) bitmap_init::y#1!=(byte) 0) goto bitmap_init::@3
|
|
to:bitmap_init::@return
|
|
bitmap_init::@return: scope:[bitmap_init] from bitmap_init::@4
|
|
[37] return
|
|
to:@return
|
|
|
|
(void()) bitmap_clear()
|
|
bitmap_clear: scope:[bitmap_clear] from main::@2
|
|
[38] (word) bitmap_clear::bitmap#0 ← *((const to_nomodify byte*) bitmap_plot_xhi) w= *((const to_nomodify byte*) bitmap_plot_xlo)
|
|
[39] (byte*) bitmap_clear::bitmap#5 ← (byte*)(word) bitmap_clear::bitmap#0
|
|
to:bitmap_clear::@1
|
|
bitmap_clear::@1: scope:[bitmap_clear] from bitmap_clear bitmap_clear::@3
|
|
[40] (byte) bitmap_clear::y#4 ← phi( bitmap_clear/(byte) 0 bitmap_clear::@3/(byte) bitmap_clear::y#1 )
|
|
[40] (byte*) bitmap_clear::bitmap#3 ← phi( bitmap_clear/(byte*) bitmap_clear::bitmap#5 bitmap_clear::@3/(byte*) bitmap_clear::bitmap#1 )
|
|
to:bitmap_clear::@2
|
|
bitmap_clear::@2: scope:[bitmap_clear] from bitmap_clear::@1 bitmap_clear::@2
|
|
[41] (byte) bitmap_clear::x#2 ← phi( bitmap_clear::@1/(byte) 0 bitmap_clear::@2/(byte) bitmap_clear::x#1 )
|
|
[41] (byte*) bitmap_clear::bitmap#2 ← phi( bitmap_clear::@1/(byte*) bitmap_clear::bitmap#3 bitmap_clear::@2/(byte*) bitmap_clear::bitmap#1 )
|
|
[42] *((byte*) bitmap_clear::bitmap#2) ← (byte) 0
|
|
[43] (byte*) bitmap_clear::bitmap#1 ← ++ (byte*) bitmap_clear::bitmap#2
|
|
[44] (byte) bitmap_clear::x#1 ← ++ (byte) bitmap_clear::x#2
|
|
[45] if((byte) bitmap_clear::x#1!=(byte) $c8) goto bitmap_clear::@2
|
|
to:bitmap_clear::@3
|
|
bitmap_clear::@3: scope:[bitmap_clear] from bitmap_clear::@2
|
|
[46] (byte) bitmap_clear::y#1 ← ++ (byte) bitmap_clear::y#4
|
|
[47] if((byte) bitmap_clear::y#1!=(byte) $28) goto bitmap_clear::@1
|
|
to:bitmap_clear::@return
|
|
bitmap_clear::@return: scope:[bitmap_clear] from bitmap_clear::@3
|
|
[48] return
|
|
to:@return
|
|
|
|
(void()) init_screen()
|
|
init_screen: scope:[init_screen] from main::@3
|
|
[49] phi()
|
|
to:init_screen::@1
|
|
init_screen::@1: scope:[init_screen] from init_screen init_screen::@2
|
|
[50] (byte*) init_screen::c#2 ← phi( init_screen/(const nomodify byte*) SCREEN init_screen::@2/(byte*) init_screen::c#1 )
|
|
[51] if((byte*) init_screen::c#2!=(const nomodify byte*) SCREEN+(word) $400) goto init_screen::@2
|
|
to:init_screen::@return
|
|
init_screen::@return: scope:[init_screen] from init_screen::@1
|
|
[52] return
|
|
to:@return
|
|
init_screen::@2: scope:[init_screen] from init_screen::@1
|
|
[53] *((byte*) init_screen::c#2) ← (byte) $14
|
|
[54] (byte*) init_screen::c#1 ← ++ (byte*) init_screen::c#2
|
|
to:init_screen::@1
|
|
|
|
(void()) bitmap_line((byte) bitmap_line::x0 , (byte) bitmap_line::x1 , (byte) bitmap_line::y0 , (byte) bitmap_line::y1)
|
|
bitmap_line: scope:[bitmap_line] from main::@1
|
|
[55] if((const byte) bitmap_line::x0#0<(byte) bitmap_line::x1#0) goto bitmap_line::@1
|
|
to:bitmap_line::@2
|
|
bitmap_line::@2: scope:[bitmap_line] from bitmap_line
|
|
[56] (byte) bitmap_line::xd#2 ← (byte) bitmap_line::x1#0
|
|
to:bitmap_line::@3
|
|
bitmap_line::@3: scope:[bitmap_line] from bitmap_line::@2
|
|
[57] if((const byte) bitmap_line::y1#0<(byte) bitmap_line::xd#2) goto bitmap_line::@4
|
|
to:bitmap_line::@5
|
|
bitmap_line::@5: scope:[bitmap_line] from bitmap_line::@3
|
|
[58] (byte) bitmap_line_ydxd::xd#0 ← (byte) bitmap_line::xd#2
|
|
[59] call bitmap_line_ydxd
|
|
to:bitmap_line::@return
|
|
bitmap_line::@return: scope:[bitmap_line] from bitmap_line::@4 bitmap_line::@5 bitmap_line::@7 bitmap_line::@8
|
|
[60] return
|
|
to:@return
|
|
bitmap_line::@4: scope:[bitmap_line] from bitmap_line::@3
|
|
[61] (byte) bitmap_line_xdyd::x#0 ← (byte) bitmap_line::x1#0
|
|
[62] (byte) bitmap_line_xdyd::xd#0 ← (byte) bitmap_line::xd#2
|
|
[63] call bitmap_line_xdyd
|
|
to:bitmap_line::@return
|
|
bitmap_line::@1: scope:[bitmap_line] from bitmap_line
|
|
[64] (byte) bitmap_line::xd#1 ← (byte) bitmap_line::x1#0
|
|
to:bitmap_line::@6
|
|
bitmap_line::@6: scope:[bitmap_line] from bitmap_line::@1
|
|
[65] if((const byte) bitmap_line::y1#0<(byte) bitmap_line::xd#1) goto bitmap_line::@7
|
|
to:bitmap_line::@8
|
|
bitmap_line::@8: scope:[bitmap_line] from bitmap_line::@6
|
|
[66] (byte) bitmap_line_ydxi::xd#1 ← (byte) bitmap_line::xd#1
|
|
[67] call bitmap_line_ydxi
|
|
to:bitmap_line::@return
|
|
bitmap_line::@7: scope:[bitmap_line] from bitmap_line::@6
|
|
[68] (byte) bitmap_line_xdyi::x1#1 ← (byte) bitmap_line::x1#0
|
|
[69] (byte) bitmap_line_xdyi::xd#1 ← (byte) bitmap_line::xd#1
|
|
[70] call bitmap_line_xdyi
|
|
to:bitmap_line::@return
|
|
|
|
(void()) bitmap_line_ydxd((byte) bitmap_line_ydxd::y , (byte) bitmap_line_ydxd::x , (byte) bitmap_line_ydxd::y1 , (byte) bitmap_line_ydxd::yd , (byte) bitmap_line_ydxd::xd)
|
|
bitmap_line_ydxd: scope:[bitmap_line_ydxd] from bitmap_line::@5
|
|
[71] (byte) bitmap_line_ydxd::e#0 ← (byte) bitmap_line_ydxd::xd#0 >> (byte) 1
|
|
to:bitmap_line_ydxd::@1
|
|
bitmap_line_ydxd::@1: scope:[bitmap_line_ydxd] from bitmap_line_ydxd bitmap_line_ydxd::@2
|
|
[72] (byte) bitmap_line_ydxd::e#3 ← phi( bitmap_line_ydxd/(byte) bitmap_line_ydxd::e#0 bitmap_line_ydxd::@2/(byte) bitmap_line_ydxd::e#6 )
|
|
[72] (byte) bitmap_line_ydxd::y#2 ← phi( bitmap_line_ydxd/(const byte) bitmap_line::y0#0 bitmap_line_ydxd::@2/(byte) bitmap_line_ydxd::y#3 )
|
|
[72] (byte) bitmap_line_ydxd::x#3 ← phi( bitmap_line_ydxd/(const byte) bitmap_line::x0#0 bitmap_line_ydxd::@2/(byte) bitmap_line_ydxd::x#6 )
|
|
[73] (byte) bitmap_plot::x#3 ← (byte) bitmap_line_ydxd::x#3
|
|
[74] (byte) bitmap_plot::y#3 ← (byte) bitmap_line_ydxd::y#2
|
|
[75] call bitmap_plot
|
|
to:bitmap_line_ydxd::@4
|
|
bitmap_line_ydxd::@4: scope:[bitmap_line_ydxd] from bitmap_line_ydxd::@1
|
|
[76] (byte) bitmap_line_ydxd::y#3 ← ++ (byte) bitmap_line_ydxd::y#2
|
|
[77] (byte) bitmap_line_ydxd::e#1 ← (byte) bitmap_line_ydxd::e#3 + (byte) bitmap_line_ydxd::xd#0
|
|
[78] if((const byte) bitmap_line::y1#0>=(byte) bitmap_line_ydxd::e#1) goto bitmap_line_ydxd::@2
|
|
to:bitmap_line_ydxd::@3
|
|
bitmap_line_ydxd::@3: scope:[bitmap_line_ydxd] from bitmap_line_ydxd::@4
|
|
[79] (byte) bitmap_line_ydxd::x#2 ← -- (byte) bitmap_line_ydxd::x#3
|
|
[80] (byte) bitmap_line_ydxd::e#2 ← (byte) bitmap_line_ydxd::e#1 - (const byte) bitmap_line::y1#0
|
|
to:bitmap_line_ydxd::@2
|
|
bitmap_line_ydxd::@2: scope:[bitmap_line_ydxd] from bitmap_line_ydxd::@3 bitmap_line_ydxd::@4
|
|
[81] (byte) bitmap_line_ydxd::e#6 ← phi( bitmap_line_ydxd::@3/(byte) bitmap_line_ydxd::e#2 bitmap_line_ydxd::@4/(byte) bitmap_line_ydxd::e#1 )
|
|
[81] (byte) bitmap_line_ydxd::x#6 ← phi( bitmap_line_ydxd::@3/(byte) bitmap_line_ydxd::x#2 bitmap_line_ydxd::@4/(byte) bitmap_line_ydxd::x#3 )
|
|
[82] if((byte) bitmap_line_ydxd::y#3!=(const byte) bitmap_line::y1#0+(byte) 1) goto bitmap_line_ydxd::@1
|
|
to:bitmap_line_ydxd::@return
|
|
bitmap_line_ydxd::@return: scope:[bitmap_line_ydxd] from bitmap_line_ydxd::@2
|
|
[83] return
|
|
to:@return
|
|
|
|
(void()) bitmap_line_xdyd((byte) bitmap_line_xdyd::x , (byte) bitmap_line_xdyd::y , (byte) bitmap_line_xdyd::x1 , (byte) bitmap_line_xdyd::xd , (byte) bitmap_line_xdyd::yd)
|
|
bitmap_line_xdyd: scope:[bitmap_line_xdyd] from bitmap_line::@4
|
|
[84] phi()
|
|
to:bitmap_line_xdyd::@1
|
|
bitmap_line_xdyd::@1: scope:[bitmap_line_xdyd] from bitmap_line_xdyd bitmap_line_xdyd::@2
|
|
[85] (byte) bitmap_line_xdyd::e#3 ← phi( bitmap_line_xdyd/(const byte) bitmap_line::y1#0>>(byte) 1 bitmap_line_xdyd::@2/(byte) bitmap_line_xdyd::e#6 )
|
|
[85] (byte) bitmap_line_xdyd::y#3 ← phi( bitmap_line_xdyd/(const byte) bitmap_line::y1#0 bitmap_line_xdyd::@2/(byte) bitmap_line_xdyd::y#6 )
|
|
[85] (byte) bitmap_line_xdyd::x#3 ← phi( bitmap_line_xdyd/(byte) bitmap_line_xdyd::x#0 bitmap_line_xdyd::@2/(byte) bitmap_line_xdyd::x#2 )
|
|
[86] (byte) bitmap_plot::x#1 ← (byte) bitmap_line_xdyd::x#3
|
|
[87] (byte) bitmap_plot::y#1 ← (byte) bitmap_line_xdyd::y#3
|
|
[88] call bitmap_plot
|
|
to:bitmap_line_xdyd::@4
|
|
bitmap_line_xdyd::@4: scope:[bitmap_line_xdyd] from bitmap_line_xdyd::@1
|
|
[89] (byte) bitmap_line_xdyd::x#2 ← ++ (byte) bitmap_line_xdyd::x#3
|
|
[90] (byte) bitmap_line_xdyd::e#1 ← (byte) bitmap_line_xdyd::e#3 + (const byte) bitmap_line::y1#0
|
|
[91] if((byte) bitmap_line_xdyd::xd#0>=(byte) bitmap_line_xdyd::e#1) goto bitmap_line_xdyd::@2
|
|
to:bitmap_line_xdyd::@3
|
|
bitmap_line_xdyd::@3: scope:[bitmap_line_xdyd] from bitmap_line_xdyd::@4
|
|
[92] (byte) bitmap_line_xdyd::y#2 ← -- (byte) bitmap_line_xdyd::y#3
|
|
[93] (byte) bitmap_line_xdyd::e#2 ← (byte) bitmap_line_xdyd::e#1 - (byte) bitmap_line_xdyd::xd#0
|
|
to:bitmap_line_xdyd::@2
|
|
bitmap_line_xdyd::@2: scope:[bitmap_line_xdyd] from bitmap_line_xdyd::@3 bitmap_line_xdyd::@4
|
|
[94] (byte) bitmap_line_xdyd::e#6 ← phi( bitmap_line_xdyd::@3/(byte) bitmap_line_xdyd::e#2 bitmap_line_xdyd::@4/(byte) bitmap_line_xdyd::e#1 )
|
|
[94] (byte) bitmap_line_xdyd::y#6 ← phi( bitmap_line_xdyd::@3/(byte) bitmap_line_xdyd::y#2 bitmap_line_xdyd::@4/(byte) bitmap_line_xdyd::y#3 )
|
|
[95] if((byte) bitmap_line_xdyd::x#2!=(byte) 1) goto bitmap_line_xdyd::@1
|
|
to:bitmap_line_xdyd::@return
|
|
bitmap_line_xdyd::@return: scope:[bitmap_line_xdyd] from bitmap_line_xdyd::@2
|
|
[96] return
|
|
to:@return
|
|
|
|
(void()) bitmap_line_ydxi((byte) bitmap_line_ydxi::y , (byte) bitmap_line_ydxi::x , (byte) bitmap_line_ydxi::y1 , (byte) bitmap_line_ydxi::yd , (byte) bitmap_line_ydxi::xd)
|
|
bitmap_line_ydxi: scope:[bitmap_line_ydxi] from bitmap_line::@8
|
|
[97] (byte) bitmap_line_ydxi::e#0 ← (byte) bitmap_line_ydxi::xd#1 >> (byte) 1
|
|
to:bitmap_line_ydxi::@1
|
|
bitmap_line_ydxi::@1: scope:[bitmap_line_ydxi] from bitmap_line_ydxi bitmap_line_ydxi::@2
|
|
[98] (byte) bitmap_line_ydxi::e#3 ← phi( bitmap_line_ydxi/(byte) bitmap_line_ydxi::e#0 bitmap_line_ydxi::@2/(byte) bitmap_line_ydxi::e#6 )
|
|
[98] (byte) bitmap_line_ydxi::y#3 ← phi( bitmap_line_ydxi/(const byte) bitmap_line::y0#0 bitmap_line_ydxi::@2/(byte) bitmap_line_ydxi::y#2 )
|
|
[98] (byte) bitmap_line_ydxi::x#3 ← phi( bitmap_line_ydxi/(const byte) bitmap_line::x0#0 bitmap_line_ydxi::@2/(byte) bitmap_line_ydxi::x#6 )
|
|
[99] (byte) bitmap_plot::x#2 ← (byte) bitmap_line_ydxi::x#3
|
|
[100] (byte) bitmap_plot::y#2 ← (byte) bitmap_line_ydxi::y#3
|
|
[101] call bitmap_plot
|
|
to:bitmap_line_ydxi::@4
|
|
bitmap_line_ydxi::@4: scope:[bitmap_line_ydxi] from bitmap_line_ydxi::@1
|
|
[102] (byte) bitmap_line_ydxi::y#2 ← ++ (byte) bitmap_line_ydxi::y#3
|
|
[103] (byte) bitmap_line_ydxi::e#1 ← (byte) bitmap_line_ydxi::e#3 + (byte) bitmap_line_ydxi::xd#1
|
|
[104] if((const byte) bitmap_line::y1#0>=(byte) bitmap_line_ydxi::e#1) goto bitmap_line_ydxi::@2
|
|
to:bitmap_line_ydxi::@3
|
|
bitmap_line_ydxi::@3: scope:[bitmap_line_ydxi] from bitmap_line_ydxi::@4
|
|
[105] (byte) bitmap_line_ydxi::x#2 ← ++ (byte) bitmap_line_ydxi::x#3
|
|
[106] (byte) bitmap_line_ydxi::e#2 ← (byte) bitmap_line_ydxi::e#1 - (const byte) bitmap_line::y1#0
|
|
to:bitmap_line_ydxi::@2
|
|
bitmap_line_ydxi::@2: scope:[bitmap_line_ydxi] from bitmap_line_ydxi::@3 bitmap_line_ydxi::@4
|
|
[107] (byte) bitmap_line_ydxi::e#6 ← phi( bitmap_line_ydxi::@3/(byte) bitmap_line_ydxi::e#2 bitmap_line_ydxi::@4/(byte) bitmap_line_ydxi::e#1 )
|
|
[107] (byte) bitmap_line_ydxi::x#6 ← phi( bitmap_line_ydxi::@3/(byte) bitmap_line_ydxi::x#2 bitmap_line_ydxi::@4/(byte) bitmap_line_ydxi::x#3 )
|
|
[108] if((byte) bitmap_line_ydxi::y#2!=(const byte) bitmap_line::y1#0+(byte) 1) goto bitmap_line_ydxi::@1
|
|
to:bitmap_line_ydxi::@return
|
|
bitmap_line_ydxi::@return: scope:[bitmap_line_ydxi] from bitmap_line_ydxi::@2
|
|
[109] return
|
|
to:@return
|
|
|
|
(void()) bitmap_line_xdyi((byte) bitmap_line_xdyi::x , (byte) bitmap_line_xdyi::y , (byte) bitmap_line_xdyi::x1 , (byte) bitmap_line_xdyi::xd , (byte) bitmap_line_xdyi::yd)
|
|
bitmap_line_xdyi: scope:[bitmap_line_xdyi] from bitmap_line::@7
|
|
[110] phi()
|
|
to:bitmap_line_xdyi::@1
|
|
bitmap_line_xdyi::@1: scope:[bitmap_line_xdyi] from bitmap_line_xdyi bitmap_line_xdyi::@2
|
|
[111] (byte) bitmap_line_xdyi::e#3 ← phi( bitmap_line_xdyi/(const byte) bitmap_line::y1#0>>(byte) 1 bitmap_line_xdyi::@2/(byte) bitmap_line_xdyi::e#6 )
|
|
[111] (byte) bitmap_line_xdyi::y#3 ← phi( bitmap_line_xdyi/(const byte) bitmap_line::y0#0 bitmap_line_xdyi::@2/(byte) bitmap_line_xdyi::y#6 )
|
|
[111] (byte) bitmap_line_xdyi::x#3 ← phi( bitmap_line_xdyi/(const byte) bitmap_line::x0#0 bitmap_line_xdyi::@2/(byte) bitmap_line_xdyi::x#2 )
|
|
[112] (byte) bitmap_plot::x#0 ← (byte) bitmap_line_xdyi::x#3
|
|
[113] (byte) bitmap_plot::y#0 ← (byte) bitmap_line_xdyi::y#3
|
|
[114] call bitmap_plot
|
|
to:bitmap_line_xdyi::@4
|
|
bitmap_line_xdyi::@4: scope:[bitmap_line_xdyi] from bitmap_line_xdyi::@1
|
|
[115] (byte) bitmap_line_xdyi::x#2 ← ++ (byte) bitmap_line_xdyi::x#3
|
|
[116] (byte) bitmap_line_xdyi::e#1 ← (byte) bitmap_line_xdyi::e#3 + (const byte) bitmap_line::y1#0
|
|
[117] if((byte) bitmap_line_xdyi::xd#1>=(byte) bitmap_line_xdyi::e#1) goto bitmap_line_xdyi::@2
|
|
to:bitmap_line_xdyi::@3
|
|
bitmap_line_xdyi::@3: scope:[bitmap_line_xdyi] from bitmap_line_xdyi::@4
|
|
[118] (byte) bitmap_line_xdyi::y#2 ← ++ (byte) bitmap_line_xdyi::y#3
|
|
[119] (byte) bitmap_line_xdyi::e#2 ← (byte) bitmap_line_xdyi::e#1 - (byte) bitmap_line_xdyi::xd#1
|
|
to:bitmap_line_xdyi::@2
|
|
bitmap_line_xdyi::@2: scope:[bitmap_line_xdyi] from bitmap_line_xdyi::@3 bitmap_line_xdyi::@4
|
|
[120] (byte) bitmap_line_xdyi::e#6 ← phi( bitmap_line_xdyi::@3/(byte) bitmap_line_xdyi::e#2 bitmap_line_xdyi::@4/(byte) bitmap_line_xdyi::e#1 )
|
|
[120] (byte) bitmap_line_xdyi::y#6 ← phi( bitmap_line_xdyi::@3/(byte) bitmap_line_xdyi::y#2 bitmap_line_xdyi::@4/(byte) bitmap_line_xdyi::y#3 )
|
|
[121] (byte~) bitmap_line_xdyi::$6 ← (byte) bitmap_line_xdyi::x1#1 + (byte) 1
|
|
[122] if((byte) bitmap_line_xdyi::x#2!=(byte~) bitmap_line_xdyi::$6) goto bitmap_line_xdyi::@1
|
|
to:bitmap_line_xdyi::@return
|
|
bitmap_line_xdyi::@return: scope:[bitmap_line_xdyi] from bitmap_line_xdyi::@2
|
|
[123] return
|
|
to:@return
|
|
|
|
(void()) bitmap_plot((byte) bitmap_plot::x , (byte) bitmap_plot::y)
|
|
bitmap_plot: scope:[bitmap_plot] from bitmap_line_xdyd::@1 bitmap_line_xdyi::@1 bitmap_line_ydxd::@1 bitmap_line_ydxi::@1
|
|
[124] (byte) bitmap_plot::y#4 ← phi( bitmap_line_xdyd::@1/(byte) bitmap_plot::y#1 bitmap_line_xdyi::@1/(byte) bitmap_plot::y#0 bitmap_line_ydxd::@1/(byte) bitmap_plot::y#3 bitmap_line_ydxi::@1/(byte) bitmap_plot::y#2 )
|
|
[124] (byte) bitmap_plot::x#4 ← phi( bitmap_line_xdyd::@1/(byte) bitmap_plot::x#1 bitmap_line_xdyi::@1/(byte) bitmap_plot::x#0 bitmap_line_ydxd::@1/(byte) bitmap_plot::x#3 bitmap_line_ydxi::@1/(byte) bitmap_plot::x#2 )
|
|
[125] (word) bitmap_plot::plotter_x#0 ← *((const to_nomodify byte*) bitmap_plot_xhi + (byte) bitmap_plot::x#4) w= *((const to_nomodify byte*) bitmap_plot_xlo + (byte) bitmap_plot::x#4)
|
|
[126] (word) bitmap_plot::plotter_y#0 ← *((const to_nomodify byte*) bitmap_plot_yhi + (byte) bitmap_plot::y#4) w= *((const to_nomodify byte*) bitmap_plot_ylo + (byte) bitmap_plot::y#4)
|
|
[127] (word) bitmap_plot::plotter#0 ← (word) bitmap_plot::plotter_x#0 + (word) bitmap_plot::plotter_y#0
|
|
[128] (byte~) bitmap_plot::$1 ← *((byte*)(word) bitmap_plot::plotter#0) | *((const to_nomodify byte*) bitmap_plot_bit + (byte) bitmap_plot::x#4)
|
|
[129] *((byte*)(word) bitmap_plot::plotter#0) ← (byte~) bitmap_plot::$1
|
|
to:bitmap_plot::@return
|
|
bitmap_plot::@return: scope:[bitmap_plot] from bitmap_plot
|
|
[130] return
|
|
to:@return
|
|
|
|
|
|
VARIABLE REGISTER WEIGHTS
|
|
(byte) MOS6526_CIA::INTERRUPT
|
|
(byte) MOS6526_CIA::PORT_A
|
|
(byte) MOS6526_CIA::PORT_A_DDR
|
|
(byte) MOS6526_CIA::PORT_B
|
|
(byte) MOS6526_CIA::PORT_B_DDR
|
|
(byte) MOS6526_CIA::SERIAL_DATA
|
|
(word) MOS6526_CIA::TIMER_A
|
|
(byte) MOS6526_CIA::TIMER_A_CONTROL
|
|
(word) MOS6526_CIA::TIMER_B
|
|
(byte) MOS6526_CIA::TIMER_B_CONTROL
|
|
(byte) MOS6526_CIA::TOD_10THS
|
|
(byte) MOS6526_CIA::TOD_HOURS
|
|
(byte) MOS6526_CIA::TOD_MIN
|
|
(byte) MOS6526_CIA::TOD_SEC
|
|
(byte) MOS6569_VICII::BG_COLOR
|
|
(byte) MOS6569_VICII::BG_COLOR1
|
|
(byte) MOS6569_VICII::BG_COLOR2
|
|
(byte) MOS6569_VICII::BG_COLOR3
|
|
(byte) MOS6569_VICII::BORDER_COLOR
|
|
(byte) MOS6569_VICII::CONTROL1
|
|
(byte) MOS6569_VICII::CONTROL2
|
|
(byte) MOS6569_VICII::IRQ_ENABLE
|
|
(byte) MOS6569_VICII::IRQ_STATUS
|
|
(byte) MOS6569_VICII::LIGHTPEN_X
|
|
(byte) MOS6569_VICII::LIGHTPEN_Y
|
|
(byte) MOS6569_VICII::MEMORY
|
|
(byte) MOS6569_VICII::RASTER
|
|
(byte) MOS6569_VICII::SPRITE0_COLOR
|
|
(byte) MOS6569_VICII::SPRITE0_X
|
|
(byte) MOS6569_VICII::SPRITE0_Y
|
|
(byte) MOS6569_VICII::SPRITE1_COLOR
|
|
(byte) MOS6569_VICII::SPRITE1_X
|
|
(byte) MOS6569_VICII::SPRITE1_Y
|
|
(byte) MOS6569_VICII::SPRITE2_COLOR
|
|
(byte) MOS6569_VICII::SPRITE2_X
|
|
(byte) MOS6569_VICII::SPRITE2_Y
|
|
(byte) MOS6569_VICII::SPRITE3_COLOR
|
|
(byte) MOS6569_VICII::SPRITE3_X
|
|
(byte) MOS6569_VICII::SPRITE3_Y
|
|
(byte) MOS6569_VICII::SPRITE4_COLOR
|
|
(byte) MOS6569_VICII::SPRITE4_X
|
|
(byte) MOS6569_VICII::SPRITE4_Y
|
|
(byte) MOS6569_VICII::SPRITE5_COLOR
|
|
(byte) MOS6569_VICII::SPRITE5_X
|
|
(byte) MOS6569_VICII::SPRITE5_Y
|
|
(byte) MOS6569_VICII::SPRITE6_COLOR
|
|
(byte) MOS6569_VICII::SPRITE6_X
|
|
(byte) MOS6569_VICII::SPRITE6_Y
|
|
(byte) MOS6569_VICII::SPRITE7_COLOR
|
|
(byte) MOS6569_VICII::SPRITE7_X
|
|
(byte) MOS6569_VICII::SPRITE7_Y
|
|
(byte) MOS6569_VICII::SPRITES_BG_COLLISION
|
|
(byte) MOS6569_VICII::SPRITES_COLLISION
|
|
(byte) MOS6569_VICII::SPRITES_ENABLE
|
|
(byte) MOS6569_VICII::SPRITES_EXPAND_X
|
|
(byte) MOS6569_VICII::SPRITES_EXPAND_Y
|
|
(byte) MOS6569_VICII::SPRITES_MC
|
|
(byte) MOS6569_VICII::SPRITES_MCOLOR1
|
|
(byte) MOS6569_VICII::SPRITES_MCOLOR2
|
|
(byte) MOS6569_VICII::SPRITES_PRIORITY
|
|
(byte) MOS6569_VICII::SPRITES_XMSB
|
|
(byte) MOS6581_SID::CH1_ATTACK_DECAY
|
|
(byte) MOS6581_SID::CH1_CONTROL
|
|
(word) MOS6581_SID::CH1_FREQ
|
|
(word) MOS6581_SID::CH1_PULSE_WIDTH
|
|
(byte) MOS6581_SID::CH1_SUSTAIN_RELEASE
|
|
(byte) MOS6581_SID::CH2_ATTACK_DECAY
|
|
(byte) MOS6581_SID::CH2_CONTROL
|
|
(word) MOS6581_SID::CH2_FREQ
|
|
(word) MOS6581_SID::CH2_PULSE_WIDTH
|
|
(byte) MOS6581_SID::CH2_SUSTAIN_RELEASE
|
|
(byte) MOS6581_SID::CH3_ATTACK_DECAY
|
|
(byte) MOS6581_SID::CH3_CONTROL
|
|
(byte) MOS6581_SID::CH3_ENV
|
|
(word) MOS6581_SID::CH3_FREQ
|
|
(byte) MOS6581_SID::CH3_OSC
|
|
(word) MOS6581_SID::CH3_PULSE_WIDTH
|
|
(byte) MOS6581_SID::CH3_SUSTAIN_RELEASE
|
|
(byte) MOS6581_SID::FILTER_CUTOFF_HIGH
|
|
(byte) MOS6581_SID::FILTER_CUTOFF_LOW
|
|
(byte) MOS6581_SID::FILTER_SETUP
|
|
(byte) MOS6581_SID::POT_X
|
|
(byte) MOS6581_SID::POT_Y
|
|
(byte) MOS6581_SID::VOLUME_FILTER_MODE
|
|
(void()) bitmap_clear()
|
|
(byte*) bitmap_clear::bitmap
|
|
(word) bitmap_clear::bitmap#0 11.0
|
|
(byte*) bitmap_clear::bitmap#1 420.59999999999997
|
|
(byte*) bitmap_clear::bitmap#2 1552.0
|
|
(byte*) bitmap_clear::bitmap#3 213.0
|
|
(byte*) bitmap_clear::bitmap#5 22.0
|
|
(byte) bitmap_clear::x
|
|
(byte) bitmap_clear::x#1 1501.5
|
|
(byte) bitmap_clear::x#2 667.3333333333334
|
|
(byte) bitmap_clear::y
|
|
(byte) bitmap_clear::y#1 151.5
|
|
(byte) bitmap_clear::y#4 33.666666666666664
|
|
(void()) bitmap_init((byte*) bitmap_init::bitmap)
|
|
(byte~) bitmap_init::$0 202.0
|
|
(byte~) bitmap_init::$10 50.5
|
|
(byte~) bitmap_init::$7 202.0
|
|
(byte~) bitmap_init::$8 202.0
|
|
(byte~) bitmap_init::$9 202.0
|
|
(byte*) bitmap_init::bitmap
|
|
(byte) bitmap_init::bits
|
|
(byte) bitmap_init::bits#1 101.0
|
|
(byte) bitmap_init::bits#3 60.599999999999994
|
|
(byte) bitmap_init::bits#4 67.33333333333333
|
|
(byte) bitmap_init::x
|
|
(byte) bitmap_init::x#1 151.5
|
|
(byte) bitmap_init::x#2 67.33333333333333
|
|
(byte) bitmap_init::y
|
|
(byte) bitmap_init::y#1 151.5
|
|
(byte) bitmap_init::y#2 50.5
|
|
(byte*) bitmap_init::yoffs
|
|
(byte*) bitmap_init::yoffs#1 202.0
|
|
(byte*) bitmap_init::yoffs#2 63.125
|
|
(byte*) bitmap_init::yoffs#4 101.0
|
|
(void()) bitmap_line((byte) bitmap_line::x0 , (byte) bitmap_line::x1 , (byte) bitmap_line::y0 , (byte) bitmap_line::y1)
|
|
(byte) bitmap_line::x0
|
|
(byte) bitmap_line::x1
|
|
(byte) bitmap_line::x1#0 85.99999999999999
|
|
(byte) bitmap_line::xd
|
|
(byte) bitmap_line::xd#1 134.66666666666666
|
|
(byte) bitmap_line::xd#2 134.66666666666666
|
|
(byte) bitmap_line::y0
|
|
(byte) bitmap_line::y1
|
|
(byte) bitmap_line::yd
|
|
(void()) bitmap_line_xdyd((byte) bitmap_line_xdyd::x , (byte) bitmap_line_xdyd::y , (byte) bitmap_line_xdyd::x1 , (byte) bitmap_line_xdyd::xd , (byte) bitmap_line_xdyd::yd)
|
|
(byte) bitmap_line_xdyd::e
|
|
(byte) bitmap_line_xdyd::e#1 133334.66666666666
|
|
(byte) bitmap_line_xdyd::e#2 200002.0
|
|
(byte) bitmap_line_xdyd::e#3 40000.4
|
|
(byte) bitmap_line_xdyd::e#6 150001.5
|
|
(byte) bitmap_line_xdyd::x
|
|
(byte) bitmap_line_xdyd::x#0 367.33333333333337
|
|
(byte) bitmap_line_xdyd::x#2 42857.57142857143
|
|
(byte) bitmap_line_xdyd::x#3 75251.0
|
|
(byte) bitmap_line_xdyd::x1
|
|
(byte) bitmap_line_xdyd::xd
|
|
(byte) bitmap_line_xdyd::xd#0 15392.538461538461
|
|
(byte) bitmap_line_xdyd::y
|
|
(byte) bitmap_line_xdyd::y#2 100001.0
|
|
(byte) bitmap_line_xdyd::y#3 57143.42857142857
|
|
(byte) bitmap_line_xdyd::y#6 150001.5
|
|
(byte) bitmap_line_xdyd::yd
|
|
(void()) bitmap_line_xdyi((byte) bitmap_line_xdyi::x , (byte) bitmap_line_xdyi::y , (byte) bitmap_line_xdyi::x1 , (byte) bitmap_line_xdyi::xd , (byte) bitmap_line_xdyi::yd)
|
|
(byte~) bitmap_line_xdyi::$6 200002.0
|
|
(byte) bitmap_line_xdyi::e
|
|
(byte) bitmap_line_xdyi::e#1 133334.66666666666
|
|
(byte) bitmap_line_xdyi::e#2 200002.0
|
|
(byte) bitmap_line_xdyi::e#3 40000.4
|
|
(byte) bitmap_line_xdyi::e#6 100001.0
|
|
(byte) bitmap_line_xdyi::x
|
|
(byte) bitmap_line_xdyi::x#2 37500.375
|
|
(byte) bitmap_line_xdyi::x#3 75000.75
|
|
(byte) bitmap_line_xdyi::x1
|
|
(byte) bitmap_line_xdyi::x1#1 6673.466666666667
|
|
(byte) bitmap_line_xdyi::xd
|
|
(byte) bitmap_line_xdyi::xd#1 14293.071428571428
|
|
(byte) bitmap_line_xdyi::y
|
|
(byte) bitmap_line_xdyi::y#2 100001.0
|
|
(byte) bitmap_line_xdyi::y#3 57143.42857142857
|
|
(byte) bitmap_line_xdyi::y#6 100001.0
|
|
(byte) bitmap_line_xdyi::yd
|
|
(void()) bitmap_line_ydxd((byte) bitmap_line_ydxd::y , (byte) bitmap_line_ydxd::x , (byte) bitmap_line_ydxd::y1 , (byte) bitmap_line_ydxd::yd , (byte) bitmap_line_ydxd::xd)
|
|
(byte) bitmap_line_ydxd::e
|
|
(byte) bitmap_line_ydxd::e#0 2002.0
|
|
(byte) bitmap_line_ydxd::e#1 133334.66666666666
|
|
(byte) bitmap_line_ydxd::e#2 200002.0
|
|
(byte) bitmap_line_ydxd::e#3 40200.600000000006
|
|
(byte) bitmap_line_ydxd::e#6 150001.5
|
|
(byte) bitmap_line_ydxd::x
|
|
(byte) bitmap_line_ydxd::x#2 100001.0
|
|
(byte) bitmap_line_ydxd::x#3 57143.42857142857
|
|
(byte) bitmap_line_ydxd::x#6 150001.5
|
|
(byte) bitmap_line_ydxd::xd
|
|
(byte) bitmap_line_ydxd::xd#0 7777.153846153846
|
|
(byte) bitmap_line_ydxd::y
|
|
(byte) bitmap_line_ydxd::y#2 75000.75
|
|
(byte) bitmap_line_ydxd::y#3 42857.57142857143
|
|
(byte) bitmap_line_ydxd::y1
|
|
(byte) bitmap_line_ydxd::yd
|
|
(void()) bitmap_line_ydxi((byte) bitmap_line_ydxi::y , (byte) bitmap_line_ydxi::x , (byte) bitmap_line_ydxi::y1 , (byte) bitmap_line_ydxi::yd , (byte) bitmap_line_ydxi::xd)
|
|
(byte) bitmap_line_ydxi::e
|
|
(byte) bitmap_line_ydxi::e#0 2002.0
|
|
(byte) bitmap_line_ydxi::e#1 133334.66666666666
|
|
(byte) bitmap_line_ydxi::e#2 200002.0
|
|
(byte) bitmap_line_ydxi::e#3 40200.600000000006
|
|
(byte) bitmap_line_ydxi::e#6 150001.5
|
|
(byte) bitmap_line_ydxi::x
|
|
(byte) bitmap_line_ydxi::x#2 100001.0
|
|
(byte) bitmap_line_ydxi::x#3 57143.42857142857
|
|
(byte) bitmap_line_ydxi::x#6 150001.5
|
|
(byte) bitmap_line_ydxi::xd
|
|
(byte) bitmap_line_ydxi::xd#1 7777.153846153846
|
|
(byte) bitmap_line_ydxi::y
|
|
(byte) bitmap_line_ydxi::y#2 42857.57142857143
|
|
(byte) bitmap_line_ydxi::y#3 75000.75
|
|
(byte) bitmap_line_ydxi::y1
|
|
(byte) bitmap_line_ydxi::yd
|
|
(void()) bitmap_plot((byte) bitmap_plot::x , (byte) bitmap_plot::y)
|
|
(byte~) bitmap_plot::$1 2000002.0
|
|
(byte*) bitmap_plot::plotter
|
|
(word) bitmap_plot::plotter#0 500000.5
|
|
(word) bitmap_plot::plotter_x
|
|
(word) bitmap_plot::plotter_x#0 1000001.0
|
|
(word) bitmap_plot::plotter_y
|
|
(word) bitmap_plot::plotter_y#0 2000002.0
|
|
(byte) bitmap_plot::x
|
|
(byte) bitmap_plot::x#0 100001.0
|
|
(byte) bitmap_plot::x#1 100001.0
|
|
(byte) bitmap_plot::x#2 100001.0
|
|
(byte) bitmap_plot::x#3 100001.0
|
|
(byte) bitmap_plot::x#4 850001.75
|
|
(byte) bitmap_plot::y
|
|
(byte) bitmap_plot::y#0 200002.0
|
|
(byte) bitmap_plot::y#1 200002.0
|
|
(byte) bitmap_plot::y#2 200002.0
|
|
(byte) bitmap_plot::y#3 200002.0
|
|
(byte) bitmap_plot::y#4 1200003.0
|
|
(void()) init_screen()
|
|
(byte*) init_screen::c
|
|
(byte*) init_screen::c#1 202.0
|
|
(byte*) init_screen::c#2 134.66666666666666
|
|
(void()) main()
|
|
(byte) next
|
|
(byte) next#0 22.0
|
|
(byte) next#5 11.0
|
|
|
|
Initial phi equivalence classes
|
|
[ next#5 next#0 ]
|
|
[ bitmap_init::x#2 bitmap_init::x#1 ]
|
|
[ bitmap_init::bits#3 bitmap_init::bits#4 bitmap_init::bits#1 ]
|
|
[ bitmap_init::y#2 bitmap_init::y#1 ]
|
|
[ bitmap_init::yoffs#2 bitmap_init::yoffs#4 bitmap_init::yoffs#1 ]
|
|
[ bitmap_clear::y#4 bitmap_clear::y#1 ]
|
|
[ bitmap_clear::bitmap#2 bitmap_clear::bitmap#3 bitmap_clear::bitmap#5 bitmap_clear::bitmap#1 ]
|
|
[ bitmap_clear::x#2 bitmap_clear::x#1 ]
|
|
[ init_screen::c#2 init_screen::c#1 ]
|
|
[ bitmap_line_ydxd::x#3 bitmap_line_ydxd::x#6 bitmap_line_ydxd::x#2 ]
|
|
[ bitmap_line_ydxd::y#2 bitmap_line_ydxd::y#3 ]
|
|
[ bitmap_line_ydxd::e#3 bitmap_line_ydxd::e#0 bitmap_line_ydxd::e#6 bitmap_line_ydxd::e#2 bitmap_line_ydxd::e#1 ]
|
|
[ bitmap_line_xdyd::x#3 bitmap_line_xdyd::x#0 bitmap_line_xdyd::x#2 ]
|
|
[ bitmap_line_xdyd::y#3 bitmap_line_xdyd::y#6 bitmap_line_xdyd::y#2 ]
|
|
[ bitmap_line_xdyd::e#3 bitmap_line_xdyd::e#6 bitmap_line_xdyd::e#2 bitmap_line_xdyd::e#1 ]
|
|
[ bitmap_line_ydxi::x#3 bitmap_line_ydxi::x#6 bitmap_line_ydxi::x#2 ]
|
|
[ bitmap_line_ydxi::y#3 bitmap_line_ydxi::y#2 ]
|
|
[ bitmap_line_ydxi::e#3 bitmap_line_ydxi::e#0 bitmap_line_ydxi::e#6 bitmap_line_ydxi::e#2 bitmap_line_ydxi::e#1 ]
|
|
[ bitmap_line_xdyi::x#3 bitmap_line_xdyi::x#2 ]
|
|
[ bitmap_line_xdyi::y#3 bitmap_line_xdyi::y#6 bitmap_line_xdyi::y#2 ]
|
|
[ bitmap_line_xdyi::e#3 bitmap_line_xdyi::e#6 bitmap_line_xdyi::e#2 bitmap_line_xdyi::e#1 ]
|
|
[ bitmap_plot::x#4 bitmap_plot::x#1 bitmap_plot::x#0 bitmap_plot::x#3 bitmap_plot::x#2 ]
|
|
[ bitmap_plot::y#4 bitmap_plot::y#1 bitmap_plot::y#0 bitmap_plot::y#3 bitmap_plot::y#2 ]
|
|
Added variable bitmap_line::x1#0 to live range equivalence class [ bitmap_line::x1#0 ]
|
|
Added variable bitmap_init::$0 to live range equivalence class [ bitmap_init::$0 ]
|
|
Added variable bitmap_init::$10 to live range equivalence class [ bitmap_init::$10 ]
|
|
Added variable bitmap_init::$7 to live range equivalence class [ bitmap_init::$7 ]
|
|
Added variable bitmap_init::$8 to live range equivalence class [ bitmap_init::$8 ]
|
|
Added variable bitmap_init::$9 to live range equivalence class [ bitmap_init::$9 ]
|
|
Added variable bitmap_clear::bitmap#0 to live range equivalence class [ bitmap_clear::bitmap#0 ]
|
|
Added variable bitmap_line::xd#2 to live range equivalence class [ bitmap_line::xd#2 ]
|
|
Added variable bitmap_line_ydxd::xd#0 to live range equivalence class [ bitmap_line_ydxd::xd#0 ]
|
|
Added variable bitmap_line_xdyd::xd#0 to live range equivalence class [ bitmap_line_xdyd::xd#0 ]
|
|
Added variable bitmap_line::xd#1 to live range equivalence class [ bitmap_line::xd#1 ]
|
|
Added variable bitmap_line_ydxi::xd#1 to live range equivalence class [ bitmap_line_ydxi::xd#1 ]
|
|
Added variable bitmap_line_xdyi::x1#1 to live range equivalence class [ bitmap_line_xdyi::x1#1 ]
|
|
Added variable bitmap_line_xdyi::xd#1 to live range equivalence class [ bitmap_line_xdyi::xd#1 ]
|
|
Added variable bitmap_line_xdyi::$6 to live range equivalence class [ bitmap_line_xdyi::$6 ]
|
|
Added variable bitmap_plot::plotter_x#0 to live range equivalence class [ bitmap_plot::plotter_x#0 ]
|
|
Added variable bitmap_plot::plotter_y#0 to live range equivalence class [ bitmap_plot::plotter_y#0 ]
|
|
Added variable bitmap_plot::plotter#0 to live range equivalence class [ bitmap_plot::plotter#0 ]
|
|
Added variable bitmap_plot::$1 to live range equivalence class [ bitmap_plot::$1 ]
|
|
Complete equivalence classes
|
|
[ next#5 next#0 ]
|
|
[ bitmap_init::x#2 bitmap_init::x#1 ]
|
|
[ bitmap_init::bits#3 bitmap_init::bits#4 bitmap_init::bits#1 ]
|
|
[ bitmap_init::y#2 bitmap_init::y#1 ]
|
|
[ bitmap_init::yoffs#2 bitmap_init::yoffs#4 bitmap_init::yoffs#1 ]
|
|
[ bitmap_clear::y#4 bitmap_clear::y#1 ]
|
|
[ bitmap_clear::bitmap#2 bitmap_clear::bitmap#3 bitmap_clear::bitmap#5 bitmap_clear::bitmap#1 ]
|
|
[ bitmap_clear::x#2 bitmap_clear::x#1 ]
|
|
[ init_screen::c#2 init_screen::c#1 ]
|
|
[ bitmap_line_ydxd::x#3 bitmap_line_ydxd::x#6 bitmap_line_ydxd::x#2 ]
|
|
[ bitmap_line_ydxd::y#2 bitmap_line_ydxd::y#3 ]
|
|
[ bitmap_line_ydxd::e#3 bitmap_line_ydxd::e#0 bitmap_line_ydxd::e#6 bitmap_line_ydxd::e#2 bitmap_line_ydxd::e#1 ]
|
|
[ bitmap_line_xdyd::x#3 bitmap_line_xdyd::x#0 bitmap_line_xdyd::x#2 ]
|
|
[ bitmap_line_xdyd::y#3 bitmap_line_xdyd::y#6 bitmap_line_xdyd::y#2 ]
|
|
[ bitmap_line_xdyd::e#3 bitmap_line_xdyd::e#6 bitmap_line_xdyd::e#2 bitmap_line_xdyd::e#1 ]
|
|
[ bitmap_line_ydxi::x#3 bitmap_line_ydxi::x#6 bitmap_line_ydxi::x#2 ]
|
|
[ bitmap_line_ydxi::y#3 bitmap_line_ydxi::y#2 ]
|
|
[ bitmap_line_ydxi::e#3 bitmap_line_ydxi::e#0 bitmap_line_ydxi::e#6 bitmap_line_ydxi::e#2 bitmap_line_ydxi::e#1 ]
|
|
[ bitmap_line_xdyi::x#3 bitmap_line_xdyi::x#2 ]
|
|
[ bitmap_line_xdyi::y#3 bitmap_line_xdyi::y#6 bitmap_line_xdyi::y#2 ]
|
|
[ bitmap_line_xdyi::e#3 bitmap_line_xdyi::e#6 bitmap_line_xdyi::e#2 bitmap_line_xdyi::e#1 ]
|
|
[ bitmap_plot::x#4 bitmap_plot::x#1 bitmap_plot::x#0 bitmap_plot::x#3 bitmap_plot::x#2 ]
|
|
[ bitmap_plot::y#4 bitmap_plot::y#1 bitmap_plot::y#0 bitmap_plot::y#3 bitmap_plot::y#2 ]
|
|
[ bitmap_line::x1#0 ]
|
|
[ bitmap_init::$0 ]
|
|
[ bitmap_init::$10 ]
|
|
[ bitmap_init::$7 ]
|
|
[ bitmap_init::$8 ]
|
|
[ bitmap_init::$9 ]
|
|
[ bitmap_clear::bitmap#0 ]
|
|
[ bitmap_line::xd#2 ]
|
|
[ bitmap_line_ydxd::xd#0 ]
|
|
[ bitmap_line_xdyd::xd#0 ]
|
|
[ bitmap_line::xd#1 ]
|
|
[ bitmap_line_ydxi::xd#1 ]
|
|
[ bitmap_line_xdyi::x1#1 ]
|
|
[ bitmap_line_xdyi::xd#1 ]
|
|
[ bitmap_line_xdyi::$6 ]
|
|
[ bitmap_plot::plotter_x#0 ]
|
|
[ bitmap_plot::plotter_y#0 ]
|
|
[ bitmap_plot::plotter#0 ]
|
|
[ bitmap_plot::$1 ]
|
|
Allocated zp[1]:2 [ next#5 next#0 ]
|
|
Allocated zp[1]:3 [ bitmap_init::x#2 bitmap_init::x#1 ]
|
|
Allocated zp[1]:4 [ bitmap_init::bits#3 bitmap_init::bits#4 bitmap_init::bits#1 ]
|
|
Allocated zp[1]:5 [ bitmap_init::y#2 bitmap_init::y#1 ]
|
|
Allocated zp[2]:6 [ bitmap_init::yoffs#2 bitmap_init::yoffs#4 bitmap_init::yoffs#1 ]
|
|
Allocated zp[1]:8 [ bitmap_clear::y#4 bitmap_clear::y#1 ]
|
|
Allocated zp[2]:9 [ bitmap_clear::bitmap#2 bitmap_clear::bitmap#3 bitmap_clear::bitmap#5 bitmap_clear::bitmap#1 ]
|
|
Allocated zp[1]:11 [ bitmap_clear::x#2 bitmap_clear::x#1 ]
|
|
Allocated zp[2]:12 [ init_screen::c#2 init_screen::c#1 ]
|
|
Allocated zp[1]:14 [ bitmap_line_ydxd::x#3 bitmap_line_ydxd::x#6 bitmap_line_ydxd::x#2 ]
|
|
Allocated zp[1]:15 [ bitmap_line_ydxd::y#2 bitmap_line_ydxd::y#3 ]
|
|
Allocated zp[1]:16 [ bitmap_line_ydxd::e#3 bitmap_line_ydxd::e#0 bitmap_line_ydxd::e#6 bitmap_line_ydxd::e#2 bitmap_line_ydxd::e#1 ]
|
|
Allocated zp[1]:17 [ bitmap_line_xdyd::x#3 bitmap_line_xdyd::x#0 bitmap_line_xdyd::x#2 ]
|
|
Allocated zp[1]:18 [ bitmap_line_xdyd::y#3 bitmap_line_xdyd::y#6 bitmap_line_xdyd::y#2 ]
|
|
Allocated zp[1]:19 [ bitmap_line_xdyd::e#3 bitmap_line_xdyd::e#6 bitmap_line_xdyd::e#2 bitmap_line_xdyd::e#1 ]
|
|
Allocated zp[1]:20 [ bitmap_line_ydxi::x#3 bitmap_line_ydxi::x#6 bitmap_line_ydxi::x#2 ]
|
|
Allocated zp[1]:21 [ bitmap_line_ydxi::y#3 bitmap_line_ydxi::y#2 ]
|
|
Allocated zp[1]:22 [ bitmap_line_ydxi::e#3 bitmap_line_ydxi::e#0 bitmap_line_ydxi::e#6 bitmap_line_ydxi::e#2 bitmap_line_ydxi::e#1 ]
|
|
Allocated zp[1]:23 [ bitmap_line_xdyi::x#3 bitmap_line_xdyi::x#2 ]
|
|
Allocated zp[1]:24 [ bitmap_line_xdyi::y#3 bitmap_line_xdyi::y#6 bitmap_line_xdyi::y#2 ]
|
|
Allocated zp[1]:25 [ bitmap_line_xdyi::e#3 bitmap_line_xdyi::e#6 bitmap_line_xdyi::e#2 bitmap_line_xdyi::e#1 ]
|
|
Allocated zp[1]:26 [ bitmap_plot::x#4 bitmap_plot::x#1 bitmap_plot::x#0 bitmap_plot::x#3 bitmap_plot::x#2 ]
|
|
Allocated zp[1]:27 [ bitmap_plot::y#4 bitmap_plot::y#1 bitmap_plot::y#0 bitmap_plot::y#3 bitmap_plot::y#2 ]
|
|
Allocated zp[1]:28 [ bitmap_line::x1#0 ]
|
|
Allocated zp[1]:29 [ bitmap_init::$0 ]
|
|
Allocated zp[1]:30 [ bitmap_init::$10 ]
|
|
Allocated zp[1]:31 [ bitmap_init::$7 ]
|
|
Allocated zp[1]:32 [ bitmap_init::$8 ]
|
|
Allocated zp[1]:33 [ bitmap_init::$9 ]
|
|
Allocated zp[2]:34 [ bitmap_clear::bitmap#0 ]
|
|
Allocated zp[1]:36 [ bitmap_line::xd#2 ]
|
|
Allocated zp[1]:37 [ bitmap_line_ydxd::xd#0 ]
|
|
Allocated zp[1]:38 [ bitmap_line_xdyd::xd#0 ]
|
|
Allocated zp[1]:39 [ bitmap_line::xd#1 ]
|
|
Allocated zp[1]:40 [ bitmap_line_ydxi::xd#1 ]
|
|
Allocated zp[1]:41 [ bitmap_line_xdyi::x1#1 ]
|
|
Allocated zp[1]:42 [ bitmap_line_xdyi::xd#1 ]
|
|
Allocated zp[1]:43 [ bitmap_line_xdyi::$6 ]
|
|
Allocated zp[2]:44 [ bitmap_plot::plotter_x#0 ]
|
|
Allocated zp[2]:46 [ bitmap_plot::plotter_y#0 ]
|
|
Allocated zp[2]:48 [ bitmap_plot::plotter#0 ]
|
|
Allocated zp[1]:50 [ bitmap_plot::$1 ]
|
|
|
|
INITIAL ASM
|
|
Target platform is c64basic / MOS6502X
|
|
// File Comments
|
|
// Illustrates problem with bitmap-draw.kc line()
|
|
// Reported by Janne Johansson
|
|
// Upstart
|
|
.pc = $801 "Basic"
|
|
:BasicUpstart(main)
|
|
.pc = $80d "Program"
|
|
// Global Constants & labels
|
|
.const VIC_BMM = $20
|
|
.const VIC_DEN = $10
|
|
.const VIC_RSEL = 8
|
|
.label BORDER_COLOR = $d020
|
|
.label BG_COLOR = $d021
|
|
.label D011 = $d011
|
|
.label VIC_MEMORY = $d018
|
|
.label SCREEN = $400
|
|
.label BITMAP = $2000
|
|
.label next = 2
|
|
// main
|
|
main: {
|
|
// [0] *((const nomodify byte*) BORDER_COLOR) ← (byte) 0 -- _deref_pbuc1=vbuc2
|
|
lda #0
|
|
sta BORDER_COLOR
|
|
// [1] *((const nomodify byte*) BG_COLOR) ← (byte) 0 -- _deref_pbuc1=vbuc2
|
|
lda #0
|
|
sta BG_COLOR
|
|
// [2] *((const nomodify byte*) D011) ← (const nomodify byte) VIC_BMM|(const nomodify byte) VIC_DEN|(const nomodify byte) VIC_RSEL|(byte) 3 -- _deref_pbuc1=vbuc2
|
|
lda #VIC_BMM|VIC_DEN|VIC_RSEL|3
|
|
sta D011
|
|
// [3] *((const nomodify byte*) VIC_MEMORY) ← (byte)(word)(const nomodify byte*) SCREEN&(word) $3fff/(byte) $40|(word)(const nomodify byte*) BITMAP&(word) $3fff/(word) $400 -- _deref_pbuc1=vbuc2
|
|
lda #(SCREEN&$3fff)/$40|(BITMAP&$3fff)/$400
|
|
sta VIC_MEMORY
|
|
// [4] call bitmap_init
|
|
// [13] phi from main to bitmap_init [phi:main->bitmap_init]
|
|
bitmap_init_from_main:
|
|
jsr bitmap_init
|
|
// [5] phi from main to main::@2 [phi:main->main::@2]
|
|
__b2_from_main:
|
|
jmp __b2
|
|
// main::@2
|
|
__b2:
|
|
// [6] call bitmap_clear
|
|
jsr bitmap_clear
|
|
// [7] phi from main::@2 to main::@3 [phi:main::@2->main::@3]
|
|
__b3_from___b2:
|
|
jmp __b3
|
|
// main::@3
|
|
__b3:
|
|
// [8] call init_screen
|
|
// [49] phi from main::@3 to init_screen [phi:main::@3->init_screen]
|
|
init_screen_from___b3:
|
|
jsr init_screen
|
|
// [9] phi from main::@3 to main::@1 [phi:main::@3->main::@1]
|
|
__b1_from___b3:
|
|
// [9] phi (byte) next#5 = (byte) 0 [phi:main::@3->main::@1#0] -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z next
|
|
jmp __b1
|
|
// main::@1
|
|
__b1:
|
|
// [10] (byte) bitmap_line::x1#0 ← (byte) next#5 -- vbuz1=vbuz2
|
|
lda.z next
|
|
sta.z bitmap_line.x1
|
|
// [11] call bitmap_line
|
|
jsr bitmap_line
|
|
jmp __b4
|
|
// main::@4
|
|
__b4:
|
|
// [12] (byte) next#0 ← ++ (byte) next#5 -- vbuz1=_inc_vbuz1
|
|
inc.z next
|
|
// [9] phi from main::@4 to main::@1 [phi:main::@4->main::@1]
|
|
__b1_from___b4:
|
|
// [9] phi (byte) next#5 = (byte) next#0 [phi:main::@4->main::@1#0] -- register_copy
|
|
jmp __b1
|
|
}
|
|
// bitmap_init
|
|
// Initialize the bitmap plotter tables for a specific bitmap
|
|
bitmap_init: {
|
|
.label __0 = $1d
|
|
.label __7 = $1f
|
|
.label __8 = $20
|
|
.label __9 = $21
|
|
.label __10 = $1e
|
|
.label bits = 4
|
|
.label x = 3
|
|
.label y = 5
|
|
.label yoffs = 6
|
|
// [14] phi from bitmap_init to bitmap_init::@1 [phi:bitmap_init->bitmap_init::@1]
|
|
__b1_from_bitmap_init:
|
|
// [14] phi (byte) bitmap_init::bits#3 = (byte) $80 [phi:bitmap_init->bitmap_init::@1#0] -- vbuz1=vbuc1
|
|
lda #$80
|
|
sta.z bits
|
|
// [14] phi (byte) bitmap_init::x#2 = (byte) 0 [phi:bitmap_init->bitmap_init::@1#1] -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z x
|
|
jmp __b1
|
|
// [14] phi from bitmap_init::@2 to bitmap_init::@1 [phi:bitmap_init::@2->bitmap_init::@1]
|
|
__b1_from___b2:
|
|
// [14] phi (byte) bitmap_init::bits#3 = (byte) bitmap_init::bits#4 [phi:bitmap_init::@2->bitmap_init::@1#0] -- register_copy
|
|
// [14] phi (byte) bitmap_init::x#2 = (byte) bitmap_init::x#1 [phi:bitmap_init::@2->bitmap_init::@1#1] -- register_copy
|
|
jmp __b1
|
|
// bitmap_init::@1
|
|
__b1:
|
|
// [15] (byte~) bitmap_init::$0 ← (byte) bitmap_init::x#2 & (byte) $f8 -- vbuz1=vbuz2_band_vbuc1
|
|
lda #$f8
|
|
and.z x
|
|
sta.z __0
|
|
// [16] *((const to_nomodify byte*) bitmap_plot_xlo + (byte) bitmap_init::x#2) ← (byte~) bitmap_init::$0 -- pbuc1_derefidx_vbuz1=vbuz2
|
|
lda.z __0
|
|
ldy.z x
|
|
sta bitmap_plot_xlo,y
|
|
// [17] *((const to_nomodify byte*) bitmap_plot_xhi + (byte) bitmap_init::x#2) ← >(const nomodify byte*) BITMAP -- pbuc1_derefidx_vbuz1=vbuc2
|
|
lda #>BITMAP
|
|
ldy.z x
|
|
sta bitmap_plot_xhi,y
|
|
// [18] *((const to_nomodify byte*) bitmap_plot_bit + (byte) bitmap_init::x#2) ← (byte) bitmap_init::bits#3 -- pbuc1_derefidx_vbuz1=vbuz2
|
|
lda.z bits
|
|
ldy.z x
|
|
sta bitmap_plot_bit,y
|
|
// [19] (byte) bitmap_init::bits#1 ← (byte) bitmap_init::bits#3 >> (byte) 1 -- vbuz1=vbuz1_ror_1
|
|
lsr.z bits
|
|
// [20] if((byte) bitmap_init::bits#1!=(byte) 0) goto bitmap_init::@6 -- vbuz1_neq_0_then_la1
|
|
lda.z bits
|
|
cmp #0
|
|
bne __b6_from___b1
|
|
// [22] phi from bitmap_init::@1 to bitmap_init::@2 [phi:bitmap_init::@1->bitmap_init::@2]
|
|
__b2_from___b1:
|
|
// [22] phi (byte) bitmap_init::bits#4 = (byte) $80 [phi:bitmap_init::@1->bitmap_init::@2#0] -- vbuz1=vbuc1
|
|
lda #$80
|
|
sta.z bits
|
|
jmp __b2
|
|
// [21] phi from bitmap_init::@1 to bitmap_init::@6 [phi:bitmap_init::@1->bitmap_init::@6]
|
|
__b6_from___b1:
|
|
jmp __b6
|
|
// bitmap_init::@6
|
|
__b6:
|
|
// [22] phi from bitmap_init::@6 to bitmap_init::@2 [phi:bitmap_init::@6->bitmap_init::@2]
|
|
__b2_from___b6:
|
|
// [22] phi (byte) bitmap_init::bits#4 = (byte) bitmap_init::bits#1 [phi:bitmap_init::@6->bitmap_init::@2#0] -- register_copy
|
|
jmp __b2
|
|
// bitmap_init::@2
|
|
__b2:
|
|
// [23] (byte) bitmap_init::x#1 ← ++ (byte) bitmap_init::x#2 -- vbuz1=_inc_vbuz1
|
|
inc.z x
|
|
// [24] if((byte) bitmap_init::x#1!=(byte) 0) goto bitmap_init::@1 -- vbuz1_neq_0_then_la1
|
|
lda.z x
|
|
cmp #0
|
|
bne __b1_from___b2
|
|
// [25] phi from bitmap_init::@2 to bitmap_init::@3 [phi:bitmap_init::@2->bitmap_init::@3]
|
|
__b3_from___b2:
|
|
// [25] phi (byte*) bitmap_init::yoffs#2 = (byte*) 0 [phi:bitmap_init::@2->bitmap_init::@3#0] -- pbuz1=pbuc1
|
|
lda #<0
|
|
sta.z yoffs
|
|
lda #>0
|
|
sta.z yoffs+1
|
|
// [25] phi (byte) bitmap_init::y#2 = (byte) 0 [phi:bitmap_init::@2->bitmap_init::@3#1] -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z y
|
|
jmp __b3
|
|
// [25] phi from bitmap_init::@4 to bitmap_init::@3 [phi:bitmap_init::@4->bitmap_init::@3]
|
|
__b3_from___b4:
|
|
// [25] phi (byte*) bitmap_init::yoffs#2 = (byte*) bitmap_init::yoffs#4 [phi:bitmap_init::@4->bitmap_init::@3#0] -- register_copy
|
|
// [25] phi (byte) bitmap_init::y#2 = (byte) bitmap_init::y#1 [phi:bitmap_init::@4->bitmap_init::@3#1] -- register_copy
|
|
jmp __b3
|
|
// bitmap_init::@3
|
|
__b3:
|
|
// [26] (byte~) bitmap_init::$10 ← (byte) bitmap_init::y#2 & (byte) 7 -- vbuz1=vbuz2_band_vbuc1
|
|
lda #7
|
|
and.z y
|
|
sta.z __10
|
|
// [27] (byte~) bitmap_init::$7 ← < (byte*) bitmap_init::yoffs#2 -- vbuz1=_lo_pbuz2
|
|
lda.z yoffs
|
|
sta.z __7
|
|
// [28] (byte~) bitmap_init::$8 ← (byte~) bitmap_init::$10 | (byte~) bitmap_init::$7 -- vbuz1=vbuz2_bor_vbuz3
|
|
lda.z __10
|
|
ora.z __7
|
|
sta.z __8
|
|
// [29] *((const to_nomodify byte*) bitmap_plot_ylo + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$8 -- pbuc1_derefidx_vbuz1=vbuz2
|
|
lda.z __8
|
|
ldy.z y
|
|
sta bitmap_plot_ylo,y
|
|
// [30] (byte~) bitmap_init::$9 ← > (byte*) bitmap_init::yoffs#2 -- vbuz1=_hi_pbuz2
|
|
lda.z yoffs+1
|
|
sta.z __9
|
|
// [31] *((const to_nomodify byte*) bitmap_plot_yhi + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$9 -- pbuc1_derefidx_vbuz1=vbuz2
|
|
lda.z __9
|
|
ldy.z y
|
|
sta bitmap_plot_yhi,y
|
|
// [32] if((byte~) bitmap_init::$10!=(byte) 7) goto bitmap_init::@4 -- vbuz1_neq_vbuc1_then_la1
|
|
lda #7
|
|
cmp.z __10
|
|
bne __b4_from___b3
|
|
jmp __b5
|
|
// bitmap_init::@5
|
|
__b5:
|
|
// [33] (byte*) bitmap_init::yoffs#1 ← (byte*) bitmap_init::yoffs#2 + (word)(number) $28*(number) 8 -- pbuz1=pbuz1_plus_vwuc1
|
|
clc
|
|
lda.z yoffs
|
|
adc #<$28*8
|
|
sta.z yoffs
|
|
lda.z yoffs+1
|
|
adc #>$28*8
|
|
sta.z yoffs+1
|
|
// [34] phi from bitmap_init::@3 bitmap_init::@5 to bitmap_init::@4 [phi:bitmap_init::@3/bitmap_init::@5->bitmap_init::@4]
|
|
__b4_from___b3:
|
|
__b4_from___b5:
|
|
// [34] phi (byte*) bitmap_init::yoffs#4 = (byte*) bitmap_init::yoffs#2 [phi:bitmap_init::@3/bitmap_init::@5->bitmap_init::@4#0] -- register_copy
|
|
jmp __b4
|
|
// bitmap_init::@4
|
|
__b4:
|
|
// [35] (byte) bitmap_init::y#1 ← ++ (byte) bitmap_init::y#2 -- vbuz1=_inc_vbuz1
|
|
inc.z y
|
|
// [36] if((byte) bitmap_init::y#1!=(byte) 0) goto bitmap_init::@3 -- vbuz1_neq_0_then_la1
|
|
lda.z y
|
|
cmp #0
|
|
bne __b3_from___b4
|
|
jmp __breturn
|
|
// bitmap_init::@return
|
|
__breturn:
|
|
// [37] return
|
|
rts
|
|
}
|
|
// bitmap_clear
|
|
// Clear all graphics on the bitmap
|
|
bitmap_clear: {
|
|
.label bitmap = $22
|
|
.label bitmap_1 = 9
|
|
.label x = $b
|
|
.label y = 8
|
|
// [38] (word) bitmap_clear::bitmap#0 ← *((const to_nomodify byte*) bitmap_plot_xhi) w= *((const to_nomodify byte*) bitmap_plot_xlo) -- vwuz1=_deref_pbuc1_word__deref_pbuc2
|
|
lda bitmap_plot_xlo
|
|
sta.z bitmap
|
|
lda bitmap_plot_xhi
|
|
sta.z bitmap+1
|
|
// [39] (byte*) bitmap_clear::bitmap#5 ← (byte*)(word) bitmap_clear::bitmap#0 -- pbuz1=pbuz2
|
|
lda.z bitmap
|
|
sta.z bitmap_1
|
|
lda.z bitmap+1
|
|
sta.z bitmap_1+1
|
|
// [40] phi from bitmap_clear to bitmap_clear::@1 [phi:bitmap_clear->bitmap_clear::@1]
|
|
__b1_from_bitmap_clear:
|
|
// [40] phi (byte) bitmap_clear::y#4 = (byte) 0 [phi:bitmap_clear->bitmap_clear::@1#0] -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z y
|
|
// [40] phi (byte*) bitmap_clear::bitmap#3 = (byte*) bitmap_clear::bitmap#5 [phi:bitmap_clear->bitmap_clear::@1#1] -- register_copy
|
|
jmp __b1
|
|
// [40] phi from bitmap_clear::@3 to bitmap_clear::@1 [phi:bitmap_clear::@3->bitmap_clear::@1]
|
|
__b1_from___b3:
|
|
// [40] phi (byte) bitmap_clear::y#4 = (byte) bitmap_clear::y#1 [phi:bitmap_clear::@3->bitmap_clear::@1#0] -- register_copy
|
|
// [40] phi (byte*) bitmap_clear::bitmap#3 = (byte*) bitmap_clear::bitmap#1 [phi:bitmap_clear::@3->bitmap_clear::@1#1] -- register_copy
|
|
jmp __b1
|
|
// bitmap_clear::@1
|
|
__b1:
|
|
// [41] phi from bitmap_clear::@1 to bitmap_clear::@2 [phi:bitmap_clear::@1->bitmap_clear::@2]
|
|
__b2_from___b1:
|
|
// [41] phi (byte) bitmap_clear::x#2 = (byte) 0 [phi:bitmap_clear::@1->bitmap_clear::@2#0] -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z x
|
|
// [41] phi (byte*) bitmap_clear::bitmap#2 = (byte*) bitmap_clear::bitmap#3 [phi:bitmap_clear::@1->bitmap_clear::@2#1] -- register_copy
|
|
jmp __b2
|
|
// [41] phi from bitmap_clear::@2 to bitmap_clear::@2 [phi:bitmap_clear::@2->bitmap_clear::@2]
|
|
__b2_from___b2:
|
|
// [41] phi (byte) bitmap_clear::x#2 = (byte) bitmap_clear::x#1 [phi:bitmap_clear::@2->bitmap_clear::@2#0] -- register_copy
|
|
// [41] phi (byte*) bitmap_clear::bitmap#2 = (byte*) bitmap_clear::bitmap#1 [phi:bitmap_clear::@2->bitmap_clear::@2#1] -- register_copy
|
|
jmp __b2
|
|
// bitmap_clear::@2
|
|
__b2:
|
|
// [42] *((byte*) bitmap_clear::bitmap#2) ← (byte) 0 -- _deref_pbuz1=vbuc1
|
|
lda #0
|
|
ldy #0
|
|
sta (bitmap_1),y
|
|
// [43] (byte*) bitmap_clear::bitmap#1 ← ++ (byte*) bitmap_clear::bitmap#2 -- pbuz1=_inc_pbuz1
|
|
inc.z bitmap_1
|
|
bne !+
|
|
inc.z bitmap_1+1
|
|
!:
|
|
// [44] (byte) bitmap_clear::x#1 ← ++ (byte) bitmap_clear::x#2 -- vbuz1=_inc_vbuz1
|
|
inc.z x
|
|
// [45] if((byte) bitmap_clear::x#1!=(byte) $c8) goto bitmap_clear::@2 -- vbuz1_neq_vbuc1_then_la1
|
|
lda #$c8
|
|
cmp.z x
|
|
bne __b2_from___b2
|
|
jmp __b3
|
|
// bitmap_clear::@3
|
|
__b3:
|
|
// [46] (byte) bitmap_clear::y#1 ← ++ (byte) bitmap_clear::y#4 -- vbuz1=_inc_vbuz1
|
|
inc.z y
|
|
// [47] if((byte) bitmap_clear::y#1!=(byte) $28) goto bitmap_clear::@1 -- vbuz1_neq_vbuc1_then_la1
|
|
lda #$28
|
|
cmp.z y
|
|
bne __b1_from___b3
|
|
jmp __breturn
|
|
// bitmap_clear::@return
|
|
__breturn:
|
|
// [48] return
|
|
rts
|
|
}
|
|
// init_screen
|
|
init_screen: {
|
|
.label c = $c
|
|
// [50] phi from init_screen to init_screen::@1 [phi:init_screen->init_screen::@1]
|
|
__b1_from_init_screen:
|
|
// [50] phi (byte*) init_screen::c#2 = (const nomodify byte*) SCREEN [phi:init_screen->init_screen::@1#0] -- pbuz1=pbuc1
|
|
lda #<SCREEN
|
|
sta.z c
|
|
lda #>SCREEN
|
|
sta.z c+1
|
|
jmp __b1
|
|
// init_screen::@1
|
|
__b1:
|
|
// [51] if((byte*) init_screen::c#2!=(const nomodify byte*) SCREEN+(word) $400) goto init_screen::@2 -- pbuz1_neq_pbuc1_then_la1
|
|
lda.z c+1
|
|
cmp #>SCREEN+$400
|
|
bne __b2
|
|
lda.z c
|
|
cmp #<SCREEN+$400
|
|
bne __b2
|
|
jmp __breturn
|
|
// init_screen::@return
|
|
__breturn:
|
|
// [52] return
|
|
rts
|
|
// init_screen::@2
|
|
__b2:
|
|
// [53] *((byte*) init_screen::c#2) ← (byte) $14 -- _deref_pbuz1=vbuc1
|
|
lda #$14
|
|
ldy #0
|
|
sta (c),y
|
|
// [54] (byte*) init_screen::c#1 ← ++ (byte*) init_screen::c#2 -- pbuz1=_inc_pbuz1
|
|
inc.z c
|
|
bne !+
|
|
inc.z c+1
|
|
!:
|
|
// [50] phi from init_screen::@2 to init_screen::@1 [phi:init_screen::@2->init_screen::@1]
|
|
__b1_from___b2:
|
|
// [50] phi (byte*) init_screen::c#2 = (byte*) init_screen::c#1 [phi:init_screen::@2->init_screen::@1#0] -- register_copy
|
|
jmp __b1
|
|
}
|
|
// bitmap_line
|
|
// Draw a line on the bitmap
|
|
// bitmap_line(byte zp($1c) x1)
|
|
bitmap_line: {
|
|
.label x0 = 0
|
|
.label y0 = 0
|
|
.label y1 = $64
|
|
.label xd = $27
|
|
.label xd_1 = $24
|
|
.label x1 = $1c
|
|
// [55] if((const byte) bitmap_line::x0#0<(byte) bitmap_line::x1#0) goto bitmap_line::@1 -- vbuc1_lt_vbuz1_then_la1
|
|
lda #x0
|
|
cmp.z x1
|
|
bcc __b1
|
|
jmp __b2
|
|
// bitmap_line::@2
|
|
__b2:
|
|
// [56] (byte) bitmap_line::xd#2 ← (byte) bitmap_line::x1#0 -- vbuz1=vbuz2
|
|
lda.z x1
|
|
sta.z xd_1
|
|
jmp __b3
|
|
// bitmap_line::@3
|
|
__b3:
|
|
// [57] if((const byte) bitmap_line::y1#0<(byte) bitmap_line::xd#2) goto bitmap_line::@4 -- vbuc1_lt_vbuz1_then_la1
|
|
lda #y1
|
|
cmp.z xd_1
|
|
bcc __b4
|
|
jmp __b5
|
|
// bitmap_line::@5
|
|
__b5:
|
|
// [58] (byte) bitmap_line_ydxd::xd#0 ← (byte) bitmap_line::xd#2 -- vbuz1=vbuz2
|
|
lda.z xd_1
|
|
sta.z bitmap_line_ydxd.xd
|
|
// [59] call bitmap_line_ydxd
|
|
jsr bitmap_line_ydxd
|
|
jmp __breturn
|
|
// bitmap_line::@return
|
|
__breturn:
|
|
// [60] return
|
|
rts
|
|
// bitmap_line::@4
|
|
__b4:
|
|
// [61] (byte) bitmap_line_xdyd::x#0 ← (byte) bitmap_line::x1#0 -- vbuz1=vbuz2
|
|
lda.z x1
|
|
sta.z bitmap_line_xdyd.x
|
|
// [62] (byte) bitmap_line_xdyd::xd#0 ← (byte) bitmap_line::xd#2 -- vbuz1=vbuz2
|
|
lda.z xd_1
|
|
sta.z bitmap_line_xdyd.xd
|
|
// [63] call bitmap_line_xdyd
|
|
// [84] phi from bitmap_line::@4 to bitmap_line_xdyd [phi:bitmap_line::@4->bitmap_line_xdyd]
|
|
bitmap_line_xdyd_from___b4:
|
|
jsr bitmap_line_xdyd
|
|
jmp __breturn
|
|
// bitmap_line::@1
|
|
__b1:
|
|
// [64] (byte) bitmap_line::xd#1 ← (byte) bitmap_line::x1#0 -- vbuz1=vbuz2
|
|
lda.z x1
|
|
sta.z xd
|
|
jmp __b6
|
|
// bitmap_line::@6
|
|
__b6:
|
|
// [65] if((const byte) bitmap_line::y1#0<(byte) bitmap_line::xd#1) goto bitmap_line::@7 -- vbuc1_lt_vbuz1_then_la1
|
|
lda #y1
|
|
cmp.z xd
|
|
bcc __b7
|
|
jmp __b8
|
|
// bitmap_line::@8
|
|
__b8:
|
|
// [66] (byte) bitmap_line_ydxi::xd#1 ← (byte) bitmap_line::xd#1 -- vbuz1=vbuz2
|
|
lda.z xd
|
|
sta.z bitmap_line_ydxi.xd
|
|
// [67] call bitmap_line_ydxi
|
|
jsr bitmap_line_ydxi
|
|
jmp __breturn
|
|
// bitmap_line::@7
|
|
__b7:
|
|
// [68] (byte) bitmap_line_xdyi::x1#1 ← (byte) bitmap_line::x1#0 -- vbuz1=vbuz2
|
|
lda.z x1
|
|
sta.z bitmap_line_xdyi.x1
|
|
// [69] (byte) bitmap_line_xdyi::xd#1 ← (byte) bitmap_line::xd#1 -- vbuz1=vbuz2
|
|
lda.z xd
|
|
sta.z bitmap_line_xdyi.xd
|
|
// [70] call bitmap_line_xdyi
|
|
// [110] phi from bitmap_line::@7 to bitmap_line_xdyi [phi:bitmap_line::@7->bitmap_line_xdyi]
|
|
bitmap_line_xdyi_from___b7:
|
|
jsr bitmap_line_xdyi
|
|
jmp __breturn
|
|
}
|
|
// bitmap_line_ydxd
|
|
// bitmap_line_ydxd(byte zp($f) y, byte zp($e) x, byte zp($25) xd)
|
|
bitmap_line_ydxd: {
|
|
.label xd = $25
|
|
.label e = $10
|
|
.label y = $f
|
|
.label x = $e
|
|
// [71] (byte) bitmap_line_ydxd::e#0 ← (byte) bitmap_line_ydxd::xd#0 >> (byte) 1 -- vbuz1=vbuz2_ror_1
|
|
lda.z xd
|
|
lsr
|
|
sta.z e
|
|
// [72] phi from bitmap_line_ydxd to bitmap_line_ydxd::@1 [phi:bitmap_line_ydxd->bitmap_line_ydxd::@1]
|
|
__b1_from_bitmap_line_ydxd:
|
|
// [72] phi (byte) bitmap_line_ydxd::e#3 = (byte) bitmap_line_ydxd::e#0 [phi:bitmap_line_ydxd->bitmap_line_ydxd::@1#0] -- register_copy
|
|
// [72] phi (byte) bitmap_line_ydxd::y#2 = (const byte) bitmap_line::y0#0 [phi:bitmap_line_ydxd->bitmap_line_ydxd::@1#1] -- vbuz1=vbuc1
|
|
lda #bitmap_line.y0
|
|
sta.z y
|
|
// [72] phi (byte) bitmap_line_ydxd::x#3 = (const byte) bitmap_line::x0#0 [phi:bitmap_line_ydxd->bitmap_line_ydxd::@1#2] -- vbuz1=vbuc1
|
|
lda #bitmap_line.x0
|
|
sta.z x
|
|
jmp __b1
|
|
// [72] phi from bitmap_line_ydxd::@2 to bitmap_line_ydxd::@1 [phi:bitmap_line_ydxd::@2->bitmap_line_ydxd::@1]
|
|
__b1_from___b2:
|
|
// [72] phi (byte) bitmap_line_ydxd::e#3 = (byte) bitmap_line_ydxd::e#6 [phi:bitmap_line_ydxd::@2->bitmap_line_ydxd::@1#0] -- register_copy
|
|
// [72] phi (byte) bitmap_line_ydxd::y#2 = (byte) bitmap_line_ydxd::y#3 [phi:bitmap_line_ydxd::@2->bitmap_line_ydxd::@1#1] -- register_copy
|
|
// [72] phi (byte) bitmap_line_ydxd::x#3 = (byte) bitmap_line_ydxd::x#6 [phi:bitmap_line_ydxd::@2->bitmap_line_ydxd::@1#2] -- register_copy
|
|
jmp __b1
|
|
// bitmap_line_ydxd::@1
|
|
__b1:
|
|
// [73] (byte) bitmap_plot::x#3 ← (byte) bitmap_line_ydxd::x#3 -- vbuz1=vbuz2
|
|
lda.z x
|
|
sta.z bitmap_plot.x
|
|
// [74] (byte) bitmap_plot::y#3 ← (byte) bitmap_line_ydxd::y#2 -- vbuz1=vbuz2
|
|
lda.z y
|
|
sta.z bitmap_plot.y
|
|
// [75] call bitmap_plot
|
|
// [124] phi from bitmap_line_ydxd::@1 to bitmap_plot [phi:bitmap_line_ydxd::@1->bitmap_plot]
|
|
bitmap_plot_from___b1:
|
|
// [124] phi (byte) bitmap_plot::y#4 = (byte) bitmap_plot::y#3 [phi:bitmap_line_ydxd::@1->bitmap_plot#0] -- register_copy
|
|
// [124] phi (byte) bitmap_plot::x#4 = (byte) bitmap_plot::x#3 [phi:bitmap_line_ydxd::@1->bitmap_plot#1] -- register_copy
|
|
jsr bitmap_plot
|
|
jmp __b4
|
|
// bitmap_line_ydxd::@4
|
|
__b4:
|
|
// [76] (byte) bitmap_line_ydxd::y#3 ← ++ (byte) bitmap_line_ydxd::y#2 -- vbuz1=_inc_vbuz1
|
|
inc.z y
|
|
// [77] (byte) bitmap_line_ydxd::e#1 ← (byte) bitmap_line_ydxd::e#3 + (byte) bitmap_line_ydxd::xd#0 -- vbuz1=vbuz1_plus_vbuz2
|
|
lda.z e
|
|
clc
|
|
adc.z xd
|
|
sta.z e
|
|
// [78] if((const byte) bitmap_line::y1#0>=(byte) bitmap_line_ydxd::e#1) goto bitmap_line_ydxd::@2 -- vbuc1_ge_vbuz1_then_la1
|
|
lda #bitmap_line.y1
|
|
cmp.z e
|
|
bcs __b2_from___b4
|
|
jmp __b3
|
|
// bitmap_line_ydxd::@3
|
|
__b3:
|
|
// [79] (byte) bitmap_line_ydxd::x#2 ← -- (byte) bitmap_line_ydxd::x#3 -- vbuz1=_dec_vbuz1
|
|
dec.z x
|
|
// [80] (byte) bitmap_line_ydxd::e#2 ← (byte) bitmap_line_ydxd::e#1 - (const byte) bitmap_line::y1#0 -- vbuz1=vbuz1_minus_vbuc1
|
|
lax.z e
|
|
axs #bitmap_line.y1
|
|
stx.z e
|
|
// [81] phi from bitmap_line_ydxd::@3 bitmap_line_ydxd::@4 to bitmap_line_ydxd::@2 [phi:bitmap_line_ydxd::@3/bitmap_line_ydxd::@4->bitmap_line_ydxd::@2]
|
|
__b2_from___b3:
|
|
__b2_from___b4:
|
|
// [81] phi (byte) bitmap_line_ydxd::e#6 = (byte) bitmap_line_ydxd::e#2 [phi:bitmap_line_ydxd::@3/bitmap_line_ydxd::@4->bitmap_line_ydxd::@2#0] -- register_copy
|
|
// [81] phi (byte) bitmap_line_ydxd::x#6 = (byte) bitmap_line_ydxd::x#2 [phi:bitmap_line_ydxd::@3/bitmap_line_ydxd::@4->bitmap_line_ydxd::@2#1] -- register_copy
|
|
jmp __b2
|
|
// bitmap_line_ydxd::@2
|
|
__b2:
|
|
// [82] if((byte) bitmap_line_ydxd::y#3!=(const byte) bitmap_line::y1#0+(byte) 1) goto bitmap_line_ydxd::@1 -- vbuz1_neq_vbuc1_then_la1
|
|
lda #bitmap_line.y1+1
|
|
cmp.z y
|
|
bne __b1_from___b2
|
|
jmp __breturn
|
|
// bitmap_line_ydxd::@return
|
|
__breturn:
|
|
// [83] return
|
|
rts
|
|
}
|
|
// bitmap_line_xdyd
|
|
// bitmap_line_xdyd(byte zp($11) x, byte zp($12) y, byte zp($26) xd)
|
|
bitmap_line_xdyd: {
|
|
.label x = $11
|
|
.label xd = $26
|
|
.label e = $13
|
|
.label y = $12
|
|
// [85] phi from bitmap_line_xdyd to bitmap_line_xdyd::@1 [phi:bitmap_line_xdyd->bitmap_line_xdyd::@1]
|
|
__b1_from_bitmap_line_xdyd:
|
|
// [85] phi (byte) bitmap_line_xdyd::e#3 = (const byte) bitmap_line::y1#0>>(byte) 1 [phi:bitmap_line_xdyd->bitmap_line_xdyd::@1#0] -- vbuz1=vbuc1
|
|
lda #bitmap_line.y1>>1
|
|
sta.z e
|
|
// [85] phi (byte) bitmap_line_xdyd::y#3 = (const byte) bitmap_line::y1#0 [phi:bitmap_line_xdyd->bitmap_line_xdyd::@1#1] -- vbuz1=vbuc1
|
|
lda #bitmap_line.y1
|
|
sta.z y
|
|
// [85] phi (byte) bitmap_line_xdyd::x#3 = (byte) bitmap_line_xdyd::x#0 [phi:bitmap_line_xdyd->bitmap_line_xdyd::@1#2] -- register_copy
|
|
jmp __b1
|
|
// [85] phi from bitmap_line_xdyd::@2 to bitmap_line_xdyd::@1 [phi:bitmap_line_xdyd::@2->bitmap_line_xdyd::@1]
|
|
__b1_from___b2:
|
|
// [85] phi (byte) bitmap_line_xdyd::e#3 = (byte) bitmap_line_xdyd::e#6 [phi:bitmap_line_xdyd::@2->bitmap_line_xdyd::@1#0] -- register_copy
|
|
// [85] phi (byte) bitmap_line_xdyd::y#3 = (byte) bitmap_line_xdyd::y#6 [phi:bitmap_line_xdyd::@2->bitmap_line_xdyd::@1#1] -- register_copy
|
|
// [85] phi (byte) bitmap_line_xdyd::x#3 = (byte) bitmap_line_xdyd::x#2 [phi:bitmap_line_xdyd::@2->bitmap_line_xdyd::@1#2] -- register_copy
|
|
jmp __b1
|
|
// bitmap_line_xdyd::@1
|
|
__b1:
|
|
// [86] (byte) bitmap_plot::x#1 ← (byte) bitmap_line_xdyd::x#3 -- vbuz1=vbuz2
|
|
lda.z x
|
|
sta.z bitmap_plot.x
|
|
// [87] (byte) bitmap_plot::y#1 ← (byte) bitmap_line_xdyd::y#3 -- vbuz1=vbuz2
|
|
lda.z y
|
|
sta.z bitmap_plot.y
|
|
// [88] call bitmap_plot
|
|
// [124] phi from bitmap_line_xdyd::@1 to bitmap_plot [phi:bitmap_line_xdyd::@1->bitmap_plot]
|
|
bitmap_plot_from___b1:
|
|
// [124] phi (byte) bitmap_plot::y#4 = (byte) bitmap_plot::y#1 [phi:bitmap_line_xdyd::@1->bitmap_plot#0] -- register_copy
|
|
// [124] phi (byte) bitmap_plot::x#4 = (byte) bitmap_plot::x#1 [phi:bitmap_line_xdyd::@1->bitmap_plot#1] -- register_copy
|
|
jsr bitmap_plot
|
|
jmp __b4
|
|
// bitmap_line_xdyd::@4
|
|
__b4:
|
|
// [89] (byte) bitmap_line_xdyd::x#2 ← ++ (byte) bitmap_line_xdyd::x#3 -- vbuz1=_inc_vbuz1
|
|
inc.z x
|
|
// [90] (byte) bitmap_line_xdyd::e#1 ← (byte) bitmap_line_xdyd::e#3 + (const byte) bitmap_line::y1#0 -- vbuz1=vbuz1_plus_vbuc1
|
|
lax.z e
|
|
axs #-[bitmap_line.y1]
|
|
stx.z e
|
|
// [91] if((byte) bitmap_line_xdyd::xd#0>=(byte) bitmap_line_xdyd::e#1) goto bitmap_line_xdyd::@2 -- vbuz1_ge_vbuz2_then_la1
|
|
lda.z xd
|
|
cmp.z e
|
|
bcs __b2_from___b4
|
|
jmp __b3
|
|
// bitmap_line_xdyd::@3
|
|
__b3:
|
|
// [92] (byte) bitmap_line_xdyd::y#2 ← -- (byte) bitmap_line_xdyd::y#3 -- vbuz1=_dec_vbuz1
|
|
dec.z y
|
|
// [93] (byte) bitmap_line_xdyd::e#2 ← (byte) bitmap_line_xdyd::e#1 - (byte) bitmap_line_xdyd::xd#0 -- vbuz1=vbuz1_minus_vbuz2
|
|
lda.z e
|
|
sec
|
|
sbc.z xd
|
|
sta.z e
|
|
// [94] phi from bitmap_line_xdyd::@3 bitmap_line_xdyd::@4 to bitmap_line_xdyd::@2 [phi:bitmap_line_xdyd::@3/bitmap_line_xdyd::@4->bitmap_line_xdyd::@2]
|
|
__b2_from___b3:
|
|
__b2_from___b4:
|
|
// [94] phi (byte) bitmap_line_xdyd::e#6 = (byte) bitmap_line_xdyd::e#2 [phi:bitmap_line_xdyd::@3/bitmap_line_xdyd::@4->bitmap_line_xdyd::@2#0] -- register_copy
|
|
// [94] phi (byte) bitmap_line_xdyd::y#6 = (byte) bitmap_line_xdyd::y#2 [phi:bitmap_line_xdyd::@3/bitmap_line_xdyd::@4->bitmap_line_xdyd::@2#1] -- register_copy
|
|
jmp __b2
|
|
// bitmap_line_xdyd::@2
|
|
__b2:
|
|
// [95] if((byte) bitmap_line_xdyd::x#2!=(byte) 1) goto bitmap_line_xdyd::@1 -- vbuz1_neq_vbuc1_then_la1
|
|
lda #1
|
|
cmp.z x
|
|
bne __b1_from___b2
|
|
jmp __breturn
|
|
// bitmap_line_xdyd::@return
|
|
__breturn:
|
|
// [96] return
|
|
rts
|
|
}
|
|
// bitmap_line_ydxi
|
|
// bitmap_line_ydxi(byte zp($15) y, byte zp($14) x, byte zp($28) xd)
|
|
bitmap_line_ydxi: {
|
|
.label xd = $28
|
|
.label e = $16
|
|
.label y = $15
|
|
.label x = $14
|
|
// [97] (byte) bitmap_line_ydxi::e#0 ← (byte) bitmap_line_ydxi::xd#1 >> (byte) 1 -- vbuz1=vbuz2_ror_1
|
|
lda.z xd
|
|
lsr
|
|
sta.z e
|
|
// [98] phi from bitmap_line_ydxi to bitmap_line_ydxi::@1 [phi:bitmap_line_ydxi->bitmap_line_ydxi::@1]
|
|
__b1_from_bitmap_line_ydxi:
|
|
// [98] phi (byte) bitmap_line_ydxi::e#3 = (byte) bitmap_line_ydxi::e#0 [phi:bitmap_line_ydxi->bitmap_line_ydxi::@1#0] -- register_copy
|
|
// [98] phi (byte) bitmap_line_ydxi::y#3 = (const byte) bitmap_line::y0#0 [phi:bitmap_line_ydxi->bitmap_line_ydxi::@1#1] -- vbuz1=vbuc1
|
|
lda #bitmap_line.y0
|
|
sta.z y
|
|
// [98] phi (byte) bitmap_line_ydxi::x#3 = (const byte) bitmap_line::x0#0 [phi:bitmap_line_ydxi->bitmap_line_ydxi::@1#2] -- vbuz1=vbuc1
|
|
lda #bitmap_line.x0
|
|
sta.z x
|
|
jmp __b1
|
|
// [98] phi from bitmap_line_ydxi::@2 to bitmap_line_ydxi::@1 [phi:bitmap_line_ydxi::@2->bitmap_line_ydxi::@1]
|
|
__b1_from___b2:
|
|
// [98] phi (byte) bitmap_line_ydxi::e#3 = (byte) bitmap_line_ydxi::e#6 [phi:bitmap_line_ydxi::@2->bitmap_line_ydxi::@1#0] -- register_copy
|
|
// [98] phi (byte) bitmap_line_ydxi::y#3 = (byte) bitmap_line_ydxi::y#2 [phi:bitmap_line_ydxi::@2->bitmap_line_ydxi::@1#1] -- register_copy
|
|
// [98] phi (byte) bitmap_line_ydxi::x#3 = (byte) bitmap_line_ydxi::x#6 [phi:bitmap_line_ydxi::@2->bitmap_line_ydxi::@1#2] -- register_copy
|
|
jmp __b1
|
|
// bitmap_line_ydxi::@1
|
|
__b1:
|
|
// [99] (byte) bitmap_plot::x#2 ← (byte) bitmap_line_ydxi::x#3 -- vbuz1=vbuz2
|
|
lda.z x
|
|
sta.z bitmap_plot.x
|
|
// [100] (byte) bitmap_plot::y#2 ← (byte) bitmap_line_ydxi::y#3 -- vbuz1=vbuz2
|
|
lda.z y
|
|
sta.z bitmap_plot.y
|
|
// [101] call bitmap_plot
|
|
// [124] phi from bitmap_line_ydxi::@1 to bitmap_plot [phi:bitmap_line_ydxi::@1->bitmap_plot]
|
|
bitmap_plot_from___b1:
|
|
// [124] phi (byte) bitmap_plot::y#4 = (byte) bitmap_plot::y#2 [phi:bitmap_line_ydxi::@1->bitmap_plot#0] -- register_copy
|
|
// [124] phi (byte) bitmap_plot::x#4 = (byte) bitmap_plot::x#2 [phi:bitmap_line_ydxi::@1->bitmap_plot#1] -- register_copy
|
|
jsr bitmap_plot
|
|
jmp __b4
|
|
// bitmap_line_ydxi::@4
|
|
__b4:
|
|
// [102] (byte) bitmap_line_ydxi::y#2 ← ++ (byte) bitmap_line_ydxi::y#3 -- vbuz1=_inc_vbuz1
|
|
inc.z y
|
|
// [103] (byte) bitmap_line_ydxi::e#1 ← (byte) bitmap_line_ydxi::e#3 + (byte) bitmap_line_ydxi::xd#1 -- vbuz1=vbuz1_plus_vbuz2
|
|
lda.z e
|
|
clc
|
|
adc.z xd
|
|
sta.z e
|
|
// [104] if((const byte) bitmap_line::y1#0>=(byte) bitmap_line_ydxi::e#1) goto bitmap_line_ydxi::@2 -- vbuc1_ge_vbuz1_then_la1
|
|
lda #bitmap_line.y1
|
|
cmp.z e
|
|
bcs __b2_from___b4
|
|
jmp __b3
|
|
// bitmap_line_ydxi::@3
|
|
__b3:
|
|
// [105] (byte) bitmap_line_ydxi::x#2 ← ++ (byte) bitmap_line_ydxi::x#3 -- vbuz1=_inc_vbuz1
|
|
inc.z x
|
|
// [106] (byte) bitmap_line_ydxi::e#2 ← (byte) bitmap_line_ydxi::e#1 - (const byte) bitmap_line::y1#0 -- vbuz1=vbuz1_minus_vbuc1
|
|
lax.z e
|
|
axs #bitmap_line.y1
|
|
stx.z e
|
|
// [107] phi from bitmap_line_ydxi::@3 bitmap_line_ydxi::@4 to bitmap_line_ydxi::@2 [phi:bitmap_line_ydxi::@3/bitmap_line_ydxi::@4->bitmap_line_ydxi::@2]
|
|
__b2_from___b3:
|
|
__b2_from___b4:
|
|
// [107] phi (byte) bitmap_line_ydxi::e#6 = (byte) bitmap_line_ydxi::e#2 [phi:bitmap_line_ydxi::@3/bitmap_line_ydxi::@4->bitmap_line_ydxi::@2#0] -- register_copy
|
|
// [107] phi (byte) bitmap_line_ydxi::x#6 = (byte) bitmap_line_ydxi::x#2 [phi:bitmap_line_ydxi::@3/bitmap_line_ydxi::@4->bitmap_line_ydxi::@2#1] -- register_copy
|
|
jmp __b2
|
|
// bitmap_line_ydxi::@2
|
|
__b2:
|
|
// [108] if((byte) bitmap_line_ydxi::y#2!=(const byte) bitmap_line::y1#0+(byte) 1) goto bitmap_line_ydxi::@1 -- vbuz1_neq_vbuc1_then_la1
|
|
lda #bitmap_line.y1+1
|
|
cmp.z y
|
|
bne __b1_from___b2
|
|
jmp __breturn
|
|
// bitmap_line_ydxi::@return
|
|
__breturn:
|
|
// [109] return
|
|
rts
|
|
}
|
|
// bitmap_line_xdyi
|
|
// bitmap_line_xdyi(byte zp($17) x, byte zp($18) y, byte zp($29) x1, byte zp($2a) xd)
|
|
bitmap_line_xdyi: {
|
|
.label __6 = $2b
|
|
.label x1 = $29
|
|
.label xd = $2a
|
|
.label x = $17
|
|
.label e = $19
|
|
.label y = $18
|
|
// [111] phi from bitmap_line_xdyi to bitmap_line_xdyi::@1 [phi:bitmap_line_xdyi->bitmap_line_xdyi::@1]
|
|
__b1_from_bitmap_line_xdyi:
|
|
// [111] phi (byte) bitmap_line_xdyi::e#3 = (const byte) bitmap_line::y1#0>>(byte) 1 [phi:bitmap_line_xdyi->bitmap_line_xdyi::@1#0] -- vbuz1=vbuc1
|
|
lda #bitmap_line.y1>>1
|
|
sta.z e
|
|
// [111] phi (byte) bitmap_line_xdyi::y#3 = (const byte) bitmap_line::y0#0 [phi:bitmap_line_xdyi->bitmap_line_xdyi::@1#1] -- vbuz1=vbuc1
|
|
lda #bitmap_line.y0
|
|
sta.z y
|
|
// [111] phi (byte) bitmap_line_xdyi::x#3 = (const byte) bitmap_line::x0#0 [phi:bitmap_line_xdyi->bitmap_line_xdyi::@1#2] -- vbuz1=vbuc1
|
|
lda #bitmap_line.x0
|
|
sta.z x
|
|
jmp __b1
|
|
// [111] phi from bitmap_line_xdyi::@2 to bitmap_line_xdyi::@1 [phi:bitmap_line_xdyi::@2->bitmap_line_xdyi::@1]
|
|
__b1_from___b2:
|
|
// [111] phi (byte) bitmap_line_xdyi::e#3 = (byte) bitmap_line_xdyi::e#6 [phi:bitmap_line_xdyi::@2->bitmap_line_xdyi::@1#0] -- register_copy
|
|
// [111] phi (byte) bitmap_line_xdyi::y#3 = (byte) bitmap_line_xdyi::y#6 [phi:bitmap_line_xdyi::@2->bitmap_line_xdyi::@1#1] -- register_copy
|
|
// [111] phi (byte) bitmap_line_xdyi::x#3 = (byte) bitmap_line_xdyi::x#2 [phi:bitmap_line_xdyi::@2->bitmap_line_xdyi::@1#2] -- register_copy
|
|
jmp __b1
|
|
// bitmap_line_xdyi::@1
|
|
__b1:
|
|
// [112] (byte) bitmap_plot::x#0 ← (byte) bitmap_line_xdyi::x#3 -- vbuz1=vbuz2
|
|
lda.z x
|
|
sta.z bitmap_plot.x
|
|
// [113] (byte) bitmap_plot::y#0 ← (byte) bitmap_line_xdyi::y#3 -- vbuz1=vbuz2
|
|
lda.z y
|
|
sta.z bitmap_plot.y
|
|
// [114] call bitmap_plot
|
|
// [124] phi from bitmap_line_xdyi::@1 to bitmap_plot [phi:bitmap_line_xdyi::@1->bitmap_plot]
|
|
bitmap_plot_from___b1:
|
|
// [124] phi (byte) bitmap_plot::y#4 = (byte) bitmap_plot::y#0 [phi:bitmap_line_xdyi::@1->bitmap_plot#0] -- register_copy
|
|
// [124] phi (byte) bitmap_plot::x#4 = (byte) bitmap_plot::x#0 [phi:bitmap_line_xdyi::@1->bitmap_plot#1] -- register_copy
|
|
jsr bitmap_plot
|
|
jmp __b4
|
|
// bitmap_line_xdyi::@4
|
|
__b4:
|
|
// [115] (byte) bitmap_line_xdyi::x#2 ← ++ (byte) bitmap_line_xdyi::x#3 -- vbuz1=_inc_vbuz1
|
|
inc.z x
|
|
// [116] (byte) bitmap_line_xdyi::e#1 ← (byte) bitmap_line_xdyi::e#3 + (const byte) bitmap_line::y1#0 -- vbuz1=vbuz1_plus_vbuc1
|
|
lax.z e
|
|
axs #-[bitmap_line.y1]
|
|
stx.z e
|
|
// [117] if((byte) bitmap_line_xdyi::xd#1>=(byte) bitmap_line_xdyi::e#1) goto bitmap_line_xdyi::@2 -- vbuz1_ge_vbuz2_then_la1
|
|
lda.z xd
|
|
cmp.z e
|
|
bcs __b2_from___b4
|
|
jmp __b3
|
|
// bitmap_line_xdyi::@3
|
|
__b3:
|
|
// [118] (byte) bitmap_line_xdyi::y#2 ← ++ (byte) bitmap_line_xdyi::y#3 -- vbuz1=_inc_vbuz1
|
|
inc.z y
|
|
// [119] (byte) bitmap_line_xdyi::e#2 ← (byte) bitmap_line_xdyi::e#1 - (byte) bitmap_line_xdyi::xd#1 -- vbuz1=vbuz1_minus_vbuz2
|
|
lda.z e
|
|
sec
|
|
sbc.z xd
|
|
sta.z e
|
|
// [120] phi from bitmap_line_xdyi::@3 bitmap_line_xdyi::@4 to bitmap_line_xdyi::@2 [phi:bitmap_line_xdyi::@3/bitmap_line_xdyi::@4->bitmap_line_xdyi::@2]
|
|
__b2_from___b3:
|
|
__b2_from___b4:
|
|
// [120] phi (byte) bitmap_line_xdyi::e#6 = (byte) bitmap_line_xdyi::e#2 [phi:bitmap_line_xdyi::@3/bitmap_line_xdyi::@4->bitmap_line_xdyi::@2#0] -- register_copy
|
|
// [120] phi (byte) bitmap_line_xdyi::y#6 = (byte) bitmap_line_xdyi::y#2 [phi:bitmap_line_xdyi::@3/bitmap_line_xdyi::@4->bitmap_line_xdyi::@2#1] -- register_copy
|
|
jmp __b2
|
|
// bitmap_line_xdyi::@2
|
|
__b2:
|
|
// [121] (byte~) bitmap_line_xdyi::$6 ← (byte) bitmap_line_xdyi::x1#1 + (byte) 1 -- vbuz1=vbuz2_plus_1
|
|
ldy.z x1
|
|
iny
|
|
sty.z __6
|
|
// [122] if((byte) bitmap_line_xdyi::x#2!=(byte~) bitmap_line_xdyi::$6) goto bitmap_line_xdyi::@1 -- vbuz1_neq_vbuz2_then_la1
|
|
lda.z x
|
|
cmp.z __6
|
|
bne __b1_from___b2
|
|
jmp __breturn
|
|
// bitmap_line_xdyi::@return
|
|
__breturn:
|
|
// [123] return
|
|
rts
|
|
}
|
|
// bitmap_plot
|
|
// bitmap_plot(byte zp($1a) x, byte zp($1b) y)
|
|
bitmap_plot: {
|
|
.label __1 = $32
|
|
.label plotter_x = $2c
|
|
.label plotter_y = $2e
|
|
.label plotter = $30
|
|
.label x = $1a
|
|
.label y = $1b
|
|
// [125] (word) bitmap_plot::plotter_x#0 ← *((const to_nomodify byte*) bitmap_plot_xhi + (byte) bitmap_plot::x#4) w= *((const to_nomodify byte*) bitmap_plot_xlo + (byte) bitmap_plot::x#4) -- vwuz1=pbuc1_derefidx_vbuz2_word_pbuc2_derefidx_vbuz2
|
|
ldy.z x
|
|
lda bitmap_plot_xhi,y
|
|
sta.z plotter_x+1
|
|
lda bitmap_plot_xlo,y
|
|
sta.z plotter_x
|
|
// [126] (word) bitmap_plot::plotter_y#0 ← *((const to_nomodify byte*) bitmap_plot_yhi + (byte) bitmap_plot::y#4) w= *((const to_nomodify byte*) bitmap_plot_ylo + (byte) bitmap_plot::y#4) -- vwuz1=pbuc1_derefidx_vbuz2_word_pbuc2_derefidx_vbuz2
|
|
ldy.z y
|
|
lda bitmap_plot_yhi,y
|
|
sta.z plotter_y+1
|
|
lda bitmap_plot_ylo,y
|
|
sta.z plotter_y
|
|
// [127] (word) bitmap_plot::plotter#0 ← (word) bitmap_plot::plotter_x#0 + (word) bitmap_plot::plotter_y#0 -- vwuz1=vwuz2_plus_vwuz3
|
|
lda.z plotter_x
|
|
clc
|
|
adc.z plotter_y
|
|
sta.z plotter
|
|
lda.z plotter_x+1
|
|
adc.z plotter_y+1
|
|
sta.z plotter+1
|
|
// [128] (byte~) bitmap_plot::$1 ← *((byte*)(word) bitmap_plot::plotter#0) | *((const to_nomodify byte*) bitmap_plot_bit + (byte) bitmap_plot::x#4) -- vbuz1=_deref_pbuz2_bor_pbuc1_derefidx_vbuz3
|
|
ldy #0
|
|
lda (plotter),y
|
|
ldy.z x
|
|
ora bitmap_plot_bit,y
|
|
sta.z __1
|
|
// [129] *((byte*)(word) bitmap_plot::plotter#0) ← (byte~) bitmap_plot::$1 -- _deref_pbuz1=vbuz2
|
|
lda.z __1
|
|
ldy #0
|
|
sta (plotter),y
|
|
jmp __breturn
|
|
// bitmap_plot::@return
|
|
__breturn:
|
|
// [130] return
|
|
rts
|
|
}
|
|
// File Data
|
|
// Tables for the plotter - initialized by calling bitmap_draw_init();
|
|
bitmap_plot_xlo: .fill $100, 0
|
|
bitmap_plot_xhi: .fill $100, 0
|
|
bitmap_plot_ylo: .fill $100, 0
|
|
bitmap_plot_yhi: .fill $100, 0
|
|
bitmap_plot_bit: .fill $100, 0
|
|
|
|
REGISTER UPLIFT POTENTIAL REGISTERS
|
|
Equivalence Class zp[1]:31 [ bitmap_init::$7 ] has ALU potential.
|
|
Statement [0] *((const nomodify byte*) BORDER_COLOR) ← (byte) 0 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [1] *((const nomodify byte*) BG_COLOR) ← (byte) 0 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [2] *((const nomodify byte*) D011) ← (const nomodify byte) VIC_BMM|(const nomodify byte) VIC_DEN|(const nomodify byte) VIC_RSEL|(byte) 3 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [3] *((const nomodify byte*) VIC_MEMORY) ← (byte)(word)(const nomodify byte*) SCREEN&(word) $3fff/(byte) $40|(word)(const nomodify byte*) BITMAP&(word) $3fff/(word) $400 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [17] *((const to_nomodify byte*) bitmap_plot_xhi + (byte) bitmap_init::x#2) ← >(const nomodify byte*) BITMAP [ bitmap_init::x#2 bitmap_init::bits#3 ] ( bitmap_init:4 [ bitmap_init::x#2 bitmap_init::bits#3 ] { } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:3 [ bitmap_init::x#2 bitmap_init::x#1 ]
|
|
Removing always clobbered register reg byte a as potential for zp[1]:4 [ bitmap_init::bits#3 bitmap_init::bits#4 bitmap_init::bits#1 ]
|
|
Statement [18] *((const to_nomodify byte*) bitmap_plot_bit + (byte) bitmap_init::x#2) ← (byte) bitmap_init::bits#3 [ bitmap_init::x#2 bitmap_init::bits#3 ] ( bitmap_init:4 [ bitmap_init::x#2 bitmap_init::bits#3 ] { } ) always clobbers reg byte a
|
|
Statement [33] (byte*) bitmap_init::yoffs#1 ← (byte*) bitmap_init::yoffs#2 + (word)(number) $28*(number) 8 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] ( bitmap_init:4 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] { } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:5 [ bitmap_init::y#2 bitmap_init::y#1 ]
|
|
Statement [38] (word) bitmap_clear::bitmap#0 ← *((const to_nomodify byte*) bitmap_plot_xhi) w= *((const to_nomodify byte*) bitmap_plot_xlo) [ bitmap_clear::bitmap#0 ] ( bitmap_clear:6 [ bitmap_clear::bitmap#0 ] { } ) always clobbers reg byte a
|
|
Statement [39] (byte*) bitmap_clear::bitmap#5 ← (byte*)(word) bitmap_clear::bitmap#0 [ bitmap_clear::bitmap#5 ] ( bitmap_clear:6 [ bitmap_clear::bitmap#5 ] { } ) always clobbers reg byte a
|
|
Statement [42] *((byte*) bitmap_clear::bitmap#2) ← (byte) 0 [ bitmap_clear::y#4 bitmap_clear::bitmap#2 bitmap_clear::x#2 ] ( bitmap_clear:6 [ bitmap_clear::y#4 bitmap_clear::bitmap#2 bitmap_clear::x#2 ] { } ) always clobbers reg byte a reg byte y
|
|
Removing always clobbered register reg byte a as potential for zp[1]:8 [ bitmap_clear::y#4 bitmap_clear::y#1 ]
|
|
Removing always clobbered register reg byte y as potential for zp[1]:8 [ bitmap_clear::y#4 bitmap_clear::y#1 ]
|
|
Removing always clobbered register reg byte a as potential for zp[1]:11 [ bitmap_clear::x#2 bitmap_clear::x#1 ]
|
|
Removing always clobbered register reg byte y as potential for zp[1]:11 [ bitmap_clear::x#2 bitmap_clear::x#1 ]
|
|
Statement [51] if((byte*) init_screen::c#2!=(const nomodify byte*) SCREEN+(word) $400) goto init_screen::@2 [ init_screen::c#2 ] ( init_screen:8 [ init_screen::c#2 ] { } ) always clobbers reg byte a
|
|
Statement [53] *((byte*) init_screen::c#2) ← (byte) $14 [ init_screen::c#2 ] ( init_screen:8 [ init_screen::c#2 ] { } ) always clobbers reg byte a reg byte y
|
|
Statement [71] (byte) bitmap_line_ydxd::e#0 ← (byte) bitmap_line_ydxd::xd#0 >> (byte) 1 [ bitmap_line_ydxd::xd#0 bitmap_line_ydxd::e#0 ] ( bitmap_line:11::bitmap_line_ydxd:59 [ next#5 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::e#0 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxd::xd#0 = bitmap_line::xd#2 } } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:2 [ next#5 next#0 ]
|
|
Removing always clobbered register reg byte a as potential for zp[1]:37 [ bitmap_line_ydxd::xd#0 ]
|
|
Statement [77] (byte) bitmap_line_ydxd::e#1 ← (byte) bitmap_line_ydxd::e#3 + (byte) bitmap_line_ydxd::xd#0 [ bitmap_line_ydxd::xd#0 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 ] ( bitmap_line:11::bitmap_line_ydxd:59 [ next#5 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxd::xd#0 = bitmap_line::xd#2 } } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:14 [ bitmap_line_ydxd::x#3 bitmap_line_ydxd::x#6 bitmap_line_ydxd::x#2 ]
|
|
Removing always clobbered register reg byte a as potential for zp[1]:15 [ bitmap_line_ydxd::y#2 bitmap_line_ydxd::y#3 ]
|
|
Statement [80] (byte) bitmap_line_ydxd::e#2 ← (byte) bitmap_line_ydxd::e#1 - (const byte) bitmap_line::y1#0 [ bitmap_line_ydxd::xd#0 bitmap_line_ydxd::y#3 bitmap_line_ydxd::x#2 bitmap_line_ydxd::e#2 ] ( bitmap_line:11::bitmap_line_ydxd:59 [ next#5 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::y#3 bitmap_line_ydxd::x#2 bitmap_line_ydxd::e#2 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxd::xd#0 = bitmap_line::xd#2 } } ) always clobbers reg byte a
|
|
Statement [90] (byte) bitmap_line_xdyd::e#1 ← (byte) bitmap_line_xdyd::e#3 + (const byte) bitmap_line::y1#0 [ bitmap_line_xdyd::xd#0 bitmap_line_xdyd::y#3 bitmap_line_xdyd::x#2 bitmap_line_xdyd::e#1 ] ( bitmap_line:11::bitmap_line_xdyd:63 [ next#5 bitmap_line_xdyd::xd#0 bitmap_line_xdyd::y#3 bitmap_line_xdyd::x#2 bitmap_line_xdyd::e#1 ] { { next#5 = bitmap_line::x1#0 bitmap_line_xdyd::x#0 } { bitmap_line_xdyd::xd#0 = bitmap_line::xd#2 } } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:38 [ bitmap_line_xdyd::xd#0 ]
|
|
Removing always clobbered register reg byte a as potential for zp[1]:18 [ bitmap_line_xdyd::y#3 bitmap_line_xdyd::y#6 bitmap_line_xdyd::y#2 ]
|
|
Removing always clobbered register reg byte a as potential for zp[1]:17 [ bitmap_line_xdyd::x#3 bitmap_line_xdyd::x#0 bitmap_line_xdyd::x#2 ]
|
|
Statement [93] (byte) bitmap_line_xdyd::e#2 ← (byte) bitmap_line_xdyd::e#1 - (byte) bitmap_line_xdyd::xd#0 [ bitmap_line_xdyd::xd#0 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#2 bitmap_line_xdyd::e#2 ] ( bitmap_line:11::bitmap_line_xdyd:63 [ next#5 bitmap_line_xdyd::xd#0 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#2 bitmap_line_xdyd::e#2 ] { { next#5 = bitmap_line::x1#0 bitmap_line_xdyd::x#0 } { bitmap_line_xdyd::xd#0 = bitmap_line::xd#2 } } ) always clobbers reg byte a
|
|
Statement [97] (byte) bitmap_line_ydxi::e#0 ← (byte) bitmap_line_ydxi::xd#1 >> (byte) 1 [ bitmap_line_ydxi::xd#1 bitmap_line_ydxi::e#0 ] ( bitmap_line:11::bitmap_line_ydxi:67 [ next#5 bitmap_line_ydxi::xd#1 bitmap_line_ydxi::e#0 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxi::xd#1 = bitmap_line::xd#1 } } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:40 [ bitmap_line_ydxi::xd#1 ]
|
|
Statement [103] (byte) bitmap_line_ydxi::e#1 ← (byte) bitmap_line_ydxi::e#3 + (byte) bitmap_line_ydxi::xd#1 [ bitmap_line_ydxi::xd#1 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#1 ] ( bitmap_line:11::bitmap_line_ydxi:67 [ next#5 bitmap_line_ydxi::xd#1 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#1 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxi::xd#1 = bitmap_line::xd#1 } } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:20 [ bitmap_line_ydxi::x#3 bitmap_line_ydxi::x#6 bitmap_line_ydxi::x#2 ]
|
|
Removing always clobbered register reg byte a as potential for zp[1]:21 [ bitmap_line_ydxi::y#3 bitmap_line_ydxi::y#2 ]
|
|
Statement [106] (byte) bitmap_line_ydxi::e#2 ← (byte) bitmap_line_ydxi::e#1 - (const byte) bitmap_line::y1#0 [ bitmap_line_ydxi::xd#1 bitmap_line_ydxi::y#2 bitmap_line_ydxi::x#2 bitmap_line_ydxi::e#2 ] ( bitmap_line:11::bitmap_line_ydxi:67 [ next#5 bitmap_line_ydxi::xd#1 bitmap_line_ydxi::y#2 bitmap_line_ydxi::x#2 bitmap_line_ydxi::e#2 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxi::xd#1 = bitmap_line::xd#1 } } ) always clobbers reg byte a
|
|
Statement [116] (byte) bitmap_line_xdyi::e#1 ← (byte) bitmap_line_xdyi::e#3 + (const byte) bitmap_line::y1#0 [ bitmap_line_xdyi::x1#1 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::y#3 bitmap_line_xdyi::x#2 bitmap_line_xdyi::e#1 ] ( bitmap_line:11::bitmap_line_xdyi:70 [ next#5 bitmap_line_xdyi::x1#1 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::y#3 bitmap_line_xdyi::x#2 bitmap_line_xdyi::e#1 ] { { next#5 = bitmap_line::x1#0 bitmap_line_xdyi::x1#1 } { bitmap_line_xdyi::xd#1 = bitmap_line::xd#1 } } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:41 [ bitmap_line_xdyi::x1#1 ]
|
|
Removing always clobbered register reg byte a as potential for zp[1]:42 [ bitmap_line_xdyi::xd#1 ]
|
|
Removing always clobbered register reg byte a as potential for zp[1]:24 [ bitmap_line_xdyi::y#3 bitmap_line_xdyi::y#6 bitmap_line_xdyi::y#2 ]
|
|
Removing always clobbered register reg byte a as potential for zp[1]:23 [ bitmap_line_xdyi::x#3 bitmap_line_xdyi::x#2 ]
|
|
Statement [119] (byte) bitmap_line_xdyi::e#2 ← (byte) bitmap_line_xdyi::e#1 - (byte) bitmap_line_xdyi::xd#1 [ bitmap_line_xdyi::x1#1 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#2 bitmap_line_xdyi::e#2 ] ( bitmap_line:11::bitmap_line_xdyi:70 [ next#5 bitmap_line_xdyi::x1#1 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#2 bitmap_line_xdyi::e#2 ] { { next#5 = bitmap_line::x1#0 bitmap_line_xdyi::x1#1 } { bitmap_line_xdyi::xd#1 = bitmap_line::xd#1 } } ) always clobbers reg byte a
|
|
Statement [125] (word) bitmap_plot::plotter_x#0 ← *((const to_nomodify byte*) bitmap_plot_xhi + (byte) bitmap_plot::x#4) w= *((const to_nomodify byte*) bitmap_plot_xlo + (byte) bitmap_plot::x#4) [ bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] ( bitmap_line:11::bitmap_line_ydxd:59::bitmap_plot:75 [ next#5 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxd::xd#0 = bitmap_line::xd#2 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line_ydxd::x#3 } { bitmap_plot::y#3 = bitmap_plot::y#4 bitmap_line_ydxd::y#2 } } bitmap_line:11::bitmap_line_xdyd:63::bitmap_plot:88 [ next#5 bitmap_line_xdyd::xd#0 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] { { next#5 = bitmap_line::x1#0 bitmap_line_xdyd::x#0 } { bitmap_line_xdyd::xd#0 = bitmap_line::xd#2 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line_xdyd::x#3 } { bitmap_plot::y#1 = bitmap_plot::y#4 bitmap_line_xdyd::y#3 } } bitmap_line:11::bitmap_line_ydxi:67::bitmap_plot:101 [ next#5 bitmap_line_ydxi::xd#1 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxi::xd#1 = bitmap_line::xd#1 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line_ydxi::x#3 } { bitmap_plot::y#2 = bitmap_plot::y#4 bitmap_line_ydxi::y#3 } } bitmap_line:11::bitmap_line_xdyi:70::bitmap_plot:114 [ next#5 bitmap_line_xdyi::x1#1 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] { { next#5 = bitmap_line::x1#0 bitmap_line_xdyi::x1#1 } { bitmap_line_xdyi::xd#1 = bitmap_line::xd#1 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line_xdyi::x#3 } { bitmap_plot::y#0 = bitmap_plot::y#4 bitmap_line_xdyi::y#3 } } ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp[1]:16 [ bitmap_line_ydxd::e#3 bitmap_line_ydxd::e#0 bitmap_line_ydxd::e#6 bitmap_line_ydxd::e#2 bitmap_line_ydxd::e#1 ]
|
|
Removing always clobbered register reg byte a as potential for zp[1]:26 [ bitmap_plot::x#4 bitmap_plot::x#1 bitmap_plot::x#0 bitmap_plot::x#3 bitmap_plot::x#2 ]
|
|
Removing always clobbered register reg byte a as potential for zp[1]:27 [ bitmap_plot::y#4 bitmap_plot::y#1 bitmap_plot::y#0 bitmap_plot::y#3 bitmap_plot::y#2 ]
|
|
Removing always clobbered register reg byte a as potential for zp[1]:19 [ bitmap_line_xdyd::e#3 bitmap_line_xdyd::e#6 bitmap_line_xdyd::e#2 bitmap_line_xdyd::e#1 ]
|
|
Removing always clobbered register reg byte a as potential for zp[1]:22 [ bitmap_line_ydxi::e#3 bitmap_line_ydxi::e#0 bitmap_line_ydxi::e#6 bitmap_line_ydxi::e#2 bitmap_line_ydxi::e#1 ]
|
|
Removing always clobbered register reg byte a as potential for zp[1]:25 [ bitmap_line_xdyi::e#3 bitmap_line_xdyi::e#6 bitmap_line_xdyi::e#2 bitmap_line_xdyi::e#1 ]
|
|
Statement [126] (word) bitmap_plot::plotter_y#0 ← *((const to_nomodify byte*) bitmap_plot_yhi + (byte) bitmap_plot::y#4) w= *((const to_nomodify byte*) bitmap_plot_ylo + (byte) bitmap_plot::y#4) [ bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] ( bitmap_line:11::bitmap_line_ydxd:59::bitmap_plot:75 [ next#5 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxd::xd#0 = bitmap_line::xd#2 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line_ydxd::x#3 } { bitmap_plot::y#3 = bitmap_plot::y#4 bitmap_line_ydxd::y#2 } } bitmap_line:11::bitmap_line_xdyd:63::bitmap_plot:88 [ next#5 bitmap_line_xdyd::xd#0 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] { { next#5 = bitmap_line::x1#0 bitmap_line_xdyd::x#0 } { bitmap_line_xdyd::xd#0 = bitmap_line::xd#2 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line_xdyd::x#3 } { bitmap_plot::y#1 = bitmap_plot::y#4 bitmap_line_xdyd::y#3 } } bitmap_line:11::bitmap_line_ydxi:67::bitmap_plot:101 [ next#5 bitmap_line_ydxi::xd#1 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxi::xd#1 = bitmap_line::xd#1 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line_ydxi::x#3 } { bitmap_plot::y#2 = bitmap_plot::y#4 bitmap_line_ydxi::y#3 } } bitmap_line:11::bitmap_line_xdyi:70::bitmap_plot:114 [ next#5 bitmap_line_xdyi::x1#1 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] { { next#5 = bitmap_line::x1#0 bitmap_line_xdyi::x1#1 } { bitmap_line_xdyi::xd#1 = bitmap_line::xd#1 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line_xdyi::x#3 } { bitmap_plot::y#0 = bitmap_plot::y#4 bitmap_line_xdyi::y#3 } } ) always clobbers reg byte a
|
|
Statement [127] (word) bitmap_plot::plotter#0 ← (word) bitmap_plot::plotter_x#0 + (word) bitmap_plot::plotter_y#0 [ bitmap_plot::x#4 bitmap_plot::plotter#0 ] ( bitmap_line:11::bitmap_line_ydxd:59::bitmap_plot:75 [ next#5 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::plotter#0 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxd::xd#0 = bitmap_line::xd#2 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line_ydxd::x#3 } { bitmap_plot::y#3 = bitmap_plot::y#4 bitmap_line_ydxd::y#2 } } bitmap_line:11::bitmap_line_xdyd:63::bitmap_plot:88 [ next#5 bitmap_line_xdyd::xd#0 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::plotter#0 ] { { next#5 = bitmap_line::x1#0 bitmap_line_xdyd::x#0 } { bitmap_line_xdyd::xd#0 = bitmap_line::xd#2 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line_xdyd::x#3 } { bitmap_plot::y#1 = bitmap_plot::y#4 bitmap_line_xdyd::y#3 } } bitmap_line:11::bitmap_line_ydxi:67::bitmap_plot:101 [ next#5 bitmap_line_ydxi::xd#1 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::plotter#0 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxi::xd#1 = bitmap_line::xd#1 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line_ydxi::x#3 } { bitmap_plot::y#2 = bitmap_plot::y#4 bitmap_line_ydxi::y#3 } } bitmap_line:11::bitmap_line_xdyi:70::bitmap_plot:114 [ next#5 bitmap_line_xdyi::x1#1 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::plotter#0 ] { { next#5 = bitmap_line::x1#0 bitmap_line_xdyi::x1#1 } { bitmap_line_xdyi::xd#1 = bitmap_line::xd#1 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line_xdyi::x#3 } { bitmap_plot::y#0 = bitmap_plot::y#4 bitmap_line_xdyi::y#3 } } ) always clobbers reg byte a
|
|
Statement [128] (byte~) bitmap_plot::$1 ← *((byte*)(word) bitmap_plot::plotter#0) | *((const to_nomodify byte*) bitmap_plot_bit + (byte) bitmap_plot::x#4) [ bitmap_plot::plotter#0 bitmap_plot::$1 ] ( bitmap_line:11::bitmap_line_ydxd:59::bitmap_plot:75 [ next#5 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::plotter#0 bitmap_plot::$1 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxd::xd#0 = bitmap_line::xd#2 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line_ydxd::x#3 } { bitmap_plot::y#3 = bitmap_plot::y#4 bitmap_line_ydxd::y#2 } } bitmap_line:11::bitmap_line_xdyd:63::bitmap_plot:88 [ next#5 bitmap_line_xdyd::xd#0 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::plotter#0 bitmap_plot::$1 ] { { next#5 = bitmap_line::x1#0 bitmap_line_xdyd::x#0 } { bitmap_line_xdyd::xd#0 = bitmap_line::xd#2 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line_xdyd::x#3 } { bitmap_plot::y#1 = bitmap_plot::y#4 bitmap_line_xdyd::y#3 } } bitmap_line:11::bitmap_line_ydxi:67::bitmap_plot:101 [ next#5 bitmap_line_ydxi::xd#1 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::plotter#0 bitmap_plot::$1 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxi::xd#1 = bitmap_line::xd#1 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line_ydxi::x#3 } { bitmap_plot::y#2 = bitmap_plot::y#4 bitmap_line_ydxi::y#3 } } bitmap_line:11::bitmap_line_xdyi:70::bitmap_plot:114 [ next#5 bitmap_line_xdyi::x1#1 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::plotter#0 bitmap_plot::$1 ] { { next#5 = bitmap_line::x1#0 bitmap_line_xdyi::x1#1 } { bitmap_line_xdyi::xd#1 = bitmap_line::xd#1 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line_xdyi::x#3 } { bitmap_plot::y#0 = bitmap_plot::y#4 bitmap_line_xdyi::y#3 } } ) always clobbers reg byte a reg byte y
|
|
Removing always clobbered register reg byte y as potential for zp[1]:2 [ next#5 next#0 ]
|
|
Removing always clobbered register reg byte y as potential for zp[1]:37 [ bitmap_line_ydxd::xd#0 ]
|
|
Removing always clobbered register reg byte y as potential for zp[1]:14 [ bitmap_line_ydxd::x#3 bitmap_line_ydxd::x#6 bitmap_line_ydxd::x#2 ]
|
|
Removing always clobbered register reg byte y as potential for zp[1]:15 [ bitmap_line_ydxd::y#2 bitmap_line_ydxd::y#3 ]
|
|
Removing always clobbered register reg byte y as potential for zp[1]:16 [ bitmap_line_ydxd::e#3 bitmap_line_ydxd::e#0 bitmap_line_ydxd::e#6 bitmap_line_ydxd::e#2 bitmap_line_ydxd::e#1 ]
|
|
Removing always clobbered register reg byte y as potential for zp[1]:38 [ bitmap_line_xdyd::xd#0 ]
|
|
Removing always clobbered register reg byte y as potential for zp[1]:17 [ bitmap_line_xdyd::x#3 bitmap_line_xdyd::x#0 bitmap_line_xdyd::x#2 ]
|
|
Removing always clobbered register reg byte y as potential for zp[1]:18 [ bitmap_line_xdyd::y#3 bitmap_line_xdyd::y#6 bitmap_line_xdyd::y#2 ]
|
|
Removing always clobbered register reg byte y as potential for zp[1]:19 [ bitmap_line_xdyd::e#3 bitmap_line_xdyd::e#6 bitmap_line_xdyd::e#2 bitmap_line_xdyd::e#1 ]
|
|
Removing always clobbered register reg byte y as potential for zp[1]:40 [ bitmap_line_ydxi::xd#1 ]
|
|
Removing always clobbered register reg byte y as potential for zp[1]:20 [ bitmap_line_ydxi::x#3 bitmap_line_ydxi::x#6 bitmap_line_ydxi::x#2 ]
|
|
Removing always clobbered register reg byte y as potential for zp[1]:21 [ bitmap_line_ydxi::y#3 bitmap_line_ydxi::y#2 ]
|
|
Removing always clobbered register reg byte y as potential for zp[1]:22 [ bitmap_line_ydxi::e#3 bitmap_line_ydxi::e#0 bitmap_line_ydxi::e#6 bitmap_line_ydxi::e#2 bitmap_line_ydxi::e#1 ]
|
|
Removing always clobbered register reg byte y as potential for zp[1]:41 [ bitmap_line_xdyi::x1#1 ]
|
|
Removing always clobbered register reg byte y as potential for zp[1]:42 [ bitmap_line_xdyi::xd#1 ]
|
|
Removing always clobbered register reg byte y as potential for zp[1]:23 [ bitmap_line_xdyi::x#3 bitmap_line_xdyi::x#2 ]
|
|
Removing always clobbered register reg byte y as potential for zp[1]:24 [ bitmap_line_xdyi::y#3 bitmap_line_xdyi::y#6 bitmap_line_xdyi::y#2 ]
|
|
Removing always clobbered register reg byte y as potential for zp[1]:25 [ bitmap_line_xdyi::e#3 bitmap_line_xdyi::e#6 bitmap_line_xdyi::e#2 bitmap_line_xdyi::e#1 ]
|
|
Statement [129] *((byte*)(word) bitmap_plot::plotter#0) ← (byte~) bitmap_plot::$1 [ ] ( bitmap_line:11::bitmap_line_ydxd:59::bitmap_plot:75 [ next#5 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxd::xd#0 = bitmap_line::xd#2 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line_ydxd::x#3 } { bitmap_plot::y#3 = bitmap_plot::y#4 bitmap_line_ydxd::y#2 } } bitmap_line:11::bitmap_line_xdyd:63::bitmap_plot:88 [ next#5 bitmap_line_xdyd::xd#0 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] { { next#5 = bitmap_line::x1#0 bitmap_line_xdyd::x#0 } { bitmap_line_xdyd::xd#0 = bitmap_line::xd#2 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line_xdyd::x#3 } { bitmap_plot::y#1 = bitmap_plot::y#4 bitmap_line_xdyd::y#3 } } bitmap_line:11::bitmap_line_ydxi:67::bitmap_plot:101 [ next#5 bitmap_line_ydxi::xd#1 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxi::xd#1 = bitmap_line::xd#1 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line_ydxi::x#3 } { bitmap_plot::y#2 = bitmap_plot::y#4 bitmap_line_ydxi::y#3 } } bitmap_line:11::bitmap_line_xdyi:70::bitmap_plot:114 [ next#5 bitmap_line_xdyi::x1#1 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 ] { { next#5 = bitmap_line::x1#0 bitmap_line_xdyi::x1#1 } { bitmap_line_xdyi::xd#1 = bitmap_line::xd#1 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line_xdyi::x#3 } { bitmap_plot::y#0 = bitmap_plot::y#4 bitmap_line_xdyi::y#3 } } ) always clobbers reg byte y
|
|
Statement [0] *((const nomodify byte*) BORDER_COLOR) ← (byte) 0 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [1] *((const nomodify byte*) BG_COLOR) ← (byte) 0 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [2] *((const nomodify byte*) D011) ← (const nomodify byte) VIC_BMM|(const nomodify byte) VIC_DEN|(const nomodify byte) VIC_RSEL|(byte) 3 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [3] *((const nomodify byte*) VIC_MEMORY) ← (byte)(word)(const nomodify byte*) SCREEN&(word) $3fff/(byte) $40|(word)(const nomodify byte*) BITMAP&(word) $3fff/(word) $400 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [15] (byte~) bitmap_init::$0 ← (byte) bitmap_init::x#2 & (byte) $f8 [ bitmap_init::x#2 bitmap_init::bits#3 bitmap_init::$0 ] ( bitmap_init:4 [ bitmap_init::x#2 bitmap_init::bits#3 bitmap_init::$0 ] { } ) always clobbers reg byte a
|
|
Statement [17] *((const to_nomodify byte*) bitmap_plot_xhi + (byte) bitmap_init::x#2) ← >(const nomodify byte*) BITMAP [ bitmap_init::x#2 bitmap_init::bits#3 ] ( bitmap_init:4 [ bitmap_init::x#2 bitmap_init::bits#3 ] { } ) always clobbers reg byte a
|
|
Statement [18] *((const to_nomodify byte*) bitmap_plot_bit + (byte) bitmap_init::x#2) ← (byte) bitmap_init::bits#3 [ bitmap_init::x#2 bitmap_init::bits#3 ] ( bitmap_init:4 [ bitmap_init::x#2 bitmap_init::bits#3 ] { } ) always clobbers reg byte a
|
|
Statement [26] (byte~) bitmap_init::$10 ← (byte) bitmap_init::y#2 & (byte) 7 [ bitmap_init::y#2 bitmap_init::yoffs#2 bitmap_init::$10 ] ( bitmap_init:4 [ bitmap_init::y#2 bitmap_init::yoffs#2 bitmap_init::$10 ] { } ) always clobbers reg byte a
|
|
Statement [33] (byte*) bitmap_init::yoffs#1 ← (byte*) bitmap_init::yoffs#2 + (word)(number) $28*(number) 8 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] ( bitmap_init:4 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] { } ) always clobbers reg byte a
|
|
Statement [38] (word) bitmap_clear::bitmap#0 ← *((const to_nomodify byte*) bitmap_plot_xhi) w= *((const to_nomodify byte*) bitmap_plot_xlo) [ bitmap_clear::bitmap#0 ] ( bitmap_clear:6 [ bitmap_clear::bitmap#0 ] { } ) always clobbers reg byte a
|
|
Statement [39] (byte*) bitmap_clear::bitmap#5 ← (byte*)(word) bitmap_clear::bitmap#0 [ bitmap_clear::bitmap#5 ] ( bitmap_clear:6 [ bitmap_clear::bitmap#5 ] { } ) always clobbers reg byte a
|
|
Statement [42] *((byte*) bitmap_clear::bitmap#2) ← (byte) 0 [ bitmap_clear::y#4 bitmap_clear::bitmap#2 bitmap_clear::x#2 ] ( bitmap_clear:6 [ bitmap_clear::y#4 bitmap_clear::bitmap#2 bitmap_clear::x#2 ] { } ) always clobbers reg byte a reg byte y
|
|
Statement [51] if((byte*) init_screen::c#2!=(const nomodify byte*) SCREEN+(word) $400) goto init_screen::@2 [ init_screen::c#2 ] ( init_screen:8 [ init_screen::c#2 ] { } ) always clobbers reg byte a
|
|
Statement [53] *((byte*) init_screen::c#2) ← (byte) $14 [ init_screen::c#2 ] ( init_screen:8 [ init_screen::c#2 ] { } ) always clobbers reg byte a reg byte y
|
|
Statement [71] (byte) bitmap_line_ydxd::e#0 ← (byte) bitmap_line_ydxd::xd#0 >> (byte) 1 [ bitmap_line_ydxd::xd#0 bitmap_line_ydxd::e#0 ] ( bitmap_line:11::bitmap_line_ydxd:59 [ next#5 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::e#0 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxd::xd#0 = bitmap_line::xd#2 } } ) always clobbers reg byte a
|
|
Statement [77] (byte) bitmap_line_ydxd::e#1 ← (byte) bitmap_line_ydxd::e#3 + (byte) bitmap_line_ydxd::xd#0 [ bitmap_line_ydxd::xd#0 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 ] ( bitmap_line:11::bitmap_line_ydxd:59 [ next#5 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxd::xd#0 = bitmap_line::xd#2 } } ) always clobbers reg byte a
|
|
Statement [80] (byte) bitmap_line_ydxd::e#2 ← (byte) bitmap_line_ydxd::e#1 - (const byte) bitmap_line::y1#0 [ bitmap_line_ydxd::xd#0 bitmap_line_ydxd::y#3 bitmap_line_ydxd::x#2 bitmap_line_ydxd::e#2 ] ( bitmap_line:11::bitmap_line_ydxd:59 [ next#5 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::y#3 bitmap_line_ydxd::x#2 bitmap_line_ydxd::e#2 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxd::xd#0 = bitmap_line::xd#2 } } ) always clobbers reg byte a reg byte x
|
|
Removing always clobbered register reg byte x as potential for zp[1]:2 [ next#5 next#0 ]
|
|
Removing always clobbered register reg byte x as potential for zp[1]:37 [ bitmap_line_ydxd::xd#0 ]
|
|
Removing always clobbered register reg byte x as potential for zp[1]:15 [ bitmap_line_ydxd::y#2 bitmap_line_ydxd::y#3 ]
|
|
Removing always clobbered register reg byte x as potential for zp[1]:14 [ bitmap_line_ydxd::x#3 bitmap_line_ydxd::x#6 bitmap_line_ydxd::x#2 ]
|
|
Statement [82] if((byte) bitmap_line_ydxd::y#3!=(const byte) bitmap_line::y1#0+(byte) 1) goto bitmap_line_ydxd::@1 [ bitmap_line_ydxd::xd#0 bitmap_line_ydxd::x#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#6 ] ( bitmap_line:11::bitmap_line_ydxd:59 [ next#5 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::x#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#6 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxd::xd#0 = bitmap_line::xd#2 } } ) always clobbers reg byte a
|
|
Statement [90] (byte) bitmap_line_xdyd::e#1 ← (byte) bitmap_line_xdyd::e#3 + (const byte) bitmap_line::y1#0 [ bitmap_line_xdyd::xd#0 bitmap_line_xdyd::y#3 bitmap_line_xdyd::x#2 bitmap_line_xdyd::e#1 ] ( bitmap_line:11::bitmap_line_xdyd:63 [ next#5 bitmap_line_xdyd::xd#0 bitmap_line_xdyd::y#3 bitmap_line_xdyd::x#2 bitmap_line_xdyd::e#1 ] { { next#5 = bitmap_line::x1#0 bitmap_line_xdyd::x#0 } { bitmap_line_xdyd::xd#0 = bitmap_line::xd#2 } } ) always clobbers reg byte a reg byte x
|
|
Removing always clobbered register reg byte x as potential for zp[1]:38 [ bitmap_line_xdyd::xd#0 ]
|
|
Removing always clobbered register reg byte x as potential for zp[1]:18 [ bitmap_line_xdyd::y#3 bitmap_line_xdyd::y#6 bitmap_line_xdyd::y#2 ]
|
|
Removing always clobbered register reg byte x as potential for zp[1]:17 [ bitmap_line_xdyd::x#3 bitmap_line_xdyd::x#0 bitmap_line_xdyd::x#2 ]
|
|
Statement [91] if((byte) bitmap_line_xdyd::xd#0>=(byte) bitmap_line_xdyd::e#1) goto bitmap_line_xdyd::@2 [ bitmap_line_xdyd::xd#0 bitmap_line_xdyd::y#3 bitmap_line_xdyd::x#2 bitmap_line_xdyd::e#1 ] ( bitmap_line:11::bitmap_line_xdyd:63 [ next#5 bitmap_line_xdyd::xd#0 bitmap_line_xdyd::y#3 bitmap_line_xdyd::x#2 bitmap_line_xdyd::e#1 ] { { next#5 = bitmap_line::x1#0 bitmap_line_xdyd::x#0 } { bitmap_line_xdyd::xd#0 = bitmap_line::xd#2 } } ) always clobbers reg byte a
|
|
Statement [93] (byte) bitmap_line_xdyd::e#2 ← (byte) bitmap_line_xdyd::e#1 - (byte) bitmap_line_xdyd::xd#0 [ bitmap_line_xdyd::xd#0 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#2 bitmap_line_xdyd::e#2 ] ( bitmap_line:11::bitmap_line_xdyd:63 [ next#5 bitmap_line_xdyd::xd#0 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#2 bitmap_line_xdyd::e#2 ] { { next#5 = bitmap_line::x1#0 bitmap_line_xdyd::x#0 } { bitmap_line_xdyd::xd#0 = bitmap_line::xd#2 } } ) always clobbers reg byte a
|
|
Statement [95] if((byte) bitmap_line_xdyd::x#2!=(byte) 1) goto bitmap_line_xdyd::@1 [ bitmap_line_xdyd::xd#0 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#6 bitmap_line_xdyd::e#6 ] ( bitmap_line:11::bitmap_line_xdyd:63 [ next#5 bitmap_line_xdyd::xd#0 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#6 bitmap_line_xdyd::e#6 ] { { next#5 = bitmap_line::x1#0 bitmap_line_xdyd::x#0 } { bitmap_line_xdyd::xd#0 = bitmap_line::xd#2 } } ) always clobbers reg byte a
|
|
Statement [97] (byte) bitmap_line_ydxi::e#0 ← (byte) bitmap_line_ydxi::xd#1 >> (byte) 1 [ bitmap_line_ydxi::xd#1 bitmap_line_ydxi::e#0 ] ( bitmap_line:11::bitmap_line_ydxi:67 [ next#5 bitmap_line_ydxi::xd#1 bitmap_line_ydxi::e#0 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxi::xd#1 = bitmap_line::xd#1 } } ) always clobbers reg byte a
|
|
Statement [103] (byte) bitmap_line_ydxi::e#1 ← (byte) bitmap_line_ydxi::e#3 + (byte) bitmap_line_ydxi::xd#1 [ bitmap_line_ydxi::xd#1 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#1 ] ( bitmap_line:11::bitmap_line_ydxi:67 [ next#5 bitmap_line_ydxi::xd#1 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#1 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxi::xd#1 = bitmap_line::xd#1 } } ) always clobbers reg byte a
|
|
Statement [106] (byte) bitmap_line_ydxi::e#2 ← (byte) bitmap_line_ydxi::e#1 - (const byte) bitmap_line::y1#0 [ bitmap_line_ydxi::xd#1 bitmap_line_ydxi::y#2 bitmap_line_ydxi::x#2 bitmap_line_ydxi::e#2 ] ( bitmap_line:11::bitmap_line_ydxi:67 [ next#5 bitmap_line_ydxi::xd#1 bitmap_line_ydxi::y#2 bitmap_line_ydxi::x#2 bitmap_line_ydxi::e#2 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxi::xd#1 = bitmap_line::xd#1 } } ) always clobbers reg byte a reg byte x
|
|
Removing always clobbered register reg byte x as potential for zp[1]:40 [ bitmap_line_ydxi::xd#1 ]
|
|
Removing always clobbered register reg byte x as potential for zp[1]:21 [ bitmap_line_ydxi::y#3 bitmap_line_ydxi::y#2 ]
|
|
Removing always clobbered register reg byte x as potential for zp[1]:20 [ bitmap_line_ydxi::x#3 bitmap_line_ydxi::x#6 bitmap_line_ydxi::x#2 ]
|
|
Statement [108] if((byte) bitmap_line_ydxi::y#2!=(const byte) bitmap_line::y1#0+(byte) 1) goto bitmap_line_ydxi::@1 [ bitmap_line_ydxi::xd#1 bitmap_line_ydxi::x#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#6 ] ( bitmap_line:11::bitmap_line_ydxi:67 [ next#5 bitmap_line_ydxi::xd#1 bitmap_line_ydxi::x#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#6 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxi::xd#1 = bitmap_line::xd#1 } } ) always clobbers reg byte a
|
|
Statement [116] (byte) bitmap_line_xdyi::e#1 ← (byte) bitmap_line_xdyi::e#3 + (const byte) bitmap_line::y1#0 [ bitmap_line_xdyi::x1#1 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::y#3 bitmap_line_xdyi::x#2 bitmap_line_xdyi::e#1 ] ( bitmap_line:11::bitmap_line_xdyi:70 [ next#5 bitmap_line_xdyi::x1#1 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::y#3 bitmap_line_xdyi::x#2 bitmap_line_xdyi::e#1 ] { { next#5 = bitmap_line::x1#0 bitmap_line_xdyi::x1#1 } { bitmap_line_xdyi::xd#1 = bitmap_line::xd#1 } } ) always clobbers reg byte a reg byte x
|
|
Removing always clobbered register reg byte x as potential for zp[1]:41 [ bitmap_line_xdyi::x1#1 ]
|
|
Removing always clobbered register reg byte x as potential for zp[1]:42 [ bitmap_line_xdyi::xd#1 ]
|
|
Removing always clobbered register reg byte x as potential for zp[1]:24 [ bitmap_line_xdyi::y#3 bitmap_line_xdyi::y#6 bitmap_line_xdyi::y#2 ]
|
|
Removing always clobbered register reg byte x as potential for zp[1]:23 [ bitmap_line_xdyi::x#3 bitmap_line_xdyi::x#2 ]
|
|
Statement [117] if((byte) bitmap_line_xdyi::xd#1>=(byte) bitmap_line_xdyi::e#1) goto bitmap_line_xdyi::@2 [ bitmap_line_xdyi::x1#1 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::y#3 bitmap_line_xdyi::x#2 bitmap_line_xdyi::e#1 ] ( bitmap_line:11::bitmap_line_xdyi:70 [ next#5 bitmap_line_xdyi::x1#1 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::y#3 bitmap_line_xdyi::x#2 bitmap_line_xdyi::e#1 ] { { next#5 = bitmap_line::x1#0 bitmap_line_xdyi::x1#1 } { bitmap_line_xdyi::xd#1 = bitmap_line::xd#1 } } ) always clobbers reg byte a
|
|
Statement [119] (byte) bitmap_line_xdyi::e#2 ← (byte) bitmap_line_xdyi::e#1 - (byte) bitmap_line_xdyi::xd#1 [ bitmap_line_xdyi::x1#1 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#2 bitmap_line_xdyi::e#2 ] ( bitmap_line:11::bitmap_line_xdyi:70 [ next#5 bitmap_line_xdyi::x1#1 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#2 bitmap_line_xdyi::e#2 ] { { next#5 = bitmap_line::x1#0 bitmap_line_xdyi::x1#1 } { bitmap_line_xdyi::xd#1 = bitmap_line::xd#1 } } ) always clobbers reg byte a
|
|
Statement [125] (word) bitmap_plot::plotter_x#0 ← *((const to_nomodify byte*) bitmap_plot_xhi + (byte) bitmap_plot::x#4) w= *((const to_nomodify byte*) bitmap_plot_xlo + (byte) bitmap_plot::x#4) [ bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] ( bitmap_line:11::bitmap_line_ydxd:59::bitmap_plot:75 [ next#5 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxd::xd#0 = bitmap_line::xd#2 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line_ydxd::x#3 } { bitmap_plot::y#3 = bitmap_plot::y#4 bitmap_line_ydxd::y#2 } } bitmap_line:11::bitmap_line_xdyd:63::bitmap_plot:88 [ next#5 bitmap_line_xdyd::xd#0 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] { { next#5 = bitmap_line::x1#0 bitmap_line_xdyd::x#0 } { bitmap_line_xdyd::xd#0 = bitmap_line::xd#2 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line_xdyd::x#3 } { bitmap_plot::y#1 = bitmap_plot::y#4 bitmap_line_xdyd::y#3 } } bitmap_line:11::bitmap_line_ydxi:67::bitmap_plot:101 [ next#5 bitmap_line_ydxi::xd#1 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxi::xd#1 = bitmap_line::xd#1 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line_ydxi::x#3 } { bitmap_plot::y#2 = bitmap_plot::y#4 bitmap_line_ydxi::y#3 } } bitmap_line:11::bitmap_line_xdyi:70::bitmap_plot:114 [ next#5 bitmap_line_xdyi::x1#1 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] { { next#5 = bitmap_line::x1#0 bitmap_line_xdyi::x1#1 } { bitmap_line_xdyi::xd#1 = bitmap_line::xd#1 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line_xdyi::x#3 } { bitmap_plot::y#0 = bitmap_plot::y#4 bitmap_line_xdyi::y#3 } } ) always clobbers reg byte a
|
|
Statement [126] (word) bitmap_plot::plotter_y#0 ← *((const to_nomodify byte*) bitmap_plot_yhi + (byte) bitmap_plot::y#4) w= *((const to_nomodify byte*) bitmap_plot_ylo + (byte) bitmap_plot::y#4) [ bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] ( bitmap_line:11::bitmap_line_ydxd:59::bitmap_plot:75 [ next#5 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxd::xd#0 = bitmap_line::xd#2 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line_ydxd::x#3 } { bitmap_plot::y#3 = bitmap_plot::y#4 bitmap_line_ydxd::y#2 } } bitmap_line:11::bitmap_line_xdyd:63::bitmap_plot:88 [ next#5 bitmap_line_xdyd::xd#0 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] { { next#5 = bitmap_line::x1#0 bitmap_line_xdyd::x#0 } { bitmap_line_xdyd::xd#0 = bitmap_line::xd#2 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line_xdyd::x#3 } { bitmap_plot::y#1 = bitmap_plot::y#4 bitmap_line_xdyd::y#3 } } bitmap_line:11::bitmap_line_ydxi:67::bitmap_plot:101 [ next#5 bitmap_line_ydxi::xd#1 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxi::xd#1 = bitmap_line::xd#1 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line_ydxi::x#3 } { bitmap_plot::y#2 = bitmap_plot::y#4 bitmap_line_ydxi::y#3 } } bitmap_line:11::bitmap_line_xdyi:70::bitmap_plot:114 [ next#5 bitmap_line_xdyi::x1#1 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] { { next#5 = bitmap_line::x1#0 bitmap_line_xdyi::x1#1 } { bitmap_line_xdyi::xd#1 = bitmap_line::xd#1 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line_xdyi::x#3 } { bitmap_plot::y#0 = bitmap_plot::y#4 bitmap_line_xdyi::y#3 } } ) always clobbers reg byte a
|
|
Statement [127] (word) bitmap_plot::plotter#0 ← (word) bitmap_plot::plotter_x#0 + (word) bitmap_plot::plotter_y#0 [ bitmap_plot::x#4 bitmap_plot::plotter#0 ] ( bitmap_line:11::bitmap_line_ydxd:59::bitmap_plot:75 [ next#5 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::plotter#0 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxd::xd#0 = bitmap_line::xd#2 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line_ydxd::x#3 } { bitmap_plot::y#3 = bitmap_plot::y#4 bitmap_line_ydxd::y#2 } } bitmap_line:11::bitmap_line_xdyd:63::bitmap_plot:88 [ next#5 bitmap_line_xdyd::xd#0 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::plotter#0 ] { { next#5 = bitmap_line::x1#0 bitmap_line_xdyd::x#0 } { bitmap_line_xdyd::xd#0 = bitmap_line::xd#2 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line_xdyd::x#3 } { bitmap_plot::y#1 = bitmap_plot::y#4 bitmap_line_xdyd::y#3 } } bitmap_line:11::bitmap_line_ydxi:67::bitmap_plot:101 [ next#5 bitmap_line_ydxi::xd#1 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::plotter#0 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxi::xd#1 = bitmap_line::xd#1 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line_ydxi::x#3 } { bitmap_plot::y#2 = bitmap_plot::y#4 bitmap_line_ydxi::y#3 } } bitmap_line:11::bitmap_line_xdyi:70::bitmap_plot:114 [ next#5 bitmap_line_xdyi::x1#1 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::plotter#0 ] { { next#5 = bitmap_line::x1#0 bitmap_line_xdyi::x1#1 } { bitmap_line_xdyi::xd#1 = bitmap_line::xd#1 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line_xdyi::x#3 } { bitmap_plot::y#0 = bitmap_plot::y#4 bitmap_line_xdyi::y#3 } } ) always clobbers reg byte a
|
|
Statement [128] (byte~) bitmap_plot::$1 ← *((byte*)(word) bitmap_plot::plotter#0) | *((const to_nomodify byte*) bitmap_plot_bit + (byte) bitmap_plot::x#4) [ bitmap_plot::plotter#0 bitmap_plot::$1 ] ( bitmap_line:11::bitmap_line_ydxd:59::bitmap_plot:75 [ next#5 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::plotter#0 bitmap_plot::$1 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxd::xd#0 = bitmap_line::xd#2 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line_ydxd::x#3 } { bitmap_plot::y#3 = bitmap_plot::y#4 bitmap_line_ydxd::y#2 } } bitmap_line:11::bitmap_line_xdyd:63::bitmap_plot:88 [ next#5 bitmap_line_xdyd::xd#0 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::plotter#0 bitmap_plot::$1 ] { { next#5 = bitmap_line::x1#0 bitmap_line_xdyd::x#0 } { bitmap_line_xdyd::xd#0 = bitmap_line::xd#2 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line_xdyd::x#3 } { bitmap_plot::y#1 = bitmap_plot::y#4 bitmap_line_xdyd::y#3 } } bitmap_line:11::bitmap_line_ydxi:67::bitmap_plot:101 [ next#5 bitmap_line_ydxi::xd#1 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::plotter#0 bitmap_plot::$1 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxi::xd#1 = bitmap_line::xd#1 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line_ydxi::x#3 } { bitmap_plot::y#2 = bitmap_plot::y#4 bitmap_line_ydxi::y#3 } } bitmap_line:11::bitmap_line_xdyi:70::bitmap_plot:114 [ next#5 bitmap_line_xdyi::x1#1 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::plotter#0 bitmap_plot::$1 ] { { next#5 = bitmap_line::x1#0 bitmap_line_xdyi::x1#1 } { bitmap_line_xdyi::xd#1 = bitmap_line::xd#1 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line_xdyi::x#3 } { bitmap_plot::y#0 = bitmap_plot::y#4 bitmap_line_xdyi::y#3 } } ) always clobbers reg byte a reg byte y
|
|
Statement [129] *((byte*)(word) bitmap_plot::plotter#0) ← (byte~) bitmap_plot::$1 [ ] ( bitmap_line:11::bitmap_line_ydxd:59::bitmap_plot:75 [ next#5 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxd::xd#0 = bitmap_line::xd#2 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line_ydxd::x#3 } { bitmap_plot::y#3 = bitmap_plot::y#4 bitmap_line_ydxd::y#2 } } bitmap_line:11::bitmap_line_xdyd:63::bitmap_plot:88 [ next#5 bitmap_line_xdyd::xd#0 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] { { next#5 = bitmap_line::x1#0 bitmap_line_xdyd::x#0 } { bitmap_line_xdyd::xd#0 = bitmap_line::xd#2 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line_xdyd::x#3 } { bitmap_plot::y#1 = bitmap_plot::y#4 bitmap_line_xdyd::y#3 } } bitmap_line:11::bitmap_line_ydxi:67::bitmap_plot:101 [ next#5 bitmap_line_ydxi::xd#1 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxi::xd#1 = bitmap_line::xd#1 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line_ydxi::x#3 } { bitmap_plot::y#2 = bitmap_plot::y#4 bitmap_line_ydxi::y#3 } } bitmap_line:11::bitmap_line_xdyi:70::bitmap_plot:114 [ next#5 bitmap_line_xdyi::x1#1 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 ] { { next#5 = bitmap_line::x1#0 bitmap_line_xdyi::x1#1 } { bitmap_line_xdyi::xd#1 = bitmap_line::xd#1 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line_xdyi::x#3 } { bitmap_plot::y#0 = bitmap_plot::y#4 bitmap_line_xdyi::y#3 } } ) always clobbers reg byte y
|
|
Statement [0] *((const nomodify byte*) BORDER_COLOR) ← (byte) 0 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [1] *((const nomodify byte*) BG_COLOR) ← (byte) 0 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [2] *((const nomodify byte*) D011) ← (const nomodify byte) VIC_BMM|(const nomodify byte) VIC_DEN|(const nomodify byte) VIC_RSEL|(byte) 3 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [3] *((const nomodify byte*) VIC_MEMORY) ← (byte)(word)(const nomodify byte*) SCREEN&(word) $3fff/(byte) $40|(word)(const nomodify byte*) BITMAP&(word) $3fff/(word) $400 [ ] ( [ ] { } ) always clobbers reg byte a
|
|
Statement [15] (byte~) bitmap_init::$0 ← (byte) bitmap_init::x#2 & (byte) $f8 [ bitmap_init::x#2 bitmap_init::bits#3 bitmap_init::$0 ] ( bitmap_init:4 [ bitmap_init::x#2 bitmap_init::bits#3 bitmap_init::$0 ] { } ) always clobbers reg byte a
|
|
Statement [17] *((const to_nomodify byte*) bitmap_plot_xhi + (byte) bitmap_init::x#2) ← >(const nomodify byte*) BITMAP [ bitmap_init::x#2 bitmap_init::bits#3 ] ( bitmap_init:4 [ bitmap_init::x#2 bitmap_init::bits#3 ] { } ) always clobbers reg byte a
|
|
Statement [18] *((const to_nomodify byte*) bitmap_plot_bit + (byte) bitmap_init::x#2) ← (byte) bitmap_init::bits#3 [ bitmap_init::x#2 bitmap_init::bits#3 ] ( bitmap_init:4 [ bitmap_init::x#2 bitmap_init::bits#3 ] { } ) always clobbers reg byte a
|
|
Statement [26] (byte~) bitmap_init::$10 ← (byte) bitmap_init::y#2 & (byte) 7 [ bitmap_init::y#2 bitmap_init::yoffs#2 bitmap_init::$10 ] ( bitmap_init:4 [ bitmap_init::y#2 bitmap_init::yoffs#2 bitmap_init::$10 ] { } ) always clobbers reg byte a
|
|
Statement [33] (byte*) bitmap_init::yoffs#1 ← (byte*) bitmap_init::yoffs#2 + (word)(number) $28*(number) 8 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] ( bitmap_init:4 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] { } ) always clobbers reg byte a
|
|
Statement [38] (word) bitmap_clear::bitmap#0 ← *((const to_nomodify byte*) bitmap_plot_xhi) w= *((const to_nomodify byte*) bitmap_plot_xlo) [ bitmap_clear::bitmap#0 ] ( bitmap_clear:6 [ bitmap_clear::bitmap#0 ] { } ) always clobbers reg byte a
|
|
Statement [39] (byte*) bitmap_clear::bitmap#5 ← (byte*)(word) bitmap_clear::bitmap#0 [ bitmap_clear::bitmap#5 ] ( bitmap_clear:6 [ bitmap_clear::bitmap#5 ] { } ) always clobbers reg byte a
|
|
Statement [42] *((byte*) bitmap_clear::bitmap#2) ← (byte) 0 [ bitmap_clear::y#4 bitmap_clear::bitmap#2 bitmap_clear::x#2 ] ( bitmap_clear:6 [ bitmap_clear::y#4 bitmap_clear::bitmap#2 bitmap_clear::x#2 ] { } ) always clobbers reg byte a reg byte y
|
|
Statement [51] if((byte*) init_screen::c#2!=(const nomodify byte*) SCREEN+(word) $400) goto init_screen::@2 [ init_screen::c#2 ] ( init_screen:8 [ init_screen::c#2 ] { } ) always clobbers reg byte a
|
|
Statement [53] *((byte*) init_screen::c#2) ← (byte) $14 [ init_screen::c#2 ] ( init_screen:8 [ init_screen::c#2 ] { } ) always clobbers reg byte a reg byte y
|
|
Statement [71] (byte) bitmap_line_ydxd::e#0 ← (byte) bitmap_line_ydxd::xd#0 >> (byte) 1 [ bitmap_line_ydxd::xd#0 bitmap_line_ydxd::e#0 ] ( bitmap_line:11::bitmap_line_ydxd:59 [ next#5 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::e#0 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxd::xd#0 = bitmap_line::xd#2 } } ) always clobbers reg byte a
|
|
Statement [77] (byte) bitmap_line_ydxd::e#1 ← (byte) bitmap_line_ydxd::e#3 + (byte) bitmap_line_ydxd::xd#0 [ bitmap_line_ydxd::xd#0 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 ] ( bitmap_line:11::bitmap_line_ydxd:59 [ next#5 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxd::xd#0 = bitmap_line::xd#2 } } ) always clobbers reg byte a
|
|
Statement [80] (byte) bitmap_line_ydxd::e#2 ← (byte) bitmap_line_ydxd::e#1 - (const byte) bitmap_line::y1#0 [ bitmap_line_ydxd::xd#0 bitmap_line_ydxd::y#3 bitmap_line_ydxd::x#2 bitmap_line_ydxd::e#2 ] ( bitmap_line:11::bitmap_line_ydxd:59 [ next#5 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::y#3 bitmap_line_ydxd::x#2 bitmap_line_ydxd::e#2 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxd::xd#0 = bitmap_line::xd#2 } } ) always clobbers reg byte a reg byte x
|
|
Statement [82] if((byte) bitmap_line_ydxd::y#3!=(const byte) bitmap_line::y1#0+(byte) 1) goto bitmap_line_ydxd::@1 [ bitmap_line_ydxd::xd#0 bitmap_line_ydxd::x#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#6 ] ( bitmap_line:11::bitmap_line_ydxd:59 [ next#5 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::x#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#6 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxd::xd#0 = bitmap_line::xd#2 } } ) always clobbers reg byte a
|
|
Statement [90] (byte) bitmap_line_xdyd::e#1 ← (byte) bitmap_line_xdyd::e#3 + (const byte) bitmap_line::y1#0 [ bitmap_line_xdyd::xd#0 bitmap_line_xdyd::y#3 bitmap_line_xdyd::x#2 bitmap_line_xdyd::e#1 ] ( bitmap_line:11::bitmap_line_xdyd:63 [ next#5 bitmap_line_xdyd::xd#0 bitmap_line_xdyd::y#3 bitmap_line_xdyd::x#2 bitmap_line_xdyd::e#1 ] { { next#5 = bitmap_line::x1#0 bitmap_line_xdyd::x#0 } { bitmap_line_xdyd::xd#0 = bitmap_line::xd#2 } } ) always clobbers reg byte a reg byte x
|
|
Statement [91] if((byte) bitmap_line_xdyd::xd#0>=(byte) bitmap_line_xdyd::e#1) goto bitmap_line_xdyd::@2 [ bitmap_line_xdyd::xd#0 bitmap_line_xdyd::y#3 bitmap_line_xdyd::x#2 bitmap_line_xdyd::e#1 ] ( bitmap_line:11::bitmap_line_xdyd:63 [ next#5 bitmap_line_xdyd::xd#0 bitmap_line_xdyd::y#3 bitmap_line_xdyd::x#2 bitmap_line_xdyd::e#1 ] { { next#5 = bitmap_line::x1#0 bitmap_line_xdyd::x#0 } { bitmap_line_xdyd::xd#0 = bitmap_line::xd#2 } } ) always clobbers reg byte a
|
|
Statement [93] (byte) bitmap_line_xdyd::e#2 ← (byte) bitmap_line_xdyd::e#1 - (byte) bitmap_line_xdyd::xd#0 [ bitmap_line_xdyd::xd#0 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#2 bitmap_line_xdyd::e#2 ] ( bitmap_line:11::bitmap_line_xdyd:63 [ next#5 bitmap_line_xdyd::xd#0 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#2 bitmap_line_xdyd::e#2 ] { { next#5 = bitmap_line::x1#0 bitmap_line_xdyd::x#0 } { bitmap_line_xdyd::xd#0 = bitmap_line::xd#2 } } ) always clobbers reg byte a
|
|
Statement [95] if((byte) bitmap_line_xdyd::x#2!=(byte) 1) goto bitmap_line_xdyd::@1 [ bitmap_line_xdyd::xd#0 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#6 bitmap_line_xdyd::e#6 ] ( bitmap_line:11::bitmap_line_xdyd:63 [ next#5 bitmap_line_xdyd::xd#0 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#6 bitmap_line_xdyd::e#6 ] { { next#5 = bitmap_line::x1#0 bitmap_line_xdyd::x#0 } { bitmap_line_xdyd::xd#0 = bitmap_line::xd#2 } } ) always clobbers reg byte a
|
|
Statement [97] (byte) bitmap_line_ydxi::e#0 ← (byte) bitmap_line_ydxi::xd#1 >> (byte) 1 [ bitmap_line_ydxi::xd#1 bitmap_line_ydxi::e#0 ] ( bitmap_line:11::bitmap_line_ydxi:67 [ next#5 bitmap_line_ydxi::xd#1 bitmap_line_ydxi::e#0 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxi::xd#1 = bitmap_line::xd#1 } } ) always clobbers reg byte a
|
|
Statement [103] (byte) bitmap_line_ydxi::e#1 ← (byte) bitmap_line_ydxi::e#3 + (byte) bitmap_line_ydxi::xd#1 [ bitmap_line_ydxi::xd#1 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#1 ] ( bitmap_line:11::bitmap_line_ydxi:67 [ next#5 bitmap_line_ydxi::xd#1 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#1 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxi::xd#1 = bitmap_line::xd#1 } } ) always clobbers reg byte a
|
|
Statement [106] (byte) bitmap_line_ydxi::e#2 ← (byte) bitmap_line_ydxi::e#1 - (const byte) bitmap_line::y1#0 [ bitmap_line_ydxi::xd#1 bitmap_line_ydxi::y#2 bitmap_line_ydxi::x#2 bitmap_line_ydxi::e#2 ] ( bitmap_line:11::bitmap_line_ydxi:67 [ next#5 bitmap_line_ydxi::xd#1 bitmap_line_ydxi::y#2 bitmap_line_ydxi::x#2 bitmap_line_ydxi::e#2 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxi::xd#1 = bitmap_line::xd#1 } } ) always clobbers reg byte a reg byte x
|
|
Statement [108] if((byte) bitmap_line_ydxi::y#2!=(const byte) bitmap_line::y1#0+(byte) 1) goto bitmap_line_ydxi::@1 [ bitmap_line_ydxi::xd#1 bitmap_line_ydxi::x#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#6 ] ( bitmap_line:11::bitmap_line_ydxi:67 [ next#5 bitmap_line_ydxi::xd#1 bitmap_line_ydxi::x#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#6 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxi::xd#1 = bitmap_line::xd#1 } } ) always clobbers reg byte a
|
|
Statement [116] (byte) bitmap_line_xdyi::e#1 ← (byte) bitmap_line_xdyi::e#3 + (const byte) bitmap_line::y1#0 [ bitmap_line_xdyi::x1#1 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::y#3 bitmap_line_xdyi::x#2 bitmap_line_xdyi::e#1 ] ( bitmap_line:11::bitmap_line_xdyi:70 [ next#5 bitmap_line_xdyi::x1#1 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::y#3 bitmap_line_xdyi::x#2 bitmap_line_xdyi::e#1 ] { { next#5 = bitmap_line::x1#0 bitmap_line_xdyi::x1#1 } { bitmap_line_xdyi::xd#1 = bitmap_line::xd#1 } } ) always clobbers reg byte a reg byte x
|
|
Statement [117] if((byte) bitmap_line_xdyi::xd#1>=(byte) bitmap_line_xdyi::e#1) goto bitmap_line_xdyi::@2 [ bitmap_line_xdyi::x1#1 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::y#3 bitmap_line_xdyi::x#2 bitmap_line_xdyi::e#1 ] ( bitmap_line:11::bitmap_line_xdyi:70 [ next#5 bitmap_line_xdyi::x1#1 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::y#3 bitmap_line_xdyi::x#2 bitmap_line_xdyi::e#1 ] { { next#5 = bitmap_line::x1#0 bitmap_line_xdyi::x1#1 } { bitmap_line_xdyi::xd#1 = bitmap_line::xd#1 } } ) always clobbers reg byte a
|
|
Statement [119] (byte) bitmap_line_xdyi::e#2 ← (byte) bitmap_line_xdyi::e#1 - (byte) bitmap_line_xdyi::xd#1 [ bitmap_line_xdyi::x1#1 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#2 bitmap_line_xdyi::e#2 ] ( bitmap_line:11::bitmap_line_xdyi:70 [ next#5 bitmap_line_xdyi::x1#1 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#2 bitmap_line_xdyi::e#2 ] { { next#5 = bitmap_line::x1#0 bitmap_line_xdyi::x1#1 } { bitmap_line_xdyi::xd#1 = bitmap_line::xd#1 } } ) always clobbers reg byte a
|
|
Statement [125] (word) bitmap_plot::plotter_x#0 ← *((const to_nomodify byte*) bitmap_plot_xhi + (byte) bitmap_plot::x#4) w= *((const to_nomodify byte*) bitmap_plot_xlo + (byte) bitmap_plot::x#4) [ bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] ( bitmap_line:11::bitmap_line_ydxd:59::bitmap_plot:75 [ next#5 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxd::xd#0 = bitmap_line::xd#2 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line_ydxd::x#3 } { bitmap_plot::y#3 = bitmap_plot::y#4 bitmap_line_ydxd::y#2 } } bitmap_line:11::bitmap_line_xdyd:63::bitmap_plot:88 [ next#5 bitmap_line_xdyd::xd#0 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] { { next#5 = bitmap_line::x1#0 bitmap_line_xdyd::x#0 } { bitmap_line_xdyd::xd#0 = bitmap_line::xd#2 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line_xdyd::x#3 } { bitmap_plot::y#1 = bitmap_plot::y#4 bitmap_line_xdyd::y#3 } } bitmap_line:11::bitmap_line_ydxi:67::bitmap_plot:101 [ next#5 bitmap_line_ydxi::xd#1 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxi::xd#1 = bitmap_line::xd#1 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line_ydxi::x#3 } { bitmap_plot::y#2 = bitmap_plot::y#4 bitmap_line_ydxi::y#3 } } bitmap_line:11::bitmap_line_xdyi:70::bitmap_plot:114 [ next#5 bitmap_line_xdyi::x1#1 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] { { next#5 = bitmap_line::x1#0 bitmap_line_xdyi::x1#1 } { bitmap_line_xdyi::xd#1 = bitmap_line::xd#1 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line_xdyi::x#3 } { bitmap_plot::y#0 = bitmap_plot::y#4 bitmap_line_xdyi::y#3 } } ) always clobbers reg byte a
|
|
Statement [126] (word) bitmap_plot::plotter_y#0 ← *((const to_nomodify byte*) bitmap_plot_yhi + (byte) bitmap_plot::y#4) w= *((const to_nomodify byte*) bitmap_plot_ylo + (byte) bitmap_plot::y#4) [ bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] ( bitmap_line:11::bitmap_line_ydxd:59::bitmap_plot:75 [ next#5 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxd::xd#0 = bitmap_line::xd#2 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line_ydxd::x#3 } { bitmap_plot::y#3 = bitmap_plot::y#4 bitmap_line_ydxd::y#2 } } bitmap_line:11::bitmap_line_xdyd:63::bitmap_plot:88 [ next#5 bitmap_line_xdyd::xd#0 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] { { next#5 = bitmap_line::x1#0 bitmap_line_xdyd::x#0 } { bitmap_line_xdyd::xd#0 = bitmap_line::xd#2 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line_xdyd::x#3 } { bitmap_plot::y#1 = bitmap_plot::y#4 bitmap_line_xdyd::y#3 } } bitmap_line:11::bitmap_line_ydxi:67::bitmap_plot:101 [ next#5 bitmap_line_ydxi::xd#1 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxi::xd#1 = bitmap_line::xd#1 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line_ydxi::x#3 } { bitmap_plot::y#2 = bitmap_plot::y#4 bitmap_line_ydxi::y#3 } } bitmap_line:11::bitmap_line_xdyi:70::bitmap_plot:114 [ next#5 bitmap_line_xdyi::x1#1 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] { { next#5 = bitmap_line::x1#0 bitmap_line_xdyi::x1#1 } { bitmap_line_xdyi::xd#1 = bitmap_line::xd#1 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line_xdyi::x#3 } { bitmap_plot::y#0 = bitmap_plot::y#4 bitmap_line_xdyi::y#3 } } ) always clobbers reg byte a
|
|
Statement [127] (word) bitmap_plot::plotter#0 ← (word) bitmap_plot::plotter_x#0 + (word) bitmap_plot::plotter_y#0 [ bitmap_plot::x#4 bitmap_plot::plotter#0 ] ( bitmap_line:11::bitmap_line_ydxd:59::bitmap_plot:75 [ next#5 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::plotter#0 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxd::xd#0 = bitmap_line::xd#2 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line_ydxd::x#3 } { bitmap_plot::y#3 = bitmap_plot::y#4 bitmap_line_ydxd::y#2 } } bitmap_line:11::bitmap_line_xdyd:63::bitmap_plot:88 [ next#5 bitmap_line_xdyd::xd#0 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::plotter#0 ] { { next#5 = bitmap_line::x1#0 bitmap_line_xdyd::x#0 } { bitmap_line_xdyd::xd#0 = bitmap_line::xd#2 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line_xdyd::x#3 } { bitmap_plot::y#1 = bitmap_plot::y#4 bitmap_line_xdyd::y#3 } } bitmap_line:11::bitmap_line_ydxi:67::bitmap_plot:101 [ next#5 bitmap_line_ydxi::xd#1 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::plotter#0 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxi::xd#1 = bitmap_line::xd#1 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line_ydxi::x#3 } { bitmap_plot::y#2 = bitmap_plot::y#4 bitmap_line_ydxi::y#3 } } bitmap_line:11::bitmap_line_xdyi:70::bitmap_plot:114 [ next#5 bitmap_line_xdyi::x1#1 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::plotter#0 ] { { next#5 = bitmap_line::x1#0 bitmap_line_xdyi::x1#1 } { bitmap_line_xdyi::xd#1 = bitmap_line::xd#1 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line_xdyi::x#3 } { bitmap_plot::y#0 = bitmap_plot::y#4 bitmap_line_xdyi::y#3 } } ) always clobbers reg byte a
|
|
Statement [128] (byte~) bitmap_plot::$1 ← *((byte*)(word) bitmap_plot::plotter#0) | *((const to_nomodify byte*) bitmap_plot_bit + (byte) bitmap_plot::x#4) [ bitmap_plot::plotter#0 bitmap_plot::$1 ] ( bitmap_line:11::bitmap_line_ydxd:59::bitmap_plot:75 [ next#5 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::plotter#0 bitmap_plot::$1 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxd::xd#0 = bitmap_line::xd#2 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line_ydxd::x#3 } { bitmap_plot::y#3 = bitmap_plot::y#4 bitmap_line_ydxd::y#2 } } bitmap_line:11::bitmap_line_xdyd:63::bitmap_plot:88 [ next#5 bitmap_line_xdyd::xd#0 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::plotter#0 bitmap_plot::$1 ] { { next#5 = bitmap_line::x1#0 bitmap_line_xdyd::x#0 } { bitmap_line_xdyd::xd#0 = bitmap_line::xd#2 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line_xdyd::x#3 } { bitmap_plot::y#1 = bitmap_plot::y#4 bitmap_line_xdyd::y#3 } } bitmap_line:11::bitmap_line_ydxi:67::bitmap_plot:101 [ next#5 bitmap_line_ydxi::xd#1 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::plotter#0 bitmap_plot::$1 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxi::xd#1 = bitmap_line::xd#1 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line_ydxi::x#3 } { bitmap_plot::y#2 = bitmap_plot::y#4 bitmap_line_ydxi::y#3 } } bitmap_line:11::bitmap_line_xdyi:70::bitmap_plot:114 [ next#5 bitmap_line_xdyi::x1#1 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::plotter#0 bitmap_plot::$1 ] { { next#5 = bitmap_line::x1#0 bitmap_line_xdyi::x1#1 } { bitmap_line_xdyi::xd#1 = bitmap_line::xd#1 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line_xdyi::x#3 } { bitmap_plot::y#0 = bitmap_plot::y#4 bitmap_line_xdyi::y#3 } } ) always clobbers reg byte a reg byte y
|
|
Statement [129] *((byte*)(word) bitmap_plot::plotter#0) ← (byte~) bitmap_plot::$1 [ ] ( bitmap_line:11::bitmap_line_ydxd:59::bitmap_plot:75 [ next#5 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxd::xd#0 = bitmap_line::xd#2 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line_ydxd::x#3 } { bitmap_plot::y#3 = bitmap_plot::y#4 bitmap_line_ydxd::y#2 } } bitmap_line:11::bitmap_line_xdyd:63::bitmap_plot:88 [ next#5 bitmap_line_xdyd::xd#0 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] { { next#5 = bitmap_line::x1#0 bitmap_line_xdyd::x#0 } { bitmap_line_xdyd::xd#0 = bitmap_line::xd#2 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line_xdyd::x#3 } { bitmap_plot::y#1 = bitmap_plot::y#4 bitmap_line_xdyd::y#3 } } bitmap_line:11::bitmap_line_ydxi:67::bitmap_plot:101 [ next#5 bitmap_line_ydxi::xd#1 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxi::xd#1 = bitmap_line::xd#1 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line_ydxi::x#3 } { bitmap_plot::y#2 = bitmap_plot::y#4 bitmap_line_ydxi::y#3 } } bitmap_line:11::bitmap_line_xdyi:70::bitmap_plot:114 [ next#5 bitmap_line_xdyi::x1#1 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 ] { { next#5 = bitmap_line::x1#0 bitmap_line_xdyi::x1#1 } { bitmap_line_xdyi::xd#1 = bitmap_line::xd#1 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line_xdyi::x#3 } { bitmap_plot::y#0 = bitmap_plot::y#4 bitmap_line_xdyi::y#3 } } ) always clobbers reg byte y
|
|
Potential registers zp[1]:2 [ next#5 next#0 ] : zp[1]:2 ,
|
|
Potential registers zp[1]:3 [ bitmap_init::x#2 bitmap_init::x#1 ] : zp[1]:3 , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:4 [ bitmap_init::bits#3 bitmap_init::bits#4 bitmap_init::bits#1 ] : zp[1]:4 , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:5 [ bitmap_init::y#2 bitmap_init::y#1 ] : zp[1]:5 , reg byte x , reg byte y ,
|
|
Potential registers zp[2]:6 [ bitmap_init::yoffs#2 bitmap_init::yoffs#4 bitmap_init::yoffs#1 ] : zp[2]:6 ,
|
|
Potential registers zp[1]:8 [ bitmap_clear::y#4 bitmap_clear::y#1 ] : zp[1]:8 , reg byte x ,
|
|
Potential registers zp[2]:9 [ bitmap_clear::bitmap#2 bitmap_clear::bitmap#3 bitmap_clear::bitmap#5 bitmap_clear::bitmap#1 ] : zp[2]:9 ,
|
|
Potential registers zp[1]:11 [ bitmap_clear::x#2 bitmap_clear::x#1 ] : zp[1]:11 , reg byte x ,
|
|
Potential registers zp[2]:12 [ init_screen::c#2 init_screen::c#1 ] : zp[2]:12 ,
|
|
Potential registers zp[1]:14 [ bitmap_line_ydxd::x#3 bitmap_line_ydxd::x#6 bitmap_line_ydxd::x#2 ] : zp[1]:14 ,
|
|
Potential registers zp[1]:15 [ bitmap_line_ydxd::y#2 bitmap_line_ydxd::y#3 ] : zp[1]:15 ,
|
|
Potential registers zp[1]:16 [ bitmap_line_ydxd::e#3 bitmap_line_ydxd::e#0 bitmap_line_ydxd::e#6 bitmap_line_ydxd::e#2 bitmap_line_ydxd::e#1 ] : zp[1]:16 , reg byte x ,
|
|
Potential registers zp[1]:17 [ bitmap_line_xdyd::x#3 bitmap_line_xdyd::x#0 bitmap_line_xdyd::x#2 ] : zp[1]:17 ,
|
|
Potential registers zp[1]:18 [ bitmap_line_xdyd::y#3 bitmap_line_xdyd::y#6 bitmap_line_xdyd::y#2 ] : zp[1]:18 ,
|
|
Potential registers zp[1]:19 [ bitmap_line_xdyd::e#3 bitmap_line_xdyd::e#6 bitmap_line_xdyd::e#2 bitmap_line_xdyd::e#1 ] : zp[1]:19 , reg byte x ,
|
|
Potential registers zp[1]:20 [ bitmap_line_ydxi::x#3 bitmap_line_ydxi::x#6 bitmap_line_ydxi::x#2 ] : zp[1]:20 ,
|
|
Potential registers zp[1]:21 [ bitmap_line_ydxi::y#3 bitmap_line_ydxi::y#2 ] : zp[1]:21 ,
|
|
Potential registers zp[1]:22 [ bitmap_line_ydxi::e#3 bitmap_line_ydxi::e#0 bitmap_line_ydxi::e#6 bitmap_line_ydxi::e#2 bitmap_line_ydxi::e#1 ] : zp[1]:22 , reg byte x ,
|
|
Potential registers zp[1]:23 [ bitmap_line_xdyi::x#3 bitmap_line_xdyi::x#2 ] : zp[1]:23 ,
|
|
Potential registers zp[1]:24 [ bitmap_line_xdyi::y#3 bitmap_line_xdyi::y#6 bitmap_line_xdyi::y#2 ] : zp[1]:24 ,
|
|
Potential registers zp[1]:25 [ bitmap_line_xdyi::e#3 bitmap_line_xdyi::e#6 bitmap_line_xdyi::e#2 bitmap_line_xdyi::e#1 ] : zp[1]:25 , reg byte x ,
|
|
Potential registers zp[1]:26 [ bitmap_plot::x#4 bitmap_plot::x#1 bitmap_plot::x#0 bitmap_plot::x#3 bitmap_plot::x#2 ] : zp[1]:26 , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:27 [ bitmap_plot::y#4 bitmap_plot::y#1 bitmap_plot::y#0 bitmap_plot::y#3 bitmap_plot::y#2 ] : zp[1]:27 , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:28 [ bitmap_line::x1#0 ] : zp[1]:28 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:29 [ bitmap_init::$0 ] : zp[1]:29 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:30 [ bitmap_init::$10 ] : zp[1]:30 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:31 [ bitmap_init::$7 ] : zp[1]:31 , reg byte a , reg byte x , reg byte y , reg byte alu ,
|
|
Potential registers zp[1]:32 [ bitmap_init::$8 ] : zp[1]:32 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:33 [ bitmap_init::$9 ] : zp[1]:33 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[2]:34 [ bitmap_clear::bitmap#0 ] : zp[2]:34 ,
|
|
Potential registers zp[1]:36 [ bitmap_line::xd#2 ] : zp[1]:36 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:37 [ bitmap_line_ydxd::xd#0 ] : zp[1]:37 ,
|
|
Potential registers zp[1]:38 [ bitmap_line_xdyd::xd#0 ] : zp[1]:38 ,
|
|
Potential registers zp[1]:39 [ bitmap_line::xd#1 ] : zp[1]:39 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[1]:40 [ bitmap_line_ydxi::xd#1 ] : zp[1]:40 ,
|
|
Potential registers zp[1]:41 [ bitmap_line_xdyi::x1#1 ] : zp[1]:41 ,
|
|
Potential registers zp[1]:42 [ bitmap_line_xdyi::xd#1 ] : zp[1]:42 ,
|
|
Potential registers zp[1]:43 [ bitmap_line_xdyi::$6 ] : zp[1]:43 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp[2]:44 [ bitmap_plot::plotter_x#0 ] : zp[2]:44 ,
|
|
Potential registers zp[2]:46 [ bitmap_plot::plotter_y#0 ] : zp[2]:46 ,
|
|
Potential registers zp[2]:48 [ bitmap_plot::plotter#0 ] : zp[2]:48 ,
|
|
Potential registers zp[1]:50 [ bitmap_plot::$1 ] : zp[1]:50 , reg byte a , reg byte x , reg byte y ,
|
|
|
|
REGISTER UPLIFT SCOPES
|
|
Uplift Scope [bitmap_plot] 2,000,011: zp[1]:27 [ bitmap_plot::y#4 bitmap_plot::y#1 bitmap_plot::y#0 bitmap_plot::y#3 bitmap_plot::y#2 ] 2,000,002: zp[2]:46 [ bitmap_plot::plotter_y#0 ] 2,000,002: zp[1]:50 [ bitmap_plot::$1 ] 1,250,005.75: zp[1]:26 [ bitmap_plot::x#4 bitmap_plot::x#1 bitmap_plot::x#0 bitmap_plot::x#3 bitmap_plot::x#2 ] 1,000,001: zp[2]:44 [ bitmap_plot::plotter_x#0 ] 500,000.5: zp[2]:48 [ bitmap_plot::plotter#0 ]
|
|
Uplift Scope [bitmap_line_xdyi] 473,338.07: zp[1]:25 [ bitmap_line_xdyi::e#3 bitmap_line_xdyi::e#6 bitmap_line_xdyi::e#2 bitmap_line_xdyi::e#1 ] 257,145.43: zp[1]:24 [ bitmap_line_xdyi::y#3 bitmap_line_xdyi::y#6 bitmap_line_xdyi::y#2 ] 200,002: zp[1]:43 [ bitmap_line_xdyi::$6 ] 112,501.12: zp[1]:23 [ bitmap_line_xdyi::x#3 bitmap_line_xdyi::x#2 ] 14,293.07: zp[1]:42 [ bitmap_line_xdyi::xd#1 ] 6,673.47: zp[1]:41 [ bitmap_line_xdyi::x1#1 ]
|
|
Uplift Scope [bitmap_line_xdyd] 523,338.57: zp[1]:19 [ bitmap_line_xdyd::e#3 bitmap_line_xdyd::e#6 bitmap_line_xdyd::e#2 bitmap_line_xdyd::e#1 ] 307,145.93: zp[1]:18 [ bitmap_line_xdyd::y#3 bitmap_line_xdyd::y#6 bitmap_line_xdyd::y#2 ] 118,475.9: zp[1]:17 [ bitmap_line_xdyd::x#3 bitmap_line_xdyd::x#0 bitmap_line_xdyd::x#2 ] 15,392.54: zp[1]:38 [ bitmap_line_xdyd::xd#0 ]
|
|
Uplift Scope [bitmap_line_ydxi] 525,540.77: zp[1]:22 [ bitmap_line_ydxi::e#3 bitmap_line_ydxi::e#0 bitmap_line_ydxi::e#6 bitmap_line_ydxi::e#2 bitmap_line_ydxi::e#1 ] 307,145.93: zp[1]:20 [ bitmap_line_ydxi::x#3 bitmap_line_ydxi::x#6 bitmap_line_ydxi::x#2 ] 117,858.32: zp[1]:21 [ bitmap_line_ydxi::y#3 bitmap_line_ydxi::y#2 ] 7,777.15: zp[1]:40 [ bitmap_line_ydxi::xd#1 ]
|
|
Uplift Scope [bitmap_line_ydxd] 525,540.77: zp[1]:16 [ bitmap_line_ydxd::e#3 bitmap_line_ydxd::e#0 bitmap_line_ydxd::e#6 bitmap_line_ydxd::e#2 bitmap_line_ydxd::e#1 ] 307,145.93: zp[1]:14 [ bitmap_line_ydxd::x#3 bitmap_line_ydxd::x#6 bitmap_line_ydxd::x#2 ] 117,858.32: zp[1]:15 [ bitmap_line_ydxd::y#2 bitmap_line_ydxd::y#3 ] 7,777.15: zp[1]:37 [ bitmap_line_ydxd::xd#0 ]
|
|
Uplift Scope [bitmap_clear] 2,207.6: zp[2]:9 [ bitmap_clear::bitmap#2 bitmap_clear::bitmap#3 bitmap_clear::bitmap#5 bitmap_clear::bitmap#1 ] 2,168.83: zp[1]:11 [ bitmap_clear::x#2 bitmap_clear::x#1 ] 185.17: zp[1]:8 [ bitmap_clear::y#4 bitmap_clear::y#1 ] 11: zp[2]:34 [ bitmap_clear::bitmap#0 ]
|
|
Uplift Scope [bitmap_init] 366.12: zp[2]:6 [ bitmap_init::yoffs#2 bitmap_init::yoffs#4 bitmap_init::yoffs#1 ] 228.93: zp[1]:4 [ bitmap_init::bits#3 bitmap_init::bits#4 bitmap_init::bits#1 ] 218.83: zp[1]:3 [ bitmap_init::x#2 bitmap_init::x#1 ] 202: zp[1]:5 [ bitmap_init::y#2 bitmap_init::y#1 ] 202: zp[1]:29 [ bitmap_init::$0 ] 202: zp[1]:31 [ bitmap_init::$7 ] 202: zp[1]:32 [ bitmap_init::$8 ] 202: zp[1]:33 [ bitmap_init::$9 ] 50.5: zp[1]:30 [ bitmap_init::$10 ]
|
|
Uplift Scope [bitmap_line] 134.67: zp[1]:36 [ bitmap_line::xd#2 ] 134.67: zp[1]:39 [ bitmap_line::xd#1 ] 86: zp[1]:28 [ bitmap_line::x1#0 ]
|
|
Uplift Scope [init_screen] 336.67: zp[2]:12 [ init_screen::c#2 init_screen::c#1 ]
|
|
Uplift Scope [] 33: zp[1]:2 [ next#5 next#0 ]
|
|
Uplift Scope [MOS6526_CIA]
|
|
Uplift Scope [MOS6569_VICII]
|
|
Uplift Scope [MOS6581_SID]
|
|
Uplift Scope [main]
|
|
|
|
Uplifting [bitmap_plot] best 40153 combination reg byte y [ bitmap_plot::y#4 bitmap_plot::y#1 bitmap_plot::y#0 bitmap_plot::y#3 bitmap_plot::y#2 ] zp[2]:46 [ bitmap_plot::plotter_y#0 ] reg byte a [ bitmap_plot::$1 ] reg byte x [ bitmap_plot::x#4 bitmap_plot::x#1 bitmap_plot::x#0 bitmap_plot::x#3 bitmap_plot::x#2 ] zp[2]:44 [ bitmap_plot::plotter_x#0 ] zp[2]:48 [ bitmap_plot::plotter#0 ]
|
|
Uplifting [bitmap_line_xdyi] best 39553 combination zp[1]:25 [ bitmap_line_xdyi::e#3 bitmap_line_xdyi::e#6 bitmap_line_xdyi::e#2 bitmap_line_xdyi::e#1 ] zp[1]:24 [ bitmap_line_xdyi::y#3 bitmap_line_xdyi::y#6 bitmap_line_xdyi::y#2 ] reg byte x [ bitmap_line_xdyi::$6 ] zp[1]:23 [ bitmap_line_xdyi::x#3 bitmap_line_xdyi::x#2 ] zp[1]:42 [ bitmap_line_xdyi::xd#1 ] zp[1]:41 [ bitmap_line_xdyi::x1#1 ]
|
|
Uplifting [bitmap_line_xdyd] best 39553 combination zp[1]:19 [ bitmap_line_xdyd::e#3 bitmap_line_xdyd::e#6 bitmap_line_xdyd::e#2 bitmap_line_xdyd::e#1 ] zp[1]:18 [ bitmap_line_xdyd::y#3 bitmap_line_xdyd::y#6 bitmap_line_xdyd::y#2 ] zp[1]:17 [ bitmap_line_xdyd::x#3 bitmap_line_xdyd::x#0 bitmap_line_xdyd::x#2 ] zp[1]:38 [ bitmap_line_xdyd::xd#0 ]
|
|
Uplifting [bitmap_line_ydxi] best 39553 combination zp[1]:22 [ bitmap_line_ydxi::e#3 bitmap_line_ydxi::e#0 bitmap_line_ydxi::e#6 bitmap_line_ydxi::e#2 bitmap_line_ydxi::e#1 ] zp[1]:20 [ bitmap_line_ydxi::x#3 bitmap_line_ydxi::x#6 bitmap_line_ydxi::x#2 ] zp[1]:21 [ bitmap_line_ydxi::y#3 bitmap_line_ydxi::y#2 ] zp[1]:40 [ bitmap_line_ydxi::xd#1 ]
|
|
Uplifting [bitmap_line_ydxd] best 39553 combination zp[1]:16 [ bitmap_line_ydxd::e#3 bitmap_line_ydxd::e#0 bitmap_line_ydxd::e#6 bitmap_line_ydxd::e#2 bitmap_line_ydxd::e#1 ] zp[1]:14 [ bitmap_line_ydxd::x#3 bitmap_line_ydxd::x#6 bitmap_line_ydxd::x#2 ] zp[1]:15 [ bitmap_line_ydxd::y#2 bitmap_line_ydxd::y#3 ] zp[1]:37 [ bitmap_line_ydxd::xd#0 ]
|
|
Uplifting [bitmap_clear] best 38653 combination zp[2]:9 [ bitmap_clear::bitmap#2 bitmap_clear::bitmap#3 bitmap_clear::bitmap#5 bitmap_clear::bitmap#1 ] reg byte x [ bitmap_clear::x#2 bitmap_clear::x#1 ] zp[1]:8 [ bitmap_clear::y#4 bitmap_clear::y#1 ] zp[2]:34 [ bitmap_clear::bitmap#0 ]
|
|
Uplifting [bitmap_init] best 38133 combination zp[2]:6 [ bitmap_init::yoffs#2 bitmap_init::yoffs#4 bitmap_init::yoffs#1 ] reg byte y [ 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 ] reg byte a [ bitmap_init::$0 ] zp[1]:31 [ bitmap_init::$7 ] zp[1]:32 [ bitmap_init::$8 ] zp[1]:33 [ bitmap_init::$9 ] zp[1]:30 [ bitmap_init::$10 ]
|
|
Limited combination testing to 100 combinations of 34560 possible.
|
|
Uplifting [bitmap_line] best 38077 combination reg byte x [ bitmap_line::xd#2 ] reg byte x [ bitmap_line::xd#1 ] reg byte a [ bitmap_line::x1#0 ]
|
|
Uplifting [init_screen] best 38077 combination zp[2]:12 [ init_screen::c#2 init_screen::c#1 ]
|
|
Uplifting [] best 38077 combination zp[1]:2 [ next#5 next#0 ]
|
|
Uplifting [MOS6526_CIA] best 38077 combination
|
|
Uplifting [MOS6569_VICII] best 38077 combination
|
|
Uplifting [MOS6581_SID] best 38077 combination
|
|
Uplifting [main] best 38077 combination
|
|
Attempting to uplift remaining variables inzp[1]:16 [ bitmap_line_ydxd::e#3 bitmap_line_ydxd::e#0 bitmap_line_ydxd::e#6 bitmap_line_ydxd::e#2 bitmap_line_ydxd::e#1 ]
|
|
Uplifting [bitmap_line_ydxd] best 38077 combination zp[1]:16 [ bitmap_line_ydxd::e#3 bitmap_line_ydxd::e#0 bitmap_line_ydxd::e#6 bitmap_line_ydxd::e#2 bitmap_line_ydxd::e#1 ]
|
|
Attempting to uplift remaining variables inzp[1]:22 [ bitmap_line_ydxi::e#3 bitmap_line_ydxi::e#0 bitmap_line_ydxi::e#6 bitmap_line_ydxi::e#2 bitmap_line_ydxi::e#1 ]
|
|
Uplifting [bitmap_line_ydxi] best 38077 combination zp[1]:22 [ bitmap_line_ydxi::e#3 bitmap_line_ydxi::e#0 bitmap_line_ydxi::e#6 bitmap_line_ydxi::e#2 bitmap_line_ydxi::e#1 ]
|
|
Attempting to uplift remaining variables inzp[1]:19 [ bitmap_line_xdyd::e#3 bitmap_line_xdyd::e#6 bitmap_line_xdyd::e#2 bitmap_line_xdyd::e#1 ]
|
|
Uplifting [bitmap_line_xdyd] best 38077 combination zp[1]:19 [ bitmap_line_xdyd::e#3 bitmap_line_xdyd::e#6 bitmap_line_xdyd::e#2 bitmap_line_xdyd::e#1 ]
|
|
Attempting to uplift remaining variables inzp[1]:25 [ bitmap_line_xdyi::e#3 bitmap_line_xdyi::e#6 bitmap_line_xdyi::e#2 bitmap_line_xdyi::e#1 ]
|
|
Uplifting [bitmap_line_xdyi] best 38077 combination zp[1]:25 [ bitmap_line_xdyi::e#3 bitmap_line_xdyi::e#6 bitmap_line_xdyi::e#2 bitmap_line_xdyi::e#1 ]
|
|
Attempting to uplift remaining variables inzp[1]:14 [ bitmap_line_ydxd::x#3 bitmap_line_ydxd::x#6 bitmap_line_ydxd::x#2 ]
|
|
Uplifting [bitmap_line_ydxd] best 38077 combination zp[1]:14 [ bitmap_line_ydxd::x#3 bitmap_line_ydxd::x#6 bitmap_line_ydxd::x#2 ]
|
|
Attempting to uplift remaining variables inzp[1]:18 [ bitmap_line_xdyd::y#3 bitmap_line_xdyd::y#6 bitmap_line_xdyd::y#2 ]
|
|
Uplifting [bitmap_line_xdyd] best 38077 combination zp[1]:18 [ bitmap_line_xdyd::y#3 bitmap_line_xdyd::y#6 bitmap_line_xdyd::y#2 ]
|
|
Attempting to uplift remaining variables inzp[1]:20 [ bitmap_line_ydxi::x#3 bitmap_line_ydxi::x#6 bitmap_line_ydxi::x#2 ]
|
|
Uplifting [bitmap_line_ydxi] best 38077 combination zp[1]:20 [ bitmap_line_ydxi::x#3 bitmap_line_ydxi::x#6 bitmap_line_ydxi::x#2 ]
|
|
Attempting to uplift remaining variables inzp[1]:24 [ bitmap_line_xdyi::y#3 bitmap_line_xdyi::y#6 bitmap_line_xdyi::y#2 ]
|
|
Uplifting [bitmap_line_xdyi] best 38077 combination zp[1]:24 [ bitmap_line_xdyi::y#3 bitmap_line_xdyi::y#6 bitmap_line_xdyi::y#2 ]
|
|
Attempting to uplift remaining variables inzp[1]:17 [ bitmap_line_xdyd::x#3 bitmap_line_xdyd::x#0 bitmap_line_xdyd::x#2 ]
|
|
Uplifting [bitmap_line_xdyd] best 38077 combination zp[1]:17 [ bitmap_line_xdyd::x#3 bitmap_line_xdyd::x#0 bitmap_line_xdyd::x#2 ]
|
|
Attempting to uplift remaining variables inzp[1]:15 [ bitmap_line_ydxd::y#2 bitmap_line_ydxd::y#3 ]
|
|
Uplifting [bitmap_line_ydxd] best 38077 combination zp[1]:15 [ bitmap_line_ydxd::y#2 bitmap_line_ydxd::y#3 ]
|
|
Attempting to uplift remaining variables inzp[1]:21 [ bitmap_line_ydxi::y#3 bitmap_line_ydxi::y#2 ]
|
|
Uplifting [bitmap_line_ydxi] best 38077 combination zp[1]:21 [ bitmap_line_ydxi::y#3 bitmap_line_ydxi::y#2 ]
|
|
Attempting to uplift remaining variables inzp[1]:23 [ bitmap_line_xdyi::x#3 bitmap_line_xdyi::x#2 ]
|
|
Uplifting [bitmap_line_xdyi] best 38077 combination zp[1]:23 [ bitmap_line_xdyi::x#3 bitmap_line_xdyi::x#2 ]
|
|
Attempting to uplift remaining variables inzp[1]:38 [ bitmap_line_xdyd::xd#0 ]
|
|
Uplifting [bitmap_line_xdyd] best 38077 combination zp[1]:38 [ bitmap_line_xdyd::xd#0 ]
|
|
Attempting to uplift remaining variables inzp[1]:42 [ bitmap_line_xdyi::xd#1 ]
|
|
Uplifting [bitmap_line_xdyi] best 38077 combination zp[1]:42 [ bitmap_line_xdyi::xd#1 ]
|
|
Attempting to uplift remaining variables inzp[1]:37 [ bitmap_line_ydxd::xd#0 ]
|
|
Uplifting [bitmap_line_ydxd] best 38077 combination zp[1]:37 [ bitmap_line_ydxd::xd#0 ]
|
|
Attempting to uplift remaining variables inzp[1]:40 [ bitmap_line_ydxi::xd#1 ]
|
|
Uplifting [bitmap_line_ydxi] best 38077 combination zp[1]:40 [ bitmap_line_ydxi::xd#1 ]
|
|
Attempting to uplift remaining variables inzp[1]:41 [ bitmap_line_xdyi::x1#1 ]
|
|
Uplifting [bitmap_line_xdyi] best 38077 combination zp[1]:41 [ bitmap_line_xdyi::x1#1 ]
|
|
Attempting to uplift remaining variables inzp[1]:31 [ bitmap_init::$7 ]
|
|
Uplifting [bitmap_init] best 38017 combination reg byte a [ bitmap_init::$7 ]
|
|
Attempting to uplift remaining variables inzp[1]:32 [ bitmap_init::$8 ]
|
|
Uplifting [bitmap_init] best 37957 combination reg byte a [ bitmap_init::$8 ]
|
|
Attempting to uplift remaining variables inzp[1]:33 [ bitmap_init::$9 ]
|
|
Uplifting [bitmap_init] best 37897 combination reg byte a [ bitmap_init::$9 ]
|
|
Attempting to uplift remaining variables inzp[1]:8 [ bitmap_clear::y#4 bitmap_clear::y#1 ]
|
|
Uplifting [bitmap_clear] best 37897 combination zp[1]:8 [ bitmap_clear::y#4 bitmap_clear::y#1 ]
|
|
Attempting to uplift remaining variables inzp[1]:30 [ bitmap_init::$10 ]
|
|
Uplifting [bitmap_init] best 37897 combination zp[1]:30 [ bitmap_init::$10 ]
|
|
Attempting to uplift remaining variables inzp[1]:2 [ next#5 next#0 ]
|
|
Uplifting [] best 37897 combination zp[1]:2 [ next#5 next#0 ]
|
|
Coalescing zero page register [ zp[2]:9 [ bitmap_clear::bitmap#2 bitmap_clear::bitmap#3 bitmap_clear::bitmap#5 bitmap_clear::bitmap#1 ] ] with [ zp[2]:34 [ bitmap_clear::bitmap#0 ] ] - score: 1
|
|
Coalescing zero page register [ zp[2]:44 [ bitmap_plot::plotter_x#0 ] ] with [ zp[2]:48 [ bitmap_plot::plotter#0 ] ] - score: 1
|
|
Coalescing zero page register [ zp[1]:8 [ bitmap_clear::y#4 bitmap_clear::y#1 ] ] with [ zp[1]:2 [ next#5 next#0 ] ]
|
|
Coalescing zero page register [ zp[2]:9 [ bitmap_clear::bitmap#2 bitmap_clear::bitmap#3 bitmap_clear::bitmap#5 bitmap_clear::bitmap#1 bitmap_clear::bitmap#0 ] ] with [ zp[2]:6 [ bitmap_init::yoffs#2 bitmap_init::yoffs#4 bitmap_init::yoffs#1 ] ]
|
|
Coalescing zero page register [ zp[1]:17 [ bitmap_line_xdyd::x#3 bitmap_line_xdyd::x#0 bitmap_line_xdyd::x#2 ] ] with [ zp[1]:14 [ bitmap_line_ydxd::x#3 bitmap_line_ydxd::x#6 bitmap_line_ydxd::x#2 ] ]
|
|
Coalescing zero page register [ zp[1]:18 [ bitmap_line_xdyd::y#3 bitmap_line_xdyd::y#6 bitmap_line_xdyd::y#2 ] ] with [ zp[1]:15 [ bitmap_line_ydxd::y#2 bitmap_line_ydxd::y#3 ] ]
|
|
Coalescing zero page register [ zp[1]:19 [ bitmap_line_xdyd::e#3 bitmap_line_xdyd::e#6 bitmap_line_xdyd::e#2 bitmap_line_xdyd::e#1 ] ] with [ zp[1]:16 [ bitmap_line_ydxd::e#3 bitmap_line_ydxd::e#0 bitmap_line_ydxd::e#6 bitmap_line_ydxd::e#2 bitmap_line_ydxd::e#1 ] ]
|
|
Coalescing zero page register [ zp[1]:23 [ bitmap_line_xdyi::x#3 bitmap_line_xdyi::x#2 ] ] with [ zp[1]:20 [ bitmap_line_ydxi::x#3 bitmap_line_ydxi::x#6 bitmap_line_ydxi::x#2 ] ]
|
|
Coalescing zero page register [ zp[1]:24 [ bitmap_line_xdyi::y#3 bitmap_line_xdyi::y#6 bitmap_line_xdyi::y#2 ] ] with [ zp[1]:21 [ bitmap_line_ydxi::y#3 bitmap_line_ydxi::y#2 ] ]
|
|
Coalescing zero page register [ zp[1]:25 [ bitmap_line_xdyi::e#3 bitmap_line_xdyi::e#6 bitmap_line_xdyi::e#2 bitmap_line_xdyi::e#1 ] ] with [ zp[1]:22 [ bitmap_line_ydxi::e#3 bitmap_line_ydxi::e#0 bitmap_line_ydxi::e#6 bitmap_line_ydxi::e#2 bitmap_line_ydxi::e#1 ] ]
|
|
Coalescing zero page register [ zp[1]:37 [ bitmap_line_ydxd::xd#0 ] ] with [ zp[1]:30 [ bitmap_init::$10 ] ]
|
|
Coalescing zero page register [ zp[1]:40 [ bitmap_line_ydxi::xd#1 ] ] with [ zp[1]:38 [ bitmap_line_xdyd::xd#0 ] ]
|
|
Coalescing zero page register [ zp[2]:44 [ bitmap_plot::plotter_x#0 bitmap_plot::plotter#0 ] ] with [ zp[2]:12 [ init_screen::c#2 init_screen::c#1 ] ]
|
|
Coalescing zero page register [ zp[1]:23 [ bitmap_line_xdyi::x#3 bitmap_line_xdyi::x#2 bitmap_line_ydxi::x#3 bitmap_line_ydxi::x#6 bitmap_line_ydxi::x#2 ] ] with [ zp[1]:17 [ bitmap_line_xdyd::x#3 bitmap_line_xdyd::x#0 bitmap_line_xdyd::x#2 bitmap_line_ydxd::x#3 bitmap_line_ydxd::x#6 bitmap_line_ydxd::x#2 ] ]
|
|
Coalescing zero page register [ zp[1]:24 [ bitmap_line_xdyi::y#3 bitmap_line_xdyi::y#6 bitmap_line_xdyi::y#2 bitmap_line_ydxi::y#3 bitmap_line_ydxi::y#2 ] ] with [ zp[1]:18 [ bitmap_line_xdyd::y#3 bitmap_line_xdyd::y#6 bitmap_line_xdyd::y#2 bitmap_line_ydxd::y#2 bitmap_line_ydxd::y#3 ] ]
|
|
Coalescing zero page register [ zp[1]:25 [ bitmap_line_xdyi::e#3 bitmap_line_xdyi::e#6 bitmap_line_xdyi::e#2 bitmap_line_xdyi::e#1 bitmap_line_ydxi::e#3 bitmap_line_ydxi::e#0 bitmap_line_ydxi::e#6 bitmap_line_ydxi::e#2 bitmap_line_ydxi::e#1 ] ] with [ zp[1]:19 [ bitmap_line_xdyd::e#3 bitmap_line_xdyd::e#6 bitmap_line_xdyd::e#2 bitmap_line_xdyd::e#1 bitmap_line_ydxd::e#3 bitmap_line_ydxd::e#0 bitmap_line_ydxd::e#6 bitmap_line_ydxd::e#2 bitmap_line_ydxd::e#1 ] ]
|
|
Coalescing zero page register [ zp[1]:40 [ bitmap_line_ydxi::xd#1 bitmap_line_xdyd::xd#0 ] ] with [ zp[1]:37 [ bitmap_line_ydxd::xd#0 bitmap_init::$10 ] ]
|
|
Coalescing zero page register [ zp[1]:41 [ bitmap_line_xdyi::x1#1 ] ] with [ zp[1]:8 [ bitmap_clear::y#4 bitmap_clear::y#1 next#5 next#0 ] ]
|
|
Coalescing zero page register [ zp[2]:44 [ bitmap_plot::plotter_x#0 bitmap_plot::plotter#0 init_screen::c#2 init_screen::c#1 ] ] with [ zp[2]:9 [ bitmap_clear::bitmap#2 bitmap_clear::bitmap#3 bitmap_clear::bitmap#5 bitmap_clear::bitmap#1 bitmap_clear::bitmap#0 bitmap_init::yoffs#2 bitmap_init::yoffs#4 bitmap_init::yoffs#1 ] ]
|
|
Coalescing zero page register [ zp[1]:42 [ bitmap_line_xdyi::xd#1 ] ] with [ zp[1]:40 [ bitmap_line_ydxi::xd#1 bitmap_line_xdyd::xd#0 bitmap_line_ydxd::xd#0 bitmap_init::$10 ] ]
|
|
Allocated (was zp[1]:23) zp[1]:2 [ bitmap_line_xdyi::x#3 bitmap_line_xdyi::x#2 bitmap_line_ydxi::x#3 bitmap_line_ydxi::x#6 bitmap_line_ydxi::x#2 bitmap_line_xdyd::x#3 bitmap_line_xdyd::x#0 bitmap_line_xdyd::x#2 bitmap_line_ydxd::x#3 bitmap_line_ydxd::x#6 bitmap_line_ydxd::x#2 ]
|
|
Allocated (was zp[1]:24) zp[1]:3 [ bitmap_line_xdyi::y#3 bitmap_line_xdyi::y#6 bitmap_line_xdyi::y#2 bitmap_line_ydxi::y#3 bitmap_line_ydxi::y#2 bitmap_line_xdyd::y#3 bitmap_line_xdyd::y#6 bitmap_line_xdyd::y#2 bitmap_line_ydxd::y#2 bitmap_line_ydxd::y#3 ]
|
|
Allocated (was zp[1]:25) zp[1]:4 [ bitmap_line_xdyi::e#3 bitmap_line_xdyi::e#6 bitmap_line_xdyi::e#2 bitmap_line_xdyi::e#1 bitmap_line_ydxi::e#3 bitmap_line_ydxi::e#0 bitmap_line_ydxi::e#6 bitmap_line_ydxi::e#2 bitmap_line_ydxi::e#1 bitmap_line_xdyd::e#3 bitmap_line_xdyd::e#6 bitmap_line_xdyd::e#2 bitmap_line_xdyd::e#1 bitmap_line_ydxd::e#3 bitmap_line_ydxd::e#0 bitmap_line_ydxd::e#6 bitmap_line_ydxd::e#2 bitmap_line_ydxd::e#1 ]
|
|
Allocated (was zp[1]:41) zp[1]:5 [ bitmap_line_xdyi::x1#1 bitmap_clear::y#4 bitmap_clear::y#1 next#5 next#0 ]
|
|
Allocated (was zp[1]:42) zp[1]:6 [ bitmap_line_xdyi::xd#1 bitmap_line_ydxi::xd#1 bitmap_line_xdyd::xd#0 bitmap_line_ydxd::xd#0 bitmap_init::$10 ]
|
|
Allocated (was zp[2]:44) zp[2]:7 [ bitmap_plot::plotter_x#0 bitmap_plot::plotter#0 init_screen::c#2 init_screen::c#1 bitmap_clear::bitmap#2 bitmap_clear::bitmap#3 bitmap_clear::bitmap#5 bitmap_clear::bitmap#1 bitmap_clear::bitmap#0 bitmap_init::yoffs#2 bitmap_init::yoffs#4 bitmap_init::yoffs#1 ]
|
|
Allocated (was zp[2]:46) zp[2]:9 [ bitmap_plot::plotter_y#0 ]
|
|
|
|
ASSEMBLER BEFORE OPTIMIZATION
|
|
// File Comments
|
|
// Illustrates problem with bitmap-draw.kc line()
|
|
// Reported by Janne Johansson
|
|
// Upstart
|
|
.pc = $801 "Basic"
|
|
:BasicUpstart(main)
|
|
.pc = $80d "Program"
|
|
// Global Constants & labels
|
|
.const VIC_BMM = $20
|
|
.const VIC_DEN = $10
|
|
.const VIC_RSEL = 8
|
|
.label BORDER_COLOR = $d020
|
|
.label BG_COLOR = $d021
|
|
.label D011 = $d011
|
|
.label VIC_MEMORY = $d018
|
|
.label SCREEN = $400
|
|
.label BITMAP = $2000
|
|
.label next = 5
|
|
// main
|
|
main: {
|
|
// [0] *((const nomodify byte*) BORDER_COLOR) ← (byte) 0 -- _deref_pbuc1=vbuc2
|
|
lda #0
|
|
sta BORDER_COLOR
|
|
// [1] *((const nomodify byte*) BG_COLOR) ← (byte) 0 -- _deref_pbuc1=vbuc2
|
|
lda #0
|
|
sta BG_COLOR
|
|
// [2] *((const nomodify byte*) D011) ← (const nomodify byte) VIC_BMM|(const nomodify byte) VIC_DEN|(const nomodify byte) VIC_RSEL|(byte) 3 -- _deref_pbuc1=vbuc2
|
|
lda #VIC_BMM|VIC_DEN|VIC_RSEL|3
|
|
sta D011
|
|
// [3] *((const nomodify byte*) VIC_MEMORY) ← (byte)(word)(const nomodify byte*) SCREEN&(word) $3fff/(byte) $40|(word)(const nomodify byte*) BITMAP&(word) $3fff/(word) $400 -- _deref_pbuc1=vbuc2
|
|
lda #(SCREEN&$3fff)/$40|(BITMAP&$3fff)/$400
|
|
sta VIC_MEMORY
|
|
// [4] call bitmap_init
|
|
// [13] phi from main to bitmap_init [phi:main->bitmap_init]
|
|
bitmap_init_from_main:
|
|
jsr bitmap_init
|
|
// [5] phi from main to main::@2 [phi:main->main::@2]
|
|
__b2_from_main:
|
|
jmp __b2
|
|
// main::@2
|
|
__b2:
|
|
// [6] call bitmap_clear
|
|
jsr bitmap_clear
|
|
// [7] phi from main::@2 to main::@3 [phi:main::@2->main::@3]
|
|
__b3_from___b2:
|
|
jmp __b3
|
|
// main::@3
|
|
__b3:
|
|
// [8] call init_screen
|
|
// [49] phi from main::@3 to init_screen [phi:main::@3->init_screen]
|
|
init_screen_from___b3:
|
|
jsr init_screen
|
|
// [9] phi from main::@3 to main::@1 [phi:main::@3->main::@1]
|
|
__b1_from___b3:
|
|
// [9] phi (byte) next#5 = (byte) 0 [phi:main::@3->main::@1#0] -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z next
|
|
jmp __b1
|
|
// main::@1
|
|
__b1:
|
|
// [10] (byte) bitmap_line::x1#0 ← (byte) next#5 -- vbuaa=vbuz1
|
|
lda.z next
|
|
// [11] call bitmap_line
|
|
jsr bitmap_line
|
|
jmp __b4
|
|
// main::@4
|
|
__b4:
|
|
// [12] (byte) next#0 ← ++ (byte) next#5 -- vbuz1=_inc_vbuz1
|
|
inc.z next
|
|
// [9] phi from main::@4 to main::@1 [phi:main::@4->main::@1]
|
|
__b1_from___b4:
|
|
// [9] phi (byte) next#5 = (byte) next#0 [phi:main::@4->main::@1#0] -- register_copy
|
|
jmp __b1
|
|
}
|
|
// bitmap_init
|
|
// Initialize the bitmap plotter tables for a specific bitmap
|
|
bitmap_init: {
|
|
.label __10 = 6
|
|
.label yoffs = 7
|
|
// [14] phi from bitmap_init to bitmap_init::@1 [phi:bitmap_init->bitmap_init::@1]
|
|
__b1_from_bitmap_init:
|
|
// [14] phi (byte) bitmap_init::bits#3 = (byte) $80 [phi:bitmap_init->bitmap_init::@1#0] -- vbuyy=vbuc1
|
|
ldy #$80
|
|
// [14] phi (byte) bitmap_init::x#2 = (byte) 0 [phi:bitmap_init->bitmap_init::@1#1] -- vbuxx=vbuc1
|
|
ldx #0
|
|
jmp __b1
|
|
// [14] phi from bitmap_init::@2 to bitmap_init::@1 [phi:bitmap_init::@2->bitmap_init::@1]
|
|
__b1_from___b2:
|
|
// [14] phi (byte) bitmap_init::bits#3 = (byte) bitmap_init::bits#4 [phi:bitmap_init::@2->bitmap_init::@1#0] -- register_copy
|
|
// [14] phi (byte) bitmap_init::x#2 = (byte) bitmap_init::x#1 [phi:bitmap_init::@2->bitmap_init::@1#1] -- register_copy
|
|
jmp __b1
|
|
// bitmap_init::@1
|
|
__b1:
|
|
// [15] (byte~) bitmap_init::$0 ← (byte) bitmap_init::x#2 & (byte) $f8 -- vbuaa=vbuxx_band_vbuc1
|
|
txa
|
|
and #$f8
|
|
// [16] *((const to_nomodify byte*) bitmap_plot_xlo + (byte) bitmap_init::x#2) ← (byte~) bitmap_init::$0 -- pbuc1_derefidx_vbuxx=vbuaa
|
|
sta bitmap_plot_xlo,x
|
|
// [17] *((const to_nomodify byte*) bitmap_plot_xhi + (byte) bitmap_init::x#2) ← >(const nomodify byte*) BITMAP -- pbuc1_derefidx_vbuxx=vbuc2
|
|
lda #>BITMAP
|
|
sta bitmap_plot_xhi,x
|
|
// [18] *((const to_nomodify byte*) bitmap_plot_bit + (byte) bitmap_init::x#2) ← (byte) bitmap_init::bits#3 -- pbuc1_derefidx_vbuxx=vbuyy
|
|
tya
|
|
sta bitmap_plot_bit,x
|
|
// [19] (byte) bitmap_init::bits#1 ← (byte) bitmap_init::bits#3 >> (byte) 1 -- vbuyy=vbuyy_ror_1
|
|
tya
|
|
lsr
|
|
tay
|
|
// [20] if((byte) bitmap_init::bits#1!=(byte) 0) goto bitmap_init::@6 -- vbuyy_neq_0_then_la1
|
|
cpy #0
|
|
bne __b6_from___b1
|
|
// [22] phi from bitmap_init::@1 to bitmap_init::@2 [phi:bitmap_init::@1->bitmap_init::@2]
|
|
__b2_from___b1:
|
|
// [22] phi (byte) bitmap_init::bits#4 = (byte) $80 [phi:bitmap_init::@1->bitmap_init::@2#0] -- vbuyy=vbuc1
|
|
ldy #$80
|
|
jmp __b2
|
|
// [21] phi from bitmap_init::@1 to bitmap_init::@6 [phi:bitmap_init::@1->bitmap_init::@6]
|
|
__b6_from___b1:
|
|
jmp __b6
|
|
// bitmap_init::@6
|
|
__b6:
|
|
// [22] phi from bitmap_init::@6 to bitmap_init::@2 [phi:bitmap_init::@6->bitmap_init::@2]
|
|
__b2_from___b6:
|
|
// [22] phi (byte) bitmap_init::bits#4 = (byte) bitmap_init::bits#1 [phi:bitmap_init::@6->bitmap_init::@2#0] -- register_copy
|
|
jmp __b2
|
|
// bitmap_init::@2
|
|
__b2:
|
|
// [23] (byte) bitmap_init::x#1 ← ++ (byte) bitmap_init::x#2 -- vbuxx=_inc_vbuxx
|
|
inx
|
|
// [24] if((byte) bitmap_init::x#1!=(byte) 0) goto bitmap_init::@1 -- vbuxx_neq_0_then_la1
|
|
cpx #0
|
|
bne __b1_from___b2
|
|
// [25] phi from bitmap_init::@2 to bitmap_init::@3 [phi:bitmap_init::@2->bitmap_init::@3]
|
|
__b3_from___b2:
|
|
// [25] phi (byte*) bitmap_init::yoffs#2 = (byte*) 0 [phi:bitmap_init::@2->bitmap_init::@3#0] -- pbuz1=pbuc1
|
|
lda #<0
|
|
sta.z yoffs
|
|
lda #>0
|
|
sta.z yoffs+1
|
|
// [25] phi (byte) bitmap_init::y#2 = (byte) 0 [phi:bitmap_init::@2->bitmap_init::@3#1] -- vbuxx=vbuc1
|
|
ldx #0
|
|
jmp __b3
|
|
// [25] phi from bitmap_init::@4 to bitmap_init::@3 [phi:bitmap_init::@4->bitmap_init::@3]
|
|
__b3_from___b4:
|
|
// [25] phi (byte*) bitmap_init::yoffs#2 = (byte*) bitmap_init::yoffs#4 [phi:bitmap_init::@4->bitmap_init::@3#0] -- register_copy
|
|
// [25] phi (byte) bitmap_init::y#2 = (byte) bitmap_init::y#1 [phi:bitmap_init::@4->bitmap_init::@3#1] -- register_copy
|
|
jmp __b3
|
|
// bitmap_init::@3
|
|
__b3:
|
|
// [26] (byte~) bitmap_init::$10 ← (byte) bitmap_init::y#2 & (byte) 7 -- vbuz1=vbuxx_band_vbuc1
|
|
lda #7
|
|
sax.z __10
|
|
// [27] (byte~) bitmap_init::$7 ← < (byte*) bitmap_init::yoffs#2 -- vbuaa=_lo_pbuz1
|
|
lda.z yoffs
|
|
// [28] (byte~) bitmap_init::$8 ← (byte~) bitmap_init::$10 | (byte~) bitmap_init::$7 -- vbuaa=vbuz1_bor_vbuaa
|
|
ora.z __10
|
|
// [29] *((const to_nomodify byte*) bitmap_plot_ylo + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$8 -- pbuc1_derefidx_vbuxx=vbuaa
|
|
sta bitmap_plot_ylo,x
|
|
// [30] (byte~) bitmap_init::$9 ← > (byte*) bitmap_init::yoffs#2 -- vbuaa=_hi_pbuz1
|
|
lda.z yoffs+1
|
|
// [31] *((const to_nomodify byte*) bitmap_plot_yhi + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$9 -- pbuc1_derefidx_vbuxx=vbuaa
|
|
sta bitmap_plot_yhi,x
|
|
// [32] if((byte~) bitmap_init::$10!=(byte) 7) goto bitmap_init::@4 -- vbuz1_neq_vbuc1_then_la1
|
|
lda #7
|
|
cmp.z __10
|
|
bne __b4_from___b3
|
|
jmp __b5
|
|
// bitmap_init::@5
|
|
__b5:
|
|
// [33] (byte*) bitmap_init::yoffs#1 ← (byte*) bitmap_init::yoffs#2 + (word)(number) $28*(number) 8 -- pbuz1=pbuz1_plus_vwuc1
|
|
clc
|
|
lda.z yoffs
|
|
adc #<$28*8
|
|
sta.z yoffs
|
|
lda.z yoffs+1
|
|
adc #>$28*8
|
|
sta.z yoffs+1
|
|
// [34] phi from bitmap_init::@3 bitmap_init::@5 to bitmap_init::@4 [phi:bitmap_init::@3/bitmap_init::@5->bitmap_init::@4]
|
|
__b4_from___b3:
|
|
__b4_from___b5:
|
|
// [34] phi (byte*) bitmap_init::yoffs#4 = (byte*) bitmap_init::yoffs#2 [phi:bitmap_init::@3/bitmap_init::@5->bitmap_init::@4#0] -- register_copy
|
|
jmp __b4
|
|
// bitmap_init::@4
|
|
__b4:
|
|
// [35] (byte) bitmap_init::y#1 ← ++ (byte) bitmap_init::y#2 -- vbuxx=_inc_vbuxx
|
|
inx
|
|
// [36] if((byte) bitmap_init::y#1!=(byte) 0) goto bitmap_init::@3 -- vbuxx_neq_0_then_la1
|
|
cpx #0
|
|
bne __b3_from___b4
|
|
jmp __breturn
|
|
// bitmap_init::@return
|
|
__breturn:
|
|
// [37] return
|
|
rts
|
|
}
|
|
// bitmap_clear
|
|
// Clear all graphics on the bitmap
|
|
bitmap_clear: {
|
|
.label bitmap = 7
|
|
.label y = 5
|
|
// [38] (word) bitmap_clear::bitmap#0 ← *((const to_nomodify byte*) bitmap_plot_xhi) w= *((const to_nomodify byte*) bitmap_plot_xlo) -- vwuz1=_deref_pbuc1_word__deref_pbuc2
|
|
lda bitmap_plot_xlo
|
|
sta.z bitmap
|
|
lda bitmap_plot_xhi
|
|
sta.z bitmap+1
|
|
// [39] (byte*) bitmap_clear::bitmap#5 ← (byte*)(word) bitmap_clear::bitmap#0
|
|
// [40] phi from bitmap_clear to bitmap_clear::@1 [phi:bitmap_clear->bitmap_clear::@1]
|
|
__b1_from_bitmap_clear:
|
|
// [40] phi (byte) bitmap_clear::y#4 = (byte) 0 [phi:bitmap_clear->bitmap_clear::@1#0] -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z y
|
|
// [40] phi (byte*) bitmap_clear::bitmap#3 = (byte*) bitmap_clear::bitmap#5 [phi:bitmap_clear->bitmap_clear::@1#1] -- register_copy
|
|
jmp __b1
|
|
// [40] phi from bitmap_clear::@3 to bitmap_clear::@1 [phi:bitmap_clear::@3->bitmap_clear::@1]
|
|
__b1_from___b3:
|
|
// [40] phi (byte) bitmap_clear::y#4 = (byte) bitmap_clear::y#1 [phi:bitmap_clear::@3->bitmap_clear::@1#0] -- register_copy
|
|
// [40] phi (byte*) bitmap_clear::bitmap#3 = (byte*) bitmap_clear::bitmap#1 [phi:bitmap_clear::@3->bitmap_clear::@1#1] -- register_copy
|
|
jmp __b1
|
|
// bitmap_clear::@1
|
|
__b1:
|
|
// [41] phi from bitmap_clear::@1 to bitmap_clear::@2 [phi:bitmap_clear::@1->bitmap_clear::@2]
|
|
__b2_from___b1:
|
|
// [41] phi (byte) bitmap_clear::x#2 = (byte) 0 [phi:bitmap_clear::@1->bitmap_clear::@2#0] -- vbuxx=vbuc1
|
|
ldx #0
|
|
// [41] phi (byte*) bitmap_clear::bitmap#2 = (byte*) bitmap_clear::bitmap#3 [phi:bitmap_clear::@1->bitmap_clear::@2#1] -- register_copy
|
|
jmp __b2
|
|
// [41] phi from bitmap_clear::@2 to bitmap_clear::@2 [phi:bitmap_clear::@2->bitmap_clear::@2]
|
|
__b2_from___b2:
|
|
// [41] phi (byte) bitmap_clear::x#2 = (byte) bitmap_clear::x#1 [phi:bitmap_clear::@2->bitmap_clear::@2#0] -- register_copy
|
|
// [41] phi (byte*) bitmap_clear::bitmap#2 = (byte*) bitmap_clear::bitmap#1 [phi:bitmap_clear::@2->bitmap_clear::@2#1] -- register_copy
|
|
jmp __b2
|
|
// bitmap_clear::@2
|
|
__b2:
|
|
// [42] *((byte*) bitmap_clear::bitmap#2) ← (byte) 0 -- _deref_pbuz1=vbuc1
|
|
lda #0
|
|
ldy #0
|
|
sta (bitmap),y
|
|
// [43] (byte*) bitmap_clear::bitmap#1 ← ++ (byte*) bitmap_clear::bitmap#2 -- pbuz1=_inc_pbuz1
|
|
inc.z bitmap
|
|
bne !+
|
|
inc.z bitmap+1
|
|
!:
|
|
// [44] (byte) bitmap_clear::x#1 ← ++ (byte) bitmap_clear::x#2 -- vbuxx=_inc_vbuxx
|
|
inx
|
|
// [45] if((byte) bitmap_clear::x#1!=(byte) $c8) goto bitmap_clear::@2 -- vbuxx_neq_vbuc1_then_la1
|
|
cpx #$c8
|
|
bne __b2_from___b2
|
|
jmp __b3
|
|
// bitmap_clear::@3
|
|
__b3:
|
|
// [46] (byte) bitmap_clear::y#1 ← ++ (byte) bitmap_clear::y#4 -- vbuz1=_inc_vbuz1
|
|
inc.z y
|
|
// [47] if((byte) bitmap_clear::y#1!=(byte) $28) goto bitmap_clear::@1 -- vbuz1_neq_vbuc1_then_la1
|
|
lda #$28
|
|
cmp.z y
|
|
bne __b1_from___b3
|
|
jmp __breturn
|
|
// bitmap_clear::@return
|
|
__breturn:
|
|
// [48] return
|
|
rts
|
|
}
|
|
// init_screen
|
|
init_screen: {
|
|
.label c = 7
|
|
// [50] phi from init_screen to init_screen::@1 [phi:init_screen->init_screen::@1]
|
|
__b1_from_init_screen:
|
|
// [50] phi (byte*) init_screen::c#2 = (const nomodify byte*) SCREEN [phi:init_screen->init_screen::@1#0] -- pbuz1=pbuc1
|
|
lda #<SCREEN
|
|
sta.z c
|
|
lda #>SCREEN
|
|
sta.z c+1
|
|
jmp __b1
|
|
// init_screen::@1
|
|
__b1:
|
|
// [51] if((byte*) init_screen::c#2!=(const nomodify byte*) SCREEN+(word) $400) goto init_screen::@2 -- pbuz1_neq_pbuc1_then_la1
|
|
lda.z c+1
|
|
cmp #>SCREEN+$400
|
|
bne __b2
|
|
lda.z c
|
|
cmp #<SCREEN+$400
|
|
bne __b2
|
|
jmp __breturn
|
|
// init_screen::@return
|
|
__breturn:
|
|
// [52] return
|
|
rts
|
|
// init_screen::@2
|
|
__b2:
|
|
// [53] *((byte*) init_screen::c#2) ← (byte) $14 -- _deref_pbuz1=vbuc1
|
|
lda #$14
|
|
ldy #0
|
|
sta (c),y
|
|
// [54] (byte*) init_screen::c#1 ← ++ (byte*) init_screen::c#2 -- pbuz1=_inc_pbuz1
|
|
inc.z c
|
|
bne !+
|
|
inc.z c+1
|
|
!:
|
|
// [50] phi from init_screen::@2 to init_screen::@1 [phi:init_screen::@2->init_screen::@1]
|
|
__b1_from___b2:
|
|
// [50] phi (byte*) init_screen::c#2 = (byte*) init_screen::c#1 [phi:init_screen::@2->init_screen::@1#0] -- register_copy
|
|
jmp __b1
|
|
}
|
|
// bitmap_line
|
|
// Draw a line on the bitmap
|
|
// bitmap_line(byte register(A) x1)
|
|
bitmap_line: {
|
|
.label x0 = 0
|
|
.label y0 = 0
|
|
.label y1 = $64
|
|
// [55] if((const byte) bitmap_line::x0#0<(byte) bitmap_line::x1#0) goto bitmap_line::@1 -- vbuc1_lt_vbuaa_then_la1
|
|
cmp #x0
|
|
beq !+
|
|
bcs __b1
|
|
!:
|
|
jmp __b2
|
|
// bitmap_line::@2
|
|
__b2:
|
|
// [56] (byte) bitmap_line::xd#2 ← (byte) bitmap_line::x1#0 -- vbuxx=vbuaa
|
|
tax
|
|
jmp __b3
|
|
// bitmap_line::@3
|
|
__b3:
|
|
// [57] if((const byte) bitmap_line::y1#0<(byte) bitmap_line::xd#2) goto bitmap_line::@4 -- vbuc1_lt_vbuxx_then_la1
|
|
cpx #y1
|
|
beq !+
|
|
bcs __b4
|
|
!:
|
|
jmp __b5
|
|
// bitmap_line::@5
|
|
__b5:
|
|
// [58] (byte) bitmap_line_ydxd::xd#0 ← (byte) bitmap_line::xd#2 -- vbuz1=vbuxx
|
|
stx.z bitmap_line_ydxd.xd
|
|
// [59] call bitmap_line_ydxd
|
|
jsr bitmap_line_ydxd
|
|
jmp __breturn
|
|
// bitmap_line::@return
|
|
__breturn:
|
|
// [60] return
|
|
rts
|
|
// bitmap_line::@4
|
|
__b4:
|
|
// [61] (byte) bitmap_line_xdyd::x#0 ← (byte) bitmap_line::x1#0 -- vbuz1=vbuaa
|
|
sta.z bitmap_line_xdyd.x
|
|
// [62] (byte) bitmap_line_xdyd::xd#0 ← (byte) bitmap_line::xd#2 -- vbuz1=vbuxx
|
|
stx.z bitmap_line_xdyd.xd
|
|
// [63] call bitmap_line_xdyd
|
|
// [84] phi from bitmap_line::@4 to bitmap_line_xdyd [phi:bitmap_line::@4->bitmap_line_xdyd]
|
|
bitmap_line_xdyd_from___b4:
|
|
jsr bitmap_line_xdyd
|
|
jmp __breturn
|
|
// bitmap_line::@1
|
|
__b1:
|
|
// [64] (byte) bitmap_line::xd#1 ← (byte) bitmap_line::x1#0 -- vbuxx=vbuaa
|
|
tax
|
|
jmp __b6
|
|
// bitmap_line::@6
|
|
__b6:
|
|
// [65] if((const byte) bitmap_line::y1#0<(byte) bitmap_line::xd#1) goto bitmap_line::@7 -- vbuc1_lt_vbuxx_then_la1
|
|
cpx #y1
|
|
beq !+
|
|
bcs __b7
|
|
!:
|
|
jmp __b8
|
|
// bitmap_line::@8
|
|
__b8:
|
|
// [66] (byte) bitmap_line_ydxi::xd#1 ← (byte) bitmap_line::xd#1 -- vbuz1=vbuxx
|
|
stx.z bitmap_line_ydxi.xd
|
|
// [67] call bitmap_line_ydxi
|
|
jsr bitmap_line_ydxi
|
|
jmp __breturn
|
|
// bitmap_line::@7
|
|
__b7:
|
|
// [68] (byte) bitmap_line_xdyi::x1#1 ← (byte) bitmap_line::x1#0 -- vbuz1=vbuaa
|
|
sta.z bitmap_line_xdyi.x1
|
|
// [69] (byte) bitmap_line_xdyi::xd#1 ← (byte) bitmap_line::xd#1 -- vbuz1=vbuxx
|
|
stx.z bitmap_line_xdyi.xd
|
|
// [70] call bitmap_line_xdyi
|
|
// [110] phi from bitmap_line::@7 to bitmap_line_xdyi [phi:bitmap_line::@7->bitmap_line_xdyi]
|
|
bitmap_line_xdyi_from___b7:
|
|
jsr bitmap_line_xdyi
|
|
jmp __breturn
|
|
}
|
|
// bitmap_line_ydxd
|
|
// bitmap_line_ydxd(byte zp(3) y, byte zp(2) x, byte zp(6) xd)
|
|
bitmap_line_ydxd: {
|
|
.label xd = 6
|
|
.label e = 4
|
|
.label y = 3
|
|
.label x = 2
|
|
// [71] (byte) bitmap_line_ydxd::e#0 ← (byte) bitmap_line_ydxd::xd#0 >> (byte) 1 -- vbuz1=vbuz2_ror_1
|
|
lda.z xd
|
|
lsr
|
|
sta.z e
|
|
// [72] phi from bitmap_line_ydxd to bitmap_line_ydxd::@1 [phi:bitmap_line_ydxd->bitmap_line_ydxd::@1]
|
|
__b1_from_bitmap_line_ydxd:
|
|
// [72] phi (byte) bitmap_line_ydxd::e#3 = (byte) bitmap_line_ydxd::e#0 [phi:bitmap_line_ydxd->bitmap_line_ydxd::@1#0] -- register_copy
|
|
// [72] phi (byte) bitmap_line_ydxd::y#2 = (const byte) bitmap_line::y0#0 [phi:bitmap_line_ydxd->bitmap_line_ydxd::@1#1] -- vbuz1=vbuc1
|
|
lda #bitmap_line.y0
|
|
sta.z y
|
|
// [72] phi (byte) bitmap_line_ydxd::x#3 = (const byte) bitmap_line::x0#0 [phi:bitmap_line_ydxd->bitmap_line_ydxd::@1#2] -- vbuz1=vbuc1
|
|
lda #bitmap_line.x0
|
|
sta.z x
|
|
jmp __b1
|
|
// [72] phi from bitmap_line_ydxd::@2 to bitmap_line_ydxd::@1 [phi:bitmap_line_ydxd::@2->bitmap_line_ydxd::@1]
|
|
__b1_from___b2:
|
|
// [72] phi (byte) bitmap_line_ydxd::e#3 = (byte) bitmap_line_ydxd::e#6 [phi:bitmap_line_ydxd::@2->bitmap_line_ydxd::@1#0] -- register_copy
|
|
// [72] phi (byte) bitmap_line_ydxd::y#2 = (byte) bitmap_line_ydxd::y#3 [phi:bitmap_line_ydxd::@2->bitmap_line_ydxd::@1#1] -- register_copy
|
|
// [72] phi (byte) bitmap_line_ydxd::x#3 = (byte) bitmap_line_ydxd::x#6 [phi:bitmap_line_ydxd::@2->bitmap_line_ydxd::@1#2] -- register_copy
|
|
jmp __b1
|
|
// bitmap_line_ydxd::@1
|
|
__b1:
|
|
// [73] (byte) bitmap_plot::x#3 ← (byte) bitmap_line_ydxd::x#3 -- vbuxx=vbuz1
|
|
ldx.z x
|
|
// [74] (byte) bitmap_plot::y#3 ← (byte) bitmap_line_ydxd::y#2 -- vbuyy=vbuz1
|
|
ldy.z y
|
|
// [75] call bitmap_plot
|
|
// [124] phi from bitmap_line_ydxd::@1 to bitmap_plot [phi:bitmap_line_ydxd::@1->bitmap_plot]
|
|
bitmap_plot_from___b1:
|
|
// [124] phi (byte) bitmap_plot::y#4 = (byte) bitmap_plot::y#3 [phi:bitmap_line_ydxd::@1->bitmap_plot#0] -- register_copy
|
|
// [124] phi (byte) bitmap_plot::x#4 = (byte) bitmap_plot::x#3 [phi:bitmap_line_ydxd::@1->bitmap_plot#1] -- register_copy
|
|
jsr bitmap_plot
|
|
jmp __b4
|
|
// bitmap_line_ydxd::@4
|
|
__b4:
|
|
// [76] (byte) bitmap_line_ydxd::y#3 ← ++ (byte) bitmap_line_ydxd::y#2 -- vbuz1=_inc_vbuz1
|
|
inc.z y
|
|
// [77] (byte) bitmap_line_ydxd::e#1 ← (byte) bitmap_line_ydxd::e#3 + (byte) bitmap_line_ydxd::xd#0 -- vbuz1=vbuz1_plus_vbuz2
|
|
lda.z e
|
|
clc
|
|
adc.z xd
|
|
sta.z e
|
|
// [78] if((const byte) bitmap_line::y1#0>=(byte) bitmap_line_ydxd::e#1) goto bitmap_line_ydxd::@2 -- vbuc1_ge_vbuz1_then_la1
|
|
lda #bitmap_line.y1
|
|
cmp.z e
|
|
bcs __b2_from___b4
|
|
jmp __b3
|
|
// bitmap_line_ydxd::@3
|
|
__b3:
|
|
// [79] (byte) bitmap_line_ydxd::x#2 ← -- (byte) bitmap_line_ydxd::x#3 -- vbuz1=_dec_vbuz1
|
|
dec.z x
|
|
// [80] (byte) bitmap_line_ydxd::e#2 ← (byte) bitmap_line_ydxd::e#1 - (const byte) bitmap_line::y1#0 -- vbuz1=vbuz1_minus_vbuc1
|
|
lax.z e
|
|
axs #bitmap_line.y1
|
|
stx.z e
|
|
// [81] phi from bitmap_line_ydxd::@3 bitmap_line_ydxd::@4 to bitmap_line_ydxd::@2 [phi:bitmap_line_ydxd::@3/bitmap_line_ydxd::@4->bitmap_line_ydxd::@2]
|
|
__b2_from___b3:
|
|
__b2_from___b4:
|
|
// [81] phi (byte) bitmap_line_ydxd::e#6 = (byte) bitmap_line_ydxd::e#2 [phi:bitmap_line_ydxd::@3/bitmap_line_ydxd::@4->bitmap_line_ydxd::@2#0] -- register_copy
|
|
// [81] phi (byte) bitmap_line_ydxd::x#6 = (byte) bitmap_line_ydxd::x#2 [phi:bitmap_line_ydxd::@3/bitmap_line_ydxd::@4->bitmap_line_ydxd::@2#1] -- register_copy
|
|
jmp __b2
|
|
// bitmap_line_ydxd::@2
|
|
__b2:
|
|
// [82] if((byte) bitmap_line_ydxd::y#3!=(const byte) bitmap_line::y1#0+(byte) 1) goto bitmap_line_ydxd::@1 -- vbuz1_neq_vbuc1_then_la1
|
|
lda #bitmap_line.y1+1
|
|
cmp.z y
|
|
bne __b1_from___b2
|
|
jmp __breturn
|
|
// bitmap_line_ydxd::@return
|
|
__breturn:
|
|
// [83] return
|
|
rts
|
|
}
|
|
// bitmap_line_xdyd
|
|
// bitmap_line_xdyd(byte zp(2) x, byte zp(3) y, byte zp(6) xd)
|
|
bitmap_line_xdyd: {
|
|
.label x = 2
|
|
.label xd = 6
|
|
.label e = 4
|
|
.label y = 3
|
|
// [85] phi from bitmap_line_xdyd to bitmap_line_xdyd::@1 [phi:bitmap_line_xdyd->bitmap_line_xdyd::@1]
|
|
__b1_from_bitmap_line_xdyd:
|
|
// [85] phi (byte) bitmap_line_xdyd::e#3 = (const byte) bitmap_line::y1#0>>(byte) 1 [phi:bitmap_line_xdyd->bitmap_line_xdyd::@1#0] -- vbuz1=vbuc1
|
|
lda #bitmap_line.y1>>1
|
|
sta.z e
|
|
// [85] phi (byte) bitmap_line_xdyd::y#3 = (const byte) bitmap_line::y1#0 [phi:bitmap_line_xdyd->bitmap_line_xdyd::@1#1] -- vbuz1=vbuc1
|
|
lda #bitmap_line.y1
|
|
sta.z y
|
|
// [85] phi (byte) bitmap_line_xdyd::x#3 = (byte) bitmap_line_xdyd::x#0 [phi:bitmap_line_xdyd->bitmap_line_xdyd::@1#2] -- register_copy
|
|
jmp __b1
|
|
// [85] phi from bitmap_line_xdyd::@2 to bitmap_line_xdyd::@1 [phi:bitmap_line_xdyd::@2->bitmap_line_xdyd::@1]
|
|
__b1_from___b2:
|
|
// [85] phi (byte) bitmap_line_xdyd::e#3 = (byte) bitmap_line_xdyd::e#6 [phi:bitmap_line_xdyd::@2->bitmap_line_xdyd::@1#0] -- register_copy
|
|
// [85] phi (byte) bitmap_line_xdyd::y#3 = (byte) bitmap_line_xdyd::y#6 [phi:bitmap_line_xdyd::@2->bitmap_line_xdyd::@1#1] -- register_copy
|
|
// [85] phi (byte) bitmap_line_xdyd::x#3 = (byte) bitmap_line_xdyd::x#2 [phi:bitmap_line_xdyd::@2->bitmap_line_xdyd::@1#2] -- register_copy
|
|
jmp __b1
|
|
// bitmap_line_xdyd::@1
|
|
__b1:
|
|
// [86] (byte) bitmap_plot::x#1 ← (byte) bitmap_line_xdyd::x#3 -- vbuxx=vbuz1
|
|
ldx.z x
|
|
// [87] (byte) bitmap_plot::y#1 ← (byte) bitmap_line_xdyd::y#3 -- vbuyy=vbuz1
|
|
ldy.z y
|
|
// [88] call bitmap_plot
|
|
// [124] phi from bitmap_line_xdyd::@1 to bitmap_plot [phi:bitmap_line_xdyd::@1->bitmap_plot]
|
|
bitmap_plot_from___b1:
|
|
// [124] phi (byte) bitmap_plot::y#4 = (byte) bitmap_plot::y#1 [phi:bitmap_line_xdyd::@1->bitmap_plot#0] -- register_copy
|
|
// [124] phi (byte) bitmap_plot::x#4 = (byte) bitmap_plot::x#1 [phi:bitmap_line_xdyd::@1->bitmap_plot#1] -- register_copy
|
|
jsr bitmap_plot
|
|
jmp __b4
|
|
// bitmap_line_xdyd::@4
|
|
__b4:
|
|
// [89] (byte) bitmap_line_xdyd::x#2 ← ++ (byte) bitmap_line_xdyd::x#3 -- vbuz1=_inc_vbuz1
|
|
inc.z x
|
|
// [90] (byte) bitmap_line_xdyd::e#1 ← (byte) bitmap_line_xdyd::e#3 + (const byte) bitmap_line::y1#0 -- vbuz1=vbuz1_plus_vbuc1
|
|
lax.z e
|
|
axs #-[bitmap_line.y1]
|
|
stx.z e
|
|
// [91] if((byte) bitmap_line_xdyd::xd#0>=(byte) bitmap_line_xdyd::e#1) goto bitmap_line_xdyd::@2 -- vbuz1_ge_vbuz2_then_la1
|
|
lda.z xd
|
|
cmp.z e
|
|
bcs __b2_from___b4
|
|
jmp __b3
|
|
// bitmap_line_xdyd::@3
|
|
__b3:
|
|
// [92] (byte) bitmap_line_xdyd::y#2 ← -- (byte) bitmap_line_xdyd::y#3 -- vbuz1=_dec_vbuz1
|
|
dec.z y
|
|
// [93] (byte) bitmap_line_xdyd::e#2 ← (byte) bitmap_line_xdyd::e#1 - (byte) bitmap_line_xdyd::xd#0 -- vbuz1=vbuz1_minus_vbuz2
|
|
lda.z e
|
|
sec
|
|
sbc.z xd
|
|
sta.z e
|
|
// [94] phi from bitmap_line_xdyd::@3 bitmap_line_xdyd::@4 to bitmap_line_xdyd::@2 [phi:bitmap_line_xdyd::@3/bitmap_line_xdyd::@4->bitmap_line_xdyd::@2]
|
|
__b2_from___b3:
|
|
__b2_from___b4:
|
|
// [94] phi (byte) bitmap_line_xdyd::e#6 = (byte) bitmap_line_xdyd::e#2 [phi:bitmap_line_xdyd::@3/bitmap_line_xdyd::@4->bitmap_line_xdyd::@2#0] -- register_copy
|
|
// [94] phi (byte) bitmap_line_xdyd::y#6 = (byte) bitmap_line_xdyd::y#2 [phi:bitmap_line_xdyd::@3/bitmap_line_xdyd::@4->bitmap_line_xdyd::@2#1] -- register_copy
|
|
jmp __b2
|
|
// bitmap_line_xdyd::@2
|
|
__b2:
|
|
// [95] if((byte) bitmap_line_xdyd::x#2!=(byte) 1) goto bitmap_line_xdyd::@1 -- vbuz1_neq_vbuc1_then_la1
|
|
lda #1
|
|
cmp.z x
|
|
bne __b1_from___b2
|
|
jmp __breturn
|
|
// bitmap_line_xdyd::@return
|
|
__breturn:
|
|
// [96] return
|
|
rts
|
|
}
|
|
// bitmap_line_ydxi
|
|
// bitmap_line_ydxi(byte zp(3) y, byte zp(2) x, byte zp(6) xd)
|
|
bitmap_line_ydxi: {
|
|
.label xd = 6
|
|
.label e = 4
|
|
.label y = 3
|
|
.label x = 2
|
|
// [97] (byte) bitmap_line_ydxi::e#0 ← (byte) bitmap_line_ydxi::xd#1 >> (byte) 1 -- vbuz1=vbuz2_ror_1
|
|
lda.z xd
|
|
lsr
|
|
sta.z e
|
|
// [98] phi from bitmap_line_ydxi to bitmap_line_ydxi::@1 [phi:bitmap_line_ydxi->bitmap_line_ydxi::@1]
|
|
__b1_from_bitmap_line_ydxi:
|
|
// [98] phi (byte) bitmap_line_ydxi::e#3 = (byte) bitmap_line_ydxi::e#0 [phi:bitmap_line_ydxi->bitmap_line_ydxi::@1#0] -- register_copy
|
|
// [98] phi (byte) bitmap_line_ydxi::y#3 = (const byte) bitmap_line::y0#0 [phi:bitmap_line_ydxi->bitmap_line_ydxi::@1#1] -- vbuz1=vbuc1
|
|
lda #bitmap_line.y0
|
|
sta.z y
|
|
// [98] phi (byte) bitmap_line_ydxi::x#3 = (const byte) bitmap_line::x0#0 [phi:bitmap_line_ydxi->bitmap_line_ydxi::@1#2] -- vbuz1=vbuc1
|
|
lda #bitmap_line.x0
|
|
sta.z x
|
|
jmp __b1
|
|
// [98] phi from bitmap_line_ydxi::@2 to bitmap_line_ydxi::@1 [phi:bitmap_line_ydxi::@2->bitmap_line_ydxi::@1]
|
|
__b1_from___b2:
|
|
// [98] phi (byte) bitmap_line_ydxi::e#3 = (byte) bitmap_line_ydxi::e#6 [phi:bitmap_line_ydxi::@2->bitmap_line_ydxi::@1#0] -- register_copy
|
|
// [98] phi (byte) bitmap_line_ydxi::y#3 = (byte) bitmap_line_ydxi::y#2 [phi:bitmap_line_ydxi::@2->bitmap_line_ydxi::@1#1] -- register_copy
|
|
// [98] phi (byte) bitmap_line_ydxi::x#3 = (byte) bitmap_line_ydxi::x#6 [phi:bitmap_line_ydxi::@2->bitmap_line_ydxi::@1#2] -- register_copy
|
|
jmp __b1
|
|
// bitmap_line_ydxi::@1
|
|
__b1:
|
|
// [99] (byte) bitmap_plot::x#2 ← (byte) bitmap_line_ydxi::x#3 -- vbuxx=vbuz1
|
|
ldx.z x
|
|
// [100] (byte) bitmap_plot::y#2 ← (byte) bitmap_line_ydxi::y#3 -- vbuyy=vbuz1
|
|
ldy.z y
|
|
// [101] call bitmap_plot
|
|
// [124] phi from bitmap_line_ydxi::@1 to bitmap_plot [phi:bitmap_line_ydxi::@1->bitmap_plot]
|
|
bitmap_plot_from___b1:
|
|
// [124] phi (byte) bitmap_plot::y#4 = (byte) bitmap_plot::y#2 [phi:bitmap_line_ydxi::@1->bitmap_plot#0] -- register_copy
|
|
// [124] phi (byte) bitmap_plot::x#4 = (byte) bitmap_plot::x#2 [phi:bitmap_line_ydxi::@1->bitmap_plot#1] -- register_copy
|
|
jsr bitmap_plot
|
|
jmp __b4
|
|
// bitmap_line_ydxi::@4
|
|
__b4:
|
|
// [102] (byte) bitmap_line_ydxi::y#2 ← ++ (byte) bitmap_line_ydxi::y#3 -- vbuz1=_inc_vbuz1
|
|
inc.z y
|
|
// [103] (byte) bitmap_line_ydxi::e#1 ← (byte) bitmap_line_ydxi::e#3 + (byte) bitmap_line_ydxi::xd#1 -- vbuz1=vbuz1_plus_vbuz2
|
|
lda.z e
|
|
clc
|
|
adc.z xd
|
|
sta.z e
|
|
// [104] if((const byte) bitmap_line::y1#0>=(byte) bitmap_line_ydxi::e#1) goto bitmap_line_ydxi::@2 -- vbuc1_ge_vbuz1_then_la1
|
|
lda #bitmap_line.y1
|
|
cmp.z e
|
|
bcs __b2_from___b4
|
|
jmp __b3
|
|
// bitmap_line_ydxi::@3
|
|
__b3:
|
|
// [105] (byte) bitmap_line_ydxi::x#2 ← ++ (byte) bitmap_line_ydxi::x#3 -- vbuz1=_inc_vbuz1
|
|
inc.z x
|
|
// [106] (byte) bitmap_line_ydxi::e#2 ← (byte) bitmap_line_ydxi::e#1 - (const byte) bitmap_line::y1#0 -- vbuz1=vbuz1_minus_vbuc1
|
|
lax.z e
|
|
axs #bitmap_line.y1
|
|
stx.z e
|
|
// [107] phi from bitmap_line_ydxi::@3 bitmap_line_ydxi::@4 to bitmap_line_ydxi::@2 [phi:bitmap_line_ydxi::@3/bitmap_line_ydxi::@4->bitmap_line_ydxi::@2]
|
|
__b2_from___b3:
|
|
__b2_from___b4:
|
|
// [107] phi (byte) bitmap_line_ydxi::e#6 = (byte) bitmap_line_ydxi::e#2 [phi:bitmap_line_ydxi::@3/bitmap_line_ydxi::@4->bitmap_line_ydxi::@2#0] -- register_copy
|
|
// [107] phi (byte) bitmap_line_ydxi::x#6 = (byte) bitmap_line_ydxi::x#2 [phi:bitmap_line_ydxi::@3/bitmap_line_ydxi::@4->bitmap_line_ydxi::@2#1] -- register_copy
|
|
jmp __b2
|
|
// bitmap_line_ydxi::@2
|
|
__b2:
|
|
// [108] if((byte) bitmap_line_ydxi::y#2!=(const byte) bitmap_line::y1#0+(byte) 1) goto bitmap_line_ydxi::@1 -- vbuz1_neq_vbuc1_then_la1
|
|
lda #bitmap_line.y1+1
|
|
cmp.z y
|
|
bne __b1_from___b2
|
|
jmp __breturn
|
|
// bitmap_line_ydxi::@return
|
|
__breturn:
|
|
// [109] return
|
|
rts
|
|
}
|
|
// bitmap_line_xdyi
|
|
// bitmap_line_xdyi(byte zp(2) x, byte zp(3) y, byte zp(5) x1, byte zp(6) xd)
|
|
bitmap_line_xdyi: {
|
|
.label x1 = 5
|
|
.label xd = 6
|
|
.label x = 2
|
|
.label e = 4
|
|
.label y = 3
|
|
// [111] phi from bitmap_line_xdyi to bitmap_line_xdyi::@1 [phi:bitmap_line_xdyi->bitmap_line_xdyi::@1]
|
|
__b1_from_bitmap_line_xdyi:
|
|
// [111] phi (byte) bitmap_line_xdyi::e#3 = (const byte) bitmap_line::y1#0>>(byte) 1 [phi:bitmap_line_xdyi->bitmap_line_xdyi::@1#0] -- vbuz1=vbuc1
|
|
lda #bitmap_line.y1>>1
|
|
sta.z e
|
|
// [111] phi (byte) bitmap_line_xdyi::y#3 = (const byte) bitmap_line::y0#0 [phi:bitmap_line_xdyi->bitmap_line_xdyi::@1#1] -- vbuz1=vbuc1
|
|
lda #bitmap_line.y0
|
|
sta.z y
|
|
// [111] phi (byte) bitmap_line_xdyi::x#3 = (const byte) bitmap_line::x0#0 [phi:bitmap_line_xdyi->bitmap_line_xdyi::@1#2] -- vbuz1=vbuc1
|
|
lda #bitmap_line.x0
|
|
sta.z x
|
|
jmp __b1
|
|
// [111] phi from bitmap_line_xdyi::@2 to bitmap_line_xdyi::@1 [phi:bitmap_line_xdyi::@2->bitmap_line_xdyi::@1]
|
|
__b1_from___b2:
|
|
// [111] phi (byte) bitmap_line_xdyi::e#3 = (byte) bitmap_line_xdyi::e#6 [phi:bitmap_line_xdyi::@2->bitmap_line_xdyi::@1#0] -- register_copy
|
|
// [111] phi (byte) bitmap_line_xdyi::y#3 = (byte) bitmap_line_xdyi::y#6 [phi:bitmap_line_xdyi::@2->bitmap_line_xdyi::@1#1] -- register_copy
|
|
// [111] phi (byte) bitmap_line_xdyi::x#3 = (byte) bitmap_line_xdyi::x#2 [phi:bitmap_line_xdyi::@2->bitmap_line_xdyi::@1#2] -- register_copy
|
|
jmp __b1
|
|
// bitmap_line_xdyi::@1
|
|
__b1:
|
|
// [112] (byte) bitmap_plot::x#0 ← (byte) bitmap_line_xdyi::x#3 -- vbuxx=vbuz1
|
|
ldx.z x
|
|
// [113] (byte) bitmap_plot::y#0 ← (byte) bitmap_line_xdyi::y#3 -- vbuyy=vbuz1
|
|
ldy.z y
|
|
// [114] call bitmap_plot
|
|
// [124] phi from bitmap_line_xdyi::@1 to bitmap_plot [phi:bitmap_line_xdyi::@1->bitmap_plot]
|
|
bitmap_plot_from___b1:
|
|
// [124] phi (byte) bitmap_plot::y#4 = (byte) bitmap_plot::y#0 [phi:bitmap_line_xdyi::@1->bitmap_plot#0] -- register_copy
|
|
// [124] phi (byte) bitmap_plot::x#4 = (byte) bitmap_plot::x#0 [phi:bitmap_line_xdyi::@1->bitmap_plot#1] -- register_copy
|
|
jsr bitmap_plot
|
|
jmp __b4
|
|
// bitmap_line_xdyi::@4
|
|
__b4:
|
|
// [115] (byte) bitmap_line_xdyi::x#2 ← ++ (byte) bitmap_line_xdyi::x#3 -- vbuz1=_inc_vbuz1
|
|
inc.z x
|
|
// [116] (byte) bitmap_line_xdyi::e#1 ← (byte) bitmap_line_xdyi::e#3 + (const byte) bitmap_line::y1#0 -- vbuz1=vbuz1_plus_vbuc1
|
|
lax.z e
|
|
axs #-[bitmap_line.y1]
|
|
stx.z e
|
|
// [117] if((byte) bitmap_line_xdyi::xd#1>=(byte) bitmap_line_xdyi::e#1) goto bitmap_line_xdyi::@2 -- vbuz1_ge_vbuz2_then_la1
|
|
lda.z xd
|
|
cmp.z e
|
|
bcs __b2_from___b4
|
|
jmp __b3
|
|
// bitmap_line_xdyi::@3
|
|
__b3:
|
|
// [118] (byte) bitmap_line_xdyi::y#2 ← ++ (byte) bitmap_line_xdyi::y#3 -- vbuz1=_inc_vbuz1
|
|
inc.z y
|
|
// [119] (byte) bitmap_line_xdyi::e#2 ← (byte) bitmap_line_xdyi::e#1 - (byte) bitmap_line_xdyi::xd#1 -- vbuz1=vbuz1_minus_vbuz2
|
|
lda.z e
|
|
sec
|
|
sbc.z xd
|
|
sta.z e
|
|
// [120] phi from bitmap_line_xdyi::@3 bitmap_line_xdyi::@4 to bitmap_line_xdyi::@2 [phi:bitmap_line_xdyi::@3/bitmap_line_xdyi::@4->bitmap_line_xdyi::@2]
|
|
__b2_from___b3:
|
|
__b2_from___b4:
|
|
// [120] phi (byte) bitmap_line_xdyi::e#6 = (byte) bitmap_line_xdyi::e#2 [phi:bitmap_line_xdyi::@3/bitmap_line_xdyi::@4->bitmap_line_xdyi::@2#0] -- register_copy
|
|
// [120] phi (byte) bitmap_line_xdyi::y#6 = (byte) bitmap_line_xdyi::y#2 [phi:bitmap_line_xdyi::@3/bitmap_line_xdyi::@4->bitmap_line_xdyi::@2#1] -- register_copy
|
|
jmp __b2
|
|
// bitmap_line_xdyi::@2
|
|
__b2:
|
|
// [121] (byte~) bitmap_line_xdyi::$6 ← (byte) bitmap_line_xdyi::x1#1 + (byte) 1 -- vbuxx=vbuz1_plus_1
|
|
ldx.z x1
|
|
inx
|
|
// [122] if((byte) bitmap_line_xdyi::x#2!=(byte~) bitmap_line_xdyi::$6) goto bitmap_line_xdyi::@1 -- vbuz1_neq_vbuxx_then_la1
|
|
cpx.z x
|
|
bne __b1_from___b2
|
|
jmp __breturn
|
|
// bitmap_line_xdyi::@return
|
|
__breturn:
|
|
// [123] return
|
|
rts
|
|
}
|
|
// bitmap_plot
|
|
// bitmap_plot(byte register(X) x, byte register(Y) y)
|
|
bitmap_plot: {
|
|
.label plotter_x = 7
|
|
.label plotter_y = 9
|
|
.label plotter = 7
|
|
// [125] (word) bitmap_plot::plotter_x#0 ← *((const to_nomodify byte*) bitmap_plot_xhi + (byte) bitmap_plot::x#4) w= *((const to_nomodify byte*) bitmap_plot_xlo + (byte) bitmap_plot::x#4) -- vwuz1=pbuc1_derefidx_vbuxx_word_pbuc2_derefidx_vbuxx
|
|
lda bitmap_plot_xhi,x
|
|
sta.z plotter_x+1
|
|
lda bitmap_plot_xlo,x
|
|
sta.z plotter_x
|
|
// [126] (word) bitmap_plot::plotter_y#0 ← *((const to_nomodify byte*) bitmap_plot_yhi + (byte) bitmap_plot::y#4) w= *((const to_nomodify byte*) bitmap_plot_ylo + (byte) bitmap_plot::y#4) -- vwuz1=pbuc1_derefidx_vbuyy_word_pbuc2_derefidx_vbuyy
|
|
lda bitmap_plot_yhi,y
|
|
sta.z plotter_y+1
|
|
lda bitmap_plot_ylo,y
|
|
sta.z plotter_y
|
|
// [127] (word) bitmap_plot::plotter#0 ← (word) bitmap_plot::plotter_x#0 + (word) bitmap_plot::plotter_y#0 -- vwuz1=vwuz1_plus_vwuz2
|
|
lda.z plotter
|
|
clc
|
|
adc.z plotter_y
|
|
sta.z plotter
|
|
lda.z plotter+1
|
|
adc.z plotter_y+1
|
|
sta.z plotter+1
|
|
// [128] (byte~) bitmap_plot::$1 ← *((byte*)(word) bitmap_plot::plotter#0) | *((const to_nomodify byte*) bitmap_plot_bit + (byte) bitmap_plot::x#4) -- vbuaa=_deref_pbuz1_bor_pbuc1_derefidx_vbuxx
|
|
lda bitmap_plot_bit,x
|
|
ldy #0
|
|
ora (plotter),y
|
|
// [129] *((byte*)(word) bitmap_plot::plotter#0) ← (byte~) bitmap_plot::$1 -- _deref_pbuz1=vbuaa
|
|
ldy #0
|
|
sta (plotter),y
|
|
jmp __breturn
|
|
// bitmap_plot::@return
|
|
__breturn:
|
|
// [130] return
|
|
rts
|
|
}
|
|
// File Data
|
|
// Tables for the plotter - initialized by calling bitmap_draw_init();
|
|
bitmap_plot_xlo: .fill $100, 0
|
|
bitmap_plot_xhi: .fill $100, 0
|
|
bitmap_plot_ylo: .fill $100, 0
|
|
bitmap_plot_yhi: .fill $100, 0
|
|
bitmap_plot_bit: .fill $100, 0
|
|
|
|
ASSEMBLER OPTIMIZATIONS
|
|
Removing instruction jmp __b2
|
|
Removing instruction jmp __b3
|
|
Removing instruction jmp __b1
|
|
Removing instruction jmp __b4
|
|
Removing instruction jmp __b1
|
|
Removing instruction jmp __b6
|
|
Removing instruction jmp __b2
|
|
Removing instruction jmp __b3
|
|
Removing instruction jmp __b5
|
|
Removing instruction jmp __b4
|
|
Removing instruction jmp __breturn
|
|
Removing instruction jmp __b1
|
|
Removing instruction jmp __b2
|
|
Removing instruction jmp __b3
|
|
Removing instruction jmp __breturn
|
|
Removing instruction jmp __b1
|
|
Removing instruction jmp __breturn
|
|
Removing instruction jmp __b2
|
|
Removing instruction jmp __b3
|
|
Removing instruction jmp __b5
|
|
Removing instruction jmp __breturn
|
|
Removing instruction jmp __b6
|
|
Removing instruction jmp __b8
|
|
Removing instruction jmp __b1
|
|
Removing instruction jmp __b4
|
|
Removing instruction jmp __b3
|
|
Removing instruction jmp __b2
|
|
Removing instruction jmp __breturn
|
|
Removing instruction jmp __b1
|
|
Removing instruction jmp __b4
|
|
Removing instruction jmp __b3
|
|
Removing instruction jmp __b2
|
|
Removing instruction jmp __breturn
|
|
Removing instruction jmp __b1
|
|
Removing instruction jmp __b4
|
|
Removing instruction jmp __b3
|
|
Removing instruction jmp __b2
|
|
Removing instruction jmp __breturn
|
|
Removing instruction jmp __b1
|
|
Removing instruction jmp __b4
|
|
Removing instruction jmp __b3
|
|
Removing instruction jmp __b2
|
|
Removing instruction jmp __breturn
|
|
Removing instruction jmp __breturn
|
|
Succesful ASM optimization Pass5NextJumpElimination
|
|
Removing instruction lda #0
|
|
Removing instruction lda #>0
|
|
Replacing instruction ldx #0 with TAX
|
|
Replacing instruction ldy #0 with TAY
|
|
Removing instruction ldy #0
|
|
Succesful ASM optimization Pass5UnnecesaryLoadElimination
|
|
Replacing label __b6_from___b1 with __b2
|
|
Replacing label __b1_from___b2 with __b1
|
|
Replacing label __b4_from___b3 with __b4
|
|
Replacing label __b3_from___b4 with __b3
|
|
Replacing label __b2_from___b2 with __b2
|
|
Replacing label __b1_from___b3 with __b1
|
|
Replacing label __b2_from___b4 with __b2
|
|
Replacing label __b1_from___b2 with __b1
|
|
Replacing label __b2_from___b4 with __b2
|
|
Replacing label __b1_from___b2 with __b1
|
|
Replacing label __b2_from___b4 with __b2
|
|
Replacing label __b1_from___b2 with __b1
|
|
Replacing label __b2_from___b4 with __b2
|
|
Replacing label __b1_from___b2 with __b1
|
|
Removing instruction __b2_from_main:
|
|
Removing instruction __b3_from___b2:
|
|
Removing instruction init_screen_from___b3:
|
|
Removing instruction __b1_from___b2:
|
|
Removing instruction __b6_from___b1:
|
|
Removing instruction __b6:
|
|
Removing instruction __b2_from___b6:
|
|
Removing instruction __b3_from___b4:
|
|
Removing instruction __b4_from___b3:
|
|
Removing instruction __b4_from___b5:
|
|
Removing instruction __b1_from___b3:
|
|
Removing instruction __b2_from___b1:
|
|
Removing instruction __b2_from___b2:
|
|
Removing instruction __b1_from___b2:
|
|
Removing instruction __b2_from___b3:
|
|
Removing instruction __b2_from___b4:
|
|
Removing instruction __b1_from___b2:
|
|
Removing instruction __b2_from___b3:
|
|
Removing instruction __b2_from___b4:
|
|
Removing instruction __b1_from___b2:
|
|
Removing instruction __b2_from___b3:
|
|
Removing instruction __b2_from___b4:
|
|
Removing instruction __b1_from___b2:
|
|
Removing instruction __b2_from___b3:
|
|
Removing instruction __b2_from___b4:
|
|
Succesful ASM optimization Pass5RedundantLabelElimination
|
|
Removing instruction bitmap_init_from_main:
|
|
Removing instruction __b2:
|
|
Removing instruction __b3:
|
|
Removing instruction __b1_from___b3:
|
|
Removing instruction __b4:
|
|
Removing instruction __b1_from___b4:
|
|
Removing instruction __b1_from_bitmap_init:
|
|
Removing instruction __b2_from___b1:
|
|
Removing instruction __b3_from___b2:
|
|
Removing instruction __b5:
|
|
Removing instruction __breturn:
|
|
Removing instruction __b1_from_bitmap_clear:
|
|
Removing instruction __b3:
|
|
Removing instruction __breturn:
|
|
Removing instruction __b1_from_init_screen:
|
|
Removing instruction __breturn:
|
|
Removing instruction __b1_from___b2:
|
|
Removing instruction __b2:
|
|
Removing instruction __b3:
|
|
Removing instruction __b5:
|
|
Removing instruction bitmap_line_xdyd_from___b4:
|
|
Removing instruction __b6:
|
|
Removing instruction __b8:
|
|
Removing instruction bitmap_line_xdyi_from___b7:
|
|
Removing instruction __b1_from_bitmap_line_ydxd:
|
|
Removing instruction bitmap_plot_from___b1:
|
|
Removing instruction __b4:
|
|
Removing instruction __b3:
|
|
Removing instruction __breturn:
|
|
Removing instruction __b1_from_bitmap_line_xdyd:
|
|
Removing instruction bitmap_plot_from___b1:
|
|
Removing instruction __b4:
|
|
Removing instruction __b3:
|
|
Removing instruction __breturn:
|
|
Removing instruction __b1_from_bitmap_line_ydxi:
|
|
Removing instruction bitmap_plot_from___b1:
|
|
Removing instruction __b4:
|
|
Removing instruction __b3:
|
|
Removing instruction __breturn:
|
|
Removing instruction __b1_from_bitmap_line_xdyi:
|
|
Removing instruction bitmap_plot_from___b1:
|
|
Removing instruction __b4:
|
|
Removing instruction __b3:
|
|
Removing instruction __breturn:
|
|
Removing instruction __breturn:
|
|
Succesful ASM optimization Pass5UnusedLabelElimination
|
|
Replacing jump to rts with rts in jmp __breturn
|
|
Replacing jump to rts with rts in jmp __breturn
|
|
Replacing jump to rts with rts in jmp __breturn
|
|
Succesful ASM optimization Pass5DoubleJumpElimination
|
|
Removing instruction jmp __b1
|
|
Removing instruction jmp __b2
|
|
Removing instruction jmp __b3
|
|
Removing instruction jmp __b1
|
|
Removing instruction jmp __b2
|
|
Removing instruction jmp __b1
|
|
Removing instruction jmp __b1
|
|
Removing instruction jmp __b1
|
|
Removing instruction jmp __b1
|
|
Succesful ASM optimization Pass5NextJumpElimination
|
|
Replacing instruction lda.z e with TXA
|
|
Replacing instruction lda.z e with TXA
|
|
Removing instruction __breturn:
|
|
Succesful ASM optimization Pass5UnusedLabelElimination
|
|
|
|
FINAL SYMBOL TABLE
|
|
(const nomodify byte*) BG_COLOR = (byte*) 53281
|
|
(const nomodify byte*) BITMAP = (byte*) 8192
|
|
(const nomodify byte*) BORDER_COLOR = (byte*) 53280
|
|
(const nomodify byte*) D011 = (byte*) 53265
|
|
(byte) MOS6526_CIA::INTERRUPT
|
|
(byte) MOS6526_CIA::PORT_A
|
|
(byte) MOS6526_CIA::PORT_A_DDR
|
|
(byte) MOS6526_CIA::PORT_B
|
|
(byte) MOS6526_CIA::PORT_B_DDR
|
|
(byte) MOS6526_CIA::SERIAL_DATA
|
|
(word) MOS6526_CIA::TIMER_A
|
|
(byte) MOS6526_CIA::TIMER_A_CONTROL
|
|
(word) MOS6526_CIA::TIMER_B
|
|
(byte) MOS6526_CIA::TIMER_B_CONTROL
|
|
(byte) MOS6526_CIA::TOD_10THS
|
|
(byte) MOS6526_CIA::TOD_HOURS
|
|
(byte) MOS6526_CIA::TOD_MIN
|
|
(byte) MOS6526_CIA::TOD_SEC
|
|
(byte) MOS6569_VICII::BG_COLOR
|
|
(byte) MOS6569_VICII::BG_COLOR1
|
|
(byte) MOS6569_VICII::BG_COLOR2
|
|
(byte) MOS6569_VICII::BG_COLOR3
|
|
(byte) MOS6569_VICII::BORDER_COLOR
|
|
(byte) MOS6569_VICII::CONTROL1
|
|
(byte) MOS6569_VICII::CONTROL2
|
|
(byte) MOS6569_VICII::IRQ_ENABLE
|
|
(byte) MOS6569_VICII::IRQ_STATUS
|
|
(byte) MOS6569_VICII::LIGHTPEN_X
|
|
(byte) MOS6569_VICII::LIGHTPEN_Y
|
|
(byte) MOS6569_VICII::MEMORY
|
|
(byte) MOS6569_VICII::RASTER
|
|
(byte) MOS6569_VICII::SPRITE0_COLOR
|
|
(byte) MOS6569_VICII::SPRITE0_X
|
|
(byte) MOS6569_VICII::SPRITE0_Y
|
|
(byte) MOS6569_VICII::SPRITE1_COLOR
|
|
(byte) MOS6569_VICII::SPRITE1_X
|
|
(byte) MOS6569_VICII::SPRITE1_Y
|
|
(byte) MOS6569_VICII::SPRITE2_COLOR
|
|
(byte) MOS6569_VICII::SPRITE2_X
|
|
(byte) MOS6569_VICII::SPRITE2_Y
|
|
(byte) MOS6569_VICII::SPRITE3_COLOR
|
|
(byte) MOS6569_VICII::SPRITE3_X
|
|
(byte) MOS6569_VICII::SPRITE3_Y
|
|
(byte) MOS6569_VICII::SPRITE4_COLOR
|
|
(byte) MOS6569_VICII::SPRITE4_X
|
|
(byte) MOS6569_VICII::SPRITE4_Y
|
|
(byte) MOS6569_VICII::SPRITE5_COLOR
|
|
(byte) MOS6569_VICII::SPRITE5_X
|
|
(byte) MOS6569_VICII::SPRITE5_Y
|
|
(byte) MOS6569_VICII::SPRITE6_COLOR
|
|
(byte) MOS6569_VICII::SPRITE6_X
|
|
(byte) MOS6569_VICII::SPRITE6_Y
|
|
(byte) MOS6569_VICII::SPRITE7_COLOR
|
|
(byte) MOS6569_VICII::SPRITE7_X
|
|
(byte) MOS6569_VICII::SPRITE7_Y
|
|
(byte) MOS6569_VICII::SPRITES_BG_COLLISION
|
|
(byte) MOS6569_VICII::SPRITES_COLLISION
|
|
(byte) MOS6569_VICII::SPRITES_ENABLE
|
|
(byte) MOS6569_VICII::SPRITES_EXPAND_X
|
|
(byte) MOS6569_VICII::SPRITES_EXPAND_Y
|
|
(byte) MOS6569_VICII::SPRITES_MC
|
|
(byte) MOS6569_VICII::SPRITES_MCOLOR1
|
|
(byte) MOS6569_VICII::SPRITES_MCOLOR2
|
|
(byte) MOS6569_VICII::SPRITES_PRIORITY
|
|
(byte) MOS6569_VICII::SPRITES_XMSB
|
|
(byte) MOS6581_SID::CH1_ATTACK_DECAY
|
|
(byte) MOS6581_SID::CH1_CONTROL
|
|
(word) MOS6581_SID::CH1_FREQ
|
|
(word) MOS6581_SID::CH1_PULSE_WIDTH
|
|
(byte) MOS6581_SID::CH1_SUSTAIN_RELEASE
|
|
(byte) MOS6581_SID::CH2_ATTACK_DECAY
|
|
(byte) MOS6581_SID::CH2_CONTROL
|
|
(word) MOS6581_SID::CH2_FREQ
|
|
(word) MOS6581_SID::CH2_PULSE_WIDTH
|
|
(byte) MOS6581_SID::CH2_SUSTAIN_RELEASE
|
|
(byte) MOS6581_SID::CH3_ATTACK_DECAY
|
|
(byte) MOS6581_SID::CH3_CONTROL
|
|
(byte) MOS6581_SID::CH3_ENV
|
|
(word) MOS6581_SID::CH3_FREQ
|
|
(byte) MOS6581_SID::CH3_OSC
|
|
(word) MOS6581_SID::CH3_PULSE_WIDTH
|
|
(byte) MOS6581_SID::CH3_SUSTAIN_RELEASE
|
|
(byte) MOS6581_SID::FILTER_CUTOFF_HIGH
|
|
(byte) MOS6581_SID::FILTER_CUTOFF_LOW
|
|
(byte) MOS6581_SID::FILTER_SETUP
|
|
(byte) MOS6581_SID::POT_X
|
|
(byte) MOS6581_SID::POT_Y
|
|
(byte) MOS6581_SID::VOLUME_FILTER_MODE
|
|
(const nomodify byte*) SCREEN = (byte*) 1024
|
|
(const nomodify byte) VIC_BMM = (byte) $20
|
|
(const nomodify byte) VIC_DEN = (byte) $10
|
|
(const nomodify byte*) VIC_MEMORY = (byte*) 53272
|
|
(const nomodify byte) VIC_RSEL = (byte) 8
|
|
(void()) bitmap_clear()
|
|
(label) bitmap_clear::@1
|
|
(label) bitmap_clear::@2
|
|
(label) bitmap_clear::@3
|
|
(label) bitmap_clear::@return
|
|
(byte*) bitmap_clear::bitmap
|
|
(word) bitmap_clear::bitmap#0 bitmap zp[2]:7 11.0
|
|
(byte*) bitmap_clear::bitmap#1 bitmap zp[2]:7 420.59999999999997
|
|
(byte*) bitmap_clear::bitmap#2 bitmap zp[2]:7 1552.0
|
|
(byte*) bitmap_clear::bitmap#3 bitmap zp[2]:7 213.0
|
|
(byte*) bitmap_clear::bitmap#5 bitmap zp[2]:7 22.0
|
|
(byte) bitmap_clear::x
|
|
(byte) bitmap_clear::x#1 reg byte x 1501.5
|
|
(byte) bitmap_clear::x#2 reg byte x 667.3333333333334
|
|
(byte) bitmap_clear::y
|
|
(byte) bitmap_clear::y#1 y zp[1]:5 151.5
|
|
(byte) bitmap_clear::y#4 y zp[1]:5 33.666666666666664
|
|
(void()) bitmap_init((byte*) bitmap_init::bitmap)
|
|
(byte~) bitmap_init::$0 reg byte a 202.0
|
|
(byte~) bitmap_init::$10 zp[1]:6 50.5
|
|
(byte~) bitmap_init::$7 reg byte a 202.0
|
|
(byte~) bitmap_init::$8 reg byte a 202.0
|
|
(byte~) bitmap_init::$9 reg byte a 202.0
|
|
(label) bitmap_init::@1
|
|
(label) bitmap_init::@2
|
|
(label) bitmap_init::@3
|
|
(label) bitmap_init::@4
|
|
(label) bitmap_init::@5
|
|
(label) bitmap_init::@6
|
|
(label) bitmap_init::@return
|
|
(byte*) bitmap_init::bitmap
|
|
(byte) bitmap_init::bits
|
|
(byte) bitmap_init::bits#1 reg byte y 101.0
|
|
(byte) bitmap_init::bits#3 reg byte y 60.599999999999994
|
|
(byte) bitmap_init::bits#4 reg byte y 67.33333333333333
|
|
(byte) bitmap_init::x
|
|
(byte) bitmap_init::x#1 reg byte x 151.5
|
|
(byte) bitmap_init::x#2 reg byte x 67.33333333333333
|
|
(byte) bitmap_init::y
|
|
(byte) bitmap_init::y#1 reg byte x 151.5
|
|
(byte) bitmap_init::y#2 reg byte x 50.5
|
|
(byte*) bitmap_init::yoffs
|
|
(byte*) bitmap_init::yoffs#1 yoffs zp[2]:7 202.0
|
|
(byte*) bitmap_init::yoffs#2 yoffs zp[2]:7 63.125
|
|
(byte*) bitmap_init::yoffs#4 yoffs zp[2]:7 101.0
|
|
(void()) bitmap_line((byte) bitmap_line::x0 , (byte) bitmap_line::x1 , (byte) bitmap_line::y0 , (byte) bitmap_line::y1)
|
|
(label) bitmap_line::@1
|
|
(label) bitmap_line::@2
|
|
(label) bitmap_line::@3
|
|
(label) bitmap_line::@4
|
|
(label) bitmap_line::@5
|
|
(label) bitmap_line::@6
|
|
(label) bitmap_line::@7
|
|
(label) bitmap_line::@8
|
|
(label) bitmap_line::@return
|
|
(byte) bitmap_line::x0
|
|
(const byte) bitmap_line::x0#0 x0 = (byte) 0
|
|
(byte) bitmap_line::x1
|
|
(byte) bitmap_line::x1#0 reg byte a 85.99999999999999
|
|
(byte) bitmap_line::xd
|
|
(byte) bitmap_line::xd#1 reg byte x 134.66666666666666
|
|
(byte) bitmap_line::xd#2 reg byte x 134.66666666666666
|
|
(byte) bitmap_line::y0
|
|
(const byte) bitmap_line::y0#0 y0 = (byte) 0
|
|
(byte) bitmap_line::y1
|
|
(const byte) bitmap_line::y1#0 y1 = (byte) $64
|
|
(byte) bitmap_line::yd
|
|
(void()) bitmap_line_xdyd((byte) bitmap_line_xdyd::x , (byte) bitmap_line_xdyd::y , (byte) bitmap_line_xdyd::x1 , (byte) bitmap_line_xdyd::xd , (byte) bitmap_line_xdyd::yd)
|
|
(label) bitmap_line_xdyd::@1
|
|
(label) bitmap_line_xdyd::@2
|
|
(label) bitmap_line_xdyd::@3
|
|
(label) bitmap_line_xdyd::@4
|
|
(label) bitmap_line_xdyd::@return
|
|
(byte) bitmap_line_xdyd::e
|
|
(byte) bitmap_line_xdyd::e#1 e zp[1]:4 133334.66666666666
|
|
(byte) bitmap_line_xdyd::e#2 e zp[1]:4 200002.0
|
|
(byte) bitmap_line_xdyd::e#3 e zp[1]:4 40000.4
|
|
(byte) bitmap_line_xdyd::e#6 e zp[1]:4 150001.5
|
|
(byte) bitmap_line_xdyd::x
|
|
(byte) bitmap_line_xdyd::x#0 x zp[1]:2 367.33333333333337
|
|
(byte) bitmap_line_xdyd::x#2 x zp[1]:2 42857.57142857143
|
|
(byte) bitmap_line_xdyd::x#3 x zp[1]:2 75251.0
|
|
(byte) bitmap_line_xdyd::x1
|
|
(byte) bitmap_line_xdyd::xd
|
|
(byte) bitmap_line_xdyd::xd#0 xd zp[1]:6 15392.538461538461
|
|
(byte) bitmap_line_xdyd::y
|
|
(byte) bitmap_line_xdyd::y#2 y zp[1]:3 100001.0
|
|
(byte) bitmap_line_xdyd::y#3 y zp[1]:3 57143.42857142857
|
|
(byte) bitmap_line_xdyd::y#6 y zp[1]:3 150001.5
|
|
(byte) bitmap_line_xdyd::yd
|
|
(void()) bitmap_line_xdyi((byte) bitmap_line_xdyi::x , (byte) bitmap_line_xdyi::y , (byte) bitmap_line_xdyi::x1 , (byte) bitmap_line_xdyi::xd , (byte) bitmap_line_xdyi::yd)
|
|
(byte~) bitmap_line_xdyi::$6 reg byte x 200002.0
|
|
(label) bitmap_line_xdyi::@1
|
|
(label) bitmap_line_xdyi::@2
|
|
(label) bitmap_line_xdyi::@3
|
|
(label) bitmap_line_xdyi::@4
|
|
(label) bitmap_line_xdyi::@return
|
|
(byte) bitmap_line_xdyi::e
|
|
(byte) bitmap_line_xdyi::e#1 e zp[1]:4 133334.66666666666
|
|
(byte) bitmap_line_xdyi::e#2 e zp[1]:4 200002.0
|
|
(byte) bitmap_line_xdyi::e#3 e zp[1]:4 40000.4
|
|
(byte) bitmap_line_xdyi::e#6 e zp[1]:4 100001.0
|
|
(byte) bitmap_line_xdyi::x
|
|
(byte) bitmap_line_xdyi::x#2 x zp[1]:2 37500.375
|
|
(byte) bitmap_line_xdyi::x#3 x zp[1]:2 75000.75
|
|
(byte) bitmap_line_xdyi::x1
|
|
(byte) bitmap_line_xdyi::x1#1 x1 zp[1]:5 6673.466666666667
|
|
(byte) bitmap_line_xdyi::xd
|
|
(byte) bitmap_line_xdyi::xd#1 xd zp[1]:6 14293.071428571428
|
|
(byte) bitmap_line_xdyi::y
|
|
(byte) bitmap_line_xdyi::y#2 y zp[1]:3 100001.0
|
|
(byte) bitmap_line_xdyi::y#3 y zp[1]:3 57143.42857142857
|
|
(byte) bitmap_line_xdyi::y#6 y zp[1]:3 100001.0
|
|
(byte) bitmap_line_xdyi::yd
|
|
(void()) bitmap_line_ydxd((byte) bitmap_line_ydxd::y , (byte) bitmap_line_ydxd::x , (byte) bitmap_line_ydxd::y1 , (byte) bitmap_line_ydxd::yd , (byte) bitmap_line_ydxd::xd)
|
|
(label) bitmap_line_ydxd::@1
|
|
(label) bitmap_line_ydxd::@2
|
|
(label) bitmap_line_ydxd::@3
|
|
(label) bitmap_line_ydxd::@4
|
|
(label) bitmap_line_ydxd::@return
|
|
(byte) bitmap_line_ydxd::e
|
|
(byte) bitmap_line_ydxd::e#0 e zp[1]:4 2002.0
|
|
(byte) bitmap_line_ydxd::e#1 e zp[1]:4 133334.66666666666
|
|
(byte) bitmap_line_ydxd::e#2 e zp[1]:4 200002.0
|
|
(byte) bitmap_line_ydxd::e#3 e zp[1]:4 40200.600000000006
|
|
(byte) bitmap_line_ydxd::e#6 e zp[1]:4 150001.5
|
|
(byte) bitmap_line_ydxd::x
|
|
(byte) bitmap_line_ydxd::x#2 x zp[1]:2 100001.0
|
|
(byte) bitmap_line_ydxd::x#3 x zp[1]:2 57143.42857142857
|
|
(byte) bitmap_line_ydxd::x#6 x zp[1]:2 150001.5
|
|
(byte) bitmap_line_ydxd::xd
|
|
(byte) bitmap_line_ydxd::xd#0 xd zp[1]:6 7777.153846153846
|
|
(byte) bitmap_line_ydxd::y
|
|
(byte) bitmap_line_ydxd::y#2 y zp[1]:3 75000.75
|
|
(byte) bitmap_line_ydxd::y#3 y zp[1]:3 42857.57142857143
|
|
(byte) bitmap_line_ydxd::y1
|
|
(byte) bitmap_line_ydxd::yd
|
|
(void()) bitmap_line_ydxi((byte) bitmap_line_ydxi::y , (byte) bitmap_line_ydxi::x , (byte) bitmap_line_ydxi::y1 , (byte) bitmap_line_ydxi::yd , (byte) bitmap_line_ydxi::xd)
|
|
(label) bitmap_line_ydxi::@1
|
|
(label) bitmap_line_ydxi::@2
|
|
(label) bitmap_line_ydxi::@3
|
|
(label) bitmap_line_ydxi::@4
|
|
(label) bitmap_line_ydxi::@return
|
|
(byte) bitmap_line_ydxi::e
|
|
(byte) bitmap_line_ydxi::e#0 e zp[1]:4 2002.0
|
|
(byte) bitmap_line_ydxi::e#1 e zp[1]:4 133334.66666666666
|
|
(byte) bitmap_line_ydxi::e#2 e zp[1]:4 200002.0
|
|
(byte) bitmap_line_ydxi::e#3 e zp[1]:4 40200.600000000006
|
|
(byte) bitmap_line_ydxi::e#6 e zp[1]:4 150001.5
|
|
(byte) bitmap_line_ydxi::x
|
|
(byte) bitmap_line_ydxi::x#2 x zp[1]:2 100001.0
|
|
(byte) bitmap_line_ydxi::x#3 x zp[1]:2 57143.42857142857
|
|
(byte) bitmap_line_ydxi::x#6 x zp[1]:2 150001.5
|
|
(byte) bitmap_line_ydxi::xd
|
|
(byte) bitmap_line_ydxi::xd#1 xd zp[1]:6 7777.153846153846
|
|
(byte) bitmap_line_ydxi::y
|
|
(byte) bitmap_line_ydxi::y#2 y zp[1]:3 42857.57142857143
|
|
(byte) bitmap_line_ydxi::y#3 y zp[1]:3 75000.75
|
|
(byte) bitmap_line_ydxi::y1
|
|
(byte) bitmap_line_ydxi::yd
|
|
(void()) bitmap_plot((byte) bitmap_plot::x , (byte) bitmap_plot::y)
|
|
(byte~) bitmap_plot::$1 reg byte a 2000002.0
|
|
(label) bitmap_plot::@return
|
|
(byte*) bitmap_plot::plotter
|
|
(word) bitmap_plot::plotter#0 plotter zp[2]:7 500000.5
|
|
(word) bitmap_plot::plotter_x
|
|
(word) bitmap_plot::plotter_x#0 plotter_x zp[2]:7 1000001.0
|
|
(word) bitmap_plot::plotter_y
|
|
(word) bitmap_plot::plotter_y#0 plotter_y zp[2]:9 2000002.0
|
|
(byte) bitmap_plot::x
|
|
(byte) bitmap_plot::x#0 reg byte x 100001.0
|
|
(byte) bitmap_plot::x#1 reg byte x 100001.0
|
|
(byte) bitmap_plot::x#2 reg byte x 100001.0
|
|
(byte) bitmap_plot::x#3 reg byte x 100001.0
|
|
(byte) bitmap_plot::x#4 reg byte x 850001.75
|
|
(byte) bitmap_plot::y
|
|
(byte) bitmap_plot::y#0 reg byte y 200002.0
|
|
(byte) bitmap_plot::y#1 reg byte y 200002.0
|
|
(byte) bitmap_plot::y#2 reg byte y 200002.0
|
|
(byte) bitmap_plot::y#3 reg byte y 200002.0
|
|
(byte) bitmap_plot::y#4 reg byte y 1200003.0
|
|
(const to_nomodify byte*) bitmap_plot_bit[(number) $100] = { fill( $100, 0) }
|
|
(const to_nomodify byte*) bitmap_plot_xhi[(number) $100] = { fill( $100, 0) }
|
|
(const to_nomodify byte*) bitmap_plot_xlo[(number) $100] = { fill( $100, 0) }
|
|
(const to_nomodify byte*) bitmap_plot_yhi[(number) $100] = { fill( $100, 0) }
|
|
(const to_nomodify byte*) bitmap_plot_ylo[(number) $100] = { fill( $100, 0) }
|
|
(void()) init_screen()
|
|
(label) init_screen::@1
|
|
(label) init_screen::@2
|
|
(label) init_screen::@return
|
|
(byte*) init_screen::c
|
|
(byte*) init_screen::c#1 c zp[2]:7 202.0
|
|
(byte*) init_screen::c#2 c zp[2]:7 134.66666666666666
|
|
(void()) main()
|
|
(label) main::@1
|
|
(label) main::@2
|
|
(label) main::@3
|
|
(label) main::@4
|
|
(byte) next
|
|
(byte) next#0 next zp[1]:5 22.0
|
|
(byte) next#5 next zp[1]:5 11.0
|
|
|
|
reg byte x [ bitmap_init::x#2 bitmap_init::x#1 ]
|
|
reg byte y [ bitmap_init::bits#3 bitmap_init::bits#4 bitmap_init::bits#1 ]
|
|
reg byte x [ bitmap_init::y#2 bitmap_init::y#1 ]
|
|
reg byte x [ bitmap_clear::x#2 bitmap_clear::x#1 ]
|
|
zp[1]:2 [ bitmap_line_xdyi::x#3 bitmap_line_xdyi::x#2 bitmap_line_ydxi::x#3 bitmap_line_ydxi::x#6 bitmap_line_ydxi::x#2 bitmap_line_xdyd::x#3 bitmap_line_xdyd::x#0 bitmap_line_xdyd::x#2 bitmap_line_ydxd::x#3 bitmap_line_ydxd::x#6 bitmap_line_ydxd::x#2 ]
|
|
zp[1]:3 [ bitmap_line_xdyi::y#3 bitmap_line_xdyi::y#6 bitmap_line_xdyi::y#2 bitmap_line_ydxi::y#3 bitmap_line_ydxi::y#2 bitmap_line_xdyd::y#3 bitmap_line_xdyd::y#6 bitmap_line_xdyd::y#2 bitmap_line_ydxd::y#2 bitmap_line_ydxd::y#3 ]
|
|
zp[1]:4 [ bitmap_line_xdyi::e#3 bitmap_line_xdyi::e#6 bitmap_line_xdyi::e#2 bitmap_line_xdyi::e#1 bitmap_line_ydxi::e#3 bitmap_line_ydxi::e#0 bitmap_line_ydxi::e#6 bitmap_line_ydxi::e#2 bitmap_line_ydxi::e#1 bitmap_line_xdyd::e#3 bitmap_line_xdyd::e#6 bitmap_line_xdyd::e#2 bitmap_line_xdyd::e#1 bitmap_line_ydxd::e#3 bitmap_line_ydxd::e#0 bitmap_line_ydxd::e#6 bitmap_line_ydxd::e#2 bitmap_line_ydxd::e#1 ]
|
|
reg byte x [ bitmap_plot::x#4 bitmap_plot::x#1 bitmap_plot::x#0 bitmap_plot::x#3 bitmap_plot::x#2 ]
|
|
reg byte y [ bitmap_plot::y#4 bitmap_plot::y#1 bitmap_plot::y#0 bitmap_plot::y#3 bitmap_plot::y#2 ]
|
|
reg byte a [ bitmap_line::x1#0 ]
|
|
reg byte a [ bitmap_init::$0 ]
|
|
reg byte a [ bitmap_init::$7 ]
|
|
reg byte a [ bitmap_init::$8 ]
|
|
reg byte a [ bitmap_init::$9 ]
|
|
reg byte x [ bitmap_line::xd#2 ]
|
|
reg byte x [ bitmap_line::xd#1 ]
|
|
zp[1]:5 [ bitmap_line_xdyi::x1#1 bitmap_clear::y#4 bitmap_clear::y#1 next#5 next#0 ]
|
|
zp[1]:6 [ bitmap_line_xdyi::xd#1 bitmap_line_ydxi::xd#1 bitmap_line_xdyd::xd#0 bitmap_line_ydxd::xd#0 bitmap_init::$10 ]
|
|
reg byte x [ bitmap_line_xdyi::$6 ]
|
|
zp[2]:7 [ bitmap_plot::plotter_x#0 bitmap_plot::plotter#0 init_screen::c#2 init_screen::c#1 bitmap_clear::bitmap#2 bitmap_clear::bitmap#3 bitmap_clear::bitmap#5 bitmap_clear::bitmap#1 bitmap_clear::bitmap#0 bitmap_init::yoffs#2 bitmap_init::yoffs#4 bitmap_init::yoffs#1 ]
|
|
zp[2]:9 [ bitmap_plot::plotter_y#0 ]
|
|
reg byte a [ bitmap_plot::$1 ]
|
|
|
|
|
|
FINAL ASSEMBLER
|
|
Score: 30221
|
|
|
|
// File Comments
|
|
// Illustrates problem with bitmap-draw.kc line()
|
|
// Reported by Janne Johansson
|
|
// Upstart
|
|
.pc = $801 "Basic"
|
|
:BasicUpstart(main)
|
|
.pc = $80d "Program"
|
|
// Global Constants & labels
|
|
.const VIC_BMM = $20
|
|
.const VIC_DEN = $10
|
|
.const VIC_RSEL = 8
|
|
.label BORDER_COLOR = $d020
|
|
.label BG_COLOR = $d021
|
|
.label D011 = $d011
|
|
.label VIC_MEMORY = $d018
|
|
.label SCREEN = $400
|
|
.label BITMAP = $2000
|
|
.label next = 5
|
|
// main
|
|
main: {
|
|
// *BORDER_COLOR = 0
|
|
// [0] *((const nomodify byte*) BORDER_COLOR) ← (byte) 0 -- _deref_pbuc1=vbuc2
|
|
lda #0
|
|
sta BORDER_COLOR
|
|
// *BG_COLOR = 0
|
|
// [1] *((const nomodify byte*) BG_COLOR) ← (byte) 0 -- _deref_pbuc1=vbuc2
|
|
sta BG_COLOR
|
|
// *D011 = VIC_BMM|VIC_DEN|VIC_RSEL|3
|
|
// [2] *((const nomodify byte*) D011) ← (const nomodify byte) VIC_BMM|(const nomodify byte) VIC_DEN|(const nomodify byte) VIC_RSEL|(byte) 3 -- _deref_pbuc1=vbuc2
|
|
lda #VIC_BMM|VIC_DEN|VIC_RSEL|3
|
|
sta D011
|
|
// *VIC_MEMORY = (byte)((((word)SCREEN&$3fff)/$40)|(((word)BITMAP&$3fff)/$400))
|
|
// [3] *((const nomodify byte*) VIC_MEMORY) ← (byte)(word)(const nomodify byte*) SCREEN&(word) $3fff/(byte) $40|(word)(const nomodify byte*) BITMAP&(word) $3fff/(word) $400 -- _deref_pbuc1=vbuc2
|
|
lda #(SCREEN&$3fff)/$40|(BITMAP&$3fff)/$400
|
|
sta VIC_MEMORY
|
|
// bitmap_init(BITMAP)
|
|
// [4] call bitmap_init
|
|
// [13] phi from main to bitmap_init [phi:main->bitmap_init]
|
|
jsr bitmap_init
|
|
// [5] phi from main to main::@2 [phi:main->main::@2]
|
|
// main::@2
|
|
// bitmap_clear()
|
|
// [6] call bitmap_clear
|
|
jsr bitmap_clear
|
|
// [7] phi from main::@2 to main::@3 [phi:main::@2->main::@3]
|
|
// main::@3
|
|
// init_screen()
|
|
// [8] call init_screen
|
|
// [49] phi from main::@3 to init_screen [phi:main::@3->init_screen]
|
|
jsr init_screen
|
|
// [9] phi from main::@3 to main::@1 [phi:main::@3->main::@1]
|
|
// [9] phi (byte) next#5 = (byte) 0 [phi:main::@3->main::@1#0] -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z next
|
|
// main::@1
|
|
__b1:
|
|
// bitmap_line(0,next,0,100)
|
|
// [10] (byte) bitmap_line::x1#0 ← (byte) next#5 -- vbuaa=vbuz1
|
|
lda.z next
|
|
// [11] call bitmap_line
|
|
jsr bitmap_line
|
|
// main::@4
|
|
// next++;
|
|
// [12] (byte) next#0 ← ++ (byte) next#5 -- vbuz1=_inc_vbuz1
|
|
inc.z next
|
|
// [9] phi from main::@4 to main::@1 [phi:main::@4->main::@1]
|
|
// [9] phi (byte) next#5 = (byte) next#0 [phi:main::@4->main::@1#0] -- register_copy
|
|
jmp __b1
|
|
}
|
|
// bitmap_init
|
|
// Initialize the bitmap plotter tables for a specific bitmap
|
|
bitmap_init: {
|
|
.label __10 = 6
|
|
.label yoffs = 7
|
|
// [14] phi from bitmap_init to bitmap_init::@1 [phi:bitmap_init->bitmap_init::@1]
|
|
// [14] phi (byte) bitmap_init::bits#3 = (byte) $80 [phi:bitmap_init->bitmap_init::@1#0] -- vbuyy=vbuc1
|
|
ldy #$80
|
|
// [14] phi (byte) bitmap_init::x#2 = (byte) 0 [phi:bitmap_init->bitmap_init::@1#1] -- vbuxx=vbuc1
|
|
ldx #0
|
|
// [14] phi from bitmap_init::@2 to bitmap_init::@1 [phi:bitmap_init::@2->bitmap_init::@1]
|
|
// [14] phi (byte) bitmap_init::bits#3 = (byte) bitmap_init::bits#4 [phi:bitmap_init::@2->bitmap_init::@1#0] -- register_copy
|
|
// [14] phi (byte) bitmap_init::x#2 = (byte) bitmap_init::x#1 [phi:bitmap_init::@2->bitmap_init::@1#1] -- register_copy
|
|
// bitmap_init::@1
|
|
__b1:
|
|
// x&$f8
|
|
// [15] (byte~) bitmap_init::$0 ← (byte) bitmap_init::x#2 & (byte) $f8 -- vbuaa=vbuxx_band_vbuc1
|
|
txa
|
|
and #$f8
|
|
// bitmap_plot_xlo[x] = x&$f8
|
|
// [16] *((const to_nomodify byte*) bitmap_plot_xlo + (byte) bitmap_init::x#2) ← (byte~) bitmap_init::$0 -- pbuc1_derefidx_vbuxx=vbuaa
|
|
sta bitmap_plot_xlo,x
|
|
// bitmap_plot_xhi[x] = >bitmap
|
|
// [17] *((const to_nomodify byte*) bitmap_plot_xhi + (byte) bitmap_init::x#2) ← >(const nomodify byte*) BITMAP -- pbuc1_derefidx_vbuxx=vbuc2
|
|
lda #>BITMAP
|
|
sta bitmap_plot_xhi,x
|
|
// bitmap_plot_bit[x] = bits
|
|
// [18] *((const to_nomodify byte*) bitmap_plot_bit + (byte) bitmap_init::x#2) ← (byte) bitmap_init::bits#3 -- pbuc1_derefidx_vbuxx=vbuyy
|
|
tya
|
|
sta bitmap_plot_bit,x
|
|
// bits = bits>>1
|
|
// [19] (byte) bitmap_init::bits#1 ← (byte) bitmap_init::bits#3 >> (byte) 1 -- vbuyy=vbuyy_ror_1
|
|
tya
|
|
lsr
|
|
tay
|
|
// if(bits==0)
|
|
// [20] if((byte) bitmap_init::bits#1!=(byte) 0) goto bitmap_init::@6 -- vbuyy_neq_0_then_la1
|
|
cpy #0
|
|
bne __b2
|
|
// [22] phi from bitmap_init::@1 to bitmap_init::@2 [phi:bitmap_init::@1->bitmap_init::@2]
|
|
// [22] phi (byte) bitmap_init::bits#4 = (byte) $80 [phi:bitmap_init::@1->bitmap_init::@2#0] -- vbuyy=vbuc1
|
|
ldy #$80
|
|
// [21] phi from bitmap_init::@1 to bitmap_init::@6 [phi:bitmap_init::@1->bitmap_init::@6]
|
|
// bitmap_init::@6
|
|
// [22] phi from bitmap_init::@6 to bitmap_init::@2 [phi:bitmap_init::@6->bitmap_init::@2]
|
|
// [22] phi (byte) bitmap_init::bits#4 = (byte) bitmap_init::bits#1 [phi:bitmap_init::@6->bitmap_init::@2#0] -- register_copy
|
|
// bitmap_init::@2
|
|
__b2:
|
|
// for(char x : 0..255)
|
|
// [23] (byte) bitmap_init::x#1 ← ++ (byte) bitmap_init::x#2 -- vbuxx=_inc_vbuxx
|
|
inx
|
|
// [24] if((byte) bitmap_init::x#1!=(byte) 0) goto bitmap_init::@1 -- vbuxx_neq_0_then_la1
|
|
cpx #0
|
|
bne __b1
|
|
// [25] phi from bitmap_init::@2 to bitmap_init::@3 [phi:bitmap_init::@2->bitmap_init::@3]
|
|
// [25] phi (byte*) bitmap_init::yoffs#2 = (byte*) 0 [phi:bitmap_init::@2->bitmap_init::@3#0] -- pbuz1=pbuc1
|
|
lda #<0
|
|
sta.z yoffs
|
|
sta.z yoffs+1
|
|
// [25] phi (byte) bitmap_init::y#2 = (byte) 0 [phi:bitmap_init::@2->bitmap_init::@3#1] -- vbuxx=vbuc1
|
|
tax
|
|
// [25] phi from bitmap_init::@4 to bitmap_init::@3 [phi:bitmap_init::@4->bitmap_init::@3]
|
|
// [25] phi (byte*) bitmap_init::yoffs#2 = (byte*) bitmap_init::yoffs#4 [phi:bitmap_init::@4->bitmap_init::@3#0] -- register_copy
|
|
// [25] phi (byte) bitmap_init::y#2 = (byte) bitmap_init::y#1 [phi:bitmap_init::@4->bitmap_init::@3#1] -- register_copy
|
|
// bitmap_init::@3
|
|
__b3:
|
|
// y&$7
|
|
// [26] (byte~) bitmap_init::$10 ← (byte) bitmap_init::y#2 & (byte) 7 -- vbuz1=vbuxx_band_vbuc1
|
|
lda #7
|
|
sax.z __10
|
|
// <yoffs
|
|
// [27] (byte~) bitmap_init::$7 ← < (byte*) bitmap_init::yoffs#2 -- vbuaa=_lo_pbuz1
|
|
lda.z yoffs
|
|
// y&$7 | <yoffs
|
|
// [28] (byte~) bitmap_init::$8 ← (byte~) bitmap_init::$10 | (byte~) bitmap_init::$7 -- vbuaa=vbuz1_bor_vbuaa
|
|
ora.z __10
|
|
// bitmap_plot_ylo[y] = y&$7 | <yoffs
|
|
// [29] *((const to_nomodify byte*) bitmap_plot_ylo + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$8 -- pbuc1_derefidx_vbuxx=vbuaa
|
|
sta bitmap_plot_ylo,x
|
|
// >yoffs
|
|
// [30] (byte~) bitmap_init::$9 ← > (byte*) bitmap_init::yoffs#2 -- vbuaa=_hi_pbuz1
|
|
lda.z yoffs+1
|
|
// bitmap_plot_yhi[y] = >yoffs
|
|
// [31] *((const to_nomodify byte*) bitmap_plot_yhi + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$9 -- pbuc1_derefidx_vbuxx=vbuaa
|
|
sta bitmap_plot_yhi,x
|
|
// if((y&$7)==7)
|
|
// [32] if((byte~) bitmap_init::$10!=(byte) 7) goto bitmap_init::@4 -- vbuz1_neq_vbuc1_then_la1
|
|
lda #7
|
|
cmp.z __10
|
|
bne __b4
|
|
// bitmap_init::@5
|
|
// yoffs = yoffs + 40*8
|
|
// [33] (byte*) bitmap_init::yoffs#1 ← (byte*) bitmap_init::yoffs#2 + (word)(number) $28*(number) 8 -- pbuz1=pbuz1_plus_vwuc1
|
|
clc
|
|
lda.z yoffs
|
|
adc #<$28*8
|
|
sta.z yoffs
|
|
lda.z yoffs+1
|
|
adc #>$28*8
|
|
sta.z yoffs+1
|
|
// [34] phi from bitmap_init::@3 bitmap_init::@5 to bitmap_init::@4 [phi:bitmap_init::@3/bitmap_init::@5->bitmap_init::@4]
|
|
// [34] phi (byte*) bitmap_init::yoffs#4 = (byte*) bitmap_init::yoffs#2 [phi:bitmap_init::@3/bitmap_init::@5->bitmap_init::@4#0] -- register_copy
|
|
// bitmap_init::@4
|
|
__b4:
|
|
// for(char y : 0..255)
|
|
// [35] (byte) bitmap_init::y#1 ← ++ (byte) bitmap_init::y#2 -- vbuxx=_inc_vbuxx
|
|
inx
|
|
// [36] if((byte) bitmap_init::y#1!=(byte) 0) goto bitmap_init::@3 -- vbuxx_neq_0_then_la1
|
|
cpx #0
|
|
bne __b3
|
|
// bitmap_init::@return
|
|
// }
|
|
// [37] return
|
|
rts
|
|
}
|
|
// bitmap_clear
|
|
// Clear all graphics on the bitmap
|
|
bitmap_clear: {
|
|
.label bitmap = 7
|
|
.label y = 5
|
|
// bitmap = (char*) { bitmap_plot_xhi[0], bitmap_plot_xlo[0] }
|
|
// [38] (word) bitmap_clear::bitmap#0 ← *((const to_nomodify byte*) bitmap_plot_xhi) w= *((const to_nomodify byte*) bitmap_plot_xlo) -- vwuz1=_deref_pbuc1_word__deref_pbuc2
|
|
lda bitmap_plot_xlo
|
|
sta.z bitmap
|
|
lda bitmap_plot_xhi
|
|
sta.z bitmap+1
|
|
// [39] (byte*) bitmap_clear::bitmap#5 ← (byte*)(word) bitmap_clear::bitmap#0
|
|
// [40] phi from bitmap_clear to bitmap_clear::@1 [phi:bitmap_clear->bitmap_clear::@1]
|
|
// [40] phi (byte) bitmap_clear::y#4 = (byte) 0 [phi:bitmap_clear->bitmap_clear::@1#0] -- vbuz1=vbuc1
|
|
lda #0
|
|
sta.z y
|
|
// [40] phi (byte*) bitmap_clear::bitmap#3 = (byte*) bitmap_clear::bitmap#5 [phi:bitmap_clear->bitmap_clear::@1#1] -- register_copy
|
|
// [40] phi from bitmap_clear::@3 to bitmap_clear::@1 [phi:bitmap_clear::@3->bitmap_clear::@1]
|
|
// [40] phi (byte) bitmap_clear::y#4 = (byte) bitmap_clear::y#1 [phi:bitmap_clear::@3->bitmap_clear::@1#0] -- register_copy
|
|
// [40] phi (byte*) bitmap_clear::bitmap#3 = (byte*) bitmap_clear::bitmap#1 [phi:bitmap_clear::@3->bitmap_clear::@1#1] -- register_copy
|
|
// bitmap_clear::@1
|
|
__b1:
|
|
// [41] phi from bitmap_clear::@1 to bitmap_clear::@2 [phi:bitmap_clear::@1->bitmap_clear::@2]
|
|
// [41] phi (byte) bitmap_clear::x#2 = (byte) 0 [phi:bitmap_clear::@1->bitmap_clear::@2#0] -- vbuxx=vbuc1
|
|
ldx #0
|
|
// [41] phi (byte*) bitmap_clear::bitmap#2 = (byte*) bitmap_clear::bitmap#3 [phi:bitmap_clear::@1->bitmap_clear::@2#1] -- register_copy
|
|
// [41] phi from bitmap_clear::@2 to bitmap_clear::@2 [phi:bitmap_clear::@2->bitmap_clear::@2]
|
|
// [41] phi (byte) bitmap_clear::x#2 = (byte) bitmap_clear::x#1 [phi:bitmap_clear::@2->bitmap_clear::@2#0] -- register_copy
|
|
// [41] phi (byte*) bitmap_clear::bitmap#2 = (byte*) bitmap_clear::bitmap#1 [phi:bitmap_clear::@2->bitmap_clear::@2#1] -- register_copy
|
|
// bitmap_clear::@2
|
|
__b2:
|
|
// *bitmap++ = 0
|
|
// [42] *((byte*) bitmap_clear::bitmap#2) ← (byte) 0 -- _deref_pbuz1=vbuc1
|
|
lda #0
|
|
tay
|
|
sta (bitmap),y
|
|
// *bitmap++ = 0;
|
|
// [43] (byte*) bitmap_clear::bitmap#1 ← ++ (byte*) bitmap_clear::bitmap#2 -- pbuz1=_inc_pbuz1
|
|
inc.z bitmap
|
|
bne !+
|
|
inc.z bitmap+1
|
|
!:
|
|
// for( char x: 0..199 )
|
|
// [44] (byte) bitmap_clear::x#1 ← ++ (byte) bitmap_clear::x#2 -- vbuxx=_inc_vbuxx
|
|
inx
|
|
// [45] if((byte) bitmap_clear::x#1!=(byte) $c8) goto bitmap_clear::@2 -- vbuxx_neq_vbuc1_then_la1
|
|
cpx #$c8
|
|
bne __b2
|
|
// bitmap_clear::@3
|
|
// for( char y: 0..39 )
|
|
// [46] (byte) bitmap_clear::y#1 ← ++ (byte) bitmap_clear::y#4 -- vbuz1=_inc_vbuz1
|
|
inc.z y
|
|
// [47] if((byte) bitmap_clear::y#1!=(byte) $28) goto bitmap_clear::@1 -- vbuz1_neq_vbuc1_then_la1
|
|
lda #$28
|
|
cmp.z y
|
|
bne __b1
|
|
// bitmap_clear::@return
|
|
// }
|
|
// [48] return
|
|
rts
|
|
}
|
|
// init_screen
|
|
init_screen: {
|
|
.label c = 7
|
|
// [50] phi from init_screen to init_screen::@1 [phi:init_screen->init_screen::@1]
|
|
// [50] phi (byte*) init_screen::c#2 = (const nomodify byte*) SCREEN [phi:init_screen->init_screen::@1#0] -- pbuz1=pbuc1
|
|
lda #<SCREEN
|
|
sta.z c
|
|
lda #>SCREEN
|
|
sta.z c+1
|
|
// init_screen::@1
|
|
__b1:
|
|
// for(byte* c = SCREEN; c!=SCREEN+$400;c++)
|
|
// [51] if((byte*) init_screen::c#2!=(const nomodify byte*) SCREEN+(word) $400) goto init_screen::@2 -- pbuz1_neq_pbuc1_then_la1
|
|
lda.z c+1
|
|
cmp #>SCREEN+$400
|
|
bne __b2
|
|
lda.z c
|
|
cmp #<SCREEN+$400
|
|
bne __b2
|
|
// init_screen::@return
|
|
// }
|
|
// [52] return
|
|
rts
|
|
// init_screen::@2
|
|
__b2:
|
|
// *c = $14
|
|
// [53] *((byte*) init_screen::c#2) ← (byte) $14 -- _deref_pbuz1=vbuc1
|
|
lda #$14
|
|
ldy #0
|
|
sta (c),y
|
|
// for(byte* c = SCREEN; c!=SCREEN+$400;c++)
|
|
// [54] (byte*) init_screen::c#1 ← ++ (byte*) init_screen::c#2 -- pbuz1=_inc_pbuz1
|
|
inc.z c
|
|
bne !+
|
|
inc.z c+1
|
|
!:
|
|
// [50] phi from init_screen::@2 to init_screen::@1 [phi:init_screen::@2->init_screen::@1]
|
|
// [50] phi (byte*) init_screen::c#2 = (byte*) init_screen::c#1 [phi:init_screen::@2->init_screen::@1#0] -- register_copy
|
|
jmp __b1
|
|
}
|
|
// bitmap_line
|
|
// Draw a line on the bitmap
|
|
// bitmap_line(byte register(A) x1)
|
|
bitmap_line: {
|
|
.label x0 = 0
|
|
.label y0 = 0
|
|
.label y1 = $64
|
|
// if(x0<x1)
|
|
// [55] if((const byte) bitmap_line::x0#0<(byte) bitmap_line::x1#0) goto bitmap_line::@1 -- vbuc1_lt_vbuaa_then_la1
|
|
cmp #x0
|
|
beq !+
|
|
bcs __b1
|
|
!:
|
|
// bitmap_line::@2
|
|
// xd = x0-x1
|
|
// [56] (byte) bitmap_line::xd#2 ← (byte) bitmap_line::x1#0 -- vbuxx=vbuaa
|
|
tax
|
|
// bitmap_line::@3
|
|
// if(yd<xd)
|
|
// [57] if((const byte) bitmap_line::y1#0<(byte) bitmap_line::xd#2) goto bitmap_line::@4 -- vbuc1_lt_vbuxx_then_la1
|
|
cpx #y1
|
|
beq !+
|
|
bcs __b4
|
|
!:
|
|
// bitmap_line::@5
|
|
// bitmap_line_ydxd(y0, x0, y1, yd, xd)
|
|
// [58] (byte) bitmap_line_ydxd::xd#0 ← (byte) bitmap_line::xd#2 -- vbuz1=vbuxx
|
|
stx.z bitmap_line_ydxd.xd
|
|
// [59] call bitmap_line_ydxd
|
|
jsr bitmap_line_ydxd
|
|
// bitmap_line::@return
|
|
// }
|
|
// [60] return
|
|
rts
|
|
// bitmap_line::@4
|
|
__b4:
|
|
// bitmap_line_xdyd(x1, y1, x0, xd, yd)
|
|
// [61] (byte) bitmap_line_xdyd::x#0 ← (byte) bitmap_line::x1#0 -- vbuz1=vbuaa
|
|
sta.z bitmap_line_xdyd.x
|
|
// [62] (byte) bitmap_line_xdyd::xd#0 ← (byte) bitmap_line::xd#2 -- vbuz1=vbuxx
|
|
stx.z bitmap_line_xdyd.xd
|
|
// [63] call bitmap_line_xdyd
|
|
// [84] phi from bitmap_line::@4 to bitmap_line_xdyd [phi:bitmap_line::@4->bitmap_line_xdyd]
|
|
jsr bitmap_line_xdyd
|
|
rts
|
|
// bitmap_line::@1
|
|
__b1:
|
|
// xd = x1-x0
|
|
// [64] (byte) bitmap_line::xd#1 ← (byte) bitmap_line::x1#0 -- vbuxx=vbuaa
|
|
tax
|
|
// bitmap_line::@6
|
|
// if(yd<xd)
|
|
// [65] if((const byte) bitmap_line::y1#0<(byte) bitmap_line::xd#1) goto bitmap_line::@7 -- vbuc1_lt_vbuxx_then_la1
|
|
cpx #y1
|
|
beq !+
|
|
bcs __b7
|
|
!:
|
|
// bitmap_line::@8
|
|
// bitmap_line_ydxi(y0, x0, y1, yd, xd)
|
|
// [66] (byte) bitmap_line_ydxi::xd#1 ← (byte) bitmap_line::xd#1 -- vbuz1=vbuxx
|
|
stx.z bitmap_line_ydxi.xd
|
|
// [67] call bitmap_line_ydxi
|
|
jsr bitmap_line_ydxi
|
|
rts
|
|
// bitmap_line::@7
|
|
__b7:
|
|
// bitmap_line_xdyi(x0, y0, x1, xd, yd)
|
|
// [68] (byte) bitmap_line_xdyi::x1#1 ← (byte) bitmap_line::x1#0 -- vbuz1=vbuaa
|
|
sta.z bitmap_line_xdyi.x1
|
|
// [69] (byte) bitmap_line_xdyi::xd#1 ← (byte) bitmap_line::xd#1 -- vbuz1=vbuxx
|
|
stx.z bitmap_line_xdyi.xd
|
|
// [70] call bitmap_line_xdyi
|
|
// [110] phi from bitmap_line::@7 to bitmap_line_xdyi [phi:bitmap_line::@7->bitmap_line_xdyi]
|
|
jsr bitmap_line_xdyi
|
|
rts
|
|
}
|
|
// bitmap_line_ydxd
|
|
// bitmap_line_ydxd(byte zp(3) y, byte zp(2) x, byte zp(6) xd)
|
|
bitmap_line_ydxd: {
|
|
.label xd = 6
|
|
.label e = 4
|
|
.label y = 3
|
|
.label x = 2
|
|
// e = xd>>1
|
|
// [71] (byte) bitmap_line_ydxd::e#0 ← (byte) bitmap_line_ydxd::xd#0 >> (byte) 1 -- vbuz1=vbuz2_ror_1
|
|
lda.z xd
|
|
lsr
|
|
sta.z e
|
|
// [72] phi from bitmap_line_ydxd to bitmap_line_ydxd::@1 [phi:bitmap_line_ydxd->bitmap_line_ydxd::@1]
|
|
// [72] phi (byte) bitmap_line_ydxd::e#3 = (byte) bitmap_line_ydxd::e#0 [phi:bitmap_line_ydxd->bitmap_line_ydxd::@1#0] -- register_copy
|
|
// [72] phi (byte) bitmap_line_ydxd::y#2 = (const byte) bitmap_line::y0#0 [phi:bitmap_line_ydxd->bitmap_line_ydxd::@1#1] -- vbuz1=vbuc1
|
|
lda #bitmap_line.y0
|
|
sta.z y
|
|
// [72] phi (byte) bitmap_line_ydxd::x#3 = (const byte) bitmap_line::x0#0 [phi:bitmap_line_ydxd->bitmap_line_ydxd::@1#2] -- vbuz1=vbuc1
|
|
lda #bitmap_line.x0
|
|
sta.z x
|
|
// [72] phi from bitmap_line_ydxd::@2 to bitmap_line_ydxd::@1 [phi:bitmap_line_ydxd::@2->bitmap_line_ydxd::@1]
|
|
// [72] phi (byte) bitmap_line_ydxd::e#3 = (byte) bitmap_line_ydxd::e#6 [phi:bitmap_line_ydxd::@2->bitmap_line_ydxd::@1#0] -- register_copy
|
|
// [72] phi (byte) bitmap_line_ydxd::y#2 = (byte) bitmap_line_ydxd::y#3 [phi:bitmap_line_ydxd::@2->bitmap_line_ydxd::@1#1] -- register_copy
|
|
// [72] phi (byte) bitmap_line_ydxd::x#3 = (byte) bitmap_line_ydxd::x#6 [phi:bitmap_line_ydxd::@2->bitmap_line_ydxd::@1#2] -- register_copy
|
|
// bitmap_line_ydxd::@1
|
|
__b1:
|
|
// bitmap_plot(x,y)
|
|
// [73] (byte) bitmap_plot::x#3 ← (byte) bitmap_line_ydxd::x#3 -- vbuxx=vbuz1
|
|
ldx.z x
|
|
// [74] (byte) bitmap_plot::y#3 ← (byte) bitmap_line_ydxd::y#2 -- vbuyy=vbuz1
|
|
ldy.z y
|
|
// [75] call bitmap_plot
|
|
// [124] phi from bitmap_line_ydxd::@1 to bitmap_plot [phi:bitmap_line_ydxd::@1->bitmap_plot]
|
|
// [124] phi (byte) bitmap_plot::y#4 = (byte) bitmap_plot::y#3 [phi:bitmap_line_ydxd::@1->bitmap_plot#0] -- register_copy
|
|
// [124] phi (byte) bitmap_plot::x#4 = (byte) bitmap_plot::x#3 [phi:bitmap_line_ydxd::@1->bitmap_plot#1] -- register_copy
|
|
jsr bitmap_plot
|
|
// bitmap_line_ydxd::@4
|
|
// y = y++;
|
|
// [76] (byte) bitmap_line_ydxd::y#3 ← ++ (byte) bitmap_line_ydxd::y#2 -- vbuz1=_inc_vbuz1
|
|
inc.z y
|
|
// e = e+xd
|
|
// [77] (byte) bitmap_line_ydxd::e#1 ← (byte) bitmap_line_ydxd::e#3 + (byte) bitmap_line_ydxd::xd#0 -- vbuz1=vbuz1_plus_vbuz2
|
|
lda.z e
|
|
clc
|
|
adc.z xd
|
|
sta.z e
|
|
// if(yd<e)
|
|
// [78] if((const byte) bitmap_line::y1#0>=(byte) bitmap_line_ydxd::e#1) goto bitmap_line_ydxd::@2 -- vbuc1_ge_vbuz1_then_la1
|
|
lda #bitmap_line.y1
|
|
cmp.z e
|
|
bcs __b2
|
|
// bitmap_line_ydxd::@3
|
|
// x--;
|
|
// [79] (byte) bitmap_line_ydxd::x#2 ← -- (byte) bitmap_line_ydxd::x#3 -- vbuz1=_dec_vbuz1
|
|
dec.z x
|
|
// e = e - yd
|
|
// [80] (byte) bitmap_line_ydxd::e#2 ← (byte) bitmap_line_ydxd::e#1 - (const byte) bitmap_line::y1#0 -- vbuz1=vbuz1_minus_vbuc1
|
|
lax.z e
|
|
axs #bitmap_line.y1
|
|
stx.z e
|
|
// [81] phi from bitmap_line_ydxd::@3 bitmap_line_ydxd::@4 to bitmap_line_ydxd::@2 [phi:bitmap_line_ydxd::@3/bitmap_line_ydxd::@4->bitmap_line_ydxd::@2]
|
|
// [81] phi (byte) bitmap_line_ydxd::e#6 = (byte) bitmap_line_ydxd::e#2 [phi:bitmap_line_ydxd::@3/bitmap_line_ydxd::@4->bitmap_line_ydxd::@2#0] -- register_copy
|
|
// [81] phi (byte) bitmap_line_ydxd::x#6 = (byte) bitmap_line_ydxd::x#2 [phi:bitmap_line_ydxd::@3/bitmap_line_ydxd::@4->bitmap_line_ydxd::@2#1] -- register_copy
|
|
// bitmap_line_ydxd::@2
|
|
__b2:
|
|
// while (y!=(y1+1))
|
|
// [82] if((byte) bitmap_line_ydxd::y#3!=(const byte) bitmap_line::y1#0+(byte) 1) goto bitmap_line_ydxd::@1 -- vbuz1_neq_vbuc1_then_la1
|
|
lda #bitmap_line.y1+1
|
|
cmp.z y
|
|
bne __b1
|
|
// bitmap_line_ydxd::@return
|
|
// }
|
|
// [83] return
|
|
rts
|
|
}
|
|
// bitmap_line_xdyd
|
|
// bitmap_line_xdyd(byte zp(2) x, byte zp(3) y, byte zp(6) xd)
|
|
bitmap_line_xdyd: {
|
|
.label x = 2
|
|
.label xd = 6
|
|
.label e = 4
|
|
.label y = 3
|
|
// [85] phi from bitmap_line_xdyd to bitmap_line_xdyd::@1 [phi:bitmap_line_xdyd->bitmap_line_xdyd::@1]
|
|
// [85] phi (byte) bitmap_line_xdyd::e#3 = (const byte) bitmap_line::y1#0>>(byte) 1 [phi:bitmap_line_xdyd->bitmap_line_xdyd::@1#0] -- vbuz1=vbuc1
|
|
lda #bitmap_line.y1>>1
|
|
sta.z e
|
|
// [85] phi (byte) bitmap_line_xdyd::y#3 = (const byte) bitmap_line::y1#0 [phi:bitmap_line_xdyd->bitmap_line_xdyd::@1#1] -- vbuz1=vbuc1
|
|
lda #bitmap_line.y1
|
|
sta.z y
|
|
// [85] phi (byte) bitmap_line_xdyd::x#3 = (byte) bitmap_line_xdyd::x#0 [phi:bitmap_line_xdyd->bitmap_line_xdyd::@1#2] -- register_copy
|
|
// [85] phi from bitmap_line_xdyd::@2 to bitmap_line_xdyd::@1 [phi:bitmap_line_xdyd::@2->bitmap_line_xdyd::@1]
|
|
// [85] phi (byte) bitmap_line_xdyd::e#3 = (byte) bitmap_line_xdyd::e#6 [phi:bitmap_line_xdyd::@2->bitmap_line_xdyd::@1#0] -- register_copy
|
|
// [85] phi (byte) bitmap_line_xdyd::y#3 = (byte) bitmap_line_xdyd::y#6 [phi:bitmap_line_xdyd::@2->bitmap_line_xdyd::@1#1] -- register_copy
|
|
// [85] phi (byte) bitmap_line_xdyd::x#3 = (byte) bitmap_line_xdyd::x#2 [phi:bitmap_line_xdyd::@2->bitmap_line_xdyd::@1#2] -- register_copy
|
|
// bitmap_line_xdyd::@1
|
|
__b1:
|
|
// bitmap_plot(x,y)
|
|
// [86] (byte) bitmap_plot::x#1 ← (byte) bitmap_line_xdyd::x#3 -- vbuxx=vbuz1
|
|
ldx.z x
|
|
// [87] (byte) bitmap_plot::y#1 ← (byte) bitmap_line_xdyd::y#3 -- vbuyy=vbuz1
|
|
ldy.z y
|
|
// [88] call bitmap_plot
|
|
// [124] phi from bitmap_line_xdyd::@1 to bitmap_plot [phi:bitmap_line_xdyd::@1->bitmap_plot]
|
|
// [124] phi (byte) bitmap_plot::y#4 = (byte) bitmap_plot::y#1 [phi:bitmap_line_xdyd::@1->bitmap_plot#0] -- register_copy
|
|
// [124] phi (byte) bitmap_plot::x#4 = (byte) bitmap_plot::x#1 [phi:bitmap_line_xdyd::@1->bitmap_plot#1] -- register_copy
|
|
jsr bitmap_plot
|
|
// bitmap_line_xdyd::@4
|
|
// x++;
|
|
// [89] (byte) bitmap_line_xdyd::x#2 ← ++ (byte) bitmap_line_xdyd::x#3 -- vbuz1=_inc_vbuz1
|
|
inc.z x
|
|
// e = e+yd
|
|
// [90] (byte) bitmap_line_xdyd::e#1 ← (byte) bitmap_line_xdyd::e#3 + (const byte) bitmap_line::y1#0 -- vbuz1=vbuz1_plus_vbuc1
|
|
lax.z e
|
|
axs #-[bitmap_line.y1]
|
|
stx.z e
|
|
// if(xd<e)
|
|
// [91] if((byte) bitmap_line_xdyd::xd#0>=(byte) bitmap_line_xdyd::e#1) goto bitmap_line_xdyd::@2 -- vbuz1_ge_vbuz2_then_la1
|
|
lda.z xd
|
|
cmp.z e
|
|
bcs __b2
|
|
// bitmap_line_xdyd::@3
|
|
// y--;
|
|
// [92] (byte) bitmap_line_xdyd::y#2 ← -- (byte) bitmap_line_xdyd::y#3 -- vbuz1=_dec_vbuz1
|
|
dec.z y
|
|
// e = e - xd
|
|
// [93] (byte) bitmap_line_xdyd::e#2 ← (byte) bitmap_line_xdyd::e#1 - (byte) bitmap_line_xdyd::xd#0 -- vbuz1=vbuz1_minus_vbuz2
|
|
txa
|
|
sec
|
|
sbc.z xd
|
|
sta.z e
|
|
// [94] phi from bitmap_line_xdyd::@3 bitmap_line_xdyd::@4 to bitmap_line_xdyd::@2 [phi:bitmap_line_xdyd::@3/bitmap_line_xdyd::@4->bitmap_line_xdyd::@2]
|
|
// [94] phi (byte) bitmap_line_xdyd::e#6 = (byte) bitmap_line_xdyd::e#2 [phi:bitmap_line_xdyd::@3/bitmap_line_xdyd::@4->bitmap_line_xdyd::@2#0] -- register_copy
|
|
// [94] phi (byte) bitmap_line_xdyd::y#6 = (byte) bitmap_line_xdyd::y#2 [phi:bitmap_line_xdyd::@3/bitmap_line_xdyd::@4->bitmap_line_xdyd::@2#1] -- register_copy
|
|
// bitmap_line_xdyd::@2
|
|
__b2:
|
|
// while (x!=(x1+1))
|
|
// [95] if((byte) bitmap_line_xdyd::x#2!=(byte) 1) goto bitmap_line_xdyd::@1 -- vbuz1_neq_vbuc1_then_la1
|
|
lda #1
|
|
cmp.z x
|
|
bne __b1
|
|
// bitmap_line_xdyd::@return
|
|
// }
|
|
// [96] return
|
|
rts
|
|
}
|
|
// bitmap_line_ydxi
|
|
// bitmap_line_ydxi(byte zp(3) y, byte zp(2) x, byte zp(6) xd)
|
|
bitmap_line_ydxi: {
|
|
.label xd = 6
|
|
.label e = 4
|
|
.label y = 3
|
|
.label x = 2
|
|
// e = xd>>1
|
|
// [97] (byte) bitmap_line_ydxi::e#0 ← (byte) bitmap_line_ydxi::xd#1 >> (byte) 1 -- vbuz1=vbuz2_ror_1
|
|
lda.z xd
|
|
lsr
|
|
sta.z e
|
|
// [98] phi from bitmap_line_ydxi to bitmap_line_ydxi::@1 [phi:bitmap_line_ydxi->bitmap_line_ydxi::@1]
|
|
// [98] phi (byte) bitmap_line_ydxi::e#3 = (byte) bitmap_line_ydxi::e#0 [phi:bitmap_line_ydxi->bitmap_line_ydxi::@1#0] -- register_copy
|
|
// [98] phi (byte) bitmap_line_ydxi::y#3 = (const byte) bitmap_line::y0#0 [phi:bitmap_line_ydxi->bitmap_line_ydxi::@1#1] -- vbuz1=vbuc1
|
|
lda #bitmap_line.y0
|
|
sta.z y
|
|
// [98] phi (byte) bitmap_line_ydxi::x#3 = (const byte) bitmap_line::x0#0 [phi:bitmap_line_ydxi->bitmap_line_ydxi::@1#2] -- vbuz1=vbuc1
|
|
lda #bitmap_line.x0
|
|
sta.z x
|
|
// [98] phi from bitmap_line_ydxi::@2 to bitmap_line_ydxi::@1 [phi:bitmap_line_ydxi::@2->bitmap_line_ydxi::@1]
|
|
// [98] phi (byte) bitmap_line_ydxi::e#3 = (byte) bitmap_line_ydxi::e#6 [phi:bitmap_line_ydxi::@2->bitmap_line_ydxi::@1#0] -- register_copy
|
|
// [98] phi (byte) bitmap_line_ydxi::y#3 = (byte) bitmap_line_ydxi::y#2 [phi:bitmap_line_ydxi::@2->bitmap_line_ydxi::@1#1] -- register_copy
|
|
// [98] phi (byte) bitmap_line_ydxi::x#3 = (byte) bitmap_line_ydxi::x#6 [phi:bitmap_line_ydxi::@2->bitmap_line_ydxi::@1#2] -- register_copy
|
|
// bitmap_line_ydxi::@1
|
|
__b1:
|
|
// bitmap_plot(x,y)
|
|
// [99] (byte) bitmap_plot::x#2 ← (byte) bitmap_line_ydxi::x#3 -- vbuxx=vbuz1
|
|
ldx.z x
|
|
// [100] (byte) bitmap_plot::y#2 ← (byte) bitmap_line_ydxi::y#3 -- vbuyy=vbuz1
|
|
ldy.z y
|
|
// [101] call bitmap_plot
|
|
// [124] phi from bitmap_line_ydxi::@1 to bitmap_plot [phi:bitmap_line_ydxi::@1->bitmap_plot]
|
|
// [124] phi (byte) bitmap_plot::y#4 = (byte) bitmap_plot::y#2 [phi:bitmap_line_ydxi::@1->bitmap_plot#0] -- register_copy
|
|
// [124] phi (byte) bitmap_plot::x#4 = (byte) bitmap_plot::x#2 [phi:bitmap_line_ydxi::@1->bitmap_plot#1] -- register_copy
|
|
jsr bitmap_plot
|
|
// bitmap_line_ydxi::@4
|
|
// y++;
|
|
// [102] (byte) bitmap_line_ydxi::y#2 ← ++ (byte) bitmap_line_ydxi::y#3 -- vbuz1=_inc_vbuz1
|
|
inc.z y
|
|
// e = e+xd
|
|
// [103] (byte) bitmap_line_ydxi::e#1 ← (byte) bitmap_line_ydxi::e#3 + (byte) bitmap_line_ydxi::xd#1 -- vbuz1=vbuz1_plus_vbuz2
|
|
lda.z e
|
|
clc
|
|
adc.z xd
|
|
sta.z e
|
|
// if(yd<e)
|
|
// [104] if((const byte) bitmap_line::y1#0>=(byte) bitmap_line_ydxi::e#1) goto bitmap_line_ydxi::@2 -- vbuc1_ge_vbuz1_then_la1
|
|
lda #bitmap_line.y1
|
|
cmp.z e
|
|
bcs __b2
|
|
// bitmap_line_ydxi::@3
|
|
// x++;
|
|
// [105] (byte) bitmap_line_ydxi::x#2 ← ++ (byte) bitmap_line_ydxi::x#3 -- vbuz1=_inc_vbuz1
|
|
inc.z x
|
|
// e = e - yd
|
|
// [106] (byte) bitmap_line_ydxi::e#2 ← (byte) bitmap_line_ydxi::e#1 - (const byte) bitmap_line::y1#0 -- vbuz1=vbuz1_minus_vbuc1
|
|
lax.z e
|
|
axs #bitmap_line.y1
|
|
stx.z e
|
|
// [107] phi from bitmap_line_ydxi::@3 bitmap_line_ydxi::@4 to bitmap_line_ydxi::@2 [phi:bitmap_line_ydxi::@3/bitmap_line_ydxi::@4->bitmap_line_ydxi::@2]
|
|
// [107] phi (byte) bitmap_line_ydxi::e#6 = (byte) bitmap_line_ydxi::e#2 [phi:bitmap_line_ydxi::@3/bitmap_line_ydxi::@4->bitmap_line_ydxi::@2#0] -- register_copy
|
|
// [107] phi (byte) bitmap_line_ydxi::x#6 = (byte) bitmap_line_ydxi::x#2 [phi:bitmap_line_ydxi::@3/bitmap_line_ydxi::@4->bitmap_line_ydxi::@2#1] -- register_copy
|
|
// bitmap_line_ydxi::@2
|
|
__b2:
|
|
// while (y!=(y1+1))
|
|
// [108] if((byte) bitmap_line_ydxi::y#2!=(const byte) bitmap_line::y1#0+(byte) 1) goto bitmap_line_ydxi::@1 -- vbuz1_neq_vbuc1_then_la1
|
|
lda #bitmap_line.y1+1
|
|
cmp.z y
|
|
bne __b1
|
|
// bitmap_line_ydxi::@return
|
|
// }
|
|
// [109] return
|
|
rts
|
|
}
|
|
// bitmap_line_xdyi
|
|
// bitmap_line_xdyi(byte zp(2) x, byte zp(3) y, byte zp(5) x1, byte zp(6) xd)
|
|
bitmap_line_xdyi: {
|
|
.label x1 = 5
|
|
.label xd = 6
|
|
.label x = 2
|
|
.label e = 4
|
|
.label y = 3
|
|
// [111] phi from bitmap_line_xdyi to bitmap_line_xdyi::@1 [phi:bitmap_line_xdyi->bitmap_line_xdyi::@1]
|
|
// [111] phi (byte) bitmap_line_xdyi::e#3 = (const byte) bitmap_line::y1#0>>(byte) 1 [phi:bitmap_line_xdyi->bitmap_line_xdyi::@1#0] -- vbuz1=vbuc1
|
|
lda #bitmap_line.y1>>1
|
|
sta.z e
|
|
// [111] phi (byte) bitmap_line_xdyi::y#3 = (const byte) bitmap_line::y0#0 [phi:bitmap_line_xdyi->bitmap_line_xdyi::@1#1] -- vbuz1=vbuc1
|
|
lda #bitmap_line.y0
|
|
sta.z y
|
|
// [111] phi (byte) bitmap_line_xdyi::x#3 = (const byte) bitmap_line::x0#0 [phi:bitmap_line_xdyi->bitmap_line_xdyi::@1#2] -- vbuz1=vbuc1
|
|
lda #bitmap_line.x0
|
|
sta.z x
|
|
// [111] phi from bitmap_line_xdyi::@2 to bitmap_line_xdyi::@1 [phi:bitmap_line_xdyi::@2->bitmap_line_xdyi::@1]
|
|
// [111] phi (byte) bitmap_line_xdyi::e#3 = (byte) bitmap_line_xdyi::e#6 [phi:bitmap_line_xdyi::@2->bitmap_line_xdyi::@1#0] -- register_copy
|
|
// [111] phi (byte) bitmap_line_xdyi::y#3 = (byte) bitmap_line_xdyi::y#6 [phi:bitmap_line_xdyi::@2->bitmap_line_xdyi::@1#1] -- register_copy
|
|
// [111] phi (byte) bitmap_line_xdyi::x#3 = (byte) bitmap_line_xdyi::x#2 [phi:bitmap_line_xdyi::@2->bitmap_line_xdyi::@1#2] -- register_copy
|
|
// bitmap_line_xdyi::@1
|
|
__b1:
|
|
// bitmap_plot(x,y)
|
|
// [112] (byte) bitmap_plot::x#0 ← (byte) bitmap_line_xdyi::x#3 -- vbuxx=vbuz1
|
|
ldx.z x
|
|
// [113] (byte) bitmap_plot::y#0 ← (byte) bitmap_line_xdyi::y#3 -- vbuyy=vbuz1
|
|
ldy.z y
|
|
// [114] call bitmap_plot
|
|
// [124] phi from bitmap_line_xdyi::@1 to bitmap_plot [phi:bitmap_line_xdyi::@1->bitmap_plot]
|
|
// [124] phi (byte) bitmap_plot::y#4 = (byte) bitmap_plot::y#0 [phi:bitmap_line_xdyi::@1->bitmap_plot#0] -- register_copy
|
|
// [124] phi (byte) bitmap_plot::x#4 = (byte) bitmap_plot::x#0 [phi:bitmap_line_xdyi::@1->bitmap_plot#1] -- register_copy
|
|
jsr bitmap_plot
|
|
// bitmap_line_xdyi::@4
|
|
// x++;
|
|
// [115] (byte) bitmap_line_xdyi::x#2 ← ++ (byte) bitmap_line_xdyi::x#3 -- vbuz1=_inc_vbuz1
|
|
inc.z x
|
|
// e = e+yd
|
|
// [116] (byte) bitmap_line_xdyi::e#1 ← (byte) bitmap_line_xdyi::e#3 + (const byte) bitmap_line::y1#0 -- vbuz1=vbuz1_plus_vbuc1
|
|
lax.z e
|
|
axs #-[bitmap_line.y1]
|
|
stx.z e
|
|
// if(xd<e)
|
|
// [117] if((byte) bitmap_line_xdyi::xd#1>=(byte) bitmap_line_xdyi::e#1) goto bitmap_line_xdyi::@2 -- vbuz1_ge_vbuz2_then_la1
|
|
lda.z xd
|
|
cmp.z e
|
|
bcs __b2
|
|
// bitmap_line_xdyi::@3
|
|
// y++;
|
|
// [118] (byte) bitmap_line_xdyi::y#2 ← ++ (byte) bitmap_line_xdyi::y#3 -- vbuz1=_inc_vbuz1
|
|
inc.z y
|
|
// e = e - xd
|
|
// [119] (byte) bitmap_line_xdyi::e#2 ← (byte) bitmap_line_xdyi::e#1 - (byte) bitmap_line_xdyi::xd#1 -- vbuz1=vbuz1_minus_vbuz2
|
|
txa
|
|
sec
|
|
sbc.z xd
|
|
sta.z e
|
|
// [120] phi from bitmap_line_xdyi::@3 bitmap_line_xdyi::@4 to bitmap_line_xdyi::@2 [phi:bitmap_line_xdyi::@3/bitmap_line_xdyi::@4->bitmap_line_xdyi::@2]
|
|
// [120] phi (byte) bitmap_line_xdyi::e#6 = (byte) bitmap_line_xdyi::e#2 [phi:bitmap_line_xdyi::@3/bitmap_line_xdyi::@4->bitmap_line_xdyi::@2#0] -- register_copy
|
|
// [120] phi (byte) bitmap_line_xdyi::y#6 = (byte) bitmap_line_xdyi::y#2 [phi:bitmap_line_xdyi::@3/bitmap_line_xdyi::@4->bitmap_line_xdyi::@2#1] -- register_copy
|
|
// bitmap_line_xdyi::@2
|
|
__b2:
|
|
// x1+1
|
|
// [121] (byte~) bitmap_line_xdyi::$6 ← (byte) bitmap_line_xdyi::x1#1 + (byte) 1 -- vbuxx=vbuz1_plus_1
|
|
ldx.z x1
|
|
inx
|
|
// while (x!=(x1+1))
|
|
// [122] if((byte) bitmap_line_xdyi::x#2!=(byte~) bitmap_line_xdyi::$6) goto bitmap_line_xdyi::@1 -- vbuz1_neq_vbuxx_then_la1
|
|
cpx.z x
|
|
bne __b1
|
|
// bitmap_line_xdyi::@return
|
|
// }
|
|
// [123] return
|
|
rts
|
|
}
|
|
// bitmap_plot
|
|
// bitmap_plot(byte register(X) x, byte register(Y) y)
|
|
bitmap_plot: {
|
|
.label plotter_x = 7
|
|
.label plotter_y = 9
|
|
.label plotter = 7
|
|
// plotter_x = { bitmap_plot_xhi[x], bitmap_plot_xlo[x] }
|
|
// [125] (word) bitmap_plot::plotter_x#0 ← *((const to_nomodify byte*) bitmap_plot_xhi + (byte) bitmap_plot::x#4) w= *((const to_nomodify byte*) bitmap_plot_xlo + (byte) bitmap_plot::x#4) -- vwuz1=pbuc1_derefidx_vbuxx_word_pbuc2_derefidx_vbuxx
|
|
lda bitmap_plot_xhi,x
|
|
sta.z plotter_x+1
|
|
lda bitmap_plot_xlo,x
|
|
sta.z plotter_x
|
|
// plotter_y = { bitmap_plot_yhi[y], bitmap_plot_ylo[y] }
|
|
// [126] (word) bitmap_plot::plotter_y#0 ← *((const to_nomodify byte*) bitmap_plot_yhi + (byte) bitmap_plot::y#4) w= *((const to_nomodify byte*) bitmap_plot_ylo + (byte) bitmap_plot::y#4) -- vwuz1=pbuc1_derefidx_vbuyy_word_pbuc2_derefidx_vbuyy
|
|
lda bitmap_plot_yhi,y
|
|
sta.z plotter_y+1
|
|
lda bitmap_plot_ylo,y
|
|
sta.z plotter_y
|
|
// plotter_x+plotter_y
|
|
// [127] (word) bitmap_plot::plotter#0 ← (word) bitmap_plot::plotter_x#0 + (word) bitmap_plot::plotter_y#0 -- vwuz1=vwuz1_plus_vwuz2
|
|
lda.z plotter
|
|
clc
|
|
adc.z plotter_y
|
|
sta.z plotter
|
|
lda.z plotter+1
|
|
adc.z plotter_y+1
|
|
sta.z plotter+1
|
|
// *plotter | bitmap_plot_bit[x]
|
|
// [128] (byte~) bitmap_plot::$1 ← *((byte*)(word) bitmap_plot::plotter#0) | *((const to_nomodify byte*) bitmap_plot_bit + (byte) bitmap_plot::x#4) -- vbuaa=_deref_pbuz1_bor_pbuc1_derefidx_vbuxx
|
|
lda bitmap_plot_bit,x
|
|
ldy #0
|
|
ora (plotter),y
|
|
// *plotter = *plotter | bitmap_plot_bit[x]
|
|
// [129] *((byte*)(word) bitmap_plot::plotter#0) ← (byte~) bitmap_plot::$1 -- _deref_pbuz1=vbuaa
|
|
sta (plotter),y
|
|
// bitmap_plot::@return
|
|
// }
|
|
// [130] return
|
|
rts
|
|
}
|
|
// File Data
|
|
// Tables for the plotter - initialized by calling bitmap_draw_init();
|
|
bitmap_plot_xlo: .fill $100, 0
|
|
bitmap_plot_xhi: .fill $100, 0
|
|
bitmap_plot_ylo: .fill $100, 0
|
|
bitmap_plot_yhi: .fill $100, 0
|
|
bitmap_plot_bit: .fill $100, 0
|
|
|