Inlined call (byte~) vicSelectGfxBank::$0 ← call toDd00 (byte*) vicSelectGfxBank::gfx 
Culled Empty Block (label) @1
Culled Empty Block (label) @2
Culled Empty Block (label) @3
Culled Empty Block (label) @4
Culled Empty Block (label) bitmap_init::@8
Culled Empty Block (label) @5
Culled Empty Block (label) bitmap_clear::@4
Culled Empty Block (label) @6
Culled Empty Block (label) @7
Culled Empty Block (label) bitmap_line::@12
Culled Empty Block (label) bitmap_line::@6
Culled Empty Block (label) bitmap_line::@14
Culled Empty Block (label) bitmap_line::@13
Culled Empty Block (label) bitmap_line::@16
Culled Empty Block (label) bitmap_line::@18
Culled Empty Block (label) bitmap_line::@2
Culled Empty Block (label) bitmap_line::@19
Culled Empty Block (label) bitmap_line::@22
Culled Empty Block (label) bitmap_line::@9
Culled Empty Block (label) bitmap_line::@24
Culled Empty Block (label) bitmap_line::@23
Culled Empty Block (label) bitmap_line::@26
Culled Empty Block (label) bitmap_line::@28
Culled Empty Block (label) @8
Culled Empty Block (label) bitmap_line_xdyi::@4
Culled Empty Block (label) @9
Culled Empty Block (label) bitmap_line_xdyd::@4
Culled Empty Block (label) @10
Culled Empty Block (label) bitmap_line_ydxi::@4
Culled Empty Block (label) @11
Culled Empty Block (label) bitmap_line_ydxd::@4
Culled Empty Block (label) main::@2
Culled Empty Block (label) @13
Culled Empty Block (label) init_screen::@4
Culled Empty Block (label) init_screen::@3
Culled Empty Block (label) init_screen::@5
Culled Empty Block (label) init_screen::@6

CONTROL FLOW GRAPH SSA
@begin: scope:[]  from
  to:@12

(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 byte*) bitmap_plot_xlo + (byte) bitmap_init::x#2) ← (number~) bitmap_init::$0
  (byte~) bitmap_init::$1 ← > (byte*) bitmap_init::bitmap#1
  *((const byte*) bitmap_plot_xhi + (byte) bitmap_init::x#2) ← (byte~) bitmap_init::$1
  *((const 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 byte*) bitmap_plot_ylo + (byte) bitmap_init::y#2) ← (number~) bitmap_init::$8
  (byte~) bitmap_init::$9 ← > (byte*) bitmap_init::yoffs#2
  *((const 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::@3
  (byte*~) bitmap_clear::$0 ← ((byte*)) { *((const byte*) bitmap_plot_xhi + (number) 0), *((const byte*) bitmap_plot_xlo + (number) 0) }
  (byte*) bitmap_clear::bitmap#0 ← (byte*~) bitmap_clear::$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::$1 ← (byte) bitmap_clear::x#1 != rangelast(0,$c7)
  if((bool~) bitmap_clear::$1) 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::$2 ← (byte) bitmap_clear::y#1 != rangelast(0,$27)
  if((bool~) bitmap_clear::$2) 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 byte*) bitmap_plot_xhi + (byte) bitmap_plot::x#4), *((const byte*) bitmap_plot_xlo + (byte) bitmap_plot::x#4) }
  (word) bitmap_plot::plotter_y#0 ← (word){ *((const byte*) bitmap_plot_yhi + (byte) bitmap_plot::y#4), *((const 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 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::@3
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::@20
  to:bitmap_line::@7
bitmap_line::@3: 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::@10
  to:bitmap_line::@4
bitmap_line::@10: scope:[bitmap_line]  from bitmap_line::@3
  (byte) bitmap_line::x0#11 ← phi( bitmap_line::@3/(byte) bitmap_line::x0#3 )
  (byte) bitmap_line::x1#11 ← phi( bitmap_line::@3/(byte) bitmap_line::x1#3 )
  (byte) bitmap_line::xd#3 ← phi( bitmap_line::@3/(byte) bitmap_line::xd#2 )
  (byte) bitmap_line::y0#3 ← phi( bitmap_line::@3/(byte) bitmap_line::y0#2 )
  (byte) bitmap_line::y1#3 ← phi( bitmap_line::@3/(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::@15
  to:bitmap_line::@17
bitmap_line::@4: scope:[bitmap_line]  from bitmap_line::@3
  (byte) bitmap_line::x0#10 ← phi( bitmap_line::@3/(byte) bitmap_line::x0#3 )
  (byte) bitmap_line::x1#10 ← phi( bitmap_line::@3/(byte) bitmap_line::x1#3 )
  (byte) bitmap_line::xd#4 ← phi( bitmap_line::@3/(byte) bitmap_line::xd#2 )
  (byte) bitmap_line::y1#4 ← phi( bitmap_line::@3/(byte) bitmap_line::y1#2 )
  (byte) bitmap_line::y0#4 ← phi( bitmap_line::@3/(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::@11
  to:bitmap_line::@5
bitmap_line::@11: scope:[bitmap_line]  from bitmap_line::@4
  (byte) bitmap_line::yd#5 ← phi( bitmap_line::@4/(byte) bitmap_line::yd#2 )
  (byte) bitmap_line::xd#5 ← phi( bitmap_line::@4/(byte) bitmap_line::xd#4 )
  (byte) bitmap_line::x0#4 ← phi( bitmap_line::@4/(byte) bitmap_line::x0#10 )
  (byte) bitmap_line::y1#5 ← phi( bitmap_line::@4/(byte) bitmap_line::y1#4 )
  (byte) bitmap_line::x1#4 ← phi( bitmap_line::@4/(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::@29
bitmap_line::@29: scope:[bitmap_line]  from bitmap_line::@11
  to:bitmap_line::@return
bitmap_line::@5: scope:[bitmap_line]  from bitmap_line::@4
  (byte) bitmap_line::xd#6 ← phi( bitmap_line::@4/(byte) bitmap_line::xd#4 )
  (byte) bitmap_line::yd#6 ← phi( bitmap_line::@4/(byte) bitmap_line::yd#2 )
  (byte) bitmap_line::y0#5 ← phi( bitmap_line::@4/(byte) bitmap_line::y0#4 )
  (byte) bitmap_line::x1#5 ← phi( bitmap_line::@4/(byte) bitmap_line::x1#10 )
  (byte) bitmap_line::y1#6 ← phi( bitmap_line::@4/(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::@30
bitmap_line::@30: scope:[bitmap_line]  from bitmap_line::@5
  to:bitmap_line::@return
bitmap_line::@15: scope:[bitmap_line]  from bitmap_line::@10
  (byte) bitmap_line::yd#7 ← phi( bitmap_line::@10/(byte) bitmap_line::yd#1 )
  (byte) bitmap_line::xd#7 ← phi( bitmap_line::@10/(byte) bitmap_line::xd#3 )
  (byte) bitmap_line::x0#5 ← phi( bitmap_line::@10/(byte) bitmap_line::x0#11 )
  (byte) bitmap_line::y1#7 ← phi( bitmap_line::@10/(byte) bitmap_line::y1#3 )
  (byte) bitmap_line::x1#6 ← phi( bitmap_line::@10/(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::@31
bitmap_line::@31: scope:[bitmap_line]  from bitmap_line::@15
  to:bitmap_line::@return
bitmap_line::@17: scope:[bitmap_line]  from bitmap_line::@10
  (byte) bitmap_line::xd#8 ← phi( bitmap_line::@10/(byte) bitmap_line::xd#3 )
  (byte) bitmap_line::yd#8 ← phi( bitmap_line::@10/(byte) bitmap_line::yd#1 )
  (byte) bitmap_line::y1#8 ← phi( bitmap_line::@10/(byte) bitmap_line::y1#3 )
  (byte) bitmap_line::x0#6 ← phi( bitmap_line::@10/(byte) bitmap_line::x0#11 )
  (byte) bitmap_line::y0#6 ← phi( bitmap_line::@10/(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::@32
bitmap_line::@32: scope:[bitmap_line]  from bitmap_line::@17
  to:bitmap_line::@return
bitmap_line::@20: 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::@25
  to:bitmap_line::@27
bitmap_line::@7: 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::@21
  to:bitmap_line::@8
bitmap_line::@21: scope:[bitmap_line]  from bitmap_line::@7
  (byte) bitmap_line::yd#9 ← phi( bitmap_line::@7/(byte) bitmap_line::yd#4 )
  (byte) bitmap_line::xd#11 ← phi( bitmap_line::@7/(byte) bitmap_line::xd#10 )
  (byte) bitmap_line::x1#7 ← phi( bitmap_line::@7/(byte) bitmap_line::x1#12 )
  (byte) bitmap_line::y0#9 ← phi( bitmap_line::@7/(byte) bitmap_line::y0#8 )
  (byte) bitmap_line::x0#7 ← phi( bitmap_line::@7/(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::@33
bitmap_line::@33: scope:[bitmap_line]  from bitmap_line::@21
  to:bitmap_line::@return
bitmap_line::@8: scope:[bitmap_line]  from bitmap_line::@7
  (byte) bitmap_line::xd#12 ← phi( bitmap_line::@7/(byte) bitmap_line::xd#10 )
  (byte) bitmap_line::yd#10 ← phi( bitmap_line::@7/(byte) bitmap_line::yd#4 )
  (byte) bitmap_line::y0#10 ← phi( bitmap_line::@7/(byte) bitmap_line::y0#8 )
  (byte) bitmap_line::x1#8 ← phi( bitmap_line::@7/(byte) bitmap_line::x1#12 )
  (byte) bitmap_line::y1#11 ← phi( bitmap_line::@7/(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::@34
bitmap_line::@34: scope:[bitmap_line]  from bitmap_line::@8
  to:bitmap_line::@return
bitmap_line::@25: scope:[bitmap_line]  from bitmap_line::@20
  (byte) bitmap_line::yd#11 ← phi( bitmap_line::@20/(byte) bitmap_line::yd#3 )
  (byte) bitmap_line::xd#13 ← phi( bitmap_line::@20/(byte) bitmap_line::xd#9 )
  (byte) bitmap_line::x1#9 ← phi( bitmap_line::@20/(byte) bitmap_line::x1#13 )
  (byte) bitmap_line::y0#11 ← phi( bitmap_line::@20/(byte) bitmap_line::y0#7 )
  (byte) bitmap_line::x0#8 ← phi( bitmap_line::@20/(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::@35
bitmap_line::@35: scope:[bitmap_line]  from bitmap_line::@25
  to:bitmap_line::@return
bitmap_line::@27: scope:[bitmap_line]  from bitmap_line::@20
  (byte) bitmap_line::xd#14 ← phi( bitmap_line::@20/(byte) bitmap_line::xd#9 )
  (byte) bitmap_line::yd#12 ← phi( bitmap_line::@20/(byte) bitmap_line::yd#3 )
  (byte) bitmap_line::y1#12 ← phi( bitmap_line::@20/(byte) bitmap_line::y1#9 )
  (byte) bitmap_line::x0#9 ← phi( bitmap_line::@20/(byte) bitmap_line::x0#13 )
  (byte) bitmap_line::y0#12 ← phi( bitmap_line::@20/(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::@36
bitmap_line::@36: scope:[bitmap_line]  from bitmap_line::@27
  to:bitmap_line::@return
bitmap_line::@return: scope:[bitmap_line]  from bitmap_line::@29 bitmap_line::@30 bitmap_line::@31 bitmap_line::@32 bitmap_line::@33 bitmap_line::@34 bitmap_line::@35 bitmap_line::@36
  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::@11 bitmap_line::@25
  (byte) bitmap_line_xdyi::x1#6 ← phi( bitmap_line::@11/(byte) bitmap_line_xdyi::x1#0 bitmap_line::@25/(byte) bitmap_line_xdyi::x1#1 )
  (byte) bitmap_line_xdyi::xd#5 ← phi( bitmap_line::@11/(byte) bitmap_line_xdyi::xd#0 bitmap_line::@25/(byte) bitmap_line_xdyi::xd#1 )
  (byte) bitmap_line_xdyi::y#5 ← phi( bitmap_line::@11/(byte) bitmap_line_xdyi::y#0 bitmap_line::@25/(byte) bitmap_line_xdyi::y#1 )
  (byte) bitmap_line_xdyi::x#6 ← phi( bitmap_line::@11/(byte) bitmap_line_xdyi::x#0 bitmap_line::@25/(byte) bitmap_line_xdyi::x#1 )
  (byte) bitmap_line_xdyi::yd#2 ← phi( bitmap_line::@11/(byte) bitmap_line_xdyi::yd#0 bitmap_line::@25/(byte) bitmap_line_xdyi::yd#1 )
  (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::@5
bitmap_line_xdyi::@5: 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::@5
  (byte) bitmap_line_xdyi::xd#6 ← phi( bitmap_line_xdyi::@3/(byte) bitmap_line_xdyi::xd#3 bitmap_line_xdyi::@5/(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::@5/(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::@5/(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::@5/(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::@5/(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::@5/(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::@5
  (byte) bitmap_line_xdyi::yd#6 ← phi( bitmap_line_xdyi::@5/(byte) bitmap_line_xdyi::yd#3 )
  (byte) bitmap_line_xdyi::x#7 ← phi( bitmap_line_xdyi::@5/(byte) bitmap_line_xdyi::x#2 )
  (byte) bitmap_line_xdyi::x1#3 ← phi( bitmap_line_xdyi::@5/(byte) bitmap_line_xdyi::x1#4 )
  (byte) bitmap_line_xdyi::xd#3 ← phi( bitmap_line_xdyi::@5/(byte) bitmap_line_xdyi::xd#2 )
  (byte) bitmap_line_xdyi::e#4 ← phi( bitmap_line_xdyi::@5/(byte) bitmap_line_xdyi::e#1 )
  (byte) bitmap_line_xdyi::y#4 ← phi( bitmap_line_xdyi::@5/(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::@15 bitmap_line::@21
  (byte) bitmap_line_xdyd::x1#6 ← phi( bitmap_line::@15/(byte) bitmap_line_xdyd::x1#0 bitmap_line::@21/(byte) bitmap_line_xdyd::x1#1 )
  (byte) bitmap_line_xdyd::xd#5 ← phi( bitmap_line::@15/(byte) bitmap_line_xdyd::xd#0 bitmap_line::@21/(byte) bitmap_line_xdyd::xd#1 )
  (byte) bitmap_line_xdyd::y#5 ← phi( bitmap_line::@15/(byte) bitmap_line_xdyd::y#0 bitmap_line::@21/(byte) bitmap_line_xdyd::y#1 )
  (byte) bitmap_line_xdyd::x#6 ← phi( bitmap_line::@15/(byte) bitmap_line_xdyd::x#0 bitmap_line::@21/(byte) bitmap_line_xdyd::x#1 )
  (byte) bitmap_line_xdyd::yd#2 ← phi( bitmap_line::@15/(byte) bitmap_line_xdyd::yd#0 bitmap_line::@21/(byte) bitmap_line_xdyd::yd#1 )
  (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::@5
bitmap_line_xdyd::@5: 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::@5
  (byte) bitmap_line_xdyd::xd#6 ← phi( bitmap_line_xdyd::@3/(byte) bitmap_line_xdyd::xd#3 bitmap_line_xdyd::@5/(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::@5/(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::@5/(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::@5/(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::@5/(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::@5/(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::@5
  (byte) bitmap_line_xdyd::yd#6 ← phi( bitmap_line_xdyd::@5/(byte) bitmap_line_xdyd::yd#3 )
  (byte) bitmap_line_xdyd::x#7 ← phi( bitmap_line_xdyd::@5/(byte) bitmap_line_xdyd::x#2 )
  (byte) bitmap_line_xdyd::x1#3 ← phi( bitmap_line_xdyd::@5/(byte) bitmap_line_xdyd::x1#4 )
  (byte) bitmap_line_xdyd::xd#3 ← phi( bitmap_line_xdyd::@5/(byte) bitmap_line_xdyd::xd#2 )
  (byte) bitmap_line_xdyd::e#4 ← phi( bitmap_line_xdyd::@5/(byte) bitmap_line_xdyd::e#1 )
  (byte) bitmap_line_xdyd::y#4 ← phi( bitmap_line_xdyd::@5/(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::@27 bitmap_line::@5
  (byte) bitmap_line_ydxi::y1#6 ← phi( bitmap_line::@27/(byte) bitmap_line_ydxi::y1#1 bitmap_line::@5/(byte) bitmap_line_ydxi::y1#0 )
  (byte) bitmap_line_ydxi::yd#5 ← phi( bitmap_line::@27/(byte) bitmap_line_ydxi::yd#1 bitmap_line::@5/(byte) bitmap_line_ydxi::yd#0 )
  (byte) bitmap_line_ydxi::y#6 ← phi( bitmap_line::@27/(byte) bitmap_line_ydxi::y#1 bitmap_line::@5/(byte) bitmap_line_ydxi::y#0 )
  (byte) bitmap_line_ydxi::x#5 ← phi( bitmap_line::@27/(byte) bitmap_line_ydxi::x#1 bitmap_line::@5/(byte) bitmap_line_ydxi::x#0 )
  (byte) bitmap_line_ydxi::xd#2 ← phi( bitmap_line::@27/(byte) bitmap_line_ydxi::xd#1 bitmap_line::@5/(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::@5
bitmap_line_ydxi::@5: 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::@5
  (byte) bitmap_line_ydxi::yd#6 ← phi( bitmap_line_ydxi::@3/(byte) bitmap_line_ydxi::yd#3 bitmap_line_ydxi::@5/(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::@5/(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::@5/(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::@5/(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::@5/(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::@5/(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::@5
  (byte) bitmap_line_ydxi::xd#6 ← phi( bitmap_line_ydxi::@5/(byte) bitmap_line_ydxi::xd#3 )
  (byte) bitmap_line_ydxi::y#7 ← phi( bitmap_line_ydxi::@5/(byte) bitmap_line_ydxi::y#2 )
  (byte) bitmap_line_ydxi::y1#3 ← phi( bitmap_line_ydxi::@5/(byte) bitmap_line_ydxi::y1#4 )
  (byte) bitmap_line_ydxi::yd#3 ← phi( bitmap_line_ydxi::@5/(byte) bitmap_line_ydxi::yd#2 )
  (byte) bitmap_line_ydxi::e#4 ← phi( bitmap_line_ydxi::@5/(byte) bitmap_line_ydxi::e#1 )
  (byte) bitmap_line_ydxi::x#4 ← phi( bitmap_line_ydxi::@5/(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::@17 bitmap_line::@8
  (byte) bitmap_line_ydxd::y1#6 ← phi( bitmap_line::@17/(byte) bitmap_line_ydxd::y1#0 bitmap_line::@8/(byte) bitmap_line_ydxd::y1#1 )
  (byte) bitmap_line_ydxd::yd#5 ← phi( bitmap_line::@17/(byte) bitmap_line_ydxd::yd#0 bitmap_line::@8/(byte) bitmap_line_ydxd::yd#1 )
  (byte) bitmap_line_ydxd::y#7 ← phi( bitmap_line::@17/(byte) bitmap_line_ydxd::y#0 bitmap_line::@8/(byte) bitmap_line_ydxd::y#1 )
  (byte) bitmap_line_ydxd::x#5 ← phi( bitmap_line::@17/(byte) bitmap_line_ydxd::x#0 bitmap_line::@8/(byte) bitmap_line_ydxd::x#1 )
  (byte) bitmap_line_ydxd::xd#2 ← phi( bitmap_line::@17/(byte) bitmap_line_ydxd::xd#0 bitmap_line::@8/(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::@5
bitmap_line_ydxd::@5: 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::@5
  (byte) bitmap_line_ydxd::yd#6 ← phi( bitmap_line_ydxd::@3/(byte) bitmap_line_ydxd::yd#3 bitmap_line_ydxd::@5/(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::@5/(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::@5/(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::@5/(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::@5/(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::@5/(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::@5
  (byte) bitmap_line_ydxd::xd#6 ← phi( bitmap_line_ydxd::@5/(byte) bitmap_line_ydxd::xd#3 )
  (byte) bitmap_line_ydxd::y#8 ← phi( bitmap_line_ydxd::@5/(byte) bitmap_line_ydxd::y#3 )
  (byte) bitmap_line_ydxd::y1#3 ← phi( bitmap_line_ydxd::@5/(byte) bitmap_line_ydxd::y1#4 )
  (byte) bitmap_line_ydxd::yd#3 ← phi( bitmap_line_ydxd::@5/(byte) bitmap_line_ydxd::yd#2 )
  (byte) bitmap_line_ydxd::e#4 ← phi( bitmap_line_ydxd::@5/(byte) bitmap_line_ydxd::e#1 )
  (byte) bitmap_line_ydxd::x#4 ← phi( bitmap_line_ydxd::@5/(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
@12: scope:[]  from @begin
  (byte) next#0 ← (byte) 0
  to:@14

(void()) main()
main: scope:[main]  from @14
  (byte) next#12 ← phi( @14/(byte) next#9 )
  *((const byte*) BORDERCOL) ← (number) 0
  *((const byte*) BGCOL) ← (number) 0
  *((const byte*) D011) ← (const byte) VIC_BMM|(const byte) VIC_DEN|(const byte) VIC_RSEL|(number) 3
  *((const byte*) VIC_MEMORY) ← (byte)(word)(const byte*) SCREEN&(number) $3fff/(number) $40|(word)(const byte*) BITMAP&(number) $3fff/(number) $400
  (byte*) bitmap_init::bitmap#0 ← (const byte*) BITMAP
  call bitmap_init 
  to:main::@3
main::@3: scope:[main]  from main
  (byte) next#11 ← phi( main/(byte) next#12 )
  call bitmap_clear 
  to:main::@4
main::@4: scope:[main]  from main::@3
  (byte) next#10 ← phi( main::@3/(byte) next#11 )
  call init_screen 
  to:main::@5
main::@5: scope:[main]  from main::@4
  (byte) next#8 ← phi( main::@4/(byte) next#10 )
  to:main::@1
main::@1: scope:[main]  from main::@5 main::@6
  (byte) next#4 ← phi( main::@5/(byte) next#8 main::@6/(byte) next#1 )
  (byte) bitmap_line::x0#0 ← (number) 0
  (byte) bitmap_line::x1#0 ← (byte) next#4
  (byte) bitmap_line::y0#0 ← (number) 0
  (byte) bitmap_line::y1#0 ← (number) $64
  call bitmap_line 
  to:main::@6
main::@6: scope:[main]  from main::@1
  (byte) next#5 ← phi( main::@1/(byte) next#4 )
  (byte) next#1 ← ++ (byte) next#5
  if(true) goto main::@1
  to:main::@return
main::@return: scope:[main]  from main::@6
  (byte) next#6 ← phi( main::@6/(byte) next#1 )
  (byte) next#2 ← (byte) next#6
  return 
  to:@return

(void()) init_screen()
init_screen: scope:[init_screen]  from main::@4
  (byte*) init_screen::c#0 ← (const 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 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
@14: scope:[]  from @12
  (byte) next#9 ← phi( @12/(byte) next#0 )
  call main 
  to:@15
@15: scope:[]  from @14
  (byte) next#7 ← phi( @14/(byte) next#2 )
  (byte) next#3 ← (byte) next#7
  to:@end
@end: scope:[]  from @15

SYMBOL TABLE SSA
(label) @12
(label) @14
(label) @15
(label) @begin
(label) @end
(const byte*) BGCOL = (byte*)(number) $d021
(const byte*) BITMAP = (byte*)(number) $2000
(const byte*) BORDERCOL = (byte*)(number) $d020
(const byte*) D011 = (byte*)(number) $d011
(const byte*) SCREEN = (byte*)(number) $400
(const byte) VIC_BMM = (byte) $20
(const byte) VIC_DEN = (byte) $10
(const byte*) VIC_MEMORY = (byte*)(number) $d018
(const byte) VIC_RSEL = (byte) 8
(void()) bitmap_clear()
(byte*~) bitmap_clear::$0
(bool~) bitmap_clear::$1
(bool~) bitmap_clear::$2
(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::@15
(label) bitmap_line::@17
(label) bitmap_line::@20
(label) bitmap_line::@21
(label) bitmap_line::@25
(label) bitmap_line::@27
(label) bitmap_line::@29
(label) bitmap_line::@3
(label) bitmap_line::@30
(label) bitmap_line::@31
(label) bitmap_line::@32
(label) bitmap_line::@33
(label) bitmap_line::@34
(label) bitmap_line::@35
(label) bitmap_line::@36
(label) bitmap_line::@4
(label) bitmap_line::@5
(label) bitmap_line::@7
(label) bitmap_line::@8
(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::@5
(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::@5
(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::@5
(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::@5
(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 byte*) bitmap_plot_bit[(number) $100]  = { fill( $100, 0) }
(const byte*) bitmap_plot_xhi[(number) $100]  = { fill( $100, 0) }
(const byte*) bitmap_plot_xlo[(number) $100]  = { fill( $100, 0) }
(const byte*) bitmap_plot_yhi[(number) $100]  = { fill( $100, 0) }
(const 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::@3
(label) main::@4
(label) main::@5
(label) main::@6
(label) main::@return
(byte) next
(byte) next#0
(byte) next#1
(byte) next#10
(byte) next#11
(byte) next#12
(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::$3 ← (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 (var~) bitmap_clear::$3 ← (byte)*((const byte*) bitmap_plot_xhi + (number) 0) w= (byte)*((const byte*) bitmap_plot_xlo + (number) 0)
Adding number conversion cast (unumber) 0 in (var~) bitmap_clear::$3 ← (byte)*((const byte*) bitmap_plot_xhi + (unumber)(number) 0) w= (byte)*((const 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 byte*) BORDERCOL) ← (number) 0
Adding number conversion cast (unumber) 0 in *((const byte*) BGCOL) ← (number) 0
Adding number conversion cast (unumber) VIC_BMM|VIC_DEN|VIC_RSEL|3 in *((const byte*) D011) ← (const byte) VIC_BMM|(const byte) VIC_DEN|(const byte) VIC_RSEL|(number) 3
Adding number conversion cast (unumber) 3 in *((const byte*) D011) ← ((unumber)) (const byte) VIC_BMM|(const byte) VIC_DEN|(const byte) VIC_RSEL|(number) 3
Adding number conversion cast (unumber) $3fff in *((const byte*) VIC_MEMORY) ← (byte)(word)(const byte*) SCREEN&(number) $3fff/(number) $40|(word)(const byte*) BITMAP&(number) $3fff/(number) $400
Adding number conversion cast (unumber) $3fff in *((const byte*) VIC_MEMORY) ← (byte)(word)(const byte*) SCREEN&(unumber)(number) $3fff/(number) $40|(word)(const 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 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 byte*) VIC_MEMORY) ← (byte)(word)(const byte*) SCREEN&(unumber)(number) $3fff/(number) $40|(word)(const byte*) BITMAP&(unumber)(number) $3fff/(number) $400
Adding number conversion cast (unumber) $400 in *((const byte*) VIC_MEMORY) ← (byte)(word)(const byte*) SCREEN&(unumber)(number) $3fff/(unumber)(number) $40|(word)(const 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 byte*) BORDERCOL) ← (unumber)(number) 0
Inlining cast *((const byte*) BGCOL) ← (unumber)(number) 0
Inlining cast *((const byte*) D011) ← (unumber)(const byte) VIC_BMM|(const byte) VIC_DEN|(const 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 byte*) bitmap_plot_xhi + (unumber)(number) 0)
Simplifying constant integer cast 0
Simplifying constant integer cast *((const byte*) bitmap_plot_xlo + (unumber)(number) 0)
Simplifying constant integer cast 0
Simplifying constant integer cast 0
Simplifying constant integer cast *((const byte*) bitmap_plot_xhi + (byte) bitmap_plot::x#4)
Simplifying constant integer cast *((const byte*) bitmap_plot_xlo + (byte) bitmap_plot::x#4)
Simplifying constant integer cast *((const byte*) bitmap_plot_yhi + (byte) bitmap_plot::y#4)
Simplifying constant integer cast *((const 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 byte) VIC_BMM|(const byte) VIC_DEN|(const 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::$0 in (byte*~) bitmap_clear::$0 ← (word~) bitmap_clear::$3
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 (byte) bitmap_init::bits#1 = (byte~) bitmap_init::$2 
Alias (byte) bitmap_init::x#2 = (byte) bitmap_init::x#4 
Alias (byte*) bitmap_init::bitmap#1 = (byte*) bitmap_init::bitmap#4 
Alias (byte*) bitmap_init::yoffs#2 = (byte*) bitmap_init::yoffs#3 
Alias (byte) bitmap_init::y#2 = (byte) bitmap_init::y#4 
Alias (byte*) bitmap_init::yoffs#1 = (byte*~) bitmap_init::$13 
Alias (byte*) bitmap_clear::bitmap#0 = (byte*~) bitmap_clear::$0 
Alias (byte) bitmap_clear::y#2 = (byte) bitmap_clear::y#3 
Alias (byte*) bitmap_clear::bitmap#1 = (byte*) bitmap_clear::bitmap#4 
Alias (word) bitmap_plot::plotter_x#0 = (word~) bitmap_plot::$2 
Alias (word) bitmap_plot::plotter_y#0 = (word~) bitmap_plot::$3 
Alias (byte) bitmap_line::x1#1 = (byte) bitmap_line::x1#2 (byte) bitmap_line::x1#3 (byte) bitmap_line::x1#11 (byte) bitmap_line::x1#10 (byte) bitmap_line::x1#4 (byte) bitmap_line::x1#5 (byte) bitmap_line::x1#6 (byte) bitmap_line::x1#13 (byte) bitmap_line::x1#12 (byte) bitmap_line::x1#7 (byte) bitmap_line::x1#8 (byte) bitmap_line::x1#9 
Alias (byte) bitmap_line::x0#1 = (byte) bitmap_line::x0#2 (byte) bitmap_line::x0#3 (byte) bitmap_line::x0#11 (byte) bitmap_line::x0#10 (byte) bitmap_line::x0#4 (byte) bitmap_line::x0#5 (byte) bitmap_line::x0#6 (byte) bitmap_line::x0#13 (byte) bitmap_line::x0#12 (byte) bitmap_line::x0#7 (byte) bitmap_line::x0#8 (byte) bitmap_line::x0#9 
Alias (byte) bitmap_line::y0#1 = (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::y0#10 (byte) bitmap_line::y0#11 (byte) bitmap_line::y0#12 
Alias (byte) bitmap_line::y1#1 = (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::y1#10 (byte) bitmap_line::y1#11 (byte) bitmap_line::y1#12 
Alias (byte) bitmap_line::xd#1 = (byte~) bitmap_line::$11 (byte) bitmap_line::xd#9 (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 
Alias (byte) bitmap_line::xd#2 = (byte~) bitmap_line::$1 (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 
Alias (byte) bitmap_line::yd#1 = (byte~) bitmap_line::$7 (byte) bitmap_line::yd#7 (byte) bitmap_line::yd#8 
Alias (byte) bitmap_line::yd#2 = (byte~) bitmap_line::$3 (byte) bitmap_line::yd#5 (byte) bitmap_line::yd#6 
Alias (byte) bitmap_line::yd#11 = (byte) bitmap_line::yd#3 (byte~) bitmap_line::$17 (byte) bitmap_line::yd#12 
Alias (byte) bitmap_line::yd#10 = (byte) bitmap_line::yd#4 (byte~) bitmap_line::$13 (byte) bitmap_line::yd#9 
Alias (byte) bitmap_line_xdyi::e#0 = (byte~) bitmap_line_xdyi::$0 
Alias (byte) bitmap_line_xdyi::x#3 = (byte) bitmap_line_xdyi::x#4 
Alias (byte) bitmap_line_xdyi::e#3 = (byte) bitmap_line_xdyi::e#5 
Alias (byte) bitmap_line_xdyi::yd#3 = (byte) bitmap_line_xdyi::yd#4 (byte) bitmap_line_xdyi::yd#6 
Alias (byte) bitmap_line_xdyi::xd#2 = (byte) bitmap_line_xdyi::xd#4 (byte) bitmap_line_xdyi::xd#3 
Alias (byte) bitmap_line_xdyi::x1#3 = (byte) bitmap_line_xdyi::x1#4 (byte) bitmap_line_xdyi::x1#5 
Alias (byte) bitmap_line_xdyi::y#3 = (byte) bitmap_line_xdyi::y#7 (byte) bitmap_line_xdyi::y#4 
Alias (byte) bitmap_line_xdyi::e#1 = (byte~) bitmap_line_xdyi::$2 (byte) bitmap_line_xdyi::e#4 
Alias (byte) bitmap_line_xdyi::x#2 = (byte) bitmap_line_xdyi::x#7 
Alias (byte) bitmap_line_xdyi::e#2 = (byte~) bitmap_line_xdyi::$5 
Alias (byte) bitmap_line_xdyd::e#0 = (byte~) bitmap_line_xdyd::$0 
Alias (byte) bitmap_line_xdyd::x#3 = (byte) bitmap_line_xdyd::x#4 
Alias (byte) bitmap_line_xdyd::e#3 = (byte) bitmap_line_xdyd::e#5 
Alias (byte) bitmap_line_xdyd::yd#3 = (byte) bitmap_line_xdyd::yd#4 (byte) bitmap_line_xdyd::yd#6 
Alias (byte) bitmap_line_xdyd::xd#2 = (byte) bitmap_line_xdyd::xd#4 (byte) bitmap_line_xdyd::xd#3 
Alias (byte) bitmap_line_xdyd::x1#3 = (byte) bitmap_line_xdyd::x1#4 (byte) bitmap_line_xdyd::x1#5 
Alias (byte) bitmap_line_xdyd::y#3 = (byte) bitmap_line_xdyd::y#7 (byte) bitmap_line_xdyd::y#4 
Alias (byte) bitmap_line_xdyd::e#1 = (byte~) bitmap_line_xdyd::$2 (byte) bitmap_line_xdyd::e#4 
Alias (byte) bitmap_line_xdyd::x#2 = (byte) bitmap_line_xdyd::x#7 
Alias (byte) bitmap_line_xdyd::e#2 = (byte~) bitmap_line_xdyd::$5 
Alias (byte) bitmap_line_ydxi::e#0 = (byte~) bitmap_line_ydxi::$0 
Alias (byte) bitmap_line_ydxi::y#3 = (byte) bitmap_line_ydxi::y#4 
Alias (byte) bitmap_line_ydxi::e#3 = (byte) bitmap_line_ydxi::e#5 
Alias (byte) bitmap_line_ydxi::xd#3 = (byte) bitmap_line_ydxi::xd#4 (byte) bitmap_line_ydxi::xd#6 
Alias (byte) bitmap_line_ydxi::yd#2 = (byte) bitmap_line_ydxi::yd#4 (byte) bitmap_line_ydxi::yd#3 
Alias (byte) bitmap_line_ydxi::y1#3 = (byte) bitmap_line_ydxi::y1#4 (byte) bitmap_line_ydxi::y1#5 
Alias (byte) bitmap_line_ydxi::x#3 = (byte) bitmap_line_ydxi::x#7 (byte) bitmap_line_ydxi::x#4 
Alias (byte) bitmap_line_ydxi::e#1 = (byte~) bitmap_line_ydxi::$2 (byte) bitmap_line_ydxi::e#4 
Alias (byte) bitmap_line_ydxi::y#2 = (byte) bitmap_line_ydxi::y#7 
Alias (byte) bitmap_line_ydxi::e#2 = (byte~) bitmap_line_ydxi::$5 
Alias (byte) bitmap_line_ydxd::e#0 = (byte~) bitmap_line_ydxd::$0 
Alias (byte) bitmap_line_ydxd::y#2 = (byte) bitmap_line_ydxd::y#5 (byte) bitmap_line_ydxd::y#4 
Alias (byte) bitmap_line_ydxd::e#3 = (byte) bitmap_line_ydxd::e#5 
Alias (byte) bitmap_line_ydxd::xd#3 = (byte) bitmap_line_ydxd::xd#4 (byte) bitmap_line_ydxd::xd#6 
Alias (byte) bitmap_line_ydxd::yd#2 = (byte) bitmap_line_ydxd::yd#4 (byte) bitmap_line_ydxd::yd#3 
Alias (byte) bitmap_line_ydxd::y1#3 = (byte) bitmap_line_ydxd::y1#4 (byte) bitmap_line_ydxd::y1#5 
Alias (byte) bitmap_line_ydxd::x#3 = (byte) bitmap_line_ydxd::x#7 (byte) bitmap_line_ydxd::x#4 
Alias (byte) bitmap_line_ydxd::e#1 = (byte~) bitmap_line_ydxd::$2 (byte) bitmap_line_ydxd::e#4 
Alias (byte) bitmap_line_ydxd::y#3 = (byte) bitmap_line_ydxd::y#8 
Alias (byte) bitmap_line_ydxd::e#2 = (byte~) bitmap_line_ydxd::$5 
Alias (byte) next#10 = (byte) next#11 (byte) next#12 (byte) next#8 
Alias (byte) next#4 = (byte) next#5 
Alias (byte) next#1 = (byte) next#6 (byte) next#2 
Alias (byte*) init_screen::c#2 = (byte*) init_screen::c#3 
Alias (byte) next#0 = (byte) next#9 
Alias (byte) next#3 = (byte) next#7 
Successful SSA optimization Pass2AliasElimination
Alias (byte) bitmap_init::x#2 = (byte) bitmap_init::x#3 
Alias (byte*) bitmap_init::bitmap#1 = (byte*) bitmap_init::bitmap#3 
Alias (byte) bitmap_init::y#2 = (byte) bitmap_init::y#3 
Alias (byte) bitmap_line_xdyi::x1#2 = (byte) bitmap_line_xdyi::x1#3 
Alias (byte) bitmap_line_xdyi::x#2 = (byte) bitmap_line_xdyi::x#5 
Alias (byte) bitmap_line_xdyi::yd#3 = (byte) bitmap_line_xdyi::yd#5 
Alias (byte) bitmap_line_xdyi::xd#2 = (byte) bitmap_line_xdyi::xd#6 
Alias (byte) bitmap_line_xdyd::x1#2 = (byte) bitmap_line_xdyd::x1#3 
Alias (byte) bitmap_line_xdyd::x#2 = (byte) bitmap_line_xdyd::x#5 
Alias (byte) bitmap_line_xdyd::yd#3 = (byte) bitmap_line_xdyd::yd#5 
Alias (byte) bitmap_line_xdyd::xd#2 = (byte) bitmap_line_xdyd::xd#6 
Alias (byte) bitmap_line_ydxi::y1#2 = (byte) bitmap_line_ydxi::y1#3 
Alias (byte) bitmap_line_ydxi::y#2 = (byte) bitmap_line_ydxi::y#5 
Alias (byte) bitmap_line_ydxi::xd#3 = (byte) bitmap_line_ydxi::xd#5 
Alias (byte) bitmap_line_ydxi::yd#2 = (byte) bitmap_line_ydxi::yd#6 
Alias (byte) bitmap_line_ydxd::y1#2 = (byte) bitmap_line_ydxd::y1#3 
Alias (byte) bitmap_line_ydxd::y#3 = (byte) bitmap_line_ydxd::y#6 
Alias (byte) bitmap_line_ydxd::xd#3 = (byte) bitmap_line_ydxd::xd#5 
Alias (byte) bitmap_line_ydxd::yd#2 = (byte) 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#0
Identical Phi Values (byte) next#3 (byte) next#1
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::$1 [45] if((byte) bitmap_clear::x#1!=rangelast(0,$c7)) goto bitmap_clear::@2
Simple Condition (bool~) bitmap_clear::$2 [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::@20
Simple Condition (bool~) bitmap_line::$2 [68] if((byte) bitmap_line::y0#0<(byte) bitmap_line::y1#0) goto bitmap_line::@10
Simple Condition (bool~) bitmap_line::$8 [71] if((byte) bitmap_line::yd#1<(byte) bitmap_line::xd#2) goto bitmap_line::@15
Simple Condition (bool~) bitmap_line::$4 [74] if((byte) bitmap_line::yd#2<(byte) bitmap_line::xd#2) goto bitmap_line::@11
Simple Condition (bool~) bitmap_line::$18 [101] if((byte) bitmap_line::yd#11<(byte) bitmap_line::xd#1) goto bitmap_line::@25
Simple Condition (bool~) bitmap_line::$14 [104] if((byte) bitmap_line::yd#10<(byte) bitmap_line::xd#1) goto bitmap_line::@21
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 [220] if((byte*) init_screen::c#2!=(const 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) next#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
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::@20
if() condition always true - replacing block destination [68] if((const byte) bitmap_line::y0#0<(const byte) bitmap_line::y1#0) goto bitmap_line::@10
if() condition always true - replacing block destination [215] 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 byte*) bitmap_plot_xhi + (byte) 0) w= *((const byte*) bitmap_plot_xlo + (byte) 0)
Simplifying expression containing zero bitmap_plot_xlo in [35] (word~) bitmap_clear::$3 ← *((const byte*) bitmap_plot_xhi) w= *((const 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::@4
Eliminating variable (byte) bitmap_line_xdyi::x#0 from unused block bitmap_line::@11
Eliminating variable (byte) bitmap_line_xdyi::xd#0 from unused block bitmap_line::@11
Eliminating variable (byte) bitmap_line_xdyi::yd#0 from unused block bitmap_line::@11
Eliminating variable (byte) bitmap_line_ydxi::x#0 from unused block bitmap_line::@5
Eliminating variable (byte) bitmap_line_ydxi::yd#0 from unused block bitmap_line::@5
Eliminating variable (byte) bitmap_line_ydxi::xd#0 from unused block bitmap_line::@5
Eliminating variable (byte) bitmap_line::yd#10 from unused block bitmap_line::@7
Eliminating variable (byte) bitmap_line_xdyd::x1#1 from unused block bitmap_line::@21
Eliminating variable (byte) bitmap_line_xdyd::xd#1 from unused block bitmap_line::@21
Eliminating variable (byte) bitmap_line_xdyd::yd#1 from unused block bitmap_line::@21
Eliminating variable (byte) bitmap_line_ydxd::x#1 from unused block bitmap_line::@8
Eliminating variable (byte) bitmap_line_ydxd::yd#1 from unused block bitmap_line::@8
Eliminating variable (byte) bitmap_line_ydxd::xd#1 from unused block bitmap_line::@8
Removing unused block bitmap_line::@4
Removing PHI-reference to removed block (bitmap_line::@11) in block bitmap_line_xdyi
Removing PHI-reference to removed block (bitmap_line::@11) in block bitmap_line_xdyi
Removing PHI-reference to removed block (bitmap_line::@11) in block bitmap_line_xdyi
Removing PHI-reference to removed block (bitmap_line::@11) in block bitmap_line_xdyi
Removing PHI-reference to removed block (bitmap_line::@11) in block bitmap_line_xdyi
Removing unused block bitmap_line::@11
Removing unused block bitmap_line::@29
Removing PHI-reference to removed block (bitmap_line::@5) in block bitmap_line_ydxi
Removing PHI-reference to removed block (bitmap_line::@5) in block bitmap_line_ydxi
Removing PHI-reference to removed block (bitmap_line::@5) in block bitmap_line_ydxi
Removing PHI-reference to removed block (bitmap_line::@5) in block bitmap_line_ydxi
Removing PHI-reference to removed block (bitmap_line::@5) in block bitmap_line_ydxi
Removing unused block bitmap_line::@5
Removing unused block bitmap_line::@30
Removing unused block bitmap_line::@7
Removing PHI-reference to removed block (bitmap_line::@21) in block bitmap_line_xdyd
Removing PHI-reference to removed block (bitmap_line::@21) in block bitmap_line_xdyd
Removing PHI-reference to removed block (bitmap_line::@21) in block bitmap_line_xdyd
Removing PHI-reference to removed block (bitmap_line::@21) in block bitmap_line_xdyd
Removing PHI-reference to removed block (bitmap_line::@21) in block bitmap_line_xdyd
Removing unused block bitmap_line::@21
Removing unused block bitmap_line::@33
Removing PHI-reference to removed block (bitmap_line::@8) in block bitmap_line_ydxd
Removing PHI-reference to removed block (bitmap_line::@8) in block bitmap_line_ydxd
Removing PHI-reference to removed block (bitmap_line::@8) in block bitmap_line_ydxd
Removing PHI-reference to removed block (bitmap_line::@8) in block bitmap_line_ydxd
Removing PHI-reference to removed block (bitmap_line::@8) in block bitmap_line_ydxd
Removing unused block bitmap_line::@8
Removing unused block bitmap_line::@34
Removing unused block main::@return
Successful SSA optimization Pass2EliminateUnusedBlocks
Adding number conversion cast (unumber) 0 in if((byte) bitmap_init::x#1!=(number) 0) goto bitmap_init::@1
Adding number conversion cast (unumber) 0 in if((byte) bitmap_init::y#1!=(number) 0) goto bitmap_init::@5
Adding number conversion cast (unumber) $c8 in if((byte) bitmap_clear::x#1!=(number) $c8) goto bitmap_clear::@2
Adding number conversion cast (unumber) $28 in if((byte) bitmap_clear::y#1!=(number) $28) goto bitmap_clear::@1
Successful SSA optimization PassNAddNumberTypeConversions
Inlining cast (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 (byte~) bitmap_init::$10 = (byte~) 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#0
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 byte*) SCREEN
Constant inlined next#0 = (byte) 0
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 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 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 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::@9(between bitmap_init::@2 and bitmap_init::@1)
Added new block during phi lifting bitmap_init::@10(between bitmap_init::@1 and bitmap_init::@2)
Added new block during phi lifting bitmap_init::@11(between bitmap_init::@6 and bitmap_init::@5)
Added new block during phi lifting bitmap_init::@12(between bitmap_init::@5 and bitmap_init::@6)
Added new block during phi lifting bitmap_clear::@5(between bitmap_clear::@3 and bitmap_clear::@1)
Added new block during phi lifting bitmap_clear::@6(between bitmap_clear::@2 and bitmap_clear::@2)
Added new block during phi lifting bitmap_line_xdyi::@6(between bitmap_line_xdyi::@2 and bitmap_line_xdyi::@1)
Added new block during phi lifting bitmap_line_xdyi::@7(between bitmap_line_xdyi::@5 and bitmap_line_xdyi::@2)
Added new block during phi lifting bitmap_line_xdyd::@6(between bitmap_line_xdyd::@2 and bitmap_line_xdyd::@1)
Added new block during phi lifting bitmap_line_xdyd::@7(between bitmap_line_xdyd::@5 and bitmap_line_xdyd::@2)
Added new block during phi lifting bitmap_line_ydxi::@6(between bitmap_line_ydxi::@2 and bitmap_line_ydxi::@1)
Added new block during phi lifting bitmap_line_ydxi::@7(between bitmap_line_ydxi::@5 and bitmap_line_ydxi::@2)
Added new block during phi lifting bitmap_line_ydxd::@6(between bitmap_line_ydxd::@2 and bitmap_line_ydxd::@1)
Added new block during phi lifting bitmap_line_ydxd::@7(between bitmap_line_ydxd::@5 and bitmap_line_ydxd::@2)
Adding NOP phi() at start of @begin
Adding NOP phi() at start of @12
Adding NOP phi() at start of @14
Adding NOP phi() at start of @15
Adding NOP phi() at start of @end
Adding NOP phi() at start of main::@3
Adding NOP phi() at start of main::@4
Adding NOP phi() at start of main::@5
Adding NOP phi() at start of bitmap_line::@32
Adding NOP phi() at start of bitmap_line::@31
Adding NOP phi() at start of bitmap_line::@36
Adding NOP phi() at start of bitmap_line::@35
Adding NOP phi() at start of bitmap_line_xdyi
Adding NOP phi() at start of init_screen
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
CALL GRAPH
Calls in [] to main:3 
Calls in [main] to bitmap_init:10 bitmap_clear:12 init_screen:14 bitmap_line:18 
Calls in [bitmap_line] to bitmap_line_ydxd:25 bitmap_line_xdyd:30 bitmap_line_ydxi:35 bitmap_line_xdyi:39 
Calls in [bitmap_line_xdyi] to bitmap_plot:47 
Calls in [bitmap_line_ydxi] to bitmap_plot:78 
Calls in [bitmap_line_xdyd] to bitmap_plot:100 
Calls in [bitmap_line_ydxd] to bitmap_plot:123 

Created 34 initial phi equivalence classes
Coalesced [20] next#13 ← next#1
Coalesced [45] bitmap_plot::x#6 ← bitmap_plot::x#0
Coalesced [46] bitmap_plot::y#6 ← bitmap_plot::y#0
Coalesced [53] bitmap_line_xdyi::y#9 ← bitmap_line_xdyi::y#2
Coalesced [54] bitmap_line_xdyi::e#8 ← bitmap_line_xdyi::e#2
Coalesced [59] bitmap_line_xdyi::x#8 ← bitmap_line_xdyi::x#2
Coalesced [60] bitmap_line_xdyi::y#8 ← bitmap_line_xdyi::y#6
Coalesced [61] bitmap_line_xdyi::e#7 ← bitmap_line_xdyi::e#6
Coalesced (already) [62] bitmap_line_xdyi::y#10 ← bitmap_line_xdyi::y#3
Coalesced [63] bitmap_line_xdyi::e#9 ← bitmap_line_xdyi::e#1
Coalesced [72] bitmap_line_ydxi::e#7 ← bitmap_line_ydxi::e#0
Coalesced [76] bitmap_plot::x#8 ← bitmap_plot::x#2
Coalesced [77] bitmap_plot::y#8 ← bitmap_plot::y#2
Coalesced [84] bitmap_line_ydxi::x#9 ← bitmap_line_ydxi::x#2
Coalesced [85] bitmap_line_ydxi::e#9 ← bitmap_line_ydxi::e#2
Coalesced [89] bitmap_line_ydxi::x#8 ← bitmap_line_ydxi::x#6
Coalesced [90] bitmap_line_ydxi::y#8 ← bitmap_line_ydxi::y#2
Coalesced [91] bitmap_line_ydxi::e#8 ← bitmap_line_ydxi::e#6
Coalesced (already) [92] bitmap_line_ydxi::x#10 ← bitmap_line_ydxi::x#3
Coalesced [93] bitmap_line_ydxi::e#10 ← bitmap_line_ydxi::e#1
Coalesced [94] bitmap_line_xdyd::x#8 ← bitmap_line_xdyd::x#0
Coalesced [98] bitmap_plot::x#5 ← bitmap_plot::x#1
Coalesced [99] bitmap_plot::y#5 ← bitmap_plot::y#1
Coalesced [106] bitmap_line_xdyd::y#9 ← bitmap_line_xdyd::y#2
Coalesced [107] bitmap_line_xdyd::e#8 ← bitmap_line_xdyd::e#2
Coalesced [111] bitmap_line_xdyd::x#9 ← bitmap_line_xdyd::x#2
Coalesced [112] bitmap_line_xdyd::y#8 ← bitmap_line_xdyd::y#6
Coalesced [113] bitmap_line_xdyd::e#7 ← bitmap_line_xdyd::e#6
Coalesced (already) [114] bitmap_line_xdyd::y#10 ← bitmap_line_xdyd::y#3
Coalesced [115] bitmap_line_xdyd::e#9 ← bitmap_line_xdyd::e#1
Coalesced [117] bitmap_line_ydxd::e#7 ← bitmap_line_ydxd::e#0
Coalesced [121] bitmap_plot::x#7 ← bitmap_plot::x#3
Coalesced [122] bitmap_plot::y#7 ← bitmap_plot::y#3
Coalesced [129] bitmap_line_ydxd::x#9 ← bitmap_line_ydxd::x#2
Coalesced [130] bitmap_line_ydxd::e#9 ← bitmap_line_ydxd::e#2
Coalesced [134] bitmap_line_ydxd::x#8 ← bitmap_line_ydxd::x#6
Coalesced [135] bitmap_line_ydxd::y#9 ← bitmap_line_ydxd::y#3
Coalesced [136] bitmap_line_ydxd::e#8 ← bitmap_line_ydxd::e#6
Coalesced (already) [137] bitmap_line_ydxd::x#10 ← bitmap_line_ydxd::x#3
Coalesced [138] bitmap_line_ydxd::e#10 ← bitmap_line_ydxd::e#1
Coalesced [145] init_screen::c#4 ← init_screen::c#1
Coalesced [149] bitmap_clear::bitmap#7 ← bitmap_clear::bitmap#3
Coalesced [158] bitmap_clear::bitmap#6 ← bitmap_clear::bitmap#1
Coalesced [159] bitmap_clear::y#5 ← bitmap_clear::y#1
Coalesced (already) [160] bitmap_clear::bitmap#8 ← bitmap_clear::bitmap#1
Coalesced [161] bitmap_clear::x#3 ← bitmap_clear::x#1
Coalesced [184] bitmap_init::yoffs#7 ← bitmap_init::yoffs#1
Coalesced [189] bitmap_init::y#5 ← bitmap_init::y#1
Coalesced [190] bitmap_init::yoffs#5 ← bitmap_init::yoffs#4
Coalesced (already) [191] bitmap_init::yoffs#6 ← bitmap_init::yoffs#2
Coalesced [192] bitmap_init::x#5 ← bitmap_init::x#1
Coalesced [193] bitmap_init::bits#5 ← bitmap_init::bits#4
Coalesced [194] bitmap_init::bits#6 ← bitmap_init::bits#1
Coalesced down to 23 phi equivalence classes
Culled Empty Block (label) @12
Culled Empty Block (label) @15
Culled Empty Block (label) main::@5
Culled Empty Block (label) bitmap_line::@32
Culled Empty Block (label) bitmap_line::@31
Culled Empty Block (label) bitmap_line::@36
Culled Empty Block (label) bitmap_line::@35
Culled Empty Block (label) bitmap_line_xdyi::@6
Culled Empty Block (label) bitmap_line_xdyi::@7
Culled Empty Block (label) bitmap_line_ydxi::@6
Culled Empty Block (label) bitmap_line_ydxi::@7
Culled Empty Block (label) bitmap_line_xdyd::@6
Culled Empty Block (label) bitmap_line_xdyd::@7
Culled Empty Block (label) bitmap_line_ydxd::@6
Culled Empty Block (label) bitmap_line_ydxd::@7
Culled Empty Block (label) bitmap_clear::@5
Culled Empty Block (label) bitmap_clear::@6
Culled Empty Block (label) bitmap_init::@3
Culled Empty Block (label) bitmap_init::@4
Culled Empty Block (label) bitmap_init::@11
Culled Empty Block (label) bitmap_init::@12
Culled Empty Block (label) bitmap_init::@9
Renumbering block @14 to @1
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::@10 to bitmap_init::@6
Renumbering block bitmap_line::@3 to bitmap_line::@2
Renumbering block bitmap_line::@10 to bitmap_line::@3
Renumbering block bitmap_line::@15 to bitmap_line::@4
Renumbering block bitmap_line::@17 to bitmap_line::@5
Renumbering block bitmap_line::@20 to bitmap_line::@6
Renumbering block bitmap_line::@25 to bitmap_line::@7
Renumbering block bitmap_line::@27 to bitmap_line::@8
Renumbering block bitmap_line_xdyi::@5 to bitmap_line_xdyi::@4
Renumbering block bitmap_line_xdyd::@5 to bitmap_line_xdyd::@4
Renumbering block bitmap_line_ydxi::@5 to bitmap_line_ydxi::@4
Renumbering block bitmap_line_ydxd::@5 to bitmap_line_ydxd::@4
Renumbering block main::@3 to main::@2
Renumbering block main::@4 to main::@3
Renumbering block main::@6 to main::@4
Adding NOP phi() at start of @begin
Adding NOP phi() at start of @1
Adding NOP phi() at start of @end
Adding NOP phi() at start of main::@2
Adding NOP phi() at start of main::@3
Adding NOP phi() at start of bitmap_line_xdyi
Adding NOP phi() at start of bitmap_line_xdyd
Adding NOP phi() at start of init_screen
Adding NOP phi() at start of bitmap_init
Adding NOP phi() at start of bitmap_init::@6

FINAL CONTROL FLOW GRAPH
@begin: scope:[]  from
  [0] phi()
  to:@1
@1: scope:[]  from @begin
  [1] phi()
  [2] call main 
  to:@end
@end: scope:[]  from @1
  [3] phi()

(void()) main()
main: scope:[main]  from @1
  [4] *((const byte*) BORDERCOL) ← (byte) 0
  [5] *((const byte*) BGCOL) ← (byte) 0
  [6] *((const byte*) D011) ← (const byte) VIC_BMM|(const byte) VIC_DEN|(const byte) VIC_RSEL|(byte) 3
  [7] *((const byte*) VIC_MEMORY) ← (byte)(word)(const byte*) SCREEN&(word) $3fff/(byte) $40|(word)(const byte*) BITMAP&(word) $3fff/(word) $400
  [8] call bitmap_init 
  to:main::@2
main::@2: scope:[main]  from main
  [9] phi()
  [10] call bitmap_clear 
  to:main::@3
main::@3: scope:[main]  from main::@2
  [11] phi()
  [12] call init_screen 
  to:main::@1
main::@1: scope:[main]  from main::@3 main::@4
  [13] (byte) next#4 ← phi( main::@3/(byte) 0 main::@4/(byte) next#1 )
  [14] (byte) bitmap_line::x1#0 ← (byte) next#4
  [15] call bitmap_line 
  to:main::@4
main::@4: scope:[main]  from main::@1
  [16] (byte) next#1 ← ++ (byte) next#4
  to:main::@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
  [17] 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
  [18] (byte) bitmap_line::xd#2 ← (byte) bitmap_line::x1#0
  to:bitmap_line::@3
bitmap_line::@3: scope:[bitmap_line]  from bitmap_line::@2
  [19] 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
  [20] (byte) bitmap_line_ydxd::xd#0 ← (byte) bitmap_line::xd#2
  [21] 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
  [22] return 
  to:@return
bitmap_line::@4: scope:[bitmap_line]  from bitmap_line::@3
  [23] (byte) bitmap_line_xdyd::x#0 ← (byte) bitmap_line::x1#0
  [24] (byte) bitmap_line_xdyd::xd#0 ← (byte) bitmap_line::xd#2
  [25] call bitmap_line_xdyd 
  to:bitmap_line::@return
bitmap_line::@1: scope:[bitmap_line]  from bitmap_line
  [26] (byte) bitmap_line::xd#1 ← (byte) bitmap_line::x1#0
  to:bitmap_line::@6
bitmap_line::@6: scope:[bitmap_line]  from bitmap_line::@1
  [27] 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
  [28] (byte) bitmap_line_ydxi::xd#1 ← (byte) bitmap_line::xd#1
  [29] call bitmap_line_ydxi 
  to:bitmap_line::@return
bitmap_line::@7: scope:[bitmap_line]  from bitmap_line::@6
  [30] (byte) bitmap_line_xdyi::x1#1 ← (byte) bitmap_line::x1#0
  [31] (byte) bitmap_line_xdyi::xd#1 ← (byte) bitmap_line::xd#1
  [32] call bitmap_line_xdyi 
  to:bitmap_line::@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
  [33] phi()
  to:bitmap_line_xdyi::@1
bitmap_line_xdyi::@1: scope:[bitmap_line_xdyi]  from bitmap_line_xdyi bitmap_line_xdyi::@2
  [34] (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 )
  [34] (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 )
  [34] (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 )
  [35] (byte) bitmap_plot::x#0 ← (byte) bitmap_line_xdyi::x#3
  [36] (byte) bitmap_plot::y#0 ← (byte) bitmap_line_xdyi::y#3
  [37] call bitmap_plot 
  to:bitmap_line_xdyi::@4
bitmap_line_xdyi::@4: scope:[bitmap_line_xdyi]  from bitmap_line_xdyi::@1
  [38] (byte) bitmap_line_xdyi::x#2 ← ++ (byte) bitmap_line_xdyi::x#3
  [39] (byte) bitmap_line_xdyi::e#1 ← (byte) bitmap_line_xdyi::e#3 + (const byte) bitmap_line::y1#0
  [40] 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
  [41] (byte) bitmap_line_xdyi::y#2 ← ++ (byte) bitmap_line_xdyi::y#3
  [42] (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
  [43] (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 )
  [43] (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 )
  [44] (byte~) bitmap_line_xdyi::$6 ← (byte) bitmap_line_xdyi::x1#1 + (byte) 1
  [45] 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
  [46] 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
  [47] (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 )
  [47] (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 )
  [48] (word) bitmap_plot::plotter_x#0 ← *((const byte*) bitmap_plot_xhi + (byte) bitmap_plot::x#4) w= *((const byte*) bitmap_plot_xlo + (byte) bitmap_plot::x#4)
  [49] (word) bitmap_plot::plotter_y#0 ← *((const byte*) bitmap_plot_yhi + (byte) bitmap_plot::y#4) w= *((const byte*) bitmap_plot_ylo + (byte) bitmap_plot::y#4)
  [50] (word) bitmap_plot::plotter#0 ← (word) bitmap_plot::plotter_x#0 + (word) bitmap_plot::plotter_y#0
  [51] (byte~) bitmap_plot::$1 ← *((byte*)(word) bitmap_plot::plotter#0) | *((const byte*) bitmap_plot_bit + (byte) bitmap_plot::x#4)
  [52] *((byte*)(word) bitmap_plot::plotter#0) ← (byte~) bitmap_plot::$1
  to:bitmap_plot::@return
bitmap_plot::@return: scope:[bitmap_plot]  from bitmap_plot
  [53] 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
  [54] (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
  [55] (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 )
  [55] (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 )
  [55] (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 )
  [56] (byte) bitmap_plot::x#2 ← (byte) bitmap_line_ydxi::x#3
  [57] (byte) bitmap_plot::y#2 ← (byte) bitmap_line_ydxi::y#3
  [58] call bitmap_plot 
  to:bitmap_line_ydxi::@4
bitmap_line_ydxi::@4: scope:[bitmap_line_ydxi]  from bitmap_line_ydxi::@1
  [59] (byte) bitmap_line_ydxi::y#2 ← ++ (byte) bitmap_line_ydxi::y#3
  [60] (byte) bitmap_line_ydxi::e#1 ← (byte) bitmap_line_ydxi::e#3 + (byte) bitmap_line_ydxi::xd#1
  [61] 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
  [62] (byte) bitmap_line_ydxi::x#2 ← ++ (byte) bitmap_line_ydxi::x#3
  [63] (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
  [64] (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 )
  [64] (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 )
  [65] 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
  [66] 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
  [67] phi()
  to:bitmap_line_xdyd::@1
bitmap_line_xdyd::@1: scope:[bitmap_line_xdyd]  from bitmap_line_xdyd bitmap_line_xdyd::@2
  [68] (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 )
  [68] (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 )
  [68] (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 )
  [69] (byte) bitmap_plot::x#1 ← (byte) bitmap_line_xdyd::x#3
  [70] (byte) bitmap_plot::y#1 ← (byte) bitmap_line_xdyd::y#3
  [71] call bitmap_plot 
  to:bitmap_line_xdyd::@4
bitmap_line_xdyd::@4: scope:[bitmap_line_xdyd]  from bitmap_line_xdyd::@1
  [72] (byte) bitmap_line_xdyd::x#2 ← ++ (byte) bitmap_line_xdyd::x#3
  [73] (byte) bitmap_line_xdyd::e#1 ← (byte) bitmap_line_xdyd::e#3 + (const byte) bitmap_line::y1#0
  [74] 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
  [75] (byte) bitmap_line_xdyd::y#2 ← -- (byte) bitmap_line_xdyd::y#3
  [76] (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
  [77] (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 )
  [77] (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 )
  [78] 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
  [79] 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::@5
  [80] (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
  [81] (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 )
  [81] (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 )
  [81] (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 )
  [82] (byte) bitmap_plot::x#3 ← (byte) bitmap_line_ydxd::x#3
  [83] (byte) bitmap_plot::y#3 ← (byte) bitmap_line_ydxd::y#2
  [84] call bitmap_plot 
  to:bitmap_line_ydxd::@4
bitmap_line_ydxd::@4: scope:[bitmap_line_ydxd]  from bitmap_line_ydxd::@1
  [85] (byte) bitmap_line_ydxd::y#3 ← ++ (byte) bitmap_line_ydxd::y#2
  [86] (byte) bitmap_line_ydxd::e#1 ← (byte) bitmap_line_ydxd::e#3 + (byte) bitmap_line_ydxd::xd#0
  [87] 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
  [88] (byte) bitmap_line_ydxd::x#2 ← -- (byte) bitmap_line_ydxd::x#3
  [89] (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
  [90] (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 )
  [90] (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 )
  [91] 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
  [92] return 
  to:@return

(void()) init_screen()
init_screen: scope:[init_screen]  from main::@3
  [93] phi()
  to:init_screen::@1
init_screen::@1: scope:[init_screen]  from init_screen init_screen::@2
  [94] (byte*) init_screen::c#2 ← phi( init_screen/(const byte*) SCREEN init_screen::@2/(byte*) init_screen::c#1 )
  [95] if((byte*) init_screen::c#2!=(const byte*) SCREEN+(word) $400) goto init_screen::@2
  to:init_screen::@return
init_screen::@return: scope:[init_screen]  from init_screen::@1
  [96] return 
  to:@return
init_screen::@2: scope:[init_screen]  from init_screen::@1
  [97] *((byte*) init_screen::c#2) ← (byte) $14
  [98] (byte*) init_screen::c#1 ← ++ (byte*) init_screen::c#2
  to:init_screen::@1

(void()) bitmap_clear()
bitmap_clear: scope:[bitmap_clear]  from main::@2
  [99] (word) bitmap_clear::bitmap#0 ← *((const byte*) bitmap_plot_xhi) w= *((const byte*) bitmap_plot_xlo)
  [100] (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
  [101] (byte) bitmap_clear::y#4 ← phi( bitmap_clear/(byte) 0 bitmap_clear::@3/(byte) bitmap_clear::y#1 )
  [101] (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
  [102] (byte) bitmap_clear::x#2 ← phi( bitmap_clear::@1/(byte) 0 bitmap_clear::@2/(byte) bitmap_clear::x#1 )
  [102] (byte*) bitmap_clear::bitmap#2 ← phi( bitmap_clear::@1/(byte*) bitmap_clear::bitmap#3 bitmap_clear::@2/(byte*) bitmap_clear::bitmap#1 )
  [103] *((byte*) bitmap_clear::bitmap#2) ← (byte) 0
  [104] (byte*) bitmap_clear::bitmap#1 ← ++ (byte*) bitmap_clear::bitmap#2
  [105] (byte) bitmap_clear::x#1 ← ++ (byte) bitmap_clear::x#2
  [106] 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
  [107] (byte) bitmap_clear::y#1 ← ++ (byte) bitmap_clear::y#4
  [108] 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
  [109] return 
  to:@return

(void()) bitmap_init((byte*) bitmap_init::bitmap)
bitmap_init: scope:[bitmap_init]  from main
  [110] phi()
  to:bitmap_init::@1
bitmap_init::@1: scope:[bitmap_init]  from bitmap_init bitmap_init::@2
  [111] (byte) bitmap_init::bits#3 ← phi( bitmap_init/(byte) $80 bitmap_init::@2/(byte) bitmap_init::bits#4 )
  [111] (byte) bitmap_init::x#2 ← phi( bitmap_init/(byte) 0 bitmap_init::@2/(byte) bitmap_init::x#1 )
  [112] (byte~) bitmap_init::$0 ← (byte) bitmap_init::x#2 & (byte) $f8
  [113] *((const byte*) bitmap_plot_xlo + (byte) bitmap_init::x#2) ← (byte~) bitmap_init::$0
  [114] *((const byte*) bitmap_plot_xhi + (byte) bitmap_init::x#2) ← >(const byte*) BITMAP
  [115] *((const byte*) bitmap_plot_bit + (byte) bitmap_init::x#2) ← (byte) bitmap_init::bits#3
  [116] (byte) bitmap_init::bits#1 ← (byte) bitmap_init::bits#3 >> (byte) 1
  [117] 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
  [118] phi()
  to:bitmap_init::@2
bitmap_init::@2: scope:[bitmap_init]  from bitmap_init::@1 bitmap_init::@6
  [119] (byte) bitmap_init::bits#4 ← phi( bitmap_init::@6/(byte) bitmap_init::bits#1 bitmap_init::@1/(byte) $80 )
  [120] (byte) bitmap_init::x#1 ← ++ (byte) bitmap_init::x#2
  [121] 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
  [122] (byte*) bitmap_init::yoffs#2 ← phi( bitmap_init::@2/(byte*) 0 bitmap_init::@4/(byte*) bitmap_init::yoffs#4 )
  [122] (byte) bitmap_init::y#2 ← phi( bitmap_init::@2/(byte) 0 bitmap_init::@4/(byte) bitmap_init::y#1 )
  [123] (byte~) bitmap_init::$10 ← (byte) bitmap_init::y#2 & (byte) 7
  [124] (byte~) bitmap_init::$7 ← < (byte*) bitmap_init::yoffs#2
  [125] (byte~) bitmap_init::$8 ← (byte~) bitmap_init::$10 | (byte~) bitmap_init::$7
  [126] *((const byte*) bitmap_plot_ylo + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$8
  [127] (byte~) bitmap_init::$9 ← > (byte*) bitmap_init::yoffs#2
  [128] *((const byte*) bitmap_plot_yhi + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$9
  [129] 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
  [130] (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
  [131] (byte*) bitmap_init::yoffs#4 ← phi( bitmap_init::@3/(byte*) bitmap_init::yoffs#2 bitmap_init::@5/(byte*) bitmap_init::yoffs#1 )
  [132] (byte) bitmap_init::y#1 ← ++ (byte) bitmap_init::y#2
  [133] 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
  [134] return 
  to:@return


VARIABLE REGISTER WEIGHTS
(void()) bitmap_clear()
(byte*) bitmap_clear::bitmap
(word) bitmap_clear::bitmap#0 2.0
(byte*) bitmap_clear::bitmap#1 42.599999999999994
(byte*) bitmap_clear::bitmap#2 157.0
(byte*) bitmap_clear::bitmap#3 24.0
(byte*) bitmap_clear::bitmap#5 4.0
(byte) bitmap_clear::x
(byte) bitmap_clear::x#1 151.5
(byte) bitmap_clear::x#2 67.33333333333333
(byte) bitmap_clear::y
(byte) bitmap_clear::y#1 16.5
(byte) bitmap_clear::y#4 3.6666666666666665
(void()) bitmap_init((byte*) bitmap_init::bitmap)
(byte~) bitmap_init::$0 22.0
(byte~) bitmap_init::$10 5.5
(byte~) bitmap_init::$7 22.0
(byte~) bitmap_init::$8 22.0
(byte~) bitmap_init::$9 22.0
(byte*) bitmap_init::bitmap
(byte) bitmap_init::bits
(byte) bitmap_init::bits#1 11.0
(byte) bitmap_init::bits#3 6.6000000000000005
(byte) bitmap_init::bits#4 7.333333333333333
(byte) bitmap_init::x
(byte) bitmap_init::x#1 16.5
(byte) bitmap_init::x#2 7.333333333333334
(byte) bitmap_init::y
(byte) bitmap_init::y#1 16.5
(byte) bitmap_init::y#2 5.5
(byte*) bitmap_init::yoffs
(byte*) bitmap_init::yoffs#1 22.0
(byte*) bitmap_init::yoffs#2 6.875
(byte*) bitmap_init::yoffs#4 11.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 3.5000000000000004
(byte) bitmap_line::xd
(byte) bitmap_line::xd#1 2.6666666666666665
(byte) bitmap_line::xd#2 2.6666666666666665
(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 134.66666666666666
(byte) bitmap_line_xdyd::e#2 202.0
(byte) bitmap_line_xdyd::e#3 40.4
(byte) bitmap_line_xdyd::e#6 151.5
(byte) bitmap_line_xdyd::x
(byte) bitmap_line_xdyd::x#0 1.3333333333333333
(byte) bitmap_line_xdyd::x#2 43.285714285714285
(byte) bitmap_line_xdyd::x#3 76.25
(byte) bitmap_line_xdyd::x1
(byte) bitmap_line_xdyd::xd
(byte) bitmap_line_xdyd::xd#0 15.692307692307693
(byte) bitmap_line_xdyd::y
(byte) bitmap_line_xdyd::y#2 101.0
(byte) bitmap_line_xdyd::y#3 57.714285714285715
(byte) bitmap_line_xdyd::y#6 151.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 202.0
(byte) bitmap_line_xdyi::e
(byte) bitmap_line_xdyi::e#1 134.66666666666666
(byte) bitmap_line_xdyi::e#2 202.0
(byte) bitmap_line_xdyi::e#3 40.4
(byte) bitmap_line_xdyi::e#6 101.0
(byte) bitmap_line_xdyi::x
(byte) bitmap_line_xdyi::x#2 37.875
(byte) bitmap_line_xdyi::x#3 75.75
(byte) bitmap_line_xdyi::x1
(byte) bitmap_line_xdyi::x1#1 6.866666666666667
(byte) bitmap_line_xdyi::xd
(byte) bitmap_line_xdyi::xd#1 14.571428571428573
(byte) bitmap_line_xdyi::y
(byte) bitmap_line_xdyi::y#2 101.0
(byte) bitmap_line_xdyi::y#3 57.714285714285715
(byte) bitmap_line_xdyi::y#6 101.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 4.0
(byte) bitmap_line_ydxd::e#1 134.66666666666666
(byte) bitmap_line_ydxd::e#2 202.0
(byte) bitmap_line_ydxd::e#3 40.8
(byte) bitmap_line_ydxd::e#6 151.5
(byte) bitmap_line_ydxd::x
(byte) bitmap_line_ydxd::x#2 101.0
(byte) bitmap_line_ydxd::x#3 57.714285714285715
(byte) bitmap_line_ydxd::x#6 151.5
(byte) bitmap_line_ydxd::xd
(byte) bitmap_line_ydxd::xd#0 8.076923076923077
(byte) bitmap_line_ydxd::y
(byte) bitmap_line_ydxd::y#2 75.75
(byte) bitmap_line_ydxd::y#3 43.285714285714285
(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 4.0
(byte) bitmap_line_ydxi::e#1 134.66666666666666
(byte) bitmap_line_ydxi::e#2 202.0
(byte) bitmap_line_ydxi::e#3 40.8
(byte) bitmap_line_ydxi::e#6 151.5
(byte) bitmap_line_ydxi::x
(byte) bitmap_line_ydxi::x#2 101.0
(byte) bitmap_line_ydxi::x#3 57.714285714285715
(byte) bitmap_line_ydxi::x#6 151.5
(byte) bitmap_line_ydxi::xd
(byte) bitmap_line_ydxi::xd#1 8.076923076923077
(byte) bitmap_line_ydxi::y
(byte) bitmap_line_ydxi::y#2 43.285714285714285
(byte) bitmap_line_ydxi::y#3 75.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 4.0
(byte*) bitmap_plot::plotter
(word) bitmap_plot::plotter#0 1.0
(word) bitmap_plot::plotter_x
(word) bitmap_plot::plotter_x#0 2.0
(word) bitmap_plot::plotter_y
(word) bitmap_plot::plotter_y#0 4.0
(byte) bitmap_plot::x
(byte) bitmap_plot::x#0 101.0
(byte) bitmap_plot::x#1 101.0
(byte) bitmap_plot::x#2 101.0
(byte) bitmap_plot::x#3 101.0
(byte) bitmap_plot::x#4 102.5
(byte) bitmap_plot::y
(byte) bitmap_plot::y#0 202.0
(byte) bitmap_plot::y#1 202.0
(byte) bitmap_plot::y#2 202.0
(byte) bitmap_plot::y#3 202.0
(byte) bitmap_plot::y#4 204.0
(void()) init_screen()
(byte*) init_screen::c
(byte*) init_screen::c#1 22.0
(byte*) init_screen::c#2 14.666666666666666
(void()) main()
(byte) next
(byte) next#1 22.0
(byte) next#4 11.0

Initial phi equivalence classes
[ next#4 next#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_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_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_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 ]
[ init_screen::c#2 init_screen::c#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 ]
[ 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 ]
Added variable bitmap_line::x1#0 to live range equivalence class [ bitmap_line::x1#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 ]
Added variable bitmap_clear::bitmap#0 to live range equivalence class [ bitmap_clear::bitmap#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 ]
Complete equivalence classes
[ next#4 next#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_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_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_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 ]
[ init_screen::c#2 init_screen::c#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 ]
[ 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_line::x1#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 ]
[ bitmap_clear::bitmap#0 ]
[ bitmap_init::$0 ]
[ bitmap_init::$10 ]
[ bitmap_init::$7 ]
[ bitmap_init::$8 ]
[ bitmap_init::$9 ]
Allocated zp[1]:2 [ next#4 next#1 ]
Allocated zp[1]:3 [ bitmap_line_xdyi::x#3 bitmap_line_xdyi::x#2 ]
Allocated zp[1]:4 [ bitmap_line_xdyi::y#3 bitmap_line_xdyi::y#6 bitmap_line_xdyi::y#2 ]
Allocated zp[1]:5 [ bitmap_line_xdyi::e#3 bitmap_line_xdyi::e#6 bitmap_line_xdyi::e#2 bitmap_line_xdyi::e#1 ]
Allocated zp[1]:6 [ bitmap_plot::x#4 bitmap_plot::x#1 bitmap_plot::x#0 bitmap_plot::x#3 bitmap_plot::x#2 ]
Allocated zp[1]:7 [ bitmap_plot::y#4 bitmap_plot::y#1 bitmap_plot::y#0 bitmap_plot::y#3 bitmap_plot::y#2 ]
Allocated zp[1]:8 [ bitmap_line_ydxi::x#3 bitmap_line_ydxi::x#6 bitmap_line_ydxi::x#2 ]
Allocated zp[1]:9 [ bitmap_line_ydxi::y#3 bitmap_line_ydxi::y#2 ]
Allocated zp[1]:10 [ 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]:11 [ bitmap_line_xdyd::x#3 bitmap_line_xdyd::x#0 bitmap_line_xdyd::x#2 ]
Allocated zp[1]:12 [ bitmap_line_xdyd::y#3 bitmap_line_xdyd::y#6 bitmap_line_xdyd::y#2 ]
Allocated zp[1]:13 [ bitmap_line_xdyd::e#3 bitmap_line_xdyd::e#6 bitmap_line_xdyd::e#2 bitmap_line_xdyd::e#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[2]:17 [ init_screen::c#2 init_screen::c#1 ]
Allocated zp[1]:19 [ bitmap_clear::y#4 bitmap_clear::y#1 ]
Allocated zp[2]:20 [ bitmap_clear::bitmap#2 bitmap_clear::bitmap#3 bitmap_clear::bitmap#5 bitmap_clear::bitmap#1 ]
Allocated zp[1]:22 [ bitmap_clear::x#2 bitmap_clear::x#1 ]
Allocated zp[1]:23 [ bitmap_init::x#2 bitmap_init::x#1 ]
Allocated zp[1]:24 [ bitmap_init::bits#3 bitmap_init::bits#4 bitmap_init::bits#1 ]
Allocated zp[1]:25 [ bitmap_init::y#2 bitmap_init::y#1 ]
Allocated zp[2]:26 [ bitmap_init::yoffs#2 bitmap_init::yoffs#4 bitmap_init::yoffs#1 ]
Allocated zp[1]:28 [ bitmap_line::x1#0 ]
Allocated zp[1]:29 [ bitmap_line::xd#2 ]
Allocated zp[1]:30 [ bitmap_line_ydxd::xd#0 ]
Allocated zp[1]:31 [ bitmap_line_xdyd::xd#0 ]
Allocated zp[1]:32 [ bitmap_line::xd#1 ]
Allocated zp[1]:33 [ bitmap_line_ydxi::xd#1 ]
Allocated zp[1]:34 [ bitmap_line_xdyi::x1#1 ]
Allocated zp[1]:35 [ bitmap_line_xdyi::xd#1 ]
Allocated zp[1]:36 [ bitmap_line_xdyi::$6 ]
Allocated zp[2]:37 [ bitmap_plot::plotter_x#0 ]
Allocated zp[2]:39 [ bitmap_plot::plotter_y#0 ]
Allocated zp[2]:41 [ bitmap_plot::plotter#0 ]
Allocated zp[1]:43 [ bitmap_plot::$1 ]
Allocated zp[2]:44 [ bitmap_clear::bitmap#0 ]
Allocated zp[1]:46 [ bitmap_init::$0 ]
Allocated zp[1]:47 [ bitmap_init::$10 ]
Allocated zp[1]:48 [ bitmap_init::$7 ]
Allocated zp[1]:49 [ bitmap_init::$8 ]
Allocated zp[1]:50 [ bitmap_init::$9 ]

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(__bbegin)
.pc = $80d "Program"
  // Global Constants & labels
  .label BORDERCOL = $d020
  .label BGCOL = $d021
  .label D011 = $d011
  .const VIC_BMM = $20
  .const VIC_DEN = $10
  .const VIC_RSEL = 8
  .label VIC_MEMORY = $d018
  .label SCREEN = $400
  .label BITMAP = $2000
  .label next = 2
  // @begin
__bbegin:
  // [1] phi from @begin to @1 [phi:@begin->@1]
__b1_from___bbegin:
  jmp __b1
  // @1
__b1:
  // [2] call main 
  jsr main
  // [3] phi from @1 to @end [phi:@1->@end]
__bend_from___b1:
  jmp __bend
  // @end
__bend:
  // main
main: {
    // [4] *((const byte*) BORDERCOL) ← (byte) 0 -- _deref_pbuc1=vbuc2 
    lda #0
    sta BORDERCOL
    // [5] *((const byte*) BGCOL) ← (byte) 0 -- _deref_pbuc1=vbuc2 
    lda #0
    sta BGCOL
    // [6] *((const byte*) D011) ← (const byte) VIC_BMM|(const byte) VIC_DEN|(const byte) VIC_RSEL|(byte) 3 -- _deref_pbuc1=vbuc2 
    lda #VIC_BMM|VIC_DEN|VIC_RSEL|3
    sta D011
    // [7] *((const byte*) VIC_MEMORY) ← (byte)(word)(const byte*) SCREEN&(word) $3fff/(byte) $40|(word)(const byte*) BITMAP&(word) $3fff/(word) $400 -- _deref_pbuc1=vbuc2 
    lda #(SCREEN&$3fff)/$40|(BITMAP&$3fff)/$400
    sta VIC_MEMORY
    // [8] call bitmap_init 
    // [110] phi from main to bitmap_init [phi:main->bitmap_init]
  bitmap_init_from_main:
    jsr bitmap_init
    // [9] phi from main to main::@2 [phi:main->main::@2]
  __b2_from_main:
    jmp __b2
    // main::@2
  __b2:
    // [10] call bitmap_clear 
    jsr bitmap_clear
    // [11] phi from main::@2 to main::@3 [phi:main::@2->main::@3]
  __b3_from___b2:
    jmp __b3
    // main::@3
  __b3:
    // [12] call init_screen 
    // [93] phi from main::@3 to init_screen [phi:main::@3->init_screen]
  init_screen_from___b3:
    jsr init_screen
    // [13] phi from main::@3 to main::@1 [phi:main::@3->main::@1]
  __b1_from___b3:
    // [13] phi (byte) next#4 = (byte) 0 [phi:main::@3->main::@1#0] -- vbuz1=vbuc1 
    lda #0
    sta.z next
    jmp __b1
    // main::@1
  __b1:
    // [14] (byte) bitmap_line::x1#0 ← (byte) next#4 -- vbuz1=vbuz2 
    lda.z next
    sta.z bitmap_line.x1
    // [15] call bitmap_line 
    jsr bitmap_line
    jmp __b4
    // main::@4
  __b4:
    // [16] (byte) next#1 ← ++ (byte) next#4 -- vbuz1=_inc_vbuz1 
    inc.z next
    // [13] phi from main::@4 to main::@1 [phi:main::@4->main::@1]
  __b1_from___b4:
    // [13] phi (byte) next#4 = (byte) next#1 [phi:main::@4->main::@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 = $20
    .label xd_1 = $1d
    .label x1 = $1c
    // [17] 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:
    // [18] (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:
    // [19] 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:
    // [20] (byte) bitmap_line_ydxd::xd#0 ← (byte) bitmap_line::xd#2 -- vbuz1=vbuz2 
    lda.z xd_1
    sta.z bitmap_line_ydxd.xd
    // [21] call bitmap_line_ydxd 
    jsr bitmap_line_ydxd
    jmp __breturn
    // bitmap_line::@return
  __breturn:
    // [22] return 
    rts
    // bitmap_line::@4
  __b4:
    // [23] (byte) bitmap_line_xdyd::x#0 ← (byte) bitmap_line::x1#0 -- vbuz1=vbuz2 
    lda.z x1
    sta.z bitmap_line_xdyd.x
    // [24] (byte) bitmap_line_xdyd::xd#0 ← (byte) bitmap_line::xd#2 -- vbuz1=vbuz2 
    lda.z xd_1
    sta.z bitmap_line_xdyd.xd
    // [25] call bitmap_line_xdyd 
    // [67] 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:
    // [26] (byte) bitmap_line::xd#1 ← (byte) bitmap_line::x1#0 -- vbuz1=vbuz2 
    lda.z x1
    sta.z xd
    jmp __b6
    // bitmap_line::@6
  __b6:
    // [27] 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:
    // [28] (byte) bitmap_line_ydxi::xd#1 ← (byte) bitmap_line::xd#1 -- vbuz1=vbuz2 
    lda.z xd
    sta.z bitmap_line_ydxi.xd
    // [29] call bitmap_line_ydxi 
    jsr bitmap_line_ydxi
    jmp __breturn
    // bitmap_line::@7
  __b7:
    // [30] (byte) bitmap_line_xdyi::x1#1 ← (byte) bitmap_line::x1#0 -- vbuz1=vbuz2 
    lda.z x1
    sta.z bitmap_line_xdyi.x1
    // [31] (byte) bitmap_line_xdyi::xd#1 ← (byte) bitmap_line::xd#1 -- vbuz1=vbuz2 
    lda.z xd
    sta.z bitmap_line_xdyi.xd
    // [32] call bitmap_line_xdyi 
    // [33] 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_xdyi
// bitmap_line_xdyi(byte zp(3) x, byte zp(4) y, byte zp($22) x1, byte zp($23) xd)
bitmap_line_xdyi: {
    .label __6 = $24
    .label x1 = $22
    .label xd = $23
    .label x = 3
    .label e = 5
    .label y = 4
    // [34] phi from bitmap_line_xdyi to bitmap_line_xdyi::@1 [phi:bitmap_line_xdyi->bitmap_line_xdyi::@1]
  __b1_from_bitmap_line_xdyi:
    // [34] 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
    // [34] 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
    // [34] 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
    // [34] phi from bitmap_line_xdyi::@2 to bitmap_line_xdyi::@1 [phi:bitmap_line_xdyi::@2->bitmap_line_xdyi::@1]
  __b1_from___b2:
    // [34] 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 
    // [34] 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 
    // [34] 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:
    // [35] (byte) bitmap_plot::x#0 ← (byte) bitmap_line_xdyi::x#3 -- vbuz1=vbuz2 
    lda.z x
    sta.z bitmap_plot.x
    // [36] (byte) bitmap_plot::y#0 ← (byte) bitmap_line_xdyi::y#3 -- vbuz1=vbuz2 
    lda.z y
    sta.z bitmap_plot.y
    // [37] call bitmap_plot 
    // [47] phi from bitmap_line_xdyi::@1 to bitmap_plot [phi:bitmap_line_xdyi::@1->bitmap_plot]
  bitmap_plot_from___b1:
    // [47] phi (byte) bitmap_plot::y#4 = (byte) bitmap_plot::y#0 [phi:bitmap_line_xdyi::@1->bitmap_plot#0] -- register_copy 
    // [47] 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:
    // [38] (byte) bitmap_line_xdyi::x#2 ← ++ (byte) bitmap_line_xdyi::x#3 -- vbuz1=_inc_vbuz1 
    inc.z x
    // [39] (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
    // [40] 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:
    // [41] (byte) bitmap_line_xdyi::y#2 ← ++ (byte) bitmap_line_xdyi::y#3 -- vbuz1=_inc_vbuz1 
    inc.z y
    // [42] (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
    // [43] 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:
    // [43] 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 
    // [43] 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:
    // [44] (byte~) bitmap_line_xdyi::$6 ← (byte) bitmap_line_xdyi::x1#1 + (byte) 1 -- vbuz1=vbuz2_plus_1 
    ldy.z x1
    iny
    sty.z __6
    // [45] 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:
    // [46] return 
    rts
}
  // bitmap_plot
// bitmap_plot(byte zp(6) x, byte zp(7) y)
bitmap_plot: {
    .label __1 = $2b
    .label plotter_x = $25
    .label plotter_y = $27
    .label plotter = $29
    .label x = 6
    .label y = 7
    // [48] (word) bitmap_plot::plotter_x#0 ← *((const byte*) bitmap_plot_xhi + (byte) bitmap_plot::x#4) w= *((const 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
    // [49] (word) bitmap_plot::plotter_y#0 ← *((const byte*) bitmap_plot_yhi + (byte) bitmap_plot::y#4) w= *((const 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
    // [50] (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
    // [51] (byte~) bitmap_plot::$1 ← *((byte*)(word) bitmap_plot::plotter#0) | *((const 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
    // [52] *((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:
    // [53] return 
    rts
}
  // bitmap_line_ydxi
// bitmap_line_ydxi(byte zp(9) y, byte zp(8) x, byte zp($21) xd)
bitmap_line_ydxi: {
    .label xd = $21
    .label e = $a
    .label y = 9
    .label x = 8
    // [54] (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
    // [55] phi from bitmap_line_ydxi to bitmap_line_ydxi::@1 [phi:bitmap_line_ydxi->bitmap_line_ydxi::@1]
  __b1_from_bitmap_line_ydxi:
    // [55] phi (byte) bitmap_line_ydxi::e#3 = (byte) bitmap_line_ydxi::e#0 [phi:bitmap_line_ydxi->bitmap_line_ydxi::@1#0] -- register_copy 
    // [55] 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
    // [55] 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
    // [55] phi from bitmap_line_ydxi::@2 to bitmap_line_ydxi::@1 [phi:bitmap_line_ydxi::@2->bitmap_line_ydxi::@1]
  __b1_from___b2:
    // [55] 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 
    // [55] 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 
    // [55] 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:
    // [56] (byte) bitmap_plot::x#2 ← (byte) bitmap_line_ydxi::x#3 -- vbuz1=vbuz2 
    lda.z x
    sta.z bitmap_plot.x
    // [57] (byte) bitmap_plot::y#2 ← (byte) bitmap_line_ydxi::y#3 -- vbuz1=vbuz2 
    lda.z y
    sta.z bitmap_plot.y
    // [58] call bitmap_plot 
    // [47] phi from bitmap_line_ydxi::@1 to bitmap_plot [phi:bitmap_line_ydxi::@1->bitmap_plot]
  bitmap_plot_from___b1:
    // [47] phi (byte) bitmap_plot::y#4 = (byte) bitmap_plot::y#2 [phi:bitmap_line_ydxi::@1->bitmap_plot#0] -- register_copy 
    // [47] 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:
    // [59] (byte) bitmap_line_ydxi::y#2 ← ++ (byte) bitmap_line_ydxi::y#3 -- vbuz1=_inc_vbuz1 
    inc.z y
    // [60] (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
    // [61] 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:
    // [62] (byte) bitmap_line_ydxi::x#2 ← ++ (byte) bitmap_line_ydxi::x#3 -- vbuz1=_inc_vbuz1 
    inc.z x
    // [63] (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
    // [64] 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:
    // [64] 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 
    // [64] 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:
    // [65] 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:
    // [66] return 
    rts
}
  // bitmap_line_xdyd
// bitmap_line_xdyd(byte zp($b) x, byte zp($c) y, byte zp($1f) xd)
bitmap_line_xdyd: {
    .label x = $b
    .label xd = $1f
    .label e = $d
    .label y = $c
    // [68] phi from bitmap_line_xdyd to bitmap_line_xdyd::@1 [phi:bitmap_line_xdyd->bitmap_line_xdyd::@1]
  __b1_from_bitmap_line_xdyd:
    // [68] 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
    // [68] 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
    // [68] 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
    // [68] phi from bitmap_line_xdyd::@2 to bitmap_line_xdyd::@1 [phi:bitmap_line_xdyd::@2->bitmap_line_xdyd::@1]
  __b1_from___b2:
    // [68] 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 
    // [68] 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 
    // [68] 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:
    // [69] (byte) bitmap_plot::x#1 ← (byte) bitmap_line_xdyd::x#3 -- vbuz1=vbuz2 
    lda.z x
    sta.z bitmap_plot.x
    // [70] (byte) bitmap_plot::y#1 ← (byte) bitmap_line_xdyd::y#3 -- vbuz1=vbuz2 
    lda.z y
    sta.z bitmap_plot.y
    // [71] call bitmap_plot 
    // [47] phi from bitmap_line_xdyd::@1 to bitmap_plot [phi:bitmap_line_xdyd::@1->bitmap_plot]
  bitmap_plot_from___b1:
    // [47] phi (byte) bitmap_plot::y#4 = (byte) bitmap_plot::y#1 [phi:bitmap_line_xdyd::@1->bitmap_plot#0] -- register_copy 
    // [47] 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:
    // [72] (byte) bitmap_line_xdyd::x#2 ← ++ (byte) bitmap_line_xdyd::x#3 -- vbuz1=_inc_vbuz1 
    inc.z x
    // [73] (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
    // [74] 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:
    // [75] (byte) bitmap_line_xdyd::y#2 ← -- (byte) bitmap_line_xdyd::y#3 -- vbuz1=_dec_vbuz1 
    dec.z y
    // [76] (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
    // [77] 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:
    // [77] 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 
    // [77] 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:
    // [78] 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:
    // [79] return 
    rts
}
  // bitmap_line_ydxd
// bitmap_line_ydxd(byte zp($f) y, byte zp($e) x, byte zp($1e) xd)
bitmap_line_ydxd: {
    .label xd = $1e
    .label e = $10
    .label y = $f
    .label x = $e
    // [80] (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
    // [81] phi from bitmap_line_ydxd to bitmap_line_ydxd::@1 [phi:bitmap_line_ydxd->bitmap_line_ydxd::@1]
  __b1_from_bitmap_line_ydxd:
    // [81] phi (byte) bitmap_line_ydxd::e#3 = (byte) bitmap_line_ydxd::e#0 [phi:bitmap_line_ydxd->bitmap_line_ydxd::@1#0] -- register_copy 
    // [81] 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
    // [81] 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
    // [81] phi from bitmap_line_ydxd::@2 to bitmap_line_ydxd::@1 [phi:bitmap_line_ydxd::@2->bitmap_line_ydxd::@1]
  __b1_from___b2:
    // [81] 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 
    // [81] 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 
    // [81] 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:
    // [82] (byte) bitmap_plot::x#3 ← (byte) bitmap_line_ydxd::x#3 -- vbuz1=vbuz2 
    lda.z x
    sta.z bitmap_plot.x
    // [83] (byte) bitmap_plot::y#3 ← (byte) bitmap_line_ydxd::y#2 -- vbuz1=vbuz2 
    lda.z y
    sta.z bitmap_plot.y
    // [84] call bitmap_plot 
    // [47] phi from bitmap_line_ydxd::@1 to bitmap_plot [phi:bitmap_line_ydxd::@1->bitmap_plot]
  bitmap_plot_from___b1:
    // [47] phi (byte) bitmap_plot::y#4 = (byte) bitmap_plot::y#3 [phi:bitmap_line_ydxd::@1->bitmap_plot#0] -- register_copy 
    // [47] 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:
    // [85] (byte) bitmap_line_ydxd::y#3 ← ++ (byte) bitmap_line_ydxd::y#2 -- vbuz1=_inc_vbuz1 
    inc.z y
    // [86] (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
    // [87] 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:
    // [88] (byte) bitmap_line_ydxd::x#2 ← -- (byte) bitmap_line_ydxd::x#3 -- vbuz1=_dec_vbuz1 
    dec.z x
    // [89] (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
    // [90] 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:
    // [90] 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 
    // [90] 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:
    // [91] 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:
    // [92] return 
    rts
}
  // init_screen
init_screen: {
    .label c = $11
    // [94] phi from init_screen to init_screen::@1 [phi:init_screen->init_screen::@1]
  __b1_from_init_screen:
    // [94] phi (byte*) init_screen::c#2 = (const 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:
    // [95] if((byte*) init_screen::c#2!=(const 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:
    // [96] return 
    rts
    // init_screen::@2
  __b2:
    // [97] *((byte*) init_screen::c#2) ← (byte) $14 -- _deref_pbuz1=vbuc1 
    lda #$14
    ldy #0
    sta (c),y
    // [98] (byte*) init_screen::c#1 ← ++ (byte*) init_screen::c#2 -- pbuz1=_inc_pbuz1 
    inc.z c
    bne !+
    inc.z c+1
  !:
    // [94] phi from init_screen::@2 to init_screen::@1 [phi:init_screen::@2->init_screen::@1]
  __b1_from___b2:
    // [94] phi (byte*) init_screen::c#2 = (byte*) init_screen::c#1 [phi:init_screen::@2->init_screen::@1#0] -- register_copy 
    jmp __b1
}
  // bitmap_clear
// Clear all graphics on the bitmap
bitmap_clear: {
    .label bitmap = $2c
    .label bitmap_1 = $14
    .label x = $16
    .label y = $13
    // [99] (word) bitmap_clear::bitmap#0 ← *((const byte*) bitmap_plot_xhi) w= *((const 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
    // [100] (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
    // [101] phi from bitmap_clear to bitmap_clear::@1 [phi:bitmap_clear->bitmap_clear::@1]
  __b1_from_bitmap_clear:
    // [101] phi (byte) bitmap_clear::y#4 = (byte) 0 [phi:bitmap_clear->bitmap_clear::@1#0] -- vbuz1=vbuc1 
    lda #0
    sta.z y
    // [101] phi (byte*) bitmap_clear::bitmap#3 = (byte*) bitmap_clear::bitmap#5 [phi:bitmap_clear->bitmap_clear::@1#1] -- register_copy 
    jmp __b1
    // [101] phi from bitmap_clear::@3 to bitmap_clear::@1 [phi:bitmap_clear::@3->bitmap_clear::@1]
  __b1_from___b3:
    // [101] phi (byte) bitmap_clear::y#4 = (byte) bitmap_clear::y#1 [phi:bitmap_clear::@3->bitmap_clear::@1#0] -- register_copy 
    // [101] 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:
    // [102] phi from bitmap_clear::@1 to bitmap_clear::@2 [phi:bitmap_clear::@1->bitmap_clear::@2]
  __b2_from___b1:
    // [102] phi (byte) bitmap_clear::x#2 = (byte) 0 [phi:bitmap_clear::@1->bitmap_clear::@2#0] -- vbuz1=vbuc1 
    lda #0
    sta.z x
    // [102] phi (byte*) bitmap_clear::bitmap#2 = (byte*) bitmap_clear::bitmap#3 [phi:bitmap_clear::@1->bitmap_clear::@2#1] -- register_copy 
    jmp __b2
    // [102] phi from bitmap_clear::@2 to bitmap_clear::@2 [phi:bitmap_clear::@2->bitmap_clear::@2]
  __b2_from___b2:
    // [102] phi (byte) bitmap_clear::x#2 = (byte) bitmap_clear::x#1 [phi:bitmap_clear::@2->bitmap_clear::@2#0] -- register_copy 
    // [102] 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:
    // [103] *((byte*) bitmap_clear::bitmap#2) ← (byte) 0 -- _deref_pbuz1=vbuc1 
    lda #0
    ldy #0
    sta (bitmap_1),y
    // [104] (byte*) bitmap_clear::bitmap#1 ← ++ (byte*) bitmap_clear::bitmap#2 -- pbuz1=_inc_pbuz1 
    inc.z bitmap_1
    bne !+
    inc.z bitmap_1+1
  !:
    // [105] (byte) bitmap_clear::x#1 ← ++ (byte) bitmap_clear::x#2 -- vbuz1=_inc_vbuz1 
    inc.z x
    // [106] 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:
    // [107] (byte) bitmap_clear::y#1 ← ++ (byte) bitmap_clear::y#4 -- vbuz1=_inc_vbuz1 
    inc.z y
    // [108] 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:
    // [109] return 
    rts
}
  // bitmap_init
// Initialize the bitmap plotter tables for a specific bitmap
bitmap_init: {
    .label __0 = $2e
    .label __7 = $30
    .label __8 = $31
    .label __9 = $32
    .label __10 = $2f
    .label bits = $18
    .label x = $17
    .label y = $19
    .label yoffs = $1a
    // [111] phi from bitmap_init to bitmap_init::@1 [phi:bitmap_init->bitmap_init::@1]
  __b1_from_bitmap_init:
    // [111] phi (byte) bitmap_init::bits#3 = (byte) $80 [phi:bitmap_init->bitmap_init::@1#0] -- vbuz1=vbuc1 
    lda #$80
    sta.z bits
    // [111] phi (byte) bitmap_init::x#2 = (byte) 0 [phi:bitmap_init->bitmap_init::@1#1] -- vbuz1=vbuc1 
    lda #0
    sta.z x
    jmp __b1
    // [111] phi from bitmap_init::@2 to bitmap_init::@1 [phi:bitmap_init::@2->bitmap_init::@1]
  __b1_from___b2:
    // [111] phi (byte) bitmap_init::bits#3 = (byte) bitmap_init::bits#4 [phi:bitmap_init::@2->bitmap_init::@1#0] -- register_copy 
    // [111] 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:
    // [112] (byte~) bitmap_init::$0 ← (byte) bitmap_init::x#2 & (byte) $f8 -- vbuz1=vbuz2_band_vbuc1 
    lda #$f8
    and.z x
    sta.z __0
    // [113] *((const 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
    // [114] *((const byte*) bitmap_plot_xhi + (byte) bitmap_init::x#2) ← >(const byte*) BITMAP -- pbuc1_derefidx_vbuz1=vbuc2 
    lda #>BITMAP
    ldy.z x
    sta bitmap_plot_xhi,y
    // [115] *((const 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
    // [116] (byte) bitmap_init::bits#1 ← (byte) bitmap_init::bits#3 >> (byte) 1 -- vbuz1=vbuz1_ror_1 
    lsr.z bits
    // [117] 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
    // [119] phi from bitmap_init::@1 to bitmap_init::@2 [phi:bitmap_init::@1->bitmap_init::@2]
  __b2_from___b1:
    // [119] 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
    // [118] 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:
    // [119] phi from bitmap_init::@6 to bitmap_init::@2 [phi:bitmap_init::@6->bitmap_init::@2]
  __b2_from___b6:
    // [119] 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:
    // [120] (byte) bitmap_init::x#1 ← ++ (byte) bitmap_init::x#2 -- vbuz1=_inc_vbuz1 
    inc.z x
    // [121] 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
    // [122] phi from bitmap_init::@2 to bitmap_init::@3 [phi:bitmap_init::@2->bitmap_init::@3]
  __b3_from___b2:
    // [122] 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
    // [122] 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
    // [122] phi from bitmap_init::@4 to bitmap_init::@3 [phi:bitmap_init::@4->bitmap_init::@3]
  __b3_from___b4:
    // [122] phi (byte*) bitmap_init::yoffs#2 = (byte*) bitmap_init::yoffs#4 [phi:bitmap_init::@4->bitmap_init::@3#0] -- register_copy 
    // [122] 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:
    // [123] (byte~) bitmap_init::$10 ← (byte) bitmap_init::y#2 & (byte) 7 -- vbuz1=vbuz2_band_vbuc1 
    lda #7
    and.z y
    sta.z __10
    // [124] (byte~) bitmap_init::$7 ← < (byte*) bitmap_init::yoffs#2 -- vbuz1=_lo_pbuz2 
    lda.z yoffs
    sta.z __7
    // [125] (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
    // [126] *((const 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
    // [127] (byte~) bitmap_init::$9 ← > (byte*) bitmap_init::yoffs#2 -- vbuz1=_hi_pbuz2 
    lda.z yoffs+1
    sta.z __9
    // [128] *((const 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
    // [129] 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:
    // [130] (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
    // [131] 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:
    // [131] 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:
    // [132] (byte) bitmap_init::y#1 ← ++ (byte) bitmap_init::y#2 -- vbuz1=_inc_vbuz1 
    inc.z y
    // [133] 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:
    // [134] 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]:48 [ bitmap_init::$7 ] has ALU potential.
Statement [4] *((const byte*) BORDERCOL) ← (byte) 0 [ ] ( main:2 [ ] ) always clobbers reg byte a 
Statement [5] *((const byte*) BGCOL) ← (byte) 0 [ ] ( main:2 [ ] ) always clobbers reg byte a 
Statement [6] *((const byte*) D011) ← (const byte) VIC_BMM|(const byte) VIC_DEN|(const byte) VIC_RSEL|(byte) 3 [ ] ( main:2 [ ] ) always clobbers reg byte a 
Statement [7] *((const byte*) VIC_MEMORY) ← (byte)(word)(const byte*) SCREEN&(word) $3fff/(byte) $40|(word)(const byte*) BITMAP&(word) $3fff/(word) $400 [ ] ( main:2 [ ] ) always clobbers reg byte a 
Statement [39] (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 ] ( main:2::bitmap_line:15::bitmap_line_xdyi:32 [ next#4 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 ] ) always clobbers reg byte a 
Removing always clobbered register reg byte a as potential for zp[1]:2 [ next#4 next#1 ]
Removing always clobbered register reg byte a as potential for zp[1]:34 [ bitmap_line_xdyi::x1#1 ]
Removing always clobbered register reg byte a as potential for zp[1]:35 [ bitmap_line_xdyi::xd#1 ]
Removing always clobbered register reg byte a as potential for zp[1]:4 [ 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]:3 [ bitmap_line_xdyi::x#3 bitmap_line_xdyi::x#2 ]
Statement [42] (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 ] ( main:2::bitmap_line:15::bitmap_line_xdyi:32 [ next#4 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 ] ) always clobbers reg byte a 
Statement [48] (word) bitmap_plot::plotter_x#0 ← *((const byte*) bitmap_plot_xhi + (byte) bitmap_plot::x#4) w= *((const byte*) bitmap_plot_xlo + (byte) bitmap_plot::x#4) [ bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] ( main:2::bitmap_line:15::bitmap_line_xdyi:32::bitmap_plot:37 [ next#4 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 ] main:2::bitmap_line:15::bitmap_line_ydxi:29::bitmap_plot:58 [ next#4 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 ] main:2::bitmap_line:15::bitmap_line_xdyd:25::bitmap_plot:71 [ next#4 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 ] main:2::bitmap_line:15::bitmap_line_ydxd:21::bitmap_plot:84 [ next#4 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 ] ) always clobbers reg byte a 
Removing always clobbered register reg byte a as potential for zp[1]:5 [ bitmap_line_xdyi::e#3 bitmap_line_xdyi::e#6 bitmap_line_xdyi::e#2 bitmap_line_xdyi::e#1 ]
Removing always clobbered register reg byte a as potential for zp[1]:6 [ 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]:7 [ 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]:33 [ bitmap_line_ydxi::xd#1 ]
Removing always clobbered register reg byte a as potential for zp[1]:8 [ 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]:9 [ bitmap_line_ydxi::y#3 bitmap_line_ydxi::y#2 ]
Removing always clobbered register reg byte a as potential for zp[1]:10 [ 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]:31 [ bitmap_line_xdyd::xd#0 ]
Removing always clobbered register reg byte a as potential for zp[1]:11 [ bitmap_line_xdyd::x#3 bitmap_line_xdyd::x#0 bitmap_line_xdyd::x#2 ]
Removing always clobbered register reg byte a as potential for zp[1]:12 [ 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]:13 [ 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]:30 [ bitmap_line_ydxd::xd#0 ]
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 ]
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 ]
Statement [49] (word) bitmap_plot::plotter_y#0 ← *((const byte*) bitmap_plot_yhi + (byte) bitmap_plot::y#4) w= *((const byte*) bitmap_plot_ylo + (byte) bitmap_plot::y#4) [ bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] ( main:2::bitmap_line:15::bitmap_line_xdyi:32::bitmap_plot:37 [ next#4 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 ] main:2::bitmap_line:15::bitmap_line_ydxi:29::bitmap_plot:58 [ next#4 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 ] main:2::bitmap_line:15::bitmap_line_xdyd:25::bitmap_plot:71 [ next#4 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 ] main:2::bitmap_line:15::bitmap_line_ydxd:21::bitmap_plot:84 [ next#4 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 ] ) always clobbers reg byte a 
Statement [50] (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 ] ( main:2::bitmap_line:15::bitmap_line_xdyi:32::bitmap_plot:37 [ next#4 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 ] main:2::bitmap_line:15::bitmap_line_ydxi:29::bitmap_plot:58 [ next#4 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 ] main:2::bitmap_line:15::bitmap_line_xdyd:25::bitmap_plot:71 [ next#4 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 ] main:2::bitmap_line:15::bitmap_line_ydxd:21::bitmap_plot:84 [ next#4 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 ] ) always clobbers reg byte a 
Statement [51] (byte~) bitmap_plot::$1 ← *((byte*)(word) bitmap_plot::plotter#0) | *((const byte*) bitmap_plot_bit + (byte) bitmap_plot::x#4) [ bitmap_plot::plotter#0 bitmap_plot::$1 ] ( main:2::bitmap_line:15::bitmap_line_xdyi:32::bitmap_plot:37 [ next#4 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 ] main:2::bitmap_line:15::bitmap_line_ydxi:29::bitmap_plot:58 [ next#4 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 ] main:2::bitmap_line:15::bitmap_line_xdyd:25::bitmap_plot:71 [ next#4 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 ] main:2::bitmap_line:15::bitmap_line_ydxd:21::bitmap_plot:84 [ next#4 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 ] ) always clobbers reg byte a reg byte y 
Removing always clobbered register reg byte y as potential for zp[1]:2 [ next#4 next#1 ]
Removing always clobbered register reg byte y as potential for zp[1]:34 [ bitmap_line_xdyi::x1#1 ]
Removing always clobbered register reg byte y as potential for zp[1]:35 [ bitmap_line_xdyi::xd#1 ]
Removing always clobbered register reg byte y as potential for zp[1]:3 [ bitmap_line_xdyi::x#3 bitmap_line_xdyi::x#2 ]
Removing always clobbered register reg byte y as potential for zp[1]:4 [ 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]:5 [ bitmap_line_xdyi::e#3 bitmap_line_xdyi::e#6 bitmap_line_xdyi::e#2 bitmap_line_xdyi::e#1 ]
Removing always clobbered register reg byte y as potential for zp[1]:33 [ bitmap_line_ydxi::xd#1 ]
Removing always clobbered register reg byte y as potential for zp[1]:8 [ 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]:9 [ bitmap_line_ydxi::y#3 bitmap_line_ydxi::y#2 ]
Removing always clobbered register reg byte y as potential for zp[1]:10 [ 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]:31 [ bitmap_line_xdyd::xd#0 ]
Removing always clobbered register reg byte y as potential for zp[1]:11 [ 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]:12 [ 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]:13 [ 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]:30 [ 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 ]
Statement [52] *((byte*)(word) bitmap_plot::plotter#0) ← (byte~) bitmap_plot::$1 [ ] ( main:2::bitmap_line:15::bitmap_line_xdyi:32::bitmap_plot:37 [ next#4 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 ] main:2::bitmap_line:15::bitmap_line_ydxi:29::bitmap_plot:58 [ next#4 bitmap_line_ydxi::xd#1 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 ] main:2::bitmap_line:15::bitmap_line_xdyd:25::bitmap_plot:71 [ next#4 bitmap_line_xdyd::xd#0 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] main:2::bitmap_line:15::bitmap_line_ydxd:21::bitmap_plot:84 [ next#4 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] ) always clobbers reg byte y 
Statement [54] (byte) bitmap_line_ydxi::e#0 ← (byte) bitmap_line_ydxi::xd#1 >> (byte) 1 [ bitmap_line_ydxi::xd#1 bitmap_line_ydxi::e#0 ] ( main:2::bitmap_line:15::bitmap_line_ydxi:29 [ next#4 bitmap_line_ydxi::xd#1 bitmap_line_ydxi::e#0 ] ) always clobbers reg byte a 
Statement [60] (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 ] ( main:2::bitmap_line:15::bitmap_line_ydxi:29 [ next#4 bitmap_line_ydxi::xd#1 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#1 ] ) always clobbers reg byte a 
Statement [63] (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 ] ( main:2::bitmap_line:15::bitmap_line_ydxi:29 [ next#4 bitmap_line_ydxi::xd#1 bitmap_line_ydxi::y#2 bitmap_line_ydxi::x#2 bitmap_line_ydxi::e#2 ] ) always clobbers reg byte a reg byte x 
Removing always clobbered register reg byte x as potential for zp[1]:2 [ next#4 next#1 ]
Removing always clobbered register reg byte x as potential for zp[1]:33 [ bitmap_line_ydxi::xd#1 ]
Removing always clobbered register reg byte x as potential for zp[1]:9 [ bitmap_line_ydxi::y#3 bitmap_line_ydxi::y#2 ]
Removing always clobbered register reg byte x as potential for zp[1]:8 [ bitmap_line_ydxi::x#3 bitmap_line_ydxi::x#6 bitmap_line_ydxi::x#2 ]
Statement [65] 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 ] ( main:2::bitmap_line:15::bitmap_line_ydxi:29 [ next#4 bitmap_line_ydxi::xd#1 bitmap_line_ydxi::x#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#6 ] ) always clobbers reg byte a 
Statement [73] (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 ] ( main:2::bitmap_line:15::bitmap_line_xdyd:25 [ next#4 bitmap_line_xdyd::xd#0 bitmap_line_xdyd::y#3 bitmap_line_xdyd::x#2 bitmap_line_xdyd::e#1 ] ) always clobbers reg byte a reg byte x 
Removing always clobbered register reg byte x as potential for zp[1]:31 [ bitmap_line_xdyd::xd#0 ]
Removing always clobbered register reg byte x as potential for zp[1]:12 [ 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]:11 [ bitmap_line_xdyd::x#3 bitmap_line_xdyd::x#0 bitmap_line_xdyd::x#2 ]
Statement [74] 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 ] ( main:2::bitmap_line:15::bitmap_line_xdyd:25 [ next#4 bitmap_line_xdyd::xd#0 bitmap_line_xdyd::y#3 bitmap_line_xdyd::x#2 bitmap_line_xdyd::e#1 ] ) always clobbers reg byte a 
Statement [76] (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 ] ( main:2::bitmap_line:15::bitmap_line_xdyd:25 [ next#4 bitmap_line_xdyd::xd#0 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#2 bitmap_line_xdyd::e#2 ] ) always clobbers reg byte a 
Statement [78] 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 ] ( main:2::bitmap_line:15::bitmap_line_xdyd:25 [ next#4 bitmap_line_xdyd::xd#0 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#6 bitmap_line_xdyd::e#6 ] ) always clobbers reg byte a 
Statement [80] (byte) bitmap_line_ydxd::e#0 ← (byte) bitmap_line_ydxd::xd#0 >> (byte) 1 [ bitmap_line_ydxd::xd#0 bitmap_line_ydxd::e#0 ] ( main:2::bitmap_line:15::bitmap_line_ydxd:21 [ next#4 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::e#0 ] ) always clobbers reg byte a 
Statement [86] (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 ] ( main:2::bitmap_line:15::bitmap_line_ydxd:21 [ next#4 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 ] ) always clobbers reg byte a 
Statement [89] (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 ] ( main:2::bitmap_line:15::bitmap_line_ydxd:21 [ next#4 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::y#3 bitmap_line_ydxd::x#2 bitmap_line_ydxd::e#2 ] ) always clobbers reg byte a reg byte x 
Removing always clobbered register reg byte x as potential for zp[1]:30 [ 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 [91] 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 ] ( main:2::bitmap_line:15::bitmap_line_ydxd:21 [ next#4 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::x#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#6 ] ) always clobbers reg byte a 
Statement [95] if((byte*) init_screen::c#2!=(const byte*) SCREEN+(word) $400) goto init_screen::@2 [ init_screen::c#2 ] ( main:2::init_screen:12 [ init_screen::c#2 ] ) always clobbers reg byte a 
Statement [97] *((byte*) init_screen::c#2) ← (byte) $14 [ init_screen::c#2 ] ( main:2::init_screen:12 [ init_screen::c#2 ] ) always clobbers reg byte a reg byte y 
Statement [99] (word) bitmap_clear::bitmap#0 ← *((const byte*) bitmap_plot_xhi) w= *((const byte*) bitmap_plot_xlo) [ bitmap_clear::bitmap#0 ] ( main:2::bitmap_clear:10 [ bitmap_clear::bitmap#0 ] ) always clobbers reg byte a 
Statement [100] (byte*) bitmap_clear::bitmap#5 ← (byte*)(word) bitmap_clear::bitmap#0 [ bitmap_clear::bitmap#5 ] ( main:2::bitmap_clear:10 [ bitmap_clear::bitmap#5 ] ) always clobbers reg byte a 
Statement [103] *((byte*) bitmap_clear::bitmap#2) ← (byte) 0 [ bitmap_clear::y#4 bitmap_clear::bitmap#2 bitmap_clear::x#2 ] ( main:2::bitmap_clear:10 [ 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]:19 [ bitmap_clear::y#4 bitmap_clear::y#1 ]
Removing always clobbered register reg byte y as potential for zp[1]:19 [ bitmap_clear::y#4 bitmap_clear::y#1 ]
Removing always clobbered register reg byte a as potential for zp[1]:22 [ bitmap_clear::x#2 bitmap_clear::x#1 ]
Removing always clobbered register reg byte y as potential for zp[1]:22 [ bitmap_clear::x#2 bitmap_clear::x#1 ]
Statement [114] *((const byte*) bitmap_plot_xhi + (byte) bitmap_init::x#2) ← >(const byte*) BITMAP [ bitmap_init::x#2 bitmap_init::bits#3 ] ( main:2::bitmap_init:8 [ 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]:23 [ bitmap_init::x#2 bitmap_init::x#1 ]
Removing always clobbered register reg byte a as potential for zp[1]:24 [ bitmap_init::bits#3 bitmap_init::bits#4 bitmap_init::bits#1 ]
Statement [115] *((const byte*) bitmap_plot_bit + (byte) bitmap_init::x#2) ← (byte) bitmap_init::bits#3 [ bitmap_init::x#2 bitmap_init::bits#3 ] ( main:2::bitmap_init:8 [ bitmap_init::x#2 bitmap_init::bits#3 ] ) always clobbers reg byte a 
Statement [130] (byte*) bitmap_init::yoffs#1 ← (byte*) bitmap_init::yoffs#2 + (word)(number) $28*(number) 8 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] ( main:2::bitmap_init:8 [ 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]:25 [ bitmap_init::y#2 bitmap_init::y#1 ]
Statement [4] *((const byte*) BORDERCOL) ← (byte) 0 [ ] ( main:2 [ ] ) always clobbers reg byte a 
Statement [5] *((const byte*) BGCOL) ← (byte) 0 [ ] ( main:2 [ ] ) always clobbers reg byte a 
Statement [6] *((const byte*) D011) ← (const byte) VIC_BMM|(const byte) VIC_DEN|(const byte) VIC_RSEL|(byte) 3 [ ] ( main:2 [ ] ) always clobbers reg byte a 
Statement [7] *((const byte*) VIC_MEMORY) ← (byte)(word)(const byte*) SCREEN&(word) $3fff/(byte) $40|(word)(const byte*) BITMAP&(word) $3fff/(word) $400 [ ] ( main:2 [ ] ) always clobbers reg byte a 
Statement [39] (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 ] ( main:2::bitmap_line:15::bitmap_line_xdyi:32 [ next#4 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 ] ) always clobbers reg byte a reg byte x 
Removing always clobbered register reg byte x as potential for zp[1]:34 [ bitmap_line_xdyi::x1#1 ]
Removing always clobbered register reg byte x as potential for zp[1]:35 [ bitmap_line_xdyi::xd#1 ]
Removing always clobbered register reg byte x as potential for zp[1]:4 [ 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]:3 [ bitmap_line_xdyi::x#3 bitmap_line_xdyi::x#2 ]
Statement [40] 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 ] ( main:2::bitmap_line:15::bitmap_line_xdyi:32 [ next#4 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 ] ) always clobbers reg byte a 
Statement [42] (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 ] ( main:2::bitmap_line:15::bitmap_line_xdyi:32 [ next#4 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 ] ) always clobbers reg byte a 
Statement [48] (word) bitmap_plot::plotter_x#0 ← *((const byte*) bitmap_plot_xhi + (byte) bitmap_plot::x#4) w= *((const byte*) bitmap_plot_xlo + (byte) bitmap_plot::x#4) [ bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] ( main:2::bitmap_line:15::bitmap_line_xdyi:32::bitmap_plot:37 [ next#4 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 ] main:2::bitmap_line:15::bitmap_line_ydxi:29::bitmap_plot:58 [ next#4 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 ] main:2::bitmap_line:15::bitmap_line_xdyd:25::bitmap_plot:71 [ next#4 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 ] main:2::bitmap_line:15::bitmap_line_ydxd:21::bitmap_plot:84 [ next#4 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 ] ) always clobbers reg byte a 
Statement [49] (word) bitmap_plot::plotter_y#0 ← *((const byte*) bitmap_plot_yhi + (byte) bitmap_plot::y#4) w= *((const byte*) bitmap_plot_ylo + (byte) bitmap_plot::y#4) [ bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] ( main:2::bitmap_line:15::bitmap_line_xdyi:32::bitmap_plot:37 [ next#4 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 ] main:2::bitmap_line:15::bitmap_line_ydxi:29::bitmap_plot:58 [ next#4 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 ] main:2::bitmap_line:15::bitmap_line_xdyd:25::bitmap_plot:71 [ next#4 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 ] main:2::bitmap_line:15::bitmap_line_ydxd:21::bitmap_plot:84 [ next#4 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 ] ) always clobbers reg byte a 
Statement [50] (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 ] ( main:2::bitmap_line:15::bitmap_line_xdyi:32::bitmap_plot:37 [ next#4 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 ] main:2::bitmap_line:15::bitmap_line_ydxi:29::bitmap_plot:58 [ next#4 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 ] main:2::bitmap_line:15::bitmap_line_xdyd:25::bitmap_plot:71 [ next#4 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 ] main:2::bitmap_line:15::bitmap_line_ydxd:21::bitmap_plot:84 [ next#4 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 ] ) always clobbers reg byte a 
Statement [51] (byte~) bitmap_plot::$1 ← *((byte*)(word) bitmap_plot::plotter#0) | *((const byte*) bitmap_plot_bit + (byte) bitmap_plot::x#4) [ bitmap_plot::plotter#0 bitmap_plot::$1 ] ( main:2::bitmap_line:15::bitmap_line_xdyi:32::bitmap_plot:37 [ next#4 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 ] main:2::bitmap_line:15::bitmap_line_ydxi:29::bitmap_plot:58 [ next#4 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 ] main:2::bitmap_line:15::bitmap_line_xdyd:25::bitmap_plot:71 [ next#4 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 ] main:2::bitmap_line:15::bitmap_line_ydxd:21::bitmap_plot:84 [ next#4 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 ] ) always clobbers reg byte a reg byte y 
Statement [52] *((byte*)(word) bitmap_plot::plotter#0) ← (byte~) bitmap_plot::$1 [ ] ( main:2::bitmap_line:15::bitmap_line_xdyi:32::bitmap_plot:37 [ next#4 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 ] main:2::bitmap_line:15::bitmap_line_ydxi:29::bitmap_plot:58 [ next#4 bitmap_line_ydxi::xd#1 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 ] main:2::bitmap_line:15::bitmap_line_xdyd:25::bitmap_plot:71 [ next#4 bitmap_line_xdyd::xd#0 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] main:2::bitmap_line:15::bitmap_line_ydxd:21::bitmap_plot:84 [ next#4 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] ) always clobbers reg byte y 
Statement [54] (byte) bitmap_line_ydxi::e#0 ← (byte) bitmap_line_ydxi::xd#1 >> (byte) 1 [ bitmap_line_ydxi::xd#1 bitmap_line_ydxi::e#0 ] ( main:2::bitmap_line:15::bitmap_line_ydxi:29 [ next#4 bitmap_line_ydxi::xd#1 bitmap_line_ydxi::e#0 ] ) always clobbers reg byte a 
Statement [60] (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 ] ( main:2::bitmap_line:15::bitmap_line_ydxi:29 [ next#4 bitmap_line_ydxi::xd#1 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#1 ] ) always clobbers reg byte a 
Statement [63] (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 ] ( main:2::bitmap_line:15::bitmap_line_ydxi:29 [ next#4 bitmap_line_ydxi::xd#1 bitmap_line_ydxi::y#2 bitmap_line_ydxi::x#2 bitmap_line_ydxi::e#2 ] ) always clobbers reg byte a reg byte x 
Statement [65] 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 ] ( main:2::bitmap_line:15::bitmap_line_ydxi:29 [ next#4 bitmap_line_ydxi::xd#1 bitmap_line_ydxi::x#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#6 ] ) always clobbers reg byte a 
Statement [73] (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 ] ( main:2::bitmap_line:15::bitmap_line_xdyd:25 [ next#4 bitmap_line_xdyd::xd#0 bitmap_line_xdyd::y#3 bitmap_line_xdyd::x#2 bitmap_line_xdyd::e#1 ] ) always clobbers reg byte a reg byte x 
Statement [74] 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 ] ( main:2::bitmap_line:15::bitmap_line_xdyd:25 [ next#4 bitmap_line_xdyd::xd#0 bitmap_line_xdyd::y#3 bitmap_line_xdyd::x#2 bitmap_line_xdyd::e#1 ] ) always clobbers reg byte a 
Statement [76] (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 ] ( main:2::bitmap_line:15::bitmap_line_xdyd:25 [ next#4 bitmap_line_xdyd::xd#0 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#2 bitmap_line_xdyd::e#2 ] ) always clobbers reg byte a 
Statement [78] 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 ] ( main:2::bitmap_line:15::bitmap_line_xdyd:25 [ next#4 bitmap_line_xdyd::xd#0 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#6 bitmap_line_xdyd::e#6 ] ) always clobbers reg byte a 
Statement [80] (byte) bitmap_line_ydxd::e#0 ← (byte) bitmap_line_ydxd::xd#0 >> (byte) 1 [ bitmap_line_ydxd::xd#0 bitmap_line_ydxd::e#0 ] ( main:2::bitmap_line:15::bitmap_line_ydxd:21 [ next#4 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::e#0 ] ) always clobbers reg byte a 
Statement [86] (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 ] ( main:2::bitmap_line:15::bitmap_line_ydxd:21 [ next#4 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 ] ) always clobbers reg byte a 
Statement [89] (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 ] ( main:2::bitmap_line:15::bitmap_line_ydxd:21 [ next#4 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::y#3 bitmap_line_ydxd::x#2 bitmap_line_ydxd::e#2 ] ) always clobbers reg byte a reg byte x 
Statement [91] 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 ] ( main:2::bitmap_line:15::bitmap_line_ydxd:21 [ next#4 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::x#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#6 ] ) always clobbers reg byte a 
Statement [95] if((byte*) init_screen::c#2!=(const byte*) SCREEN+(word) $400) goto init_screen::@2 [ init_screen::c#2 ] ( main:2::init_screen:12 [ init_screen::c#2 ] ) always clobbers reg byte a 
Statement [97] *((byte*) init_screen::c#2) ← (byte) $14 [ init_screen::c#2 ] ( main:2::init_screen:12 [ init_screen::c#2 ] ) always clobbers reg byte a reg byte y 
Statement [99] (word) bitmap_clear::bitmap#0 ← *((const byte*) bitmap_plot_xhi) w= *((const byte*) bitmap_plot_xlo) [ bitmap_clear::bitmap#0 ] ( main:2::bitmap_clear:10 [ bitmap_clear::bitmap#0 ] ) always clobbers reg byte a 
Statement [100] (byte*) bitmap_clear::bitmap#5 ← (byte*)(word) bitmap_clear::bitmap#0 [ bitmap_clear::bitmap#5 ] ( main:2::bitmap_clear:10 [ bitmap_clear::bitmap#5 ] ) always clobbers reg byte a 
Statement [103] *((byte*) bitmap_clear::bitmap#2) ← (byte) 0 [ bitmap_clear::y#4 bitmap_clear::bitmap#2 bitmap_clear::x#2 ] ( main:2::bitmap_clear:10 [ bitmap_clear::y#4 bitmap_clear::bitmap#2 bitmap_clear::x#2 ] ) always clobbers reg byte a reg byte y 
Statement [112] (byte~) bitmap_init::$0 ← (byte) bitmap_init::x#2 & (byte) $f8 [ bitmap_init::x#2 bitmap_init::bits#3 bitmap_init::$0 ] ( main:2::bitmap_init:8 [ bitmap_init::x#2 bitmap_init::bits#3 bitmap_init::$0 ] ) always clobbers reg byte a 
Statement [114] *((const byte*) bitmap_plot_xhi + (byte) bitmap_init::x#2) ← >(const byte*) BITMAP [ bitmap_init::x#2 bitmap_init::bits#3 ] ( main:2::bitmap_init:8 [ bitmap_init::x#2 bitmap_init::bits#3 ] ) always clobbers reg byte a 
Statement [115] *((const byte*) bitmap_plot_bit + (byte) bitmap_init::x#2) ← (byte) bitmap_init::bits#3 [ bitmap_init::x#2 bitmap_init::bits#3 ] ( main:2::bitmap_init:8 [ bitmap_init::x#2 bitmap_init::bits#3 ] ) always clobbers reg byte a 
Statement [123] (byte~) bitmap_init::$10 ← (byte) bitmap_init::y#2 & (byte) 7 [ bitmap_init::y#2 bitmap_init::yoffs#2 bitmap_init::$10 ] ( main:2::bitmap_init:8 [ bitmap_init::y#2 bitmap_init::yoffs#2 bitmap_init::$10 ] ) always clobbers reg byte a 
Statement [130] (byte*) bitmap_init::yoffs#1 ← (byte*) bitmap_init::yoffs#2 + (word)(number) $28*(number) 8 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] ( main:2::bitmap_init:8 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] ) always clobbers reg byte a 
Statement [4] *((const byte*) BORDERCOL) ← (byte) 0 [ ] ( main:2 [ ] ) always clobbers reg byte a 
Statement [5] *((const byte*) BGCOL) ← (byte) 0 [ ] ( main:2 [ ] ) always clobbers reg byte a 
Statement [6] *((const byte*) D011) ← (const byte) VIC_BMM|(const byte) VIC_DEN|(const byte) VIC_RSEL|(byte) 3 [ ] ( main:2 [ ] ) always clobbers reg byte a 
Statement [7] *((const byte*) VIC_MEMORY) ← (byte)(word)(const byte*) SCREEN&(word) $3fff/(byte) $40|(word)(const byte*) BITMAP&(word) $3fff/(word) $400 [ ] ( main:2 [ ] ) always clobbers reg byte a 
Statement [39] (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 ] ( main:2::bitmap_line:15::bitmap_line_xdyi:32 [ next#4 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 ] ) always clobbers reg byte a reg byte x 
Statement [40] 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 ] ( main:2::bitmap_line:15::bitmap_line_xdyi:32 [ next#4 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 ] ) always clobbers reg byte a 
Statement [42] (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 ] ( main:2::bitmap_line:15::bitmap_line_xdyi:32 [ next#4 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 ] ) always clobbers reg byte a 
Statement [48] (word) bitmap_plot::plotter_x#0 ← *((const byte*) bitmap_plot_xhi + (byte) bitmap_plot::x#4) w= *((const byte*) bitmap_plot_xlo + (byte) bitmap_plot::x#4) [ bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] ( main:2::bitmap_line:15::bitmap_line_xdyi:32::bitmap_plot:37 [ next#4 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 ] main:2::bitmap_line:15::bitmap_line_ydxi:29::bitmap_plot:58 [ next#4 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 ] main:2::bitmap_line:15::bitmap_line_xdyd:25::bitmap_plot:71 [ next#4 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 ] main:2::bitmap_line:15::bitmap_line_ydxd:21::bitmap_plot:84 [ next#4 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 ] ) always clobbers reg byte a 
Statement [49] (word) bitmap_plot::plotter_y#0 ← *((const byte*) bitmap_plot_yhi + (byte) bitmap_plot::y#4) w= *((const byte*) bitmap_plot_ylo + (byte) bitmap_plot::y#4) [ bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] ( main:2::bitmap_line:15::bitmap_line_xdyi:32::bitmap_plot:37 [ next#4 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 ] main:2::bitmap_line:15::bitmap_line_ydxi:29::bitmap_plot:58 [ next#4 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 ] main:2::bitmap_line:15::bitmap_line_xdyd:25::bitmap_plot:71 [ next#4 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 ] main:2::bitmap_line:15::bitmap_line_ydxd:21::bitmap_plot:84 [ next#4 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 ] ) always clobbers reg byte a 
Statement [50] (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 ] ( main:2::bitmap_line:15::bitmap_line_xdyi:32::bitmap_plot:37 [ next#4 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 ] main:2::bitmap_line:15::bitmap_line_ydxi:29::bitmap_plot:58 [ next#4 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 ] main:2::bitmap_line:15::bitmap_line_xdyd:25::bitmap_plot:71 [ next#4 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 ] main:2::bitmap_line:15::bitmap_line_ydxd:21::bitmap_plot:84 [ next#4 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 ] ) always clobbers reg byte a 
Statement [51] (byte~) bitmap_plot::$1 ← *((byte*)(word) bitmap_plot::plotter#0) | *((const byte*) bitmap_plot_bit + (byte) bitmap_plot::x#4) [ bitmap_plot::plotter#0 bitmap_plot::$1 ] ( main:2::bitmap_line:15::bitmap_line_xdyi:32::bitmap_plot:37 [ next#4 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 ] main:2::bitmap_line:15::bitmap_line_ydxi:29::bitmap_plot:58 [ next#4 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 ] main:2::bitmap_line:15::bitmap_line_xdyd:25::bitmap_plot:71 [ next#4 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 ] main:2::bitmap_line:15::bitmap_line_ydxd:21::bitmap_plot:84 [ next#4 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 ] ) always clobbers reg byte a reg byte y 
Statement [52] *((byte*)(word) bitmap_plot::plotter#0) ← (byte~) bitmap_plot::$1 [ ] ( main:2::bitmap_line:15::bitmap_line_xdyi:32::bitmap_plot:37 [ next#4 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 ] main:2::bitmap_line:15::bitmap_line_ydxi:29::bitmap_plot:58 [ next#4 bitmap_line_ydxi::xd#1 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 ] main:2::bitmap_line:15::bitmap_line_xdyd:25::bitmap_plot:71 [ next#4 bitmap_line_xdyd::xd#0 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] main:2::bitmap_line:15::bitmap_line_ydxd:21::bitmap_plot:84 [ next#4 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] ) always clobbers reg byte y 
Statement [54] (byte) bitmap_line_ydxi::e#0 ← (byte) bitmap_line_ydxi::xd#1 >> (byte) 1 [ bitmap_line_ydxi::xd#1 bitmap_line_ydxi::e#0 ] ( main:2::bitmap_line:15::bitmap_line_ydxi:29 [ next#4 bitmap_line_ydxi::xd#1 bitmap_line_ydxi::e#0 ] ) always clobbers reg byte a 
Statement [60] (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 ] ( main:2::bitmap_line:15::bitmap_line_ydxi:29 [ next#4 bitmap_line_ydxi::xd#1 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#1 ] ) always clobbers reg byte a 
Statement [63] (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 ] ( main:2::bitmap_line:15::bitmap_line_ydxi:29 [ next#4 bitmap_line_ydxi::xd#1 bitmap_line_ydxi::y#2 bitmap_line_ydxi::x#2 bitmap_line_ydxi::e#2 ] ) always clobbers reg byte a reg byte x 
Statement [65] 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 ] ( main:2::bitmap_line:15::bitmap_line_ydxi:29 [ next#4 bitmap_line_ydxi::xd#1 bitmap_line_ydxi::x#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#6 ] ) always clobbers reg byte a 
Statement [73] (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 ] ( main:2::bitmap_line:15::bitmap_line_xdyd:25 [ next#4 bitmap_line_xdyd::xd#0 bitmap_line_xdyd::y#3 bitmap_line_xdyd::x#2 bitmap_line_xdyd::e#1 ] ) always clobbers reg byte a reg byte x 
Statement [74] 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 ] ( main:2::bitmap_line:15::bitmap_line_xdyd:25 [ next#4 bitmap_line_xdyd::xd#0 bitmap_line_xdyd::y#3 bitmap_line_xdyd::x#2 bitmap_line_xdyd::e#1 ] ) always clobbers reg byte a 
Statement [76] (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 ] ( main:2::bitmap_line:15::bitmap_line_xdyd:25 [ next#4 bitmap_line_xdyd::xd#0 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#2 bitmap_line_xdyd::e#2 ] ) always clobbers reg byte a 
Statement [78] 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 ] ( main:2::bitmap_line:15::bitmap_line_xdyd:25 [ next#4 bitmap_line_xdyd::xd#0 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#6 bitmap_line_xdyd::e#6 ] ) always clobbers reg byte a 
Statement [80] (byte) bitmap_line_ydxd::e#0 ← (byte) bitmap_line_ydxd::xd#0 >> (byte) 1 [ bitmap_line_ydxd::xd#0 bitmap_line_ydxd::e#0 ] ( main:2::bitmap_line:15::bitmap_line_ydxd:21 [ next#4 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::e#0 ] ) always clobbers reg byte a 
Statement [86] (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 ] ( main:2::bitmap_line:15::bitmap_line_ydxd:21 [ next#4 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 ] ) always clobbers reg byte a 
Statement [89] (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 ] ( main:2::bitmap_line:15::bitmap_line_ydxd:21 [ next#4 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::y#3 bitmap_line_ydxd::x#2 bitmap_line_ydxd::e#2 ] ) always clobbers reg byte a reg byte x 
Statement [91] 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 ] ( main:2::bitmap_line:15::bitmap_line_ydxd:21 [ next#4 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::x#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#6 ] ) always clobbers reg byte a 
Statement [95] if((byte*) init_screen::c#2!=(const byte*) SCREEN+(word) $400) goto init_screen::@2 [ init_screen::c#2 ] ( main:2::init_screen:12 [ init_screen::c#2 ] ) always clobbers reg byte a 
Statement [97] *((byte*) init_screen::c#2) ← (byte) $14 [ init_screen::c#2 ] ( main:2::init_screen:12 [ init_screen::c#2 ] ) always clobbers reg byte a reg byte y 
Statement [99] (word) bitmap_clear::bitmap#0 ← *((const byte*) bitmap_plot_xhi) w= *((const byte*) bitmap_plot_xlo) [ bitmap_clear::bitmap#0 ] ( main:2::bitmap_clear:10 [ bitmap_clear::bitmap#0 ] ) always clobbers reg byte a 
Statement [100] (byte*) bitmap_clear::bitmap#5 ← (byte*)(word) bitmap_clear::bitmap#0 [ bitmap_clear::bitmap#5 ] ( main:2::bitmap_clear:10 [ bitmap_clear::bitmap#5 ] ) always clobbers reg byte a 
Statement [103] *((byte*) bitmap_clear::bitmap#2) ← (byte) 0 [ bitmap_clear::y#4 bitmap_clear::bitmap#2 bitmap_clear::x#2 ] ( main:2::bitmap_clear:10 [ bitmap_clear::y#4 bitmap_clear::bitmap#2 bitmap_clear::x#2 ] ) always clobbers reg byte a reg byte y 
Statement [112] (byte~) bitmap_init::$0 ← (byte) bitmap_init::x#2 & (byte) $f8 [ bitmap_init::x#2 bitmap_init::bits#3 bitmap_init::$0 ] ( main:2::bitmap_init:8 [ bitmap_init::x#2 bitmap_init::bits#3 bitmap_init::$0 ] ) always clobbers reg byte a 
Statement [114] *((const byte*) bitmap_plot_xhi + (byte) bitmap_init::x#2) ← >(const byte*) BITMAP [ bitmap_init::x#2 bitmap_init::bits#3 ] ( main:2::bitmap_init:8 [ bitmap_init::x#2 bitmap_init::bits#3 ] ) always clobbers reg byte a 
Statement [115] *((const byte*) bitmap_plot_bit + (byte) bitmap_init::x#2) ← (byte) bitmap_init::bits#3 [ bitmap_init::x#2 bitmap_init::bits#3 ] ( main:2::bitmap_init:8 [ bitmap_init::x#2 bitmap_init::bits#3 ] ) always clobbers reg byte a 
Statement [123] (byte~) bitmap_init::$10 ← (byte) bitmap_init::y#2 & (byte) 7 [ bitmap_init::y#2 bitmap_init::yoffs#2 bitmap_init::$10 ] ( main:2::bitmap_init:8 [ bitmap_init::y#2 bitmap_init::yoffs#2 bitmap_init::$10 ] ) always clobbers reg byte a 
Statement [130] (byte*) bitmap_init::yoffs#1 ← (byte*) bitmap_init::yoffs#2 + (word)(number) $28*(number) 8 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] ( main:2::bitmap_init:8 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] ) always clobbers reg byte a 
Potential registers zp[1]:2 [ next#4 next#1 ] : zp[1]:2 , 
Potential registers zp[1]:3 [ bitmap_line_xdyi::x#3 bitmap_line_xdyi::x#2 ] : zp[1]:3 , 
Potential registers zp[1]:4 [ bitmap_line_xdyi::y#3 bitmap_line_xdyi::y#6 bitmap_line_xdyi::y#2 ] : zp[1]:4 , 
Potential registers zp[1]:5 [ bitmap_line_xdyi::e#3 bitmap_line_xdyi::e#6 bitmap_line_xdyi::e#2 bitmap_line_xdyi::e#1 ] : zp[1]:5 , reg byte x , 
Potential registers zp[1]:6 [ bitmap_plot::x#4 bitmap_plot::x#1 bitmap_plot::x#0 bitmap_plot::x#3 bitmap_plot::x#2 ] : zp[1]:6 , reg byte x , reg byte y , 
Potential registers zp[1]:7 [ bitmap_plot::y#4 bitmap_plot::y#1 bitmap_plot::y#0 bitmap_plot::y#3 bitmap_plot::y#2 ] : zp[1]:7 , reg byte x , reg byte y , 
Potential registers zp[1]:8 [ bitmap_line_ydxi::x#3 bitmap_line_ydxi::x#6 bitmap_line_ydxi::x#2 ] : zp[1]:8 , 
Potential registers zp[1]:9 [ bitmap_line_ydxi::y#3 bitmap_line_ydxi::y#2 ] : zp[1]:9 , 
Potential registers zp[1]:10 [ 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]:10 , reg byte x , 
Potential registers zp[1]:11 [ bitmap_line_xdyd::x#3 bitmap_line_xdyd::x#0 bitmap_line_xdyd::x#2 ] : zp[1]:11 , 
Potential registers zp[1]:12 [ bitmap_line_xdyd::y#3 bitmap_line_xdyd::y#6 bitmap_line_xdyd::y#2 ] : zp[1]:12 , 
Potential registers zp[1]:13 [ bitmap_line_xdyd::e#3 bitmap_line_xdyd::e#6 bitmap_line_xdyd::e#2 bitmap_line_xdyd::e#1 ] : zp[1]:13 , reg byte x , 
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[2]:17 [ init_screen::c#2 init_screen::c#1 ] : zp[2]:17 , 
Potential registers zp[1]:19 [ bitmap_clear::y#4 bitmap_clear::y#1 ] : zp[1]:19 , reg byte x , 
Potential registers zp[2]:20 [ bitmap_clear::bitmap#2 bitmap_clear::bitmap#3 bitmap_clear::bitmap#5 bitmap_clear::bitmap#1 ] : zp[2]:20 , 
Potential registers zp[1]:22 [ bitmap_clear::x#2 bitmap_clear::x#1 ] : zp[1]:22 , reg byte x , 
Potential registers zp[1]:23 [ bitmap_init::x#2 bitmap_init::x#1 ] : zp[1]:23 , reg byte x , reg byte y , 
Potential registers zp[1]:24 [ bitmap_init::bits#3 bitmap_init::bits#4 bitmap_init::bits#1 ] : zp[1]:24 , reg byte x , reg byte y , 
Potential registers zp[1]:25 [ bitmap_init::y#2 bitmap_init::y#1 ] : zp[1]:25 , reg byte x , reg byte y , 
Potential registers zp[2]:26 [ bitmap_init::yoffs#2 bitmap_init::yoffs#4 bitmap_init::yoffs#1 ] : zp[2]:26 , 
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_line::xd#2 ] : zp[1]:29 , reg byte a , reg byte x , reg byte y , 
Potential registers zp[1]:30 [ bitmap_line_ydxd::xd#0 ] : zp[1]:30 , 
Potential registers zp[1]:31 [ bitmap_line_xdyd::xd#0 ] : zp[1]:31 , 
Potential registers zp[1]:32 [ bitmap_line::xd#1 ] : zp[1]:32 , reg byte a , reg byte x , reg byte y , 
Potential registers zp[1]:33 [ bitmap_line_ydxi::xd#1 ] : zp[1]:33 , 
Potential registers zp[1]:34 [ bitmap_line_xdyi::x1#1 ] : zp[1]:34 , 
Potential registers zp[1]:35 [ bitmap_line_xdyi::xd#1 ] : zp[1]:35 , 
Potential registers zp[1]:36 [ bitmap_line_xdyi::$6 ] : zp[1]:36 , reg byte a , reg byte x , reg byte y , 
Potential registers zp[2]:37 [ bitmap_plot::plotter_x#0 ] : zp[2]:37 , 
Potential registers zp[2]:39 [ bitmap_plot::plotter_y#0 ] : zp[2]:39 , 
Potential registers zp[2]:41 [ bitmap_plot::plotter#0 ] : zp[2]:41 , 
Potential registers zp[1]:43 [ bitmap_plot::$1 ] : zp[1]:43 , reg byte a , reg byte x , reg byte y , 
Potential registers zp[2]:44 [ bitmap_clear::bitmap#0 ] : zp[2]:44 , 
Potential registers zp[1]:46 [ bitmap_init::$0 ] : zp[1]:46 , reg byte a , reg byte x , reg byte y , 
Potential registers zp[1]:47 [ bitmap_init::$10 ] : zp[1]:47 , reg byte a , reg byte x , reg byte y , 
Potential registers zp[1]:48 [ bitmap_init::$7 ] : zp[1]:48 , reg byte a , reg byte x , reg byte y , reg byte alu , 
Potential registers zp[1]:49 [ bitmap_init::$8 ] : zp[1]:49 , reg byte a , reg byte x , reg byte y , 
Potential registers zp[1]:50 [ bitmap_init::$9 ] : zp[1]:50 , reg byte a , reg byte x , reg byte y , 

REGISTER UPLIFT SCOPES
Uplift Scope [bitmap_plot] 1,012: zp[1]:7 [ bitmap_plot::y#4 bitmap_plot::y#1 bitmap_plot::y#0 bitmap_plot::y#3 bitmap_plot::y#2 ] 506.5: zp[1]:6 [ bitmap_plot::x#4 bitmap_plot::x#1 bitmap_plot::x#0 bitmap_plot::x#3 bitmap_plot::x#2 ] 4: zp[2]:39 [ bitmap_plot::plotter_y#0 ] 4: zp[1]:43 [ bitmap_plot::$1 ] 2: zp[2]:37 [ bitmap_plot::plotter_x#0 ] 1: zp[2]:41 [ bitmap_plot::plotter#0 ] 
Uplift Scope [bitmap_line_xdyi] 478.07: zp[1]:5 [ bitmap_line_xdyi::e#3 bitmap_line_xdyi::e#6 bitmap_line_xdyi::e#2 bitmap_line_xdyi::e#1 ] 259.71: zp[1]:4 [ bitmap_line_xdyi::y#3 bitmap_line_xdyi::y#6 bitmap_line_xdyi::y#2 ] 202: zp[1]:36 [ bitmap_line_xdyi::$6 ] 113.62: zp[1]:3 [ bitmap_line_xdyi::x#3 bitmap_line_xdyi::x#2 ] 14.57: zp[1]:35 [ bitmap_line_xdyi::xd#1 ] 6.87: zp[1]:34 [ bitmap_line_xdyi::x1#1 ] 
Uplift Scope [bitmap_line_xdyd] 528.57: zp[1]:13 [ bitmap_line_xdyd::e#3 bitmap_line_xdyd::e#6 bitmap_line_xdyd::e#2 bitmap_line_xdyd::e#1 ] 310.21: zp[1]:12 [ bitmap_line_xdyd::y#3 bitmap_line_xdyd::y#6 bitmap_line_xdyd::y#2 ] 120.87: zp[1]:11 [ bitmap_line_xdyd::x#3 bitmap_line_xdyd::x#0 bitmap_line_xdyd::x#2 ] 15.69: zp[1]:31 [ bitmap_line_xdyd::xd#0 ] 
Uplift Scope [bitmap_line_ydxi] 532.97: zp[1]:10 [ 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 ] 310.21: zp[1]:8 [ bitmap_line_ydxi::x#3 bitmap_line_ydxi::x#6 bitmap_line_ydxi::x#2 ] 119.04: zp[1]:9 [ bitmap_line_ydxi::y#3 bitmap_line_ydxi::y#2 ] 8.08: zp[1]:33 [ bitmap_line_ydxi::xd#1 ] 
Uplift Scope [bitmap_line_ydxd] 532.97: 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 ] 310.21: zp[1]:14 [ bitmap_line_ydxd::x#3 bitmap_line_ydxd::x#6 bitmap_line_ydxd::x#2 ] 119.04: zp[1]:15 [ bitmap_line_ydxd::y#2 bitmap_line_ydxd::y#3 ] 8.08: zp[1]:30 [ bitmap_line_ydxd::xd#0 ] 
Uplift Scope [bitmap_clear] 227.6: zp[2]:20 [ bitmap_clear::bitmap#2 bitmap_clear::bitmap#3 bitmap_clear::bitmap#5 bitmap_clear::bitmap#1 ] 218.83: zp[1]:22 [ bitmap_clear::x#2 bitmap_clear::x#1 ] 20.17: zp[1]:19 [ bitmap_clear::y#4 bitmap_clear::y#1 ] 2: zp[2]:44 [ bitmap_clear::bitmap#0 ] 
Uplift Scope [bitmap_init] 39.88: zp[2]:26 [ bitmap_init::yoffs#2 bitmap_init::yoffs#4 bitmap_init::yoffs#1 ] 24.93: zp[1]:24 [ bitmap_init::bits#3 bitmap_init::bits#4 bitmap_init::bits#1 ] 23.83: zp[1]:23 [ bitmap_init::x#2 bitmap_init::x#1 ] 22: zp[1]:25 [ bitmap_init::y#2 bitmap_init::y#1 ] 22: zp[1]:46 [ bitmap_init::$0 ] 22: zp[1]:48 [ bitmap_init::$7 ] 22: zp[1]:49 [ bitmap_init::$8 ] 22: zp[1]:50 [ bitmap_init::$9 ] 5.5: zp[1]:47 [ bitmap_init::$10 ] 
Uplift Scope [init_screen] 36.67: zp[2]:17 [ init_screen::c#2 init_screen::c#1 ] 
Uplift Scope [] 33: zp[1]:2 [ next#4 next#1 ] 
Uplift Scope [bitmap_line] 3.5: zp[1]:28 [ bitmap_line::x1#0 ] 2.67: zp[1]:29 [ bitmap_line::xd#2 ] 2.67: zp[1]:32 [ bitmap_line::xd#1 ] 
Uplift Scope [main] 

Uplifting [bitmap_plot] best 40165 combination 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 x [ bitmap_plot::x#4 bitmap_plot::x#1 bitmap_plot::x#0 bitmap_plot::x#3 bitmap_plot::x#2 ] zp[2]:39 [ bitmap_plot::plotter_y#0 ] reg byte a [ bitmap_plot::$1 ] zp[2]:37 [ bitmap_plot::plotter_x#0 ] zp[2]:41 [ bitmap_plot::plotter#0 ] 
Uplifting [bitmap_line_xdyi] best 39565 combination zp[1]:5 [ bitmap_line_xdyi::e#3 bitmap_line_xdyi::e#6 bitmap_line_xdyi::e#2 bitmap_line_xdyi::e#1 ] zp[1]:4 [ bitmap_line_xdyi::y#3 bitmap_line_xdyi::y#6 bitmap_line_xdyi::y#2 ] reg byte x [ bitmap_line_xdyi::$6 ] zp[1]:3 [ bitmap_line_xdyi::x#3 bitmap_line_xdyi::x#2 ] zp[1]:35 [ bitmap_line_xdyi::xd#1 ] zp[1]:34 [ bitmap_line_xdyi::x1#1 ] 
Uplifting [bitmap_line_xdyd] best 39565 combination zp[1]:13 [ bitmap_line_xdyd::e#3 bitmap_line_xdyd::e#6 bitmap_line_xdyd::e#2 bitmap_line_xdyd::e#1 ] zp[1]:12 [ bitmap_line_xdyd::y#3 bitmap_line_xdyd::y#6 bitmap_line_xdyd::y#2 ] zp[1]:11 [ bitmap_line_xdyd::x#3 bitmap_line_xdyd::x#0 bitmap_line_xdyd::x#2 ] zp[1]:31 [ bitmap_line_xdyd::xd#0 ] 
Uplifting [bitmap_line_ydxi] best 39565 combination zp[1]:10 [ 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]:8 [ bitmap_line_ydxi::x#3 bitmap_line_ydxi::x#6 bitmap_line_ydxi::x#2 ] zp[1]:9 [ bitmap_line_ydxi::y#3 bitmap_line_ydxi::y#2 ] zp[1]:33 [ bitmap_line_ydxi::xd#1 ] 
Uplifting [bitmap_line_ydxd] best 39565 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]:30 [ bitmap_line_ydxd::xd#0 ] 
Uplifting [bitmap_clear] best 38665 combination zp[2]:20 [ 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]:19 [ bitmap_clear::y#4 bitmap_clear::y#1 ] zp[2]:44 [ bitmap_clear::bitmap#0 ] 
Uplifting [bitmap_init] best 38145 combination zp[2]:26 [ 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]:48 [ bitmap_init::$7 ] zp[1]:49 [ bitmap_init::$8 ] zp[1]:50 [ bitmap_init::$9 ] zp[1]:47 [ bitmap_init::$10 ] 
Limited combination testing to 100 combinations of 34560 possible.
Uplifting [init_screen] best 38145 combination zp[2]:17 [ init_screen::c#2 init_screen::c#1 ] 
Uplifting [] best 38145 combination zp[1]:2 [ next#4 next#1 ] 
Uplifting [bitmap_line] best 38089 combination reg byte x [ bitmap_line::x1#0 ] reg byte a [ bitmap_line::xd#2 ] reg byte a [ bitmap_line::xd#1 ] 
Uplifting [main] best 38089 combination 
Attempting to uplift remaining variables inzp[1]:10 [ 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 38089 combination zp[1]:10 [ 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]: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 38089 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]:13 [ 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 38089 combination zp[1]:13 [ 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]:5 [ 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 38089 combination zp[1]:5 [ 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]:8 [ bitmap_line_ydxi::x#3 bitmap_line_ydxi::x#6 bitmap_line_ydxi::x#2 ]
Uplifting [bitmap_line_ydxi] best 38089 combination zp[1]:8 [ bitmap_line_ydxi::x#3 bitmap_line_ydxi::x#6 bitmap_line_ydxi::x#2 ] 
Attempting to uplift remaining variables inzp[1]:12 [ bitmap_line_xdyd::y#3 bitmap_line_xdyd::y#6 bitmap_line_xdyd::y#2 ]
Uplifting [bitmap_line_xdyd] best 38089 combination zp[1]:12 [ bitmap_line_xdyd::y#3 bitmap_line_xdyd::y#6 bitmap_line_xdyd::y#2 ] 
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 38089 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]:4 [ bitmap_line_xdyi::y#3 bitmap_line_xdyi::y#6 bitmap_line_xdyi::y#2 ]
Uplifting [bitmap_line_xdyi] best 38089 combination zp[1]:4 [ bitmap_line_xdyi::y#3 bitmap_line_xdyi::y#6 bitmap_line_xdyi::y#2 ] 
Attempting to uplift remaining variables inzp[1]:11 [ bitmap_line_xdyd::x#3 bitmap_line_xdyd::x#0 bitmap_line_xdyd::x#2 ]
Uplifting [bitmap_line_xdyd] best 38089 combination zp[1]:11 [ bitmap_line_xdyd::x#3 bitmap_line_xdyd::x#0 bitmap_line_xdyd::x#2 ] 
Attempting to uplift remaining variables inzp[1]:9 [ bitmap_line_ydxi::y#3 bitmap_line_ydxi::y#2 ]
Uplifting [bitmap_line_ydxi] best 38089 combination zp[1]:9 [ bitmap_line_ydxi::y#3 bitmap_line_ydxi::y#2 ] 
Attempting to uplift remaining variables inzp[1]:15 [ bitmap_line_ydxd::y#2 bitmap_line_ydxd::y#3 ]
Uplifting [bitmap_line_ydxd] best 38089 combination zp[1]:15 [ bitmap_line_ydxd::y#2 bitmap_line_ydxd::y#3 ] 
Attempting to uplift remaining variables inzp[1]:3 [ bitmap_line_xdyi::x#3 bitmap_line_xdyi::x#2 ]
Uplifting [bitmap_line_xdyi] best 38089 combination zp[1]:3 [ bitmap_line_xdyi::x#3 bitmap_line_xdyi::x#2 ] 
Attempting to uplift remaining variables inzp[1]:2 [ next#4 next#1 ]
Uplifting [] best 38089 combination zp[1]:2 [ next#4 next#1 ] 
Attempting to uplift remaining variables inzp[1]:48 [ bitmap_init::$7 ]
Uplifting [bitmap_init] best 38029 combination reg byte a [ bitmap_init::$7 ] 
Attempting to uplift remaining variables inzp[1]:49 [ bitmap_init::$8 ]
Uplifting [bitmap_init] best 37969 combination reg byte a [ bitmap_init::$8 ] 
Attempting to uplift remaining variables inzp[1]:50 [ bitmap_init::$9 ]
Uplifting [bitmap_init] best 37909 combination reg byte a [ bitmap_init::$9 ] 
Attempting to uplift remaining variables inzp[1]:19 [ bitmap_clear::y#4 bitmap_clear::y#1 ]
Uplifting [bitmap_clear] best 37909 combination zp[1]:19 [ bitmap_clear::y#4 bitmap_clear::y#1 ] 
Attempting to uplift remaining variables inzp[1]:31 [ bitmap_line_xdyd::xd#0 ]
Uplifting [bitmap_line_xdyd] best 37909 combination zp[1]:31 [ bitmap_line_xdyd::xd#0 ] 
Attempting to uplift remaining variables inzp[1]:35 [ bitmap_line_xdyi::xd#1 ]
Uplifting [bitmap_line_xdyi] best 37909 combination zp[1]:35 [ bitmap_line_xdyi::xd#1 ] 
Attempting to uplift remaining variables inzp[1]:30 [ bitmap_line_ydxd::xd#0 ]
Uplifting [bitmap_line_ydxd] best 37909 combination zp[1]:30 [ bitmap_line_ydxd::xd#0 ] 
Attempting to uplift remaining variables inzp[1]:33 [ bitmap_line_ydxi::xd#1 ]
Uplifting [bitmap_line_ydxi] best 37909 combination zp[1]:33 [ bitmap_line_ydxi::xd#1 ] 
Attempting to uplift remaining variables inzp[1]:34 [ bitmap_line_xdyi::x1#1 ]
Uplifting [bitmap_line_xdyi] best 37909 combination zp[1]:34 [ bitmap_line_xdyi::x1#1 ] 
Attempting to uplift remaining variables inzp[1]:47 [ bitmap_init::$10 ]
Uplifting [bitmap_init] best 37909 combination zp[1]:47 [ bitmap_init::$10 ] 
Coalescing zero page register [ zp[2]:20 [ bitmap_clear::bitmap#2 bitmap_clear::bitmap#3 bitmap_clear::bitmap#5 bitmap_clear::bitmap#1 ] ] with [ zp[2]:44 [ bitmap_clear::bitmap#0 ] ] - score: 1
Coalescing zero page register [ zp[2]:37 [ bitmap_plot::plotter_x#0 ] ] with [ zp[2]:41 [ bitmap_plot::plotter#0 ] ] - score: 1
Coalescing zero page register [ zp[1]:8 [ bitmap_line_ydxi::x#3 bitmap_line_ydxi::x#6 bitmap_line_ydxi::x#2 ] ] with [ zp[1]:3 [ bitmap_line_xdyi::x#3 bitmap_line_xdyi::x#2 ] ]
Coalescing zero page register [ zp[1]:9 [ bitmap_line_ydxi::y#3 bitmap_line_ydxi::y#2 ] ] with [ zp[1]:4 [ bitmap_line_xdyi::y#3 bitmap_line_xdyi::y#6 bitmap_line_xdyi::y#2 ] ]
Coalescing zero page register [ zp[1]:10 [ 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]:5 [ bitmap_line_xdyi::e#3 bitmap_line_xdyi::e#6 bitmap_line_xdyi::e#2 bitmap_line_xdyi::e#1 ] ]
Coalescing zero page register [ zp[1]:14 [ bitmap_line_ydxd::x#3 bitmap_line_ydxd::x#6 bitmap_line_ydxd::x#2 ] ] with [ zp[1]:11 [ bitmap_line_xdyd::x#3 bitmap_line_xdyd::x#0 bitmap_line_xdyd::x#2 ] ]
Coalescing zero page register [ zp[1]:15 [ bitmap_line_ydxd::y#2 bitmap_line_ydxd::y#3 ] ] with [ zp[1]:12 [ bitmap_line_xdyd::y#3 bitmap_line_xdyd::y#6 bitmap_line_xdyd::y#2 ] ]
Coalescing zero page register [ 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 ] ] with [ zp[1]:13 [ bitmap_line_xdyd::e#3 bitmap_line_xdyd::e#6 bitmap_line_xdyd::e#2 bitmap_line_xdyd::e#1 ] ]
Coalescing zero page register [ zp[1]:19 [ bitmap_clear::y#4 bitmap_clear::y#1 ] ] with [ zp[1]:2 [ next#4 next#1 ] ]
Coalescing zero page register [ zp[2]:20 [ bitmap_clear::bitmap#2 bitmap_clear::bitmap#3 bitmap_clear::bitmap#5 bitmap_clear::bitmap#1 bitmap_clear::bitmap#0 ] ] with [ zp[2]:17 [ init_screen::c#2 init_screen::c#1 ] ]
Coalescing zero page register [ zp[1]:31 [ bitmap_line_xdyd::xd#0 ] ] with [ zp[1]:30 [ bitmap_line_ydxd::xd#0 ] ]
Coalescing zero page register [ zp[1]:34 [ bitmap_line_xdyi::x1#1 ] ] with [ zp[1]:33 [ bitmap_line_ydxi::xd#1 ] ]
Coalescing zero page register [ zp[2]:37 [ bitmap_plot::plotter_x#0 bitmap_plot::plotter#0 ] ] with [ zp[2]:26 [ bitmap_init::yoffs#2 bitmap_init::yoffs#4 bitmap_init::yoffs#1 ] ]
Coalescing zero page register [ zp[1]:47 [ bitmap_init::$10 ] ] with [ zp[1]:35 [ bitmap_line_xdyi::xd#1 ] ]
Coalescing zero page register [ zp[1]:14 [ bitmap_line_ydxd::x#3 bitmap_line_ydxd::x#6 bitmap_line_ydxd::x#2 bitmap_line_xdyd::x#3 bitmap_line_xdyd::x#0 bitmap_line_xdyd::x#2 ] ] with [ zp[1]:8 [ bitmap_line_ydxi::x#3 bitmap_line_ydxi::x#6 bitmap_line_ydxi::x#2 bitmap_line_xdyi::x#3 bitmap_line_xdyi::x#2 ] ]
Coalescing zero page register [ zp[1]:15 [ bitmap_line_ydxd::y#2 bitmap_line_ydxd::y#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::y#6 bitmap_line_xdyd::y#2 ] ] with [ zp[1]:9 [ bitmap_line_ydxi::y#3 bitmap_line_ydxi::y#2 bitmap_line_xdyi::y#3 bitmap_line_xdyi::y#6 bitmap_line_xdyi::y#2 ] ]
Coalescing zero page register [ 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 bitmap_line_xdyd::e#3 bitmap_line_xdyd::e#6 bitmap_line_xdyd::e#2 bitmap_line_xdyd::e#1 ] ] with [ zp[1]:10 [ 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::e#3 bitmap_line_xdyi::e#6 bitmap_line_xdyi::e#2 bitmap_line_xdyi::e#1 ] ]
Coalescing zero page register [ zp[1]:34 [ bitmap_line_xdyi::x1#1 bitmap_line_ydxi::xd#1 ] ] with [ zp[1]:31 [ bitmap_line_xdyd::xd#0 bitmap_line_ydxd::xd#0 ] ]
Coalescing zero page register [ zp[2]:37 [ bitmap_plot::plotter_x#0 bitmap_plot::plotter#0 bitmap_init::yoffs#2 bitmap_init::yoffs#4 bitmap_init::yoffs#1 ] ] with [ zp[2]:20 [ bitmap_clear::bitmap#2 bitmap_clear::bitmap#3 bitmap_clear::bitmap#5 bitmap_clear::bitmap#1 bitmap_clear::bitmap#0 init_screen::c#2 init_screen::c#1 ] ]
Allocated (was zp[1]:14) zp[1]:2 [ bitmap_line_ydxd::x#3 bitmap_line_ydxd::x#6 bitmap_line_ydxd::x#2 bitmap_line_xdyd::x#3 bitmap_line_xdyd::x#0 bitmap_line_xdyd::x#2 bitmap_line_ydxi::x#3 bitmap_line_ydxi::x#6 bitmap_line_ydxi::x#2 bitmap_line_xdyi::x#3 bitmap_line_xdyi::x#2 ]
Allocated (was zp[1]:15) zp[1]:3 [ bitmap_line_ydxd::y#2 bitmap_line_ydxd::y#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::y#6 bitmap_line_xdyd::y#2 bitmap_line_ydxi::y#3 bitmap_line_ydxi::y#2 bitmap_line_xdyi::y#3 bitmap_line_xdyi::y#6 bitmap_line_xdyi::y#2 ]
Allocated (was zp[1]:16) zp[1]:4 [ 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::e#3 bitmap_line_xdyd::e#6 bitmap_line_xdyd::e#2 bitmap_line_xdyd::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_xdyi::e#3 bitmap_line_xdyi::e#6 bitmap_line_xdyi::e#2 bitmap_line_xdyi::e#1 ]
Allocated (was zp[1]:19) zp[1]:5 [ bitmap_clear::y#4 bitmap_clear::y#1 next#4 next#1 ]
Allocated (was zp[1]:34) zp[1]:6 [ bitmap_line_xdyi::x1#1 bitmap_line_ydxi::xd#1 bitmap_line_xdyd::xd#0 bitmap_line_ydxd::xd#0 ]
Allocated (was zp[2]:37) zp[2]:7 [ bitmap_plot::plotter_x#0 bitmap_plot::plotter#0 bitmap_init::yoffs#2 bitmap_init::yoffs#4 bitmap_init::yoffs#1 bitmap_clear::bitmap#2 bitmap_clear::bitmap#3 bitmap_clear::bitmap#5 bitmap_clear::bitmap#1 bitmap_clear::bitmap#0 init_screen::c#2 init_screen::c#1 ]
Allocated (was zp[2]:39) zp[2]:9 [ bitmap_plot::plotter_y#0 ]
Allocated (was zp[1]:47) zp[1]:11 [ bitmap_init::$10 bitmap_line_xdyi::xd#1 ]

ASSEMBLER BEFORE OPTIMIZATION
  // File Comments
// Illustrates problem with bitmap-draw.kc line()
// Reported by Janne Johansson
  // Upstart
.pc = $801 "Basic"
:BasicUpstart(__bbegin)
.pc = $80d "Program"
  // Global Constants & labels
  .label BORDERCOL = $d020
  .label BGCOL = $d021
  .label D011 = $d011
  .const VIC_BMM = $20
  .const VIC_DEN = $10
  .const VIC_RSEL = 8
  .label VIC_MEMORY = $d018
  .label SCREEN = $400
  .label BITMAP = $2000
  .label next = 5
  // @begin
__bbegin:
  // [1] phi from @begin to @1 [phi:@begin->@1]
__b1_from___bbegin:
  jmp __b1
  // @1
__b1:
  // [2] call main 
  jsr main
  // [3] phi from @1 to @end [phi:@1->@end]
__bend_from___b1:
  jmp __bend
  // @end
__bend:
  // main
main: {
    // [4] *((const byte*) BORDERCOL) ← (byte) 0 -- _deref_pbuc1=vbuc2 
    lda #0
    sta BORDERCOL
    // [5] *((const byte*) BGCOL) ← (byte) 0 -- _deref_pbuc1=vbuc2 
    lda #0
    sta BGCOL
    // [6] *((const byte*) D011) ← (const byte) VIC_BMM|(const byte) VIC_DEN|(const byte) VIC_RSEL|(byte) 3 -- _deref_pbuc1=vbuc2 
    lda #VIC_BMM|VIC_DEN|VIC_RSEL|3
    sta D011
    // [7] *((const byte*) VIC_MEMORY) ← (byte)(word)(const byte*) SCREEN&(word) $3fff/(byte) $40|(word)(const byte*) BITMAP&(word) $3fff/(word) $400 -- _deref_pbuc1=vbuc2 
    lda #(SCREEN&$3fff)/$40|(BITMAP&$3fff)/$400
    sta VIC_MEMORY
    // [8] call bitmap_init 
    // [110] phi from main to bitmap_init [phi:main->bitmap_init]
  bitmap_init_from_main:
    jsr bitmap_init
    // [9] phi from main to main::@2 [phi:main->main::@2]
  __b2_from_main:
    jmp __b2
    // main::@2
  __b2:
    // [10] call bitmap_clear 
    jsr bitmap_clear
    // [11] phi from main::@2 to main::@3 [phi:main::@2->main::@3]
  __b3_from___b2:
    jmp __b3
    // main::@3
  __b3:
    // [12] call init_screen 
    // [93] phi from main::@3 to init_screen [phi:main::@3->init_screen]
  init_screen_from___b3:
    jsr init_screen
    // [13] phi from main::@3 to main::@1 [phi:main::@3->main::@1]
  __b1_from___b3:
    // [13] phi (byte) next#4 = (byte) 0 [phi:main::@3->main::@1#0] -- vbuz1=vbuc1 
    lda #0
    sta.z next
    jmp __b1
    // main::@1
  __b1:
    // [14] (byte) bitmap_line::x1#0 ← (byte) next#4 -- vbuxx=vbuz1 
    ldx.z next
    // [15] call bitmap_line 
    jsr bitmap_line
    jmp __b4
    // main::@4
  __b4:
    // [16] (byte) next#1 ← ++ (byte) next#4 -- vbuz1=_inc_vbuz1 
    inc.z next
    // [13] phi from main::@4 to main::@1 [phi:main::@4->main::@1]
  __b1_from___b4:
    // [13] phi (byte) next#4 = (byte) next#1 [phi:main::@4->main::@1#0] -- register_copy 
    jmp __b1
}
  // bitmap_line
// Draw a line on the bitmap
// bitmap_line(byte register(X) x1)
bitmap_line: {
    .label x0 = 0
    .label y0 = 0
    .label y1 = $64
    // [17] if((const byte) bitmap_line::x0#0<(byte) bitmap_line::x1#0) goto bitmap_line::@1 -- vbuc1_lt_vbuxx_then_la1 
    cpx #x0
    beq !+
    bcs __b1
  !:
    jmp __b2
    // bitmap_line::@2
  __b2:
    // [18] (byte) bitmap_line::xd#2 ← (byte) bitmap_line::x1#0 -- vbuaa=vbuxx 
    txa
    jmp __b3
    // bitmap_line::@3
  __b3:
    // [19] if((const byte) bitmap_line::y1#0<(byte) bitmap_line::xd#2) goto bitmap_line::@4 -- vbuc1_lt_vbuaa_then_la1 
    cmp #y1
    beq !+
    bcs __b4
  !:
    jmp __b5
    // bitmap_line::@5
  __b5:
    // [20] (byte) bitmap_line_ydxd::xd#0 ← (byte) bitmap_line::xd#2 -- vbuz1=vbuaa 
    sta.z bitmap_line_ydxd.xd
    // [21] call bitmap_line_ydxd 
    jsr bitmap_line_ydxd
    jmp __breturn
    // bitmap_line::@return
  __breturn:
    // [22] return 
    rts
    // bitmap_line::@4
  __b4:
    // [23] (byte) bitmap_line_xdyd::x#0 ← (byte) bitmap_line::x1#0 -- vbuz1=vbuxx 
    stx.z bitmap_line_xdyd.x
    // [24] (byte) bitmap_line_xdyd::xd#0 ← (byte) bitmap_line::xd#2 -- vbuz1=vbuaa 
    sta.z bitmap_line_xdyd.xd
    // [25] call bitmap_line_xdyd 
    // [67] 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:
    // [26] (byte) bitmap_line::xd#1 ← (byte) bitmap_line::x1#0 -- vbuaa=vbuxx 
    txa
    jmp __b6
    // bitmap_line::@6
  __b6:
    // [27] if((const byte) bitmap_line::y1#0<(byte) bitmap_line::xd#1) goto bitmap_line::@7 -- vbuc1_lt_vbuaa_then_la1 
    cmp #y1
    beq !+
    bcs __b7
  !:
    jmp __b8
    // bitmap_line::@8
  __b8:
    // [28] (byte) bitmap_line_ydxi::xd#1 ← (byte) bitmap_line::xd#1 -- vbuz1=vbuaa 
    sta.z bitmap_line_ydxi.xd
    // [29] call bitmap_line_ydxi 
    jsr bitmap_line_ydxi
    jmp __breturn
    // bitmap_line::@7
  __b7:
    // [30] (byte) bitmap_line_xdyi::x1#1 ← (byte) bitmap_line::x1#0 -- vbuz1=vbuxx 
    stx.z bitmap_line_xdyi.x1
    // [31] (byte) bitmap_line_xdyi::xd#1 ← (byte) bitmap_line::xd#1 -- vbuz1=vbuaa 
    sta.z bitmap_line_xdyi.xd
    // [32] call bitmap_line_xdyi 
    // [33] 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_xdyi
// bitmap_line_xdyi(byte zp(2) x, byte zp(3) y, byte zp(6) x1, byte zp($b) xd)
bitmap_line_xdyi: {
    .label x1 = 6
    .label xd = $b
    .label x = 2
    .label e = 4
    .label y = 3
    // [34] phi from bitmap_line_xdyi to bitmap_line_xdyi::@1 [phi:bitmap_line_xdyi->bitmap_line_xdyi::@1]
  __b1_from_bitmap_line_xdyi:
    // [34] 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
    // [34] 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
    // [34] 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
    // [34] phi from bitmap_line_xdyi::@2 to bitmap_line_xdyi::@1 [phi:bitmap_line_xdyi::@2->bitmap_line_xdyi::@1]
  __b1_from___b2:
    // [34] 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 
    // [34] 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 
    // [34] 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:
    // [35] (byte) bitmap_plot::x#0 ← (byte) bitmap_line_xdyi::x#3 -- vbuxx=vbuz1 
    ldx.z x
    // [36] (byte) bitmap_plot::y#0 ← (byte) bitmap_line_xdyi::y#3 -- vbuyy=vbuz1 
    ldy.z y
    // [37] call bitmap_plot 
    // [47] phi from bitmap_line_xdyi::@1 to bitmap_plot [phi:bitmap_line_xdyi::@1->bitmap_plot]
  bitmap_plot_from___b1:
    // [47] phi (byte) bitmap_plot::y#4 = (byte) bitmap_plot::y#0 [phi:bitmap_line_xdyi::@1->bitmap_plot#0] -- register_copy 
    // [47] 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:
    // [38] (byte) bitmap_line_xdyi::x#2 ← ++ (byte) bitmap_line_xdyi::x#3 -- vbuz1=_inc_vbuz1 
    inc.z x
    // [39] (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
    // [40] 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:
    // [41] (byte) bitmap_line_xdyi::y#2 ← ++ (byte) bitmap_line_xdyi::y#3 -- vbuz1=_inc_vbuz1 
    inc.z y
    // [42] (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
    // [43] 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:
    // [43] 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 
    // [43] 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:
    // [44] (byte~) bitmap_line_xdyi::$6 ← (byte) bitmap_line_xdyi::x1#1 + (byte) 1 -- vbuxx=vbuz1_plus_1 
    ldx.z x1
    inx
    // [45] 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:
    // [46] 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
    // [48] (word) bitmap_plot::plotter_x#0 ← *((const byte*) bitmap_plot_xhi + (byte) bitmap_plot::x#4) w= *((const 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
    // [49] (word) bitmap_plot::plotter_y#0 ← *((const byte*) bitmap_plot_yhi + (byte) bitmap_plot::y#4) w= *((const 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
    // [50] (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
    // [51] (byte~) bitmap_plot::$1 ← *((byte*)(word) bitmap_plot::plotter#0) | *((const 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
    // [52] *((byte*)(word) bitmap_plot::plotter#0) ← (byte~) bitmap_plot::$1 -- _deref_pbuz1=vbuaa 
    ldy #0
    sta (plotter),y
    jmp __breturn
    // bitmap_plot::@return
  __breturn:
    // [53] 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
    // [54] (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
    // [55] phi from bitmap_line_ydxi to bitmap_line_ydxi::@1 [phi:bitmap_line_ydxi->bitmap_line_ydxi::@1]
  __b1_from_bitmap_line_ydxi:
    // [55] phi (byte) bitmap_line_ydxi::e#3 = (byte) bitmap_line_ydxi::e#0 [phi:bitmap_line_ydxi->bitmap_line_ydxi::@1#0] -- register_copy 
    // [55] 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
    // [55] 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
    // [55] phi from bitmap_line_ydxi::@2 to bitmap_line_ydxi::@1 [phi:bitmap_line_ydxi::@2->bitmap_line_ydxi::@1]
  __b1_from___b2:
    // [55] 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 
    // [55] 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 
    // [55] 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:
    // [56] (byte) bitmap_plot::x#2 ← (byte) bitmap_line_ydxi::x#3 -- vbuxx=vbuz1 
    ldx.z x
    // [57] (byte) bitmap_plot::y#2 ← (byte) bitmap_line_ydxi::y#3 -- vbuyy=vbuz1 
    ldy.z y
    // [58] call bitmap_plot 
    // [47] phi from bitmap_line_ydxi::@1 to bitmap_plot [phi:bitmap_line_ydxi::@1->bitmap_plot]
  bitmap_plot_from___b1:
    // [47] phi (byte) bitmap_plot::y#4 = (byte) bitmap_plot::y#2 [phi:bitmap_line_ydxi::@1->bitmap_plot#0] -- register_copy 
    // [47] 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:
    // [59] (byte) bitmap_line_ydxi::y#2 ← ++ (byte) bitmap_line_ydxi::y#3 -- vbuz1=_inc_vbuz1 
    inc.z y
    // [60] (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
    // [61] 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:
    // [62] (byte) bitmap_line_ydxi::x#2 ← ++ (byte) bitmap_line_ydxi::x#3 -- vbuz1=_inc_vbuz1 
    inc.z x
    // [63] (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
    // [64] 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:
    // [64] 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 
    // [64] 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:
    // [65] 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:
    // [66] 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
    // [68] phi from bitmap_line_xdyd to bitmap_line_xdyd::@1 [phi:bitmap_line_xdyd->bitmap_line_xdyd::@1]
  __b1_from_bitmap_line_xdyd:
    // [68] 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
    // [68] 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
    // [68] 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
    // [68] phi from bitmap_line_xdyd::@2 to bitmap_line_xdyd::@1 [phi:bitmap_line_xdyd::@2->bitmap_line_xdyd::@1]
  __b1_from___b2:
    // [68] 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 
    // [68] 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 
    // [68] 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:
    // [69] (byte) bitmap_plot::x#1 ← (byte) bitmap_line_xdyd::x#3 -- vbuxx=vbuz1 
    ldx.z x
    // [70] (byte) bitmap_plot::y#1 ← (byte) bitmap_line_xdyd::y#3 -- vbuyy=vbuz1 
    ldy.z y
    // [71] call bitmap_plot 
    // [47] phi from bitmap_line_xdyd::@1 to bitmap_plot [phi:bitmap_line_xdyd::@1->bitmap_plot]
  bitmap_plot_from___b1:
    // [47] phi (byte) bitmap_plot::y#4 = (byte) bitmap_plot::y#1 [phi:bitmap_line_xdyd::@1->bitmap_plot#0] -- register_copy 
    // [47] 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:
    // [72] (byte) bitmap_line_xdyd::x#2 ← ++ (byte) bitmap_line_xdyd::x#3 -- vbuz1=_inc_vbuz1 
    inc.z x
    // [73] (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
    // [74] 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:
    // [75] (byte) bitmap_line_xdyd::y#2 ← -- (byte) bitmap_line_xdyd::y#3 -- vbuz1=_dec_vbuz1 
    dec.z y
    // [76] (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
    // [77] 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:
    // [77] 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 
    // [77] 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:
    // [78] 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:
    // [79] return 
    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
    // [80] (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
    // [81] phi from bitmap_line_ydxd to bitmap_line_ydxd::@1 [phi:bitmap_line_ydxd->bitmap_line_ydxd::@1]
  __b1_from_bitmap_line_ydxd:
    // [81] phi (byte) bitmap_line_ydxd::e#3 = (byte) bitmap_line_ydxd::e#0 [phi:bitmap_line_ydxd->bitmap_line_ydxd::@1#0] -- register_copy 
    // [81] 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
    // [81] 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
    // [81] phi from bitmap_line_ydxd::@2 to bitmap_line_ydxd::@1 [phi:bitmap_line_ydxd::@2->bitmap_line_ydxd::@1]
  __b1_from___b2:
    // [81] 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 
    // [81] 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 
    // [81] 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:
    // [82] (byte) bitmap_plot::x#3 ← (byte) bitmap_line_ydxd::x#3 -- vbuxx=vbuz1 
    ldx.z x
    // [83] (byte) bitmap_plot::y#3 ← (byte) bitmap_line_ydxd::y#2 -- vbuyy=vbuz1 
    ldy.z y
    // [84] call bitmap_plot 
    // [47] phi from bitmap_line_ydxd::@1 to bitmap_plot [phi:bitmap_line_ydxd::@1->bitmap_plot]
  bitmap_plot_from___b1:
    // [47] phi (byte) bitmap_plot::y#4 = (byte) bitmap_plot::y#3 [phi:bitmap_line_ydxd::@1->bitmap_plot#0] -- register_copy 
    // [47] 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:
    // [85] (byte) bitmap_line_ydxd::y#3 ← ++ (byte) bitmap_line_ydxd::y#2 -- vbuz1=_inc_vbuz1 
    inc.z y
    // [86] (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
    // [87] 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:
    // [88] (byte) bitmap_line_ydxd::x#2 ← -- (byte) bitmap_line_ydxd::x#3 -- vbuz1=_dec_vbuz1 
    dec.z x
    // [89] (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
    // [90] 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:
    // [90] 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 
    // [90] 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:
    // [91] 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:
    // [92] return 
    rts
}
  // init_screen
init_screen: {
    .label c = 7
    // [94] phi from init_screen to init_screen::@1 [phi:init_screen->init_screen::@1]
  __b1_from_init_screen:
    // [94] phi (byte*) init_screen::c#2 = (const 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:
    // [95] if((byte*) init_screen::c#2!=(const 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:
    // [96] return 
    rts
    // init_screen::@2
  __b2:
    // [97] *((byte*) init_screen::c#2) ← (byte) $14 -- _deref_pbuz1=vbuc1 
    lda #$14
    ldy #0
    sta (c),y
    // [98] (byte*) init_screen::c#1 ← ++ (byte*) init_screen::c#2 -- pbuz1=_inc_pbuz1 
    inc.z c
    bne !+
    inc.z c+1
  !:
    // [94] phi from init_screen::@2 to init_screen::@1 [phi:init_screen::@2->init_screen::@1]
  __b1_from___b2:
    // [94] phi (byte*) init_screen::c#2 = (byte*) init_screen::c#1 [phi:init_screen::@2->init_screen::@1#0] -- register_copy 
    jmp __b1
}
  // bitmap_clear
// Clear all graphics on the bitmap
bitmap_clear: {
    .label bitmap = 7
    .label y = 5
    // [99] (word) bitmap_clear::bitmap#0 ← *((const byte*) bitmap_plot_xhi) w= *((const 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
    // [100] (byte*) bitmap_clear::bitmap#5 ← (byte*)(word) bitmap_clear::bitmap#0
    // [101] phi from bitmap_clear to bitmap_clear::@1 [phi:bitmap_clear->bitmap_clear::@1]
  __b1_from_bitmap_clear:
    // [101] phi (byte) bitmap_clear::y#4 = (byte) 0 [phi:bitmap_clear->bitmap_clear::@1#0] -- vbuz1=vbuc1 
    lda #0
    sta.z y
    // [101] phi (byte*) bitmap_clear::bitmap#3 = (byte*) bitmap_clear::bitmap#5 [phi:bitmap_clear->bitmap_clear::@1#1] -- register_copy 
    jmp __b1
    // [101] phi from bitmap_clear::@3 to bitmap_clear::@1 [phi:bitmap_clear::@3->bitmap_clear::@1]
  __b1_from___b3:
    // [101] phi (byte) bitmap_clear::y#4 = (byte) bitmap_clear::y#1 [phi:bitmap_clear::@3->bitmap_clear::@1#0] -- register_copy 
    // [101] 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:
    // [102] phi from bitmap_clear::@1 to bitmap_clear::@2 [phi:bitmap_clear::@1->bitmap_clear::@2]
  __b2_from___b1:
    // [102] phi (byte) bitmap_clear::x#2 = (byte) 0 [phi:bitmap_clear::@1->bitmap_clear::@2#0] -- vbuxx=vbuc1 
    ldx #0
    // [102] phi (byte*) bitmap_clear::bitmap#2 = (byte*) bitmap_clear::bitmap#3 [phi:bitmap_clear::@1->bitmap_clear::@2#1] -- register_copy 
    jmp __b2
    // [102] phi from bitmap_clear::@2 to bitmap_clear::@2 [phi:bitmap_clear::@2->bitmap_clear::@2]
  __b2_from___b2:
    // [102] phi (byte) bitmap_clear::x#2 = (byte) bitmap_clear::x#1 [phi:bitmap_clear::@2->bitmap_clear::@2#0] -- register_copy 
    // [102] 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:
    // [103] *((byte*) bitmap_clear::bitmap#2) ← (byte) 0 -- _deref_pbuz1=vbuc1 
    lda #0
    ldy #0
    sta (bitmap),y
    // [104] (byte*) bitmap_clear::bitmap#1 ← ++ (byte*) bitmap_clear::bitmap#2 -- pbuz1=_inc_pbuz1 
    inc.z bitmap
    bne !+
    inc.z bitmap+1
  !:
    // [105] (byte) bitmap_clear::x#1 ← ++ (byte) bitmap_clear::x#2 -- vbuxx=_inc_vbuxx 
    inx
    // [106] 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:
    // [107] (byte) bitmap_clear::y#1 ← ++ (byte) bitmap_clear::y#4 -- vbuz1=_inc_vbuz1 
    inc.z y
    // [108] 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:
    // [109] return 
    rts
}
  // bitmap_init
// Initialize the bitmap plotter tables for a specific bitmap
bitmap_init: {
    .label __10 = $b
    .label yoffs = 7
    // [111] phi from bitmap_init to bitmap_init::@1 [phi:bitmap_init->bitmap_init::@1]
  __b1_from_bitmap_init:
    // [111] phi (byte) bitmap_init::bits#3 = (byte) $80 [phi:bitmap_init->bitmap_init::@1#0] -- vbuyy=vbuc1 
    ldy #$80
    // [111] phi (byte) bitmap_init::x#2 = (byte) 0 [phi:bitmap_init->bitmap_init::@1#1] -- vbuxx=vbuc1 
    ldx #0
    jmp __b1
    // [111] phi from bitmap_init::@2 to bitmap_init::@1 [phi:bitmap_init::@2->bitmap_init::@1]
  __b1_from___b2:
    // [111] phi (byte) bitmap_init::bits#3 = (byte) bitmap_init::bits#4 [phi:bitmap_init::@2->bitmap_init::@1#0] -- register_copy 
    // [111] 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:
    // [112] (byte~) bitmap_init::$0 ← (byte) bitmap_init::x#2 & (byte) $f8 -- vbuaa=vbuxx_band_vbuc1 
    txa
    and #$f8
    // [113] *((const byte*) bitmap_plot_xlo + (byte) bitmap_init::x#2) ← (byte~) bitmap_init::$0 -- pbuc1_derefidx_vbuxx=vbuaa 
    sta bitmap_plot_xlo,x
    // [114] *((const byte*) bitmap_plot_xhi + (byte) bitmap_init::x#2) ← >(const byte*) BITMAP -- pbuc1_derefidx_vbuxx=vbuc2 
    lda #>BITMAP
    sta bitmap_plot_xhi,x
    // [115] *((const byte*) bitmap_plot_bit + (byte) bitmap_init::x#2) ← (byte) bitmap_init::bits#3 -- pbuc1_derefidx_vbuxx=vbuyy 
    tya
    sta bitmap_plot_bit,x
    // [116] (byte) bitmap_init::bits#1 ← (byte) bitmap_init::bits#3 >> (byte) 1 -- vbuyy=vbuyy_ror_1 
    tya
    lsr
    tay
    // [117] if((byte) bitmap_init::bits#1!=(byte) 0) goto bitmap_init::@6 -- vbuyy_neq_0_then_la1 
    cpy #0
    bne __b6_from___b1
    // [119] phi from bitmap_init::@1 to bitmap_init::@2 [phi:bitmap_init::@1->bitmap_init::@2]
  __b2_from___b1:
    // [119] phi (byte) bitmap_init::bits#4 = (byte) $80 [phi:bitmap_init::@1->bitmap_init::@2#0] -- vbuyy=vbuc1 
    ldy #$80
    jmp __b2
    // [118] 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:
    // [119] phi from bitmap_init::@6 to bitmap_init::@2 [phi:bitmap_init::@6->bitmap_init::@2]
  __b2_from___b6:
    // [119] 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:
    // [120] (byte) bitmap_init::x#1 ← ++ (byte) bitmap_init::x#2 -- vbuxx=_inc_vbuxx 
    inx
    // [121] if((byte) bitmap_init::x#1!=(byte) 0) goto bitmap_init::@1 -- vbuxx_neq_0_then_la1 
    cpx #0
    bne __b1_from___b2
    // [122] phi from bitmap_init::@2 to bitmap_init::@3 [phi:bitmap_init::@2->bitmap_init::@3]
  __b3_from___b2:
    // [122] 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
    // [122] phi (byte) bitmap_init::y#2 = (byte) 0 [phi:bitmap_init::@2->bitmap_init::@3#1] -- vbuxx=vbuc1 
    ldx #0
    jmp __b3
    // [122] phi from bitmap_init::@4 to bitmap_init::@3 [phi:bitmap_init::@4->bitmap_init::@3]
  __b3_from___b4:
    // [122] phi (byte*) bitmap_init::yoffs#2 = (byte*) bitmap_init::yoffs#4 [phi:bitmap_init::@4->bitmap_init::@3#0] -- register_copy 
    // [122] 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:
    // [123] (byte~) bitmap_init::$10 ← (byte) bitmap_init::y#2 & (byte) 7 -- vbuz1=vbuxx_band_vbuc1 
    lda #7
    sax.z __10
    // [124] (byte~) bitmap_init::$7 ← < (byte*) bitmap_init::yoffs#2 -- vbuaa=_lo_pbuz1 
    lda.z yoffs
    // [125] (byte~) bitmap_init::$8 ← (byte~) bitmap_init::$10 | (byte~) bitmap_init::$7 -- vbuaa=vbuz1_bor_vbuaa 
    ora.z __10
    // [126] *((const byte*) bitmap_plot_ylo + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$8 -- pbuc1_derefidx_vbuxx=vbuaa 
    sta bitmap_plot_ylo,x
    // [127] (byte~) bitmap_init::$9 ← > (byte*) bitmap_init::yoffs#2 -- vbuaa=_hi_pbuz1 
    lda.z yoffs+1
    // [128] *((const byte*) bitmap_plot_yhi + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$9 -- pbuc1_derefidx_vbuxx=vbuaa 
    sta bitmap_plot_yhi,x
    // [129] 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:
    // [130] (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
    // [131] 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:
    // [131] 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:
    // [132] (byte) bitmap_init::y#1 ← ++ (byte) bitmap_init::y#2 -- vbuxx=_inc_vbuxx 
    inx
    // [133] 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:
    // [134] 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 __b1
Removing instruction jmp __bend
Removing instruction jmp __b2
Removing instruction jmp __b3
Removing instruction jmp __b1
Removing instruction jmp __b4
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 __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 __b1
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 __b6
Removing instruction jmp __b2
Removing instruction jmp __b3
Removing instruction jmp __b5
Removing instruction jmp __b4
Removing instruction jmp __breturn
Succesful ASM optimization Pass5NextJumpElimination
Removing instruction lda #0
Removing instruction ldy #0
Replacing instruction ldy #0 with TAY
Removing instruction lda #>0
Replacing instruction ldx #0 with TAX
Succesful ASM optimization Pass5UnnecesaryLoadElimination
Replacing label __bbegin 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
Replacing label __b2_from___b2 with __b2
Replacing label __b1_from___b3 with __b1
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
Removing instruction __bbegin:
Removing instruction __b1_from___bbegin:
Removing instruction __bend_from___b1:
Removing instruction __b2_from_main:
Removing instruction __b3_from___b2:
Removing instruction init_screen_from___b3:
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:
Removing instruction __b1_from___b3:
Removing instruction __b2_from___b1:
Removing instruction __b2_from___b2:
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:
Succesful ASM optimization Pass5RedundantLabelElimination
Removing instruction __bend:
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 __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_xdyi:
Removing instruction bitmap_plot_from___b1:
Removing instruction __b4:
Removing instruction __b3:
Removing instruction __breturn:
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_xdyd:
Removing instruction bitmap_plot_from___b1:
Removing instruction __b4:
Removing instruction __b3:
Removing instruction __breturn:
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_init_screen:
Removing instruction __breturn:
Removing instruction __b1_from___b2:
Removing instruction __b1_from_bitmap_clear:
Removing instruction __b3:
Removing instruction __breturn:
Removing instruction __b1_from_bitmap_init:
Removing instruction __b2_from___b1:
Removing instruction __b3_from___b2:
Removing instruction __b5:
Removing instruction __breturn:
Succesful ASM optimization Pass5UnusedLabelElimination
Updating BasicUpstart to call main directly
Removing instruction jsr main
Succesful ASM optimization Pass5SkipBegin
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 __b1
Removing instruction jmp __b1
Removing instruction jmp __b1
Removing instruction jmp __b1
Removing instruction jmp __b2
Removing instruction jmp __b1
Removing instruction jmp __b2
Removing instruction jmp __b3
Succesful ASM optimization Pass5NextJumpElimination
Replacing instruction lda.z e with TXA
Replacing instruction lda.z e with TXA
Removing instruction __b1:
Removing instruction __breturn:
Succesful ASM optimization Pass5UnusedLabelElimination

FINAL SYMBOL TABLE
(label) @1
(label) @begin
(label) @end
(const byte*) BGCOL = (byte*) 53281
(const byte*) BITMAP = (byte*) 8192
(const byte*) BORDERCOL = (byte*) 53280
(const byte*) D011 = (byte*) 53265
(const byte*) SCREEN = (byte*) 1024
(const byte) VIC_BMM = (byte) $20
(const byte) VIC_DEN = (byte) $10
(const byte*) VIC_MEMORY = (byte*) 53272
(const 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 2.0
(byte*) bitmap_clear::bitmap#1 bitmap zp[2]:7 42.599999999999994
(byte*) bitmap_clear::bitmap#2 bitmap zp[2]:7 157.0
(byte*) bitmap_clear::bitmap#3 bitmap zp[2]:7 24.0
(byte*) bitmap_clear::bitmap#5 bitmap zp[2]:7 4.0
(byte) bitmap_clear::x
(byte) bitmap_clear::x#1 reg byte x 151.5
(byte) bitmap_clear::x#2 reg byte x 67.33333333333333
(byte) bitmap_clear::y
(byte) bitmap_clear::y#1 y zp[1]:5 16.5
(byte) bitmap_clear::y#4 y zp[1]:5 3.6666666666666665
(void()) bitmap_init((byte*) bitmap_init::bitmap)
(byte~) bitmap_init::$0 reg byte a 22.0
(byte~) bitmap_init::$10 zp[1]:11 5.5
(byte~) bitmap_init::$7 reg byte a 22.0
(byte~) bitmap_init::$8 reg byte a 22.0
(byte~) bitmap_init::$9 reg byte a 22.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 11.0
(byte) bitmap_init::bits#3 reg byte y 6.6000000000000005
(byte) bitmap_init::bits#4 reg byte y 7.333333333333333
(byte) bitmap_init::x
(byte) bitmap_init::x#1 reg byte x 16.5
(byte) bitmap_init::x#2 reg byte x 7.333333333333334
(byte) bitmap_init::y
(byte) bitmap_init::y#1 reg byte x 16.5
(byte) bitmap_init::y#2 reg byte x 5.5
(byte*) bitmap_init::yoffs
(byte*) bitmap_init::yoffs#1 yoffs zp[2]:7 22.0
(byte*) bitmap_init::yoffs#2 yoffs zp[2]:7 6.875
(byte*) bitmap_init::yoffs#4 yoffs zp[2]:7 11.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 x 3.5000000000000004
(byte) bitmap_line::xd
(byte) bitmap_line::xd#1 reg byte a 2.6666666666666665
(byte) bitmap_line::xd#2 reg byte a 2.6666666666666665
(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 134.66666666666666
(byte) bitmap_line_xdyd::e#2 e zp[1]:4 202.0
(byte) bitmap_line_xdyd::e#3 e zp[1]:4 40.4
(byte) bitmap_line_xdyd::e#6 e zp[1]:4 151.5
(byte) bitmap_line_xdyd::x
(byte) bitmap_line_xdyd::x#0 x zp[1]:2 1.3333333333333333
(byte) bitmap_line_xdyd::x#2 x zp[1]:2 43.285714285714285
(byte) bitmap_line_xdyd::x#3 x zp[1]:2 76.25
(byte) bitmap_line_xdyd::x1
(byte) bitmap_line_xdyd::xd
(byte) bitmap_line_xdyd::xd#0 xd zp[1]:6 15.692307692307693
(byte) bitmap_line_xdyd::y
(byte) bitmap_line_xdyd::y#2 y zp[1]:3 101.0
(byte) bitmap_line_xdyd::y#3 y zp[1]:3 57.714285714285715
(byte) bitmap_line_xdyd::y#6 y zp[1]:3 151.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 202.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 134.66666666666666
(byte) bitmap_line_xdyi::e#2 e zp[1]:4 202.0
(byte) bitmap_line_xdyi::e#3 e zp[1]:4 40.4
(byte) bitmap_line_xdyi::e#6 e zp[1]:4 101.0
(byte) bitmap_line_xdyi::x
(byte) bitmap_line_xdyi::x#2 x zp[1]:2 37.875
(byte) bitmap_line_xdyi::x#3 x zp[1]:2 75.75
(byte) bitmap_line_xdyi::x1
(byte) bitmap_line_xdyi::x1#1 x1 zp[1]:6 6.866666666666667
(byte) bitmap_line_xdyi::xd
(byte) bitmap_line_xdyi::xd#1 xd zp[1]:11 14.571428571428573
(byte) bitmap_line_xdyi::y
(byte) bitmap_line_xdyi::y#2 y zp[1]:3 101.0
(byte) bitmap_line_xdyi::y#3 y zp[1]:3 57.714285714285715
(byte) bitmap_line_xdyi::y#6 y zp[1]:3 101.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 4.0
(byte) bitmap_line_ydxd::e#1 e zp[1]:4 134.66666666666666
(byte) bitmap_line_ydxd::e#2 e zp[1]:4 202.0
(byte) bitmap_line_ydxd::e#3 e zp[1]:4 40.8
(byte) bitmap_line_ydxd::e#6 e zp[1]:4 151.5
(byte) bitmap_line_ydxd::x
(byte) bitmap_line_ydxd::x#2 x zp[1]:2 101.0
(byte) bitmap_line_ydxd::x#3 x zp[1]:2 57.714285714285715
(byte) bitmap_line_ydxd::x#6 x zp[1]:2 151.5
(byte) bitmap_line_ydxd::xd
(byte) bitmap_line_ydxd::xd#0 xd zp[1]:6 8.076923076923077
(byte) bitmap_line_ydxd::y
(byte) bitmap_line_ydxd::y#2 y zp[1]:3 75.75
(byte) bitmap_line_ydxd::y#3 y zp[1]:3 43.285714285714285
(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 4.0
(byte) bitmap_line_ydxi::e#1 e zp[1]:4 134.66666666666666
(byte) bitmap_line_ydxi::e#2 e zp[1]:4 202.0
(byte) bitmap_line_ydxi::e#3 e zp[1]:4 40.8
(byte) bitmap_line_ydxi::e#6 e zp[1]:4 151.5
(byte) bitmap_line_ydxi::x
(byte) bitmap_line_ydxi::x#2 x zp[1]:2 101.0
(byte) bitmap_line_ydxi::x#3 x zp[1]:2 57.714285714285715
(byte) bitmap_line_ydxi::x#6 x zp[1]:2 151.5
(byte) bitmap_line_ydxi::xd
(byte) bitmap_line_ydxi::xd#1 xd zp[1]:6 8.076923076923077
(byte) bitmap_line_ydxi::y
(byte) bitmap_line_ydxi::y#2 y zp[1]:3 43.285714285714285
(byte) bitmap_line_ydxi::y#3 y zp[1]:3 75.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 4.0
(label) bitmap_plot::@return
(byte*) bitmap_plot::plotter
(word) bitmap_plot::plotter#0 plotter zp[2]:7 1.0
(word) bitmap_plot::plotter_x
(word) bitmap_plot::plotter_x#0 plotter_x zp[2]:7 2.0
(word) bitmap_plot::plotter_y
(word) bitmap_plot::plotter_y#0 plotter_y zp[2]:9 4.0
(byte) bitmap_plot::x
(byte) bitmap_plot::x#0 reg byte x 101.0
(byte) bitmap_plot::x#1 reg byte x 101.0
(byte) bitmap_plot::x#2 reg byte x 101.0
(byte) bitmap_plot::x#3 reg byte x 101.0
(byte) bitmap_plot::x#4 reg byte x 102.5
(byte) bitmap_plot::y
(byte) bitmap_plot::y#0 reg byte y 202.0
(byte) bitmap_plot::y#1 reg byte y 202.0
(byte) bitmap_plot::y#2 reg byte y 202.0
(byte) bitmap_plot::y#3 reg byte y 202.0
(byte) bitmap_plot::y#4 reg byte y 204.0
(const byte*) bitmap_plot_bit[(number) $100]  = { fill( $100, 0) }
(const byte*) bitmap_plot_xhi[(number) $100]  = { fill( $100, 0) }
(const byte*) bitmap_plot_xlo[(number) $100]  = { fill( $100, 0) }
(const byte*) bitmap_plot_yhi[(number) $100]  = { fill( $100, 0) }
(const 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 22.0
(byte*) init_screen::c#2 c zp[2]:7 14.666666666666666
(void()) main()
(label) main::@1
(label) main::@2
(label) main::@3
(label) main::@4
(byte) next
(byte) next#1 next zp[1]:5 22.0
(byte) next#4 next zp[1]:5 11.0

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 ]
zp[1]:2 [ bitmap_line_ydxd::x#3 bitmap_line_ydxd::x#6 bitmap_line_ydxd::x#2 bitmap_line_xdyd::x#3 bitmap_line_xdyd::x#0 bitmap_line_xdyd::x#2 bitmap_line_ydxi::x#3 bitmap_line_ydxi::x#6 bitmap_line_ydxi::x#2 bitmap_line_xdyi::x#3 bitmap_line_xdyi::x#2 ]
zp[1]:3 [ bitmap_line_ydxd::y#2 bitmap_line_ydxd::y#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::y#6 bitmap_line_xdyd::y#2 bitmap_line_ydxi::y#3 bitmap_line_ydxi::y#2 bitmap_line_xdyi::y#3 bitmap_line_xdyi::y#6 bitmap_line_xdyi::y#2 ]
zp[1]:4 [ 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::e#3 bitmap_line_xdyd::e#6 bitmap_line_xdyd::e#2 bitmap_line_xdyd::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_xdyi::e#3 bitmap_line_xdyi::e#6 bitmap_line_xdyi::e#2 bitmap_line_xdyi::e#1 ]
zp[1]:5 [ bitmap_clear::y#4 bitmap_clear::y#1 next#4 next#1 ]
reg byte x [ bitmap_clear::x#2 bitmap_clear::x#1 ]
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_line::x1#0 ]
reg byte a [ bitmap_line::xd#2 ]
reg byte a [ bitmap_line::xd#1 ]
zp[1]:6 [ bitmap_line_xdyi::x1#1 bitmap_line_ydxi::xd#1 bitmap_line_xdyd::xd#0 bitmap_line_ydxd::xd#0 ]
reg byte x [ bitmap_line_xdyi::$6 ]
zp[2]:7 [ bitmap_plot::plotter_x#0 bitmap_plot::plotter#0 bitmap_init::yoffs#2 bitmap_init::yoffs#4 bitmap_init::yoffs#1 bitmap_clear::bitmap#2 bitmap_clear::bitmap#3 bitmap_clear::bitmap#5 bitmap_clear::bitmap#1 bitmap_clear::bitmap#0 init_screen::c#2 init_screen::c#1 ]
zp[2]:9 [ bitmap_plot::plotter_y#0 ]
reg byte a [ bitmap_plot::$1 ]
reg byte a [ bitmap_init::$0 ]
zp[1]:11 [ bitmap_init::$10 bitmap_line_xdyi::xd#1 ]
reg byte a [ bitmap_init::$7 ]
reg byte a [ bitmap_init::$8 ]
reg byte a [ bitmap_init::$9 ]


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
  .label BORDERCOL = $d020
  .label BGCOL = $d021
  .label D011 = $d011
  .const VIC_BMM = $20
  .const VIC_DEN = $10
  .const VIC_RSEL = 8
  .label VIC_MEMORY = $d018
  .label SCREEN = $400
  .label BITMAP = $2000
  .label next = 5
  // @begin
  // [1] phi from @begin to @1 [phi:@begin->@1]
  // @1
  // [2] call main 
  // [3] phi from @1 to @end [phi:@1->@end]
  // @end
  // main
main: {
    // *BORDERCOL = 0
    // [4] *((const byte*) BORDERCOL) ← (byte) 0 -- _deref_pbuc1=vbuc2 
    lda #0
    sta BORDERCOL
    // *BGCOL = 0
    // [5] *((const byte*) BGCOL) ← (byte) 0 -- _deref_pbuc1=vbuc2 
    sta BGCOL
    // *D011 = VIC_BMM|VIC_DEN|VIC_RSEL|3
    // [6] *((const byte*) D011) ← (const byte) VIC_BMM|(const byte) VIC_DEN|(const 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))
    // [7] *((const byte*) VIC_MEMORY) ← (byte)(word)(const byte*) SCREEN&(word) $3fff/(byte) $40|(word)(const byte*) BITMAP&(word) $3fff/(word) $400 -- _deref_pbuc1=vbuc2 
    lda #(SCREEN&$3fff)/$40|(BITMAP&$3fff)/$400
    sta VIC_MEMORY
    // bitmap_init(BITMAP)
    // [8] call bitmap_init 
    // [110] phi from main to bitmap_init [phi:main->bitmap_init]
    jsr bitmap_init
    // [9] phi from main to main::@2 [phi:main->main::@2]
    // main::@2
    // bitmap_clear()
    // [10] call bitmap_clear 
    jsr bitmap_clear
    // [11] phi from main::@2 to main::@3 [phi:main::@2->main::@3]
    // main::@3
    // init_screen()
    // [12] call init_screen 
    // [93] phi from main::@3 to init_screen [phi:main::@3->init_screen]
    jsr init_screen
    // [13] phi from main::@3 to main::@1 [phi:main::@3->main::@1]
    // [13] phi (byte) next#4 = (byte) 0 [phi:main::@3->main::@1#0] -- vbuz1=vbuc1 
    lda #0
    sta.z next
    // main::@1
  __b1:
    // bitmap_line(0,next,0,100)
    // [14] (byte) bitmap_line::x1#0 ← (byte) next#4 -- vbuxx=vbuz1 
    ldx.z next
    // [15] call bitmap_line 
    jsr bitmap_line
    // main::@4
    // next++;
    // [16] (byte) next#1 ← ++ (byte) next#4 -- vbuz1=_inc_vbuz1 
    inc.z next
    // [13] phi from main::@4 to main::@1 [phi:main::@4->main::@1]
    // [13] phi (byte) next#4 = (byte) next#1 [phi:main::@4->main::@1#0] -- register_copy 
    jmp __b1
}
  // bitmap_line
// Draw a line on the bitmap
// bitmap_line(byte register(X) x1)
bitmap_line: {
    .label x0 = 0
    .label y0 = 0
    .label y1 = $64
    // if(x0<x1)
    // [17] if((const byte) bitmap_line::x0#0<(byte) bitmap_line::x1#0) goto bitmap_line::@1 -- vbuc1_lt_vbuxx_then_la1 
    cpx #x0
    beq !+
    bcs __b1
  !:
    // bitmap_line::@2
    // xd = x0-x1
    // [18] (byte) bitmap_line::xd#2 ← (byte) bitmap_line::x1#0 -- vbuaa=vbuxx 
    txa
    // bitmap_line::@3
    // if(yd<xd)
    // [19] if((const byte) bitmap_line::y1#0<(byte) bitmap_line::xd#2) goto bitmap_line::@4 -- vbuc1_lt_vbuaa_then_la1 
    cmp #y1
    beq !+
    bcs __b4
  !:
    // bitmap_line::@5
    // bitmap_line_ydxd(y0, x0, y1, yd, xd)
    // [20] (byte) bitmap_line_ydxd::xd#0 ← (byte) bitmap_line::xd#2 -- vbuz1=vbuaa 
    sta.z bitmap_line_ydxd.xd
    // [21] call bitmap_line_ydxd 
    jsr bitmap_line_ydxd
    // bitmap_line::@return
    // }
    // [22] return 
    rts
    // bitmap_line::@4
  __b4:
    // bitmap_line_xdyd(x1, y1, x0, xd, yd)
    // [23] (byte) bitmap_line_xdyd::x#0 ← (byte) bitmap_line::x1#0 -- vbuz1=vbuxx 
    stx.z bitmap_line_xdyd.x
    // [24] (byte) bitmap_line_xdyd::xd#0 ← (byte) bitmap_line::xd#2 -- vbuz1=vbuaa 
    sta.z bitmap_line_xdyd.xd
    // [25] call bitmap_line_xdyd 
    // [67] 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
    // [26] (byte) bitmap_line::xd#1 ← (byte) bitmap_line::x1#0 -- vbuaa=vbuxx 
    txa
    // bitmap_line::@6
    // if(yd<xd)
    // [27] if((const byte) bitmap_line::y1#0<(byte) bitmap_line::xd#1) goto bitmap_line::@7 -- vbuc1_lt_vbuaa_then_la1 
    cmp #y1
    beq !+
    bcs __b7
  !:
    // bitmap_line::@8
    // bitmap_line_ydxi(y0, x0, y1, yd, xd)
    // [28] (byte) bitmap_line_ydxi::xd#1 ← (byte) bitmap_line::xd#1 -- vbuz1=vbuaa 
    sta.z bitmap_line_ydxi.xd
    // [29] call bitmap_line_ydxi 
    jsr bitmap_line_ydxi
    rts
    // bitmap_line::@7
  __b7:
    // bitmap_line_xdyi(x0, y0, x1, xd, yd)
    // [30] (byte) bitmap_line_xdyi::x1#1 ← (byte) bitmap_line::x1#0 -- vbuz1=vbuxx 
    stx.z bitmap_line_xdyi.x1
    // [31] (byte) bitmap_line_xdyi::xd#1 ← (byte) bitmap_line::xd#1 -- vbuz1=vbuaa 
    sta.z bitmap_line_xdyi.xd
    // [32] call bitmap_line_xdyi 
    // [33] phi from bitmap_line::@7 to bitmap_line_xdyi [phi:bitmap_line::@7->bitmap_line_xdyi]
    jsr bitmap_line_xdyi
    rts
}
  // bitmap_line_xdyi
// bitmap_line_xdyi(byte zp(2) x, byte zp(3) y, byte zp(6) x1, byte zp($b) xd)
bitmap_line_xdyi: {
    .label x1 = 6
    .label xd = $b
    .label x = 2
    .label e = 4
    .label y = 3
    // [34] phi from bitmap_line_xdyi to bitmap_line_xdyi::@1 [phi:bitmap_line_xdyi->bitmap_line_xdyi::@1]
    // [34] 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
    // [34] 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
    // [34] 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
    // [34] phi from bitmap_line_xdyi::@2 to bitmap_line_xdyi::@1 [phi:bitmap_line_xdyi::@2->bitmap_line_xdyi::@1]
    // [34] 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 
    // [34] 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 
    // [34] 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)
    // [35] (byte) bitmap_plot::x#0 ← (byte) bitmap_line_xdyi::x#3 -- vbuxx=vbuz1 
    ldx.z x
    // [36] (byte) bitmap_plot::y#0 ← (byte) bitmap_line_xdyi::y#3 -- vbuyy=vbuz1 
    ldy.z y
    // [37] call bitmap_plot 
    // [47] phi from bitmap_line_xdyi::@1 to bitmap_plot [phi:bitmap_line_xdyi::@1->bitmap_plot]
    // [47] phi (byte) bitmap_plot::y#4 = (byte) bitmap_plot::y#0 [phi:bitmap_line_xdyi::@1->bitmap_plot#0] -- register_copy 
    // [47] 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++;
    // [38] (byte) bitmap_line_xdyi::x#2 ← ++ (byte) bitmap_line_xdyi::x#3 -- vbuz1=_inc_vbuz1 
    inc.z x
    // e = e+yd
    // [39] (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)
    // [40] 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++;
    // [41] (byte) bitmap_line_xdyi::y#2 ← ++ (byte) bitmap_line_xdyi::y#3 -- vbuz1=_inc_vbuz1 
    inc.z y
    // e = e - xd
    // [42] (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
    // [43] 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]
    // [43] 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 
    // [43] 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
    // [44] (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))
    // [45] 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
    // }
    // [46] 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] }
    // [48] (word) bitmap_plot::plotter_x#0 ← *((const byte*) bitmap_plot_xhi + (byte) bitmap_plot::x#4) w= *((const 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] }
    // [49] (word) bitmap_plot::plotter_y#0 ← *((const byte*) bitmap_plot_yhi + (byte) bitmap_plot::y#4) w= *((const 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
    // [50] (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]
    // [51] (byte~) bitmap_plot::$1 ← *((byte*)(word) bitmap_plot::plotter#0) | *((const 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]
    // [52] *((byte*)(word) bitmap_plot::plotter#0) ← (byte~) bitmap_plot::$1 -- _deref_pbuz1=vbuaa 
    sta (plotter),y
    // bitmap_plot::@return
    // }
    // [53] 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
    // [54] (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
    // [55] phi from bitmap_line_ydxi to bitmap_line_ydxi::@1 [phi:bitmap_line_ydxi->bitmap_line_ydxi::@1]
    // [55] phi (byte) bitmap_line_ydxi::e#3 = (byte) bitmap_line_ydxi::e#0 [phi:bitmap_line_ydxi->bitmap_line_ydxi::@1#0] -- register_copy 
    // [55] 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
    // [55] 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
    // [55] phi from bitmap_line_ydxi::@2 to bitmap_line_ydxi::@1 [phi:bitmap_line_ydxi::@2->bitmap_line_ydxi::@1]
    // [55] 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 
    // [55] 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 
    // [55] 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)
    // [56] (byte) bitmap_plot::x#2 ← (byte) bitmap_line_ydxi::x#3 -- vbuxx=vbuz1 
    ldx.z x
    // [57] (byte) bitmap_plot::y#2 ← (byte) bitmap_line_ydxi::y#3 -- vbuyy=vbuz1 
    ldy.z y
    // [58] call bitmap_plot 
    // [47] phi from bitmap_line_ydxi::@1 to bitmap_plot [phi:bitmap_line_ydxi::@1->bitmap_plot]
    // [47] phi (byte) bitmap_plot::y#4 = (byte) bitmap_plot::y#2 [phi:bitmap_line_ydxi::@1->bitmap_plot#0] -- register_copy 
    // [47] 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++;
    // [59] (byte) bitmap_line_ydxi::y#2 ← ++ (byte) bitmap_line_ydxi::y#3 -- vbuz1=_inc_vbuz1 
    inc.z y
    // e = e+xd
    // [60] (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)
    // [61] 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++;
    // [62] (byte) bitmap_line_ydxi::x#2 ← ++ (byte) bitmap_line_ydxi::x#3 -- vbuz1=_inc_vbuz1 
    inc.z x
    // e = e - yd
    // [63] (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
    // [64] 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]
    // [64] 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 
    // [64] 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))
    // [65] 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
    // }
    // [66] 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
    // [68] phi from bitmap_line_xdyd to bitmap_line_xdyd::@1 [phi:bitmap_line_xdyd->bitmap_line_xdyd::@1]
    // [68] 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
    // [68] 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
    // [68] phi (byte) bitmap_line_xdyd::x#3 = (byte) bitmap_line_xdyd::x#0 [phi:bitmap_line_xdyd->bitmap_line_xdyd::@1#2] -- register_copy 
    // [68] phi from bitmap_line_xdyd::@2 to bitmap_line_xdyd::@1 [phi:bitmap_line_xdyd::@2->bitmap_line_xdyd::@1]
    // [68] 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 
    // [68] 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 
    // [68] 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)
    // [69] (byte) bitmap_plot::x#1 ← (byte) bitmap_line_xdyd::x#3 -- vbuxx=vbuz1 
    ldx.z x
    // [70] (byte) bitmap_plot::y#1 ← (byte) bitmap_line_xdyd::y#3 -- vbuyy=vbuz1 
    ldy.z y
    // [71] call bitmap_plot 
    // [47] phi from bitmap_line_xdyd::@1 to bitmap_plot [phi:bitmap_line_xdyd::@1->bitmap_plot]
    // [47] phi (byte) bitmap_plot::y#4 = (byte) bitmap_plot::y#1 [phi:bitmap_line_xdyd::@1->bitmap_plot#0] -- register_copy 
    // [47] 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++;
    // [72] (byte) bitmap_line_xdyd::x#2 ← ++ (byte) bitmap_line_xdyd::x#3 -- vbuz1=_inc_vbuz1 
    inc.z x
    // e = e+yd
    // [73] (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)
    // [74] 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--;
    // [75] (byte) bitmap_line_xdyd::y#2 ← -- (byte) bitmap_line_xdyd::y#3 -- vbuz1=_dec_vbuz1 
    dec.z y
    // e = e - xd
    // [76] (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
    // [77] 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]
    // [77] 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 
    // [77] 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))
    // [78] 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
    // }
    // [79] return 
    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
    // [80] (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
    // [81] phi from bitmap_line_ydxd to bitmap_line_ydxd::@1 [phi:bitmap_line_ydxd->bitmap_line_ydxd::@1]
    // [81] phi (byte) bitmap_line_ydxd::e#3 = (byte) bitmap_line_ydxd::e#0 [phi:bitmap_line_ydxd->bitmap_line_ydxd::@1#0] -- register_copy 
    // [81] 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
    // [81] 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
    // [81] phi from bitmap_line_ydxd::@2 to bitmap_line_ydxd::@1 [phi:bitmap_line_ydxd::@2->bitmap_line_ydxd::@1]
    // [81] 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 
    // [81] 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 
    // [81] 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)
    // [82] (byte) bitmap_plot::x#3 ← (byte) bitmap_line_ydxd::x#3 -- vbuxx=vbuz1 
    ldx.z x
    // [83] (byte) bitmap_plot::y#3 ← (byte) bitmap_line_ydxd::y#2 -- vbuyy=vbuz1 
    ldy.z y
    // [84] call bitmap_plot 
    // [47] phi from bitmap_line_ydxd::@1 to bitmap_plot [phi:bitmap_line_ydxd::@1->bitmap_plot]
    // [47] phi (byte) bitmap_plot::y#4 = (byte) bitmap_plot::y#3 [phi:bitmap_line_ydxd::@1->bitmap_plot#0] -- register_copy 
    // [47] 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++;
    // [85] (byte) bitmap_line_ydxd::y#3 ← ++ (byte) bitmap_line_ydxd::y#2 -- vbuz1=_inc_vbuz1 
    inc.z y
    // e = e+xd
    // [86] (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)
    // [87] 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--;
    // [88] (byte) bitmap_line_ydxd::x#2 ← -- (byte) bitmap_line_ydxd::x#3 -- vbuz1=_dec_vbuz1 
    dec.z x
    // e = e - yd
    // [89] (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
    // [90] 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]
    // [90] 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 
    // [90] 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))
    // [91] 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
    // }
    // [92] return 
    rts
}
  // init_screen
init_screen: {
    .label c = 7
    // [94] phi from init_screen to init_screen::@1 [phi:init_screen->init_screen::@1]
    // [94] phi (byte*) init_screen::c#2 = (const 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++)
    // [95] if((byte*) init_screen::c#2!=(const 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
    // }
    // [96] return 
    rts
    // init_screen::@2
  __b2:
    // *c = $14
    // [97] *((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++)
    // [98] (byte*) init_screen::c#1 ← ++ (byte*) init_screen::c#2 -- pbuz1=_inc_pbuz1 
    inc.z c
    bne !+
    inc.z c+1
  !:
    // [94] phi from init_screen::@2 to init_screen::@1 [phi:init_screen::@2->init_screen::@1]
    // [94] phi (byte*) init_screen::c#2 = (byte*) init_screen::c#1 [phi:init_screen::@2->init_screen::@1#0] -- register_copy 
    jmp __b1
}
  // bitmap_clear
// Clear all graphics on the bitmap
bitmap_clear: {
    .label bitmap = 7
    .label y = 5
    // (byte*) { bitmap_plot_xhi[0], bitmap_plot_xlo[0] }
    // [99] (word) bitmap_clear::bitmap#0 ← *((const byte*) bitmap_plot_xhi) w= *((const 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
    // [100] (byte*) bitmap_clear::bitmap#5 ← (byte*)(word) bitmap_clear::bitmap#0
    // [101] phi from bitmap_clear to bitmap_clear::@1 [phi:bitmap_clear->bitmap_clear::@1]
    // [101] phi (byte) bitmap_clear::y#4 = (byte) 0 [phi:bitmap_clear->bitmap_clear::@1#0] -- vbuz1=vbuc1 
    lda #0
    sta.z y
    // [101] phi (byte*) bitmap_clear::bitmap#3 = (byte*) bitmap_clear::bitmap#5 [phi:bitmap_clear->bitmap_clear::@1#1] -- register_copy 
    // [101] phi from bitmap_clear::@3 to bitmap_clear::@1 [phi:bitmap_clear::@3->bitmap_clear::@1]
    // [101] phi (byte) bitmap_clear::y#4 = (byte) bitmap_clear::y#1 [phi:bitmap_clear::@3->bitmap_clear::@1#0] -- register_copy 
    // [101] 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:
    // [102] phi from bitmap_clear::@1 to bitmap_clear::@2 [phi:bitmap_clear::@1->bitmap_clear::@2]
    // [102] phi (byte) bitmap_clear::x#2 = (byte) 0 [phi:bitmap_clear::@1->bitmap_clear::@2#0] -- vbuxx=vbuc1 
    ldx #0
    // [102] phi (byte*) bitmap_clear::bitmap#2 = (byte*) bitmap_clear::bitmap#3 [phi:bitmap_clear::@1->bitmap_clear::@2#1] -- register_copy 
    // [102] phi from bitmap_clear::@2 to bitmap_clear::@2 [phi:bitmap_clear::@2->bitmap_clear::@2]
    // [102] phi (byte) bitmap_clear::x#2 = (byte) bitmap_clear::x#1 [phi:bitmap_clear::@2->bitmap_clear::@2#0] -- register_copy 
    // [102] 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
    // [103] *((byte*) bitmap_clear::bitmap#2) ← (byte) 0 -- _deref_pbuz1=vbuc1 
    lda #0
    tay
    sta (bitmap),y
    // *bitmap++ = 0;
    // [104] (byte*) bitmap_clear::bitmap#1 ← ++ (byte*) bitmap_clear::bitmap#2 -- pbuz1=_inc_pbuz1 
    inc.z bitmap
    bne !+
    inc.z bitmap+1
  !:
    // for( byte x: 0..199 )
    // [105] (byte) bitmap_clear::x#1 ← ++ (byte) bitmap_clear::x#2 -- vbuxx=_inc_vbuxx 
    inx
    // [106] 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( byte y: 0..39 )
    // [107] (byte) bitmap_clear::y#1 ← ++ (byte) bitmap_clear::y#4 -- vbuz1=_inc_vbuz1 
    inc.z y
    // [108] 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
    // }
    // [109] return 
    rts
}
  // bitmap_init
// Initialize the bitmap plotter tables for a specific bitmap
bitmap_init: {
    .label __10 = $b
    .label yoffs = 7
    // [111] phi from bitmap_init to bitmap_init::@1 [phi:bitmap_init->bitmap_init::@1]
    // [111] phi (byte) bitmap_init::bits#3 = (byte) $80 [phi:bitmap_init->bitmap_init::@1#0] -- vbuyy=vbuc1 
    ldy #$80
    // [111] phi (byte) bitmap_init::x#2 = (byte) 0 [phi:bitmap_init->bitmap_init::@1#1] -- vbuxx=vbuc1 
    ldx #0
    // [111] phi from bitmap_init::@2 to bitmap_init::@1 [phi:bitmap_init::@2->bitmap_init::@1]
    // [111] phi (byte) bitmap_init::bits#3 = (byte) bitmap_init::bits#4 [phi:bitmap_init::@2->bitmap_init::@1#0] -- register_copy 
    // [111] 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
    // [112] (byte~) bitmap_init::$0 ← (byte) bitmap_init::x#2 & (byte) $f8 -- vbuaa=vbuxx_band_vbuc1 
    txa
    and #$f8
    // bitmap_plot_xlo[x] = x&$f8
    // [113] *((const 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
    // [114] *((const byte*) bitmap_plot_xhi + (byte) bitmap_init::x#2) ← >(const byte*) BITMAP -- pbuc1_derefidx_vbuxx=vbuc2 
    lda #>BITMAP
    sta bitmap_plot_xhi,x
    // bitmap_plot_bit[x] = bits
    // [115] *((const 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
    // [116] (byte) bitmap_init::bits#1 ← (byte) bitmap_init::bits#3 >> (byte) 1 -- vbuyy=vbuyy_ror_1 
    tya
    lsr
    tay
    // if(bits==0)
    // [117] if((byte) bitmap_init::bits#1!=(byte) 0) goto bitmap_init::@6 -- vbuyy_neq_0_then_la1 
    cpy #0
    bne __b2
    // [119] phi from bitmap_init::@1 to bitmap_init::@2 [phi:bitmap_init::@1->bitmap_init::@2]
    // [119] phi (byte) bitmap_init::bits#4 = (byte) $80 [phi:bitmap_init::@1->bitmap_init::@2#0] -- vbuyy=vbuc1 
    ldy #$80
    // [118] phi from bitmap_init::@1 to bitmap_init::@6 [phi:bitmap_init::@1->bitmap_init::@6]
    // bitmap_init::@6
    // [119] phi from bitmap_init::@6 to bitmap_init::@2 [phi:bitmap_init::@6->bitmap_init::@2]
    // [119] 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(byte x : 0..255)
    // [120] (byte) bitmap_init::x#1 ← ++ (byte) bitmap_init::x#2 -- vbuxx=_inc_vbuxx 
    inx
    // [121] if((byte) bitmap_init::x#1!=(byte) 0) goto bitmap_init::@1 -- vbuxx_neq_0_then_la1 
    cpx #0
    bne __b1
    // [122] phi from bitmap_init::@2 to bitmap_init::@3 [phi:bitmap_init::@2->bitmap_init::@3]
    // [122] 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
    // [122] phi (byte) bitmap_init::y#2 = (byte) 0 [phi:bitmap_init::@2->bitmap_init::@3#1] -- vbuxx=vbuc1 
    tax
    // [122] phi from bitmap_init::@4 to bitmap_init::@3 [phi:bitmap_init::@4->bitmap_init::@3]
    // [122] phi (byte*) bitmap_init::yoffs#2 = (byte*) bitmap_init::yoffs#4 [phi:bitmap_init::@4->bitmap_init::@3#0] -- register_copy 
    // [122] 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
    // [123] (byte~) bitmap_init::$10 ← (byte) bitmap_init::y#2 & (byte) 7 -- vbuz1=vbuxx_band_vbuc1 
    lda #7
    sax.z __10
    // <yoffs
    // [124] (byte~) bitmap_init::$7 ← < (byte*) bitmap_init::yoffs#2 -- vbuaa=_lo_pbuz1 
    lda.z yoffs
    // y&$7 | <yoffs
    // [125] (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
    // [126] *((const byte*) bitmap_plot_ylo + (byte) bitmap_init::y#2) ← (byte~) bitmap_init::$8 -- pbuc1_derefidx_vbuxx=vbuaa 
    sta bitmap_plot_ylo,x
    // >yoffs
    // [127] (byte~) bitmap_init::$9 ← > (byte*) bitmap_init::yoffs#2 -- vbuaa=_hi_pbuz1 
    lda.z yoffs+1
    // bitmap_plot_yhi[y] = >yoffs
    // [128] *((const 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)
    // [129] 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
    // [130] (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
    // [131] phi from bitmap_init::@3 bitmap_init::@5 to bitmap_init::@4 [phi:bitmap_init::@3/bitmap_init::@5->bitmap_init::@4]
    // [131] 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(byte y : 0..255)
    // [132] (byte) bitmap_init::y#1 ← ++ (byte) bitmap_init::y#2 -- vbuxx=_inc_vbuxx 
    inx
    // [133] if((byte) bitmap_init::y#1!=(byte) 0) goto bitmap_init::@3 -- vbuxx_neq_0_then_la1 
    cpx #0
    bne __b3
    // bitmap_init::@return
    // }
    // [134] 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

