Inlined call vicSelectGfxBank::$0 = call toDd00 vicSelectGfxBank::gfx Inlined call call __init CONTROL FLOW GRAPH SSA void bitmap_init(byte* bitmap_init::bitmap) bitmap_init: scope:[bitmap_init] from main bitmap_init::bitmap#2 = phi( main/bitmap_init::bitmap#0 ) bitmap_init::bits#0 = $80 bitmap_init::x#0 = 0 to:bitmap_init::@1 bitmap_init::@1: scope:[bitmap_init] from bitmap_init bitmap_init::@2 bitmap_init::bits#3 = phi( bitmap_init/bitmap_init::bits#0, bitmap_init::@2/bitmap_init::bits#4 ) bitmap_init::bitmap#1 = phi( bitmap_init/bitmap_init::bitmap#2, bitmap_init::@2/bitmap_init::bitmap#3 ) bitmap_init::x#2 = phi( bitmap_init/bitmap_init::x#0, bitmap_init::@2/bitmap_init::x#1 ) bitmap_init::$0 = bitmap_init::x#2 & $f8 bitmap_plot_xlo[bitmap_init::x#2] = bitmap_init::$0 bitmap_init::$1 = > bitmap_init::bitmap#1 bitmap_plot_xhi[bitmap_init::x#2] = bitmap_init::$1 bitmap_plot_bit[bitmap_init::x#2] = bitmap_init::bits#3 bitmap_init::$2 = bitmap_init::bits#3 >> 1 bitmap_init::bits#1 = bitmap_init::$2 bitmap_init::$3 = bitmap_init::bits#1 == 0 bitmap_init::$4 = ! bitmap_init::$3 if(bitmap_init::$4) goto bitmap_init::@2 to:bitmap_init::@3 bitmap_init::@2: scope:[bitmap_init] from bitmap_init::@1 bitmap_init::@3 bitmap_init::bits#4 = phi( bitmap_init::@1/bitmap_init::bits#1, bitmap_init::@3/bitmap_init::bits#2 ) bitmap_init::bitmap#3 = phi( bitmap_init::@1/bitmap_init::bitmap#1, bitmap_init::@3/bitmap_init::bitmap#4 ) bitmap_init::x#3 = phi( bitmap_init::@1/bitmap_init::x#2, bitmap_init::@3/bitmap_init::x#4 ) bitmap_init::x#1 = bitmap_init::x#3 + rangenext(0,$ff) bitmap_init::$5 = bitmap_init::x#1 != rangelast(0,$ff) if(bitmap_init::$5) goto bitmap_init::@1 to:bitmap_init::@4 bitmap_init::@3: scope:[bitmap_init] from bitmap_init::@1 bitmap_init::bitmap#4 = phi( bitmap_init::@1/bitmap_init::bitmap#1 ) bitmap_init::x#4 = phi( bitmap_init::@1/bitmap_init::x#2 ) bitmap_init::bits#2 = $80 to:bitmap_init::@2 bitmap_init::@4: scope:[bitmap_init] from bitmap_init::@2 bitmap_init::yoffs#0 = (byte*)0 bitmap_init::y#0 = 0 to:bitmap_init::@5 bitmap_init::@5: scope:[bitmap_init] from bitmap_init::@4 bitmap_init::@6 bitmap_init::yoffs#2 = phi( bitmap_init::@4/bitmap_init::yoffs#0, bitmap_init::@6/bitmap_init::yoffs#4 ) bitmap_init::y#2 = phi( bitmap_init::@4/bitmap_init::y#0, bitmap_init::@6/bitmap_init::y#1 ) bitmap_init::$6 = bitmap_init::y#2 & 7 bitmap_init::$7 = < bitmap_init::yoffs#2 bitmap_init::$8 = bitmap_init::$6 | bitmap_init::$7 bitmap_plot_ylo[bitmap_init::y#2] = bitmap_init::$8 bitmap_init::$9 = > bitmap_init::yoffs#2 bitmap_plot_yhi[bitmap_init::y#2] = bitmap_init::$9 bitmap_init::$10 = bitmap_init::y#2 & 7 bitmap_init::$11 = bitmap_init::$10 == 7 bitmap_init::$12 = ! bitmap_init::$11 if(bitmap_init::$12) goto bitmap_init::@6 to:bitmap_init::@7 bitmap_init::@6: scope:[bitmap_init] from bitmap_init::@5 bitmap_init::@7 bitmap_init::yoffs#4 = phi( bitmap_init::@5/bitmap_init::yoffs#2, bitmap_init::@7/bitmap_init::yoffs#1 ) bitmap_init::y#3 = phi( bitmap_init::@5/bitmap_init::y#2, bitmap_init::@7/bitmap_init::y#4 ) bitmap_init::y#1 = bitmap_init::y#3 + rangenext(0,$ff) bitmap_init::$14 = bitmap_init::y#1 != rangelast(0,$ff) if(bitmap_init::$14) goto bitmap_init::@5 to:bitmap_init::@return bitmap_init::@7: scope:[bitmap_init] from bitmap_init::@5 bitmap_init::y#4 = phi( bitmap_init::@5/bitmap_init::y#2 ) bitmap_init::yoffs#3 = phi( bitmap_init::@5/bitmap_init::yoffs#2 ) bitmap_init::$13 = bitmap_init::yoffs#3 + $28*8 bitmap_init::yoffs#1 = bitmap_init::$13 to:bitmap_init::@6 bitmap_init::@return: scope:[bitmap_init] from bitmap_init::@6 return to:@return void bitmap_clear() bitmap_clear: scope:[bitmap_clear] from main::@2 bitmap_clear::bitmap#0 = (byte*){ bitmap_plot_xhi[0], bitmap_plot_xlo[0] } bitmap_clear::y#0 = 0 to:bitmap_clear::@1 bitmap_clear::@1: scope:[bitmap_clear] from bitmap_clear bitmap_clear::@3 bitmap_clear::y#4 = phi( bitmap_clear/bitmap_clear::y#0, bitmap_clear::@3/bitmap_clear::y#1 ) bitmap_clear::bitmap#3 = phi( bitmap_clear/bitmap_clear::bitmap#0, bitmap_clear::@3/bitmap_clear::bitmap#4 ) bitmap_clear::x#0 = 0 to:bitmap_clear::@2 bitmap_clear::@2: scope:[bitmap_clear] from bitmap_clear::@1 bitmap_clear::@2 bitmap_clear::y#3 = phi( bitmap_clear::@1/bitmap_clear::y#4, bitmap_clear::@2/bitmap_clear::y#3 ) bitmap_clear::x#2 = phi( bitmap_clear::@1/bitmap_clear::x#0, bitmap_clear::@2/bitmap_clear::x#1 ) bitmap_clear::bitmap#2 = phi( bitmap_clear::@1/bitmap_clear::bitmap#3, bitmap_clear::@2/bitmap_clear::bitmap#1 ) *bitmap_clear::bitmap#2 = 0 bitmap_clear::bitmap#1 = ++ bitmap_clear::bitmap#2 bitmap_clear::x#1 = bitmap_clear::x#2 + rangenext(0,$c7) bitmap_clear::$0 = bitmap_clear::x#1 != rangelast(0,$c7) if(bitmap_clear::$0) goto bitmap_clear::@2 to:bitmap_clear::@3 bitmap_clear::@3: scope:[bitmap_clear] from bitmap_clear::@2 bitmap_clear::bitmap#4 = phi( bitmap_clear::@2/bitmap_clear::bitmap#1 ) bitmap_clear::y#2 = phi( bitmap_clear::@2/bitmap_clear::y#3 ) bitmap_clear::y#1 = bitmap_clear::y#2 + rangenext(0,$27) bitmap_clear::$1 = bitmap_clear::y#1 != rangelast(0,$27) if(bitmap_clear::$1) goto bitmap_clear::@1 to:bitmap_clear::@return bitmap_clear::@return: scope:[bitmap_clear] from bitmap_clear::@3 return to:@return void bitmap_plot(byte bitmap_plot::x , byte bitmap_plot::y) bitmap_plot: scope:[bitmap_plot] from bitmap_line_xdyd::@1 bitmap_line_xdyi::@1 bitmap_line_ydxd::@1 bitmap_line_ydxi::@1 bitmap_plot::y#4 = phi( bitmap_line_xdyd::@1/bitmap_plot::y#1, bitmap_line_xdyi::@1/bitmap_plot::y#0, bitmap_line_ydxd::@1/bitmap_plot::y#3, bitmap_line_ydxi::@1/bitmap_plot::y#2 ) bitmap_plot::x#4 = phi( bitmap_line_xdyd::@1/bitmap_plot::x#1, bitmap_line_xdyi::@1/bitmap_plot::x#0, bitmap_line_ydxd::@1/bitmap_plot::x#3, bitmap_line_ydxi::@1/bitmap_plot::x#2 ) bitmap_plot::plotter_x#0 = (word){ bitmap_plot_xhi[bitmap_plot::x#4], bitmap_plot_xlo[bitmap_plot::x#4] } bitmap_plot::plotter_y#0 = (word){ bitmap_plot_yhi[bitmap_plot::y#4], bitmap_plot_ylo[bitmap_plot::y#4] } bitmap_plot::$0 = bitmap_plot::plotter_x#0 + bitmap_plot::plotter_y#0 bitmap_plot::plotter#0 = ((byte*)) bitmap_plot::$0 bitmap_plot::$1 = *bitmap_plot::plotter#0 | bitmap_plot_bit[bitmap_plot::x#4] *bitmap_plot::plotter#0 = 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 bitmap_line::y1#13 = phi( main::@1/bitmap_line::y1#0 ) bitmap_line::y0#13 = phi( main::@1/bitmap_line::y0#0 ) bitmap_line::x1#1 = phi( main::@1/bitmap_line::x1#0 ) bitmap_line::x0#1 = phi( main::@1/bitmap_line::x0#0 ) bitmap_line::xd#0 = 0 bitmap_line::yd#0 = 0 bitmap_line::$0 = bitmap_line::x0#1 < bitmap_line::x1#1 if(bitmap_line::$0) goto bitmap_line::@1 to:bitmap_line::@2 bitmap_line::@1: scope:[bitmap_line] from bitmap_line bitmap_line::y1#1 = phi( bitmap_line/bitmap_line::y1#13 ) bitmap_line::y0#1 = phi( bitmap_line/bitmap_line::y0#13 ) bitmap_line::x0#2 = phi( bitmap_line/bitmap_line::x0#1 ) bitmap_line::x1#2 = phi( bitmap_line/bitmap_line::x1#1 ) bitmap_line::$11 = bitmap_line::x1#2 - bitmap_line::x0#2 bitmap_line::xd#1 = bitmap_line::$11 bitmap_line::$12 = bitmap_line::y0#1 < bitmap_line::y1#1 if(bitmap_line::$12) goto bitmap_line::@11 to:bitmap_line::@5 bitmap_line::@2: scope:[bitmap_line] from bitmap_line bitmap_line::y1#2 = phi( bitmap_line/bitmap_line::y1#13 ) bitmap_line::y0#2 = phi( bitmap_line/bitmap_line::y0#13 ) bitmap_line::x1#3 = phi( bitmap_line/bitmap_line::x1#1 ) bitmap_line::x0#3 = phi( bitmap_line/bitmap_line::x0#1 ) bitmap_line::$1 = bitmap_line::x0#3 - bitmap_line::x1#3 bitmap_line::xd#2 = bitmap_line::$1 bitmap_line::$2 = bitmap_line::y0#2 < bitmap_line::y1#2 if(bitmap_line::$2) goto bitmap_line::@7 to:bitmap_line::@3 bitmap_line::@7: scope:[bitmap_line] from bitmap_line::@2 bitmap_line::x0#11 = phi( bitmap_line::@2/bitmap_line::x0#3 ) bitmap_line::x1#11 = phi( bitmap_line::@2/bitmap_line::x1#3 ) bitmap_line::xd#3 = phi( bitmap_line::@2/bitmap_line::xd#2 ) bitmap_line::y0#3 = phi( bitmap_line::@2/bitmap_line::y0#2 ) bitmap_line::y1#3 = phi( bitmap_line::@2/bitmap_line::y1#2 ) bitmap_line::$7 = bitmap_line::y1#3 - bitmap_line::y0#3 bitmap_line::yd#1 = bitmap_line::$7 bitmap_line::$8 = bitmap_line::yd#1 < bitmap_line::xd#3 if(bitmap_line::$8) goto bitmap_line::@9 to:bitmap_line::@10 bitmap_line::@3: scope:[bitmap_line] from bitmap_line::@2 bitmap_line::x0#10 = phi( bitmap_line::@2/bitmap_line::x0#3 ) bitmap_line::x1#10 = phi( bitmap_line::@2/bitmap_line::x1#3 ) bitmap_line::xd#4 = phi( bitmap_line::@2/bitmap_line::xd#2 ) bitmap_line::y1#4 = phi( bitmap_line::@2/bitmap_line::y1#2 ) bitmap_line::y0#4 = phi( bitmap_line::@2/bitmap_line::y0#2 ) bitmap_line::$3 = bitmap_line::y0#4 - bitmap_line::y1#4 bitmap_line::yd#2 = bitmap_line::$3 bitmap_line::$4 = bitmap_line::yd#2 < bitmap_line::xd#4 if(bitmap_line::$4) goto bitmap_line::@8 to:bitmap_line::@4 bitmap_line::@8: scope:[bitmap_line] from bitmap_line::@3 bitmap_line::yd#5 = phi( bitmap_line::@3/bitmap_line::yd#2 ) bitmap_line::xd#5 = phi( bitmap_line::@3/bitmap_line::xd#4 ) bitmap_line::x0#4 = phi( bitmap_line::@3/bitmap_line::x0#10 ) bitmap_line::y1#5 = phi( bitmap_line::@3/bitmap_line::y1#4 ) bitmap_line::x1#4 = phi( bitmap_line::@3/bitmap_line::x1#10 ) bitmap_line_xdyi::x#0 = bitmap_line::x1#4 bitmap_line_xdyi::y#0 = bitmap_line::y1#5 bitmap_line_xdyi::x1#0 = bitmap_line::x0#4 bitmap_line_xdyi::xd#0 = bitmap_line::xd#5 bitmap_line_xdyi::yd#0 = bitmap_line::yd#5 call bitmap_line_xdyi to:bitmap_line::@15 bitmap_line::@15: scope:[bitmap_line] from bitmap_line::@8 to:bitmap_line::@return bitmap_line::@4: scope:[bitmap_line] from bitmap_line::@3 bitmap_line::xd#6 = phi( bitmap_line::@3/bitmap_line::xd#4 ) bitmap_line::yd#6 = phi( bitmap_line::@3/bitmap_line::yd#2 ) bitmap_line::y0#5 = phi( bitmap_line::@3/bitmap_line::y0#4 ) bitmap_line::x1#5 = phi( bitmap_line::@3/bitmap_line::x1#10 ) bitmap_line::y1#6 = phi( bitmap_line::@3/bitmap_line::y1#4 ) bitmap_line_ydxi::y#0 = bitmap_line::y1#6 bitmap_line_ydxi::x#0 = bitmap_line::x1#5 bitmap_line_ydxi::y1#0 = bitmap_line::y0#5 bitmap_line_ydxi::yd#0 = bitmap_line::yd#6 bitmap_line_ydxi::xd#0 = bitmap_line::xd#6 call bitmap_line_ydxi to:bitmap_line::@16 bitmap_line::@16: scope:[bitmap_line] from bitmap_line::@4 to:bitmap_line::@return bitmap_line::@9: scope:[bitmap_line] from bitmap_line::@7 bitmap_line::yd#7 = phi( bitmap_line::@7/bitmap_line::yd#1 ) bitmap_line::xd#7 = phi( bitmap_line::@7/bitmap_line::xd#3 ) bitmap_line::x0#5 = phi( bitmap_line::@7/bitmap_line::x0#11 ) bitmap_line::y1#7 = phi( bitmap_line::@7/bitmap_line::y1#3 ) bitmap_line::x1#6 = phi( bitmap_line::@7/bitmap_line::x1#11 ) bitmap_line_xdyd::x#0 = bitmap_line::x1#6 bitmap_line_xdyd::y#0 = bitmap_line::y1#7 bitmap_line_xdyd::x1#0 = bitmap_line::x0#5 bitmap_line_xdyd::xd#0 = bitmap_line::xd#7 bitmap_line_xdyd::yd#0 = bitmap_line::yd#7 call bitmap_line_xdyd to:bitmap_line::@17 bitmap_line::@17: scope:[bitmap_line] from bitmap_line::@9 to:bitmap_line::@return bitmap_line::@10: scope:[bitmap_line] from bitmap_line::@7 bitmap_line::xd#8 = phi( bitmap_line::@7/bitmap_line::xd#3 ) bitmap_line::yd#8 = phi( bitmap_line::@7/bitmap_line::yd#1 ) bitmap_line::y1#8 = phi( bitmap_line::@7/bitmap_line::y1#3 ) bitmap_line::x0#6 = phi( bitmap_line::@7/bitmap_line::x0#11 ) bitmap_line::y0#6 = phi( bitmap_line::@7/bitmap_line::y0#3 ) bitmap_line_ydxd::y#0 = bitmap_line::y0#6 bitmap_line_ydxd::x#0 = bitmap_line::x0#6 bitmap_line_ydxd::y1#0 = bitmap_line::y1#8 bitmap_line_ydxd::yd#0 = bitmap_line::yd#8 bitmap_line_ydxd::xd#0 = bitmap_line::xd#8 call bitmap_line_ydxd to:bitmap_line::@18 bitmap_line::@18: scope:[bitmap_line] from bitmap_line::@10 to:bitmap_line::@return bitmap_line::@11: scope:[bitmap_line] from bitmap_line::@1 bitmap_line::x1#13 = phi( bitmap_line::@1/bitmap_line::x1#2 ) bitmap_line::x0#13 = phi( bitmap_line::@1/bitmap_line::x0#2 ) bitmap_line::xd#9 = phi( bitmap_line::@1/bitmap_line::xd#1 ) bitmap_line::y0#7 = phi( bitmap_line::@1/bitmap_line::y0#1 ) bitmap_line::y1#9 = phi( bitmap_line::@1/bitmap_line::y1#1 ) bitmap_line::$17 = bitmap_line::y1#9 - bitmap_line::y0#7 bitmap_line::yd#3 = bitmap_line::$17 bitmap_line::$18 = bitmap_line::yd#3 < bitmap_line::xd#9 if(bitmap_line::$18) goto bitmap_line::@13 to:bitmap_line::@14 bitmap_line::@5: scope:[bitmap_line] from bitmap_line::@1 bitmap_line::x1#12 = phi( bitmap_line::@1/bitmap_line::x1#2 ) bitmap_line::x0#12 = phi( bitmap_line::@1/bitmap_line::x0#2 ) bitmap_line::xd#10 = phi( bitmap_line::@1/bitmap_line::xd#1 ) bitmap_line::y1#10 = phi( bitmap_line::@1/bitmap_line::y1#1 ) bitmap_line::y0#8 = phi( bitmap_line::@1/bitmap_line::y0#1 ) bitmap_line::$13 = bitmap_line::y0#8 - bitmap_line::y1#10 bitmap_line::yd#4 = bitmap_line::$13 bitmap_line::$14 = bitmap_line::yd#4 < bitmap_line::xd#10 if(bitmap_line::$14) goto bitmap_line::@12 to:bitmap_line::@6 bitmap_line::@12: scope:[bitmap_line] from bitmap_line::@5 bitmap_line::yd#9 = phi( bitmap_line::@5/bitmap_line::yd#4 ) bitmap_line::xd#11 = phi( bitmap_line::@5/bitmap_line::xd#10 ) bitmap_line::x1#7 = phi( bitmap_line::@5/bitmap_line::x1#12 ) bitmap_line::y0#9 = phi( bitmap_line::@5/bitmap_line::y0#8 ) bitmap_line::x0#7 = phi( bitmap_line::@5/bitmap_line::x0#12 ) bitmap_line_xdyd::x#1 = bitmap_line::x0#7 bitmap_line_xdyd::y#1 = bitmap_line::y0#9 bitmap_line_xdyd::x1#1 = bitmap_line::x1#7 bitmap_line_xdyd::xd#1 = bitmap_line::xd#11 bitmap_line_xdyd::yd#1 = bitmap_line::yd#9 call bitmap_line_xdyd to:bitmap_line::@19 bitmap_line::@19: scope:[bitmap_line] from bitmap_line::@12 to:bitmap_line::@return bitmap_line::@6: scope:[bitmap_line] from bitmap_line::@5 bitmap_line::xd#12 = phi( bitmap_line::@5/bitmap_line::xd#10 ) bitmap_line::yd#10 = phi( bitmap_line::@5/bitmap_line::yd#4 ) bitmap_line::y0#10 = phi( bitmap_line::@5/bitmap_line::y0#8 ) bitmap_line::x1#8 = phi( bitmap_line::@5/bitmap_line::x1#12 ) bitmap_line::y1#11 = phi( bitmap_line::@5/bitmap_line::y1#10 ) bitmap_line_ydxd::y#1 = bitmap_line::y1#11 bitmap_line_ydxd::x#1 = bitmap_line::x1#8 bitmap_line_ydxd::y1#1 = bitmap_line::y0#10 bitmap_line_ydxd::yd#1 = bitmap_line::yd#10 bitmap_line_ydxd::xd#1 = bitmap_line::xd#12 call bitmap_line_ydxd to:bitmap_line::@20 bitmap_line::@20: scope:[bitmap_line] from bitmap_line::@6 to:bitmap_line::@return bitmap_line::@13: scope:[bitmap_line] from bitmap_line::@11 bitmap_line::yd#11 = phi( bitmap_line::@11/bitmap_line::yd#3 ) bitmap_line::xd#13 = phi( bitmap_line::@11/bitmap_line::xd#9 ) bitmap_line::x1#9 = phi( bitmap_line::@11/bitmap_line::x1#13 ) bitmap_line::y0#11 = phi( bitmap_line::@11/bitmap_line::y0#7 ) bitmap_line::x0#8 = phi( bitmap_line::@11/bitmap_line::x0#13 ) bitmap_line_xdyi::x#1 = bitmap_line::x0#8 bitmap_line_xdyi::y#1 = bitmap_line::y0#11 bitmap_line_xdyi::x1#1 = bitmap_line::x1#9 bitmap_line_xdyi::xd#1 = bitmap_line::xd#13 bitmap_line_xdyi::yd#1 = bitmap_line::yd#11 call bitmap_line_xdyi to:bitmap_line::@21 bitmap_line::@21: scope:[bitmap_line] from bitmap_line::@13 to:bitmap_line::@return bitmap_line::@14: scope:[bitmap_line] from bitmap_line::@11 bitmap_line::xd#14 = phi( bitmap_line::@11/bitmap_line::xd#9 ) bitmap_line::yd#12 = phi( bitmap_line::@11/bitmap_line::yd#3 ) bitmap_line::y1#12 = phi( bitmap_line::@11/bitmap_line::y1#9 ) bitmap_line::x0#9 = phi( bitmap_line::@11/bitmap_line::x0#13 ) bitmap_line::y0#12 = phi( bitmap_line::@11/bitmap_line::y0#7 ) bitmap_line_ydxi::y#1 = bitmap_line::y0#12 bitmap_line_ydxi::x#1 = bitmap_line::x0#9 bitmap_line_ydxi::y1#1 = bitmap_line::y1#12 bitmap_line_ydxi::yd#1 = bitmap_line::yd#12 bitmap_line_ydxi::xd#1 = bitmap_line::xd#14 call bitmap_line_ydxi to:bitmap_line::@22 bitmap_line::@22: scope:[bitmap_line] from bitmap_line::@14 to:bitmap_line::@return bitmap_line::@return: scope:[bitmap_line] from bitmap_line::@15 bitmap_line::@16 bitmap_line::@17 bitmap_line::@18 bitmap_line::@19 bitmap_line::@20 bitmap_line::@21 bitmap_line::@22 return to:@return void bitmap_line_xdyi(byte bitmap_line_xdyi::x , byte bitmap_line_xdyi::y , byte bitmap_line_xdyi::x1 , byte bitmap_line_xdyi::xd , byte bitmap_line_xdyi::yd) bitmap_line_xdyi: scope:[bitmap_line_xdyi] from bitmap_line::@13 bitmap_line::@8 bitmap_line_xdyi::x1#6 = phi( bitmap_line::@13/bitmap_line_xdyi::x1#1, bitmap_line::@8/bitmap_line_xdyi::x1#0 ) bitmap_line_xdyi::xd#5 = phi( bitmap_line::@13/bitmap_line_xdyi::xd#1, bitmap_line::@8/bitmap_line_xdyi::xd#0 ) bitmap_line_xdyi::y#5 = phi( bitmap_line::@13/bitmap_line_xdyi::y#1, bitmap_line::@8/bitmap_line_xdyi::y#0 ) bitmap_line_xdyi::x#6 = phi( bitmap_line::@13/bitmap_line_xdyi::x#1, bitmap_line::@8/bitmap_line_xdyi::x#0 ) bitmap_line_xdyi::yd#2 = phi( bitmap_line::@13/bitmap_line_xdyi::yd#1, bitmap_line::@8/bitmap_line_xdyi::yd#0 ) bitmap_line_xdyi::$0 = bitmap_line_xdyi::yd#2 >> 1 bitmap_line_xdyi::e#0 = 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 bitmap_line_xdyi::x1#5 = phi( bitmap_line_xdyi/bitmap_line_xdyi::x1#6, bitmap_line_xdyi::@2/bitmap_line_xdyi::x1#2 ) bitmap_line_xdyi::xd#4 = phi( bitmap_line_xdyi/bitmap_line_xdyi::xd#5, bitmap_line_xdyi::@2/bitmap_line_xdyi::xd#6 ) bitmap_line_xdyi::yd#4 = phi( bitmap_line_xdyi/bitmap_line_xdyi::yd#2, bitmap_line_xdyi::@2/bitmap_line_xdyi::yd#5 ) bitmap_line_xdyi::e#5 = phi( bitmap_line_xdyi/bitmap_line_xdyi::e#0, bitmap_line_xdyi::@2/bitmap_line_xdyi::e#6 ) bitmap_line_xdyi::y#3 = phi( bitmap_line_xdyi/bitmap_line_xdyi::y#5, bitmap_line_xdyi::@2/bitmap_line_xdyi::y#6 ) bitmap_line_xdyi::x#3 = phi( bitmap_line_xdyi/bitmap_line_xdyi::x#6, bitmap_line_xdyi::@2/bitmap_line_xdyi::x#5 ) bitmap_plot::x#0 = bitmap_line_xdyi::x#3 bitmap_plot::y#0 = bitmap_line_xdyi::y#3 call bitmap_plot to:bitmap_line_xdyi::@4 bitmap_line_xdyi::@4: scope:[bitmap_line_xdyi] from bitmap_line_xdyi::@1 bitmap_line_xdyi::y#7 = phi( bitmap_line_xdyi::@1/bitmap_line_xdyi::y#3 ) bitmap_line_xdyi::x1#4 = phi( bitmap_line_xdyi::@1/bitmap_line_xdyi::x1#5 ) bitmap_line_xdyi::xd#2 = phi( bitmap_line_xdyi::@1/bitmap_line_xdyi::xd#4 ) bitmap_line_xdyi::yd#3 = phi( bitmap_line_xdyi::@1/bitmap_line_xdyi::yd#4 ) bitmap_line_xdyi::e#3 = phi( bitmap_line_xdyi::@1/bitmap_line_xdyi::e#5 ) bitmap_line_xdyi::x#4 = phi( bitmap_line_xdyi::@1/bitmap_line_xdyi::x#3 ) bitmap_line_xdyi::x#2 = ++ bitmap_line_xdyi::x#4 bitmap_line_xdyi::$2 = bitmap_line_xdyi::e#3 + bitmap_line_xdyi::yd#3 bitmap_line_xdyi::e#1 = bitmap_line_xdyi::$2 bitmap_line_xdyi::$3 = bitmap_line_xdyi::xd#2 < bitmap_line_xdyi::e#1 bitmap_line_xdyi::$4 = ! bitmap_line_xdyi::$3 if(bitmap_line_xdyi::$4) goto bitmap_line_xdyi::@2 to:bitmap_line_xdyi::@3 bitmap_line_xdyi::@2: scope:[bitmap_line_xdyi] from bitmap_line_xdyi::@3 bitmap_line_xdyi::@4 bitmap_line_xdyi::xd#6 = phi( bitmap_line_xdyi::@3/bitmap_line_xdyi::xd#3, bitmap_line_xdyi::@4/bitmap_line_xdyi::xd#2 ) bitmap_line_xdyi::yd#5 = phi( bitmap_line_xdyi::@3/bitmap_line_xdyi::yd#6, bitmap_line_xdyi::@4/bitmap_line_xdyi::yd#3 ) bitmap_line_xdyi::e#6 = phi( bitmap_line_xdyi::@3/bitmap_line_xdyi::e#2, bitmap_line_xdyi::@4/bitmap_line_xdyi::e#1 ) bitmap_line_xdyi::y#6 = phi( bitmap_line_xdyi::@3/bitmap_line_xdyi::y#2, bitmap_line_xdyi::@4/bitmap_line_xdyi::y#7 ) bitmap_line_xdyi::x#5 = phi( bitmap_line_xdyi::@3/bitmap_line_xdyi::x#7, bitmap_line_xdyi::@4/bitmap_line_xdyi::x#2 ) bitmap_line_xdyi::x1#2 = phi( bitmap_line_xdyi::@3/bitmap_line_xdyi::x1#3, bitmap_line_xdyi::@4/bitmap_line_xdyi::x1#4 ) bitmap_line_xdyi::$6 = bitmap_line_xdyi::x1#2 + 1 bitmap_line_xdyi::$7 = bitmap_line_xdyi::x#5 != bitmap_line_xdyi::$6 if(bitmap_line_xdyi::$7) goto bitmap_line_xdyi::@1 to:bitmap_line_xdyi::@return bitmap_line_xdyi::@3: scope:[bitmap_line_xdyi] from bitmap_line_xdyi::@4 bitmap_line_xdyi::yd#6 = phi( bitmap_line_xdyi::@4/bitmap_line_xdyi::yd#3 ) bitmap_line_xdyi::x#7 = phi( bitmap_line_xdyi::@4/bitmap_line_xdyi::x#2 ) bitmap_line_xdyi::x1#3 = phi( bitmap_line_xdyi::@4/bitmap_line_xdyi::x1#4 ) bitmap_line_xdyi::xd#3 = phi( bitmap_line_xdyi::@4/bitmap_line_xdyi::xd#2 ) bitmap_line_xdyi::e#4 = phi( bitmap_line_xdyi::@4/bitmap_line_xdyi::e#1 ) bitmap_line_xdyi::y#4 = phi( bitmap_line_xdyi::@4/bitmap_line_xdyi::y#7 ) bitmap_line_xdyi::y#2 = ++ bitmap_line_xdyi::y#4 bitmap_line_xdyi::$5 = bitmap_line_xdyi::e#4 - bitmap_line_xdyi::xd#3 bitmap_line_xdyi::e#2 = bitmap_line_xdyi::$5 to:bitmap_line_xdyi::@2 bitmap_line_xdyi::@return: scope:[bitmap_line_xdyi] from bitmap_line_xdyi::@2 return to:@return void bitmap_line_xdyd(byte bitmap_line_xdyd::x , byte bitmap_line_xdyd::y , byte bitmap_line_xdyd::x1 , byte bitmap_line_xdyd::xd , byte bitmap_line_xdyd::yd) bitmap_line_xdyd: scope:[bitmap_line_xdyd] from bitmap_line::@12 bitmap_line::@9 bitmap_line_xdyd::x1#6 = phi( bitmap_line::@12/bitmap_line_xdyd::x1#1, bitmap_line::@9/bitmap_line_xdyd::x1#0 ) bitmap_line_xdyd::xd#5 = phi( bitmap_line::@12/bitmap_line_xdyd::xd#1, bitmap_line::@9/bitmap_line_xdyd::xd#0 ) bitmap_line_xdyd::y#5 = phi( bitmap_line::@12/bitmap_line_xdyd::y#1, bitmap_line::@9/bitmap_line_xdyd::y#0 ) bitmap_line_xdyd::x#6 = phi( bitmap_line::@12/bitmap_line_xdyd::x#1, bitmap_line::@9/bitmap_line_xdyd::x#0 ) bitmap_line_xdyd::yd#2 = phi( bitmap_line::@12/bitmap_line_xdyd::yd#1, bitmap_line::@9/bitmap_line_xdyd::yd#0 ) bitmap_line_xdyd::$0 = bitmap_line_xdyd::yd#2 >> 1 bitmap_line_xdyd::e#0 = 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 bitmap_line_xdyd::x1#5 = phi( bitmap_line_xdyd/bitmap_line_xdyd::x1#6, bitmap_line_xdyd::@2/bitmap_line_xdyd::x1#2 ) bitmap_line_xdyd::xd#4 = phi( bitmap_line_xdyd/bitmap_line_xdyd::xd#5, bitmap_line_xdyd::@2/bitmap_line_xdyd::xd#6 ) bitmap_line_xdyd::yd#4 = phi( bitmap_line_xdyd/bitmap_line_xdyd::yd#2, bitmap_line_xdyd::@2/bitmap_line_xdyd::yd#5 ) bitmap_line_xdyd::e#5 = phi( bitmap_line_xdyd/bitmap_line_xdyd::e#0, bitmap_line_xdyd::@2/bitmap_line_xdyd::e#6 ) bitmap_line_xdyd::y#3 = phi( bitmap_line_xdyd/bitmap_line_xdyd::y#5, bitmap_line_xdyd::@2/bitmap_line_xdyd::y#6 ) bitmap_line_xdyd::x#3 = phi( bitmap_line_xdyd/bitmap_line_xdyd::x#6, bitmap_line_xdyd::@2/bitmap_line_xdyd::x#5 ) bitmap_plot::x#1 = bitmap_line_xdyd::x#3 bitmap_plot::y#1 = bitmap_line_xdyd::y#3 call bitmap_plot to:bitmap_line_xdyd::@4 bitmap_line_xdyd::@4: scope:[bitmap_line_xdyd] from bitmap_line_xdyd::@1 bitmap_line_xdyd::y#7 = phi( bitmap_line_xdyd::@1/bitmap_line_xdyd::y#3 ) bitmap_line_xdyd::x1#4 = phi( bitmap_line_xdyd::@1/bitmap_line_xdyd::x1#5 ) bitmap_line_xdyd::xd#2 = phi( bitmap_line_xdyd::@1/bitmap_line_xdyd::xd#4 ) bitmap_line_xdyd::yd#3 = phi( bitmap_line_xdyd::@1/bitmap_line_xdyd::yd#4 ) bitmap_line_xdyd::e#3 = phi( bitmap_line_xdyd::@1/bitmap_line_xdyd::e#5 ) bitmap_line_xdyd::x#4 = phi( bitmap_line_xdyd::@1/bitmap_line_xdyd::x#3 ) bitmap_line_xdyd::x#2 = ++ bitmap_line_xdyd::x#4 bitmap_line_xdyd::$2 = bitmap_line_xdyd::e#3 + bitmap_line_xdyd::yd#3 bitmap_line_xdyd::e#1 = bitmap_line_xdyd::$2 bitmap_line_xdyd::$3 = bitmap_line_xdyd::xd#2 < bitmap_line_xdyd::e#1 bitmap_line_xdyd::$4 = ! bitmap_line_xdyd::$3 if(bitmap_line_xdyd::$4) goto bitmap_line_xdyd::@2 to:bitmap_line_xdyd::@3 bitmap_line_xdyd::@2: scope:[bitmap_line_xdyd] from bitmap_line_xdyd::@3 bitmap_line_xdyd::@4 bitmap_line_xdyd::xd#6 = phi( bitmap_line_xdyd::@3/bitmap_line_xdyd::xd#3, bitmap_line_xdyd::@4/bitmap_line_xdyd::xd#2 ) bitmap_line_xdyd::yd#5 = phi( bitmap_line_xdyd::@3/bitmap_line_xdyd::yd#6, bitmap_line_xdyd::@4/bitmap_line_xdyd::yd#3 ) bitmap_line_xdyd::e#6 = phi( bitmap_line_xdyd::@3/bitmap_line_xdyd::e#2, bitmap_line_xdyd::@4/bitmap_line_xdyd::e#1 ) bitmap_line_xdyd::y#6 = phi( bitmap_line_xdyd::@3/bitmap_line_xdyd::y#2, bitmap_line_xdyd::@4/bitmap_line_xdyd::y#7 ) bitmap_line_xdyd::x#5 = phi( bitmap_line_xdyd::@3/bitmap_line_xdyd::x#7, bitmap_line_xdyd::@4/bitmap_line_xdyd::x#2 ) bitmap_line_xdyd::x1#2 = phi( bitmap_line_xdyd::@3/bitmap_line_xdyd::x1#3, bitmap_line_xdyd::@4/bitmap_line_xdyd::x1#4 ) bitmap_line_xdyd::$6 = bitmap_line_xdyd::x1#2 + 1 bitmap_line_xdyd::$7 = bitmap_line_xdyd::x#5 != bitmap_line_xdyd::$6 if(bitmap_line_xdyd::$7) goto bitmap_line_xdyd::@1 to:bitmap_line_xdyd::@return bitmap_line_xdyd::@3: scope:[bitmap_line_xdyd] from bitmap_line_xdyd::@4 bitmap_line_xdyd::yd#6 = phi( bitmap_line_xdyd::@4/bitmap_line_xdyd::yd#3 ) bitmap_line_xdyd::x#7 = phi( bitmap_line_xdyd::@4/bitmap_line_xdyd::x#2 ) bitmap_line_xdyd::x1#3 = phi( bitmap_line_xdyd::@4/bitmap_line_xdyd::x1#4 ) bitmap_line_xdyd::xd#3 = phi( bitmap_line_xdyd::@4/bitmap_line_xdyd::xd#2 ) bitmap_line_xdyd::e#4 = phi( bitmap_line_xdyd::@4/bitmap_line_xdyd::e#1 ) bitmap_line_xdyd::y#4 = phi( bitmap_line_xdyd::@4/bitmap_line_xdyd::y#7 ) bitmap_line_xdyd::y#2 = -- bitmap_line_xdyd::y#4 bitmap_line_xdyd::$5 = bitmap_line_xdyd::e#4 - bitmap_line_xdyd::xd#3 bitmap_line_xdyd::e#2 = bitmap_line_xdyd::$5 to:bitmap_line_xdyd::@2 bitmap_line_xdyd::@return: scope:[bitmap_line_xdyd] from bitmap_line_xdyd::@2 return to:@return void bitmap_line_ydxi(byte bitmap_line_ydxi::y , byte bitmap_line_ydxi::x , byte bitmap_line_ydxi::y1 , byte bitmap_line_ydxi::yd , byte bitmap_line_ydxi::xd) bitmap_line_ydxi: scope:[bitmap_line_ydxi] from bitmap_line::@14 bitmap_line::@4 bitmap_line_ydxi::y1#6 = phi( bitmap_line::@14/bitmap_line_ydxi::y1#1, bitmap_line::@4/bitmap_line_ydxi::y1#0 ) bitmap_line_ydxi::yd#5 = phi( bitmap_line::@14/bitmap_line_ydxi::yd#1, bitmap_line::@4/bitmap_line_ydxi::yd#0 ) bitmap_line_ydxi::y#6 = phi( bitmap_line::@14/bitmap_line_ydxi::y#1, bitmap_line::@4/bitmap_line_ydxi::y#0 ) bitmap_line_ydxi::x#5 = phi( bitmap_line::@14/bitmap_line_ydxi::x#1, bitmap_line::@4/bitmap_line_ydxi::x#0 ) bitmap_line_ydxi::xd#2 = phi( bitmap_line::@14/bitmap_line_ydxi::xd#1, bitmap_line::@4/bitmap_line_ydxi::xd#0 ) bitmap_line_ydxi::$0 = bitmap_line_ydxi::xd#2 >> 1 bitmap_line_ydxi::e#0 = 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 bitmap_line_ydxi::y1#5 = phi( bitmap_line_ydxi/bitmap_line_ydxi::y1#6, bitmap_line_ydxi::@2/bitmap_line_ydxi::y1#2 ) bitmap_line_ydxi::yd#4 = phi( bitmap_line_ydxi/bitmap_line_ydxi::yd#5, bitmap_line_ydxi::@2/bitmap_line_ydxi::yd#6 ) bitmap_line_ydxi::xd#4 = phi( bitmap_line_ydxi/bitmap_line_ydxi::xd#2, bitmap_line_ydxi::@2/bitmap_line_ydxi::xd#5 ) bitmap_line_ydxi::e#5 = phi( bitmap_line_ydxi/bitmap_line_ydxi::e#0, bitmap_line_ydxi::@2/bitmap_line_ydxi::e#6 ) bitmap_line_ydxi::y#3 = phi( bitmap_line_ydxi/bitmap_line_ydxi::y#6, bitmap_line_ydxi::@2/bitmap_line_ydxi::y#5 ) bitmap_line_ydxi::x#3 = phi( bitmap_line_ydxi/bitmap_line_ydxi::x#5, bitmap_line_ydxi::@2/bitmap_line_ydxi::x#6 ) bitmap_plot::x#2 = bitmap_line_ydxi::x#3 bitmap_plot::y#2 = bitmap_line_ydxi::y#3 call bitmap_plot to:bitmap_line_ydxi::@4 bitmap_line_ydxi::@4: scope:[bitmap_line_ydxi] from bitmap_line_ydxi::@1 bitmap_line_ydxi::x#7 = phi( bitmap_line_ydxi::@1/bitmap_line_ydxi::x#3 ) bitmap_line_ydxi::y1#4 = phi( bitmap_line_ydxi::@1/bitmap_line_ydxi::y1#5 ) bitmap_line_ydxi::yd#2 = phi( bitmap_line_ydxi::@1/bitmap_line_ydxi::yd#4 ) bitmap_line_ydxi::xd#3 = phi( bitmap_line_ydxi::@1/bitmap_line_ydxi::xd#4 ) bitmap_line_ydxi::e#3 = phi( bitmap_line_ydxi::@1/bitmap_line_ydxi::e#5 ) bitmap_line_ydxi::y#4 = phi( bitmap_line_ydxi::@1/bitmap_line_ydxi::y#3 ) bitmap_line_ydxi::y#2 = ++ bitmap_line_ydxi::y#4 bitmap_line_ydxi::$2 = bitmap_line_ydxi::e#3 + bitmap_line_ydxi::xd#3 bitmap_line_ydxi::e#1 = bitmap_line_ydxi::$2 bitmap_line_ydxi::$3 = bitmap_line_ydxi::yd#2 < bitmap_line_ydxi::e#1 bitmap_line_ydxi::$4 = ! bitmap_line_ydxi::$3 if(bitmap_line_ydxi::$4) goto bitmap_line_ydxi::@2 to:bitmap_line_ydxi::@3 bitmap_line_ydxi::@2: scope:[bitmap_line_ydxi] from bitmap_line_ydxi::@3 bitmap_line_ydxi::@4 bitmap_line_ydxi::yd#6 = phi( bitmap_line_ydxi::@3/bitmap_line_ydxi::yd#3, bitmap_line_ydxi::@4/bitmap_line_ydxi::yd#2 ) bitmap_line_ydxi::xd#5 = phi( bitmap_line_ydxi::@3/bitmap_line_ydxi::xd#6, bitmap_line_ydxi::@4/bitmap_line_ydxi::xd#3 ) bitmap_line_ydxi::e#6 = phi( bitmap_line_ydxi::@3/bitmap_line_ydxi::e#2, bitmap_line_ydxi::@4/bitmap_line_ydxi::e#1 ) bitmap_line_ydxi::x#6 = phi( bitmap_line_ydxi::@3/bitmap_line_ydxi::x#2, bitmap_line_ydxi::@4/bitmap_line_ydxi::x#7 ) bitmap_line_ydxi::y#5 = phi( bitmap_line_ydxi::@3/bitmap_line_ydxi::y#7, bitmap_line_ydxi::@4/bitmap_line_ydxi::y#2 ) bitmap_line_ydxi::y1#2 = phi( bitmap_line_ydxi::@3/bitmap_line_ydxi::y1#3, bitmap_line_ydxi::@4/bitmap_line_ydxi::y1#4 ) bitmap_line_ydxi::$6 = bitmap_line_ydxi::y1#2 + 1 bitmap_line_ydxi::$7 = bitmap_line_ydxi::y#5 != bitmap_line_ydxi::$6 if(bitmap_line_ydxi::$7) goto bitmap_line_ydxi::@1 to:bitmap_line_ydxi::@return bitmap_line_ydxi::@3: scope:[bitmap_line_ydxi] from bitmap_line_ydxi::@4 bitmap_line_ydxi::xd#6 = phi( bitmap_line_ydxi::@4/bitmap_line_ydxi::xd#3 ) bitmap_line_ydxi::y#7 = phi( bitmap_line_ydxi::@4/bitmap_line_ydxi::y#2 ) bitmap_line_ydxi::y1#3 = phi( bitmap_line_ydxi::@4/bitmap_line_ydxi::y1#4 ) bitmap_line_ydxi::yd#3 = phi( bitmap_line_ydxi::@4/bitmap_line_ydxi::yd#2 ) bitmap_line_ydxi::e#4 = phi( bitmap_line_ydxi::@4/bitmap_line_ydxi::e#1 ) bitmap_line_ydxi::x#4 = phi( bitmap_line_ydxi::@4/bitmap_line_ydxi::x#7 ) bitmap_line_ydxi::x#2 = ++ bitmap_line_ydxi::x#4 bitmap_line_ydxi::$5 = bitmap_line_ydxi::e#4 - bitmap_line_ydxi::yd#3 bitmap_line_ydxi::e#2 = bitmap_line_ydxi::$5 to:bitmap_line_ydxi::@2 bitmap_line_ydxi::@return: scope:[bitmap_line_ydxi] from bitmap_line_ydxi::@2 return to:@return void bitmap_line_ydxd(byte bitmap_line_ydxd::y , byte bitmap_line_ydxd::x , byte bitmap_line_ydxd::y1 , byte bitmap_line_ydxd::yd , byte bitmap_line_ydxd::xd) bitmap_line_ydxd: scope:[bitmap_line_ydxd] from bitmap_line::@10 bitmap_line::@6 bitmap_line_ydxd::y1#6 = phi( bitmap_line::@10/bitmap_line_ydxd::y1#0, bitmap_line::@6/bitmap_line_ydxd::y1#1 ) bitmap_line_ydxd::yd#5 = phi( bitmap_line::@10/bitmap_line_ydxd::yd#0, bitmap_line::@6/bitmap_line_ydxd::yd#1 ) bitmap_line_ydxd::y#7 = phi( bitmap_line::@10/bitmap_line_ydxd::y#0, bitmap_line::@6/bitmap_line_ydxd::y#1 ) bitmap_line_ydxd::x#5 = phi( bitmap_line::@10/bitmap_line_ydxd::x#0, bitmap_line::@6/bitmap_line_ydxd::x#1 ) bitmap_line_ydxd::xd#2 = phi( bitmap_line::@10/bitmap_line_ydxd::xd#0, bitmap_line::@6/bitmap_line_ydxd::xd#1 ) bitmap_line_ydxd::$0 = bitmap_line_ydxd::xd#2 >> 1 bitmap_line_ydxd::e#0 = 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 bitmap_line_ydxd::y1#5 = phi( bitmap_line_ydxd/bitmap_line_ydxd::y1#6, bitmap_line_ydxd::@2/bitmap_line_ydxd::y1#2 ) bitmap_line_ydxd::yd#4 = phi( bitmap_line_ydxd/bitmap_line_ydxd::yd#5, bitmap_line_ydxd::@2/bitmap_line_ydxd::yd#6 ) bitmap_line_ydxd::xd#4 = phi( bitmap_line_ydxd/bitmap_line_ydxd::xd#2, bitmap_line_ydxd::@2/bitmap_line_ydxd::xd#5 ) bitmap_line_ydxd::e#5 = phi( bitmap_line_ydxd/bitmap_line_ydxd::e#0, bitmap_line_ydxd::@2/bitmap_line_ydxd::e#6 ) bitmap_line_ydxd::y#4 = phi( bitmap_line_ydxd/bitmap_line_ydxd::y#7, bitmap_line_ydxd::@2/bitmap_line_ydxd::y#6 ) bitmap_line_ydxd::x#3 = phi( bitmap_line_ydxd/bitmap_line_ydxd::x#5, bitmap_line_ydxd::@2/bitmap_line_ydxd::x#6 ) bitmap_plot::x#3 = bitmap_line_ydxd::x#3 bitmap_plot::y#3 = bitmap_line_ydxd::y#4 call bitmap_plot to:bitmap_line_ydxd::@4 bitmap_line_ydxd::@4: scope:[bitmap_line_ydxd] from bitmap_line_ydxd::@1 bitmap_line_ydxd::x#7 = phi( bitmap_line_ydxd::@1/bitmap_line_ydxd::x#3 ) bitmap_line_ydxd::y1#4 = phi( bitmap_line_ydxd::@1/bitmap_line_ydxd::y1#5 ) bitmap_line_ydxd::yd#2 = phi( bitmap_line_ydxd::@1/bitmap_line_ydxd::yd#4 ) bitmap_line_ydxd::xd#3 = phi( bitmap_line_ydxd::@1/bitmap_line_ydxd::xd#4 ) bitmap_line_ydxd::e#3 = phi( bitmap_line_ydxd::@1/bitmap_line_ydxd::e#5 ) bitmap_line_ydxd::y#5 = phi( bitmap_line_ydxd::@1/bitmap_line_ydxd::y#4 ) bitmap_line_ydxd::y#2 = bitmap_line_ydxd::y#5 bitmap_line_ydxd::y#3 = ++ bitmap_line_ydxd::y#2 bitmap_line_ydxd::$2 = bitmap_line_ydxd::e#3 + bitmap_line_ydxd::xd#3 bitmap_line_ydxd::e#1 = bitmap_line_ydxd::$2 bitmap_line_ydxd::$3 = bitmap_line_ydxd::yd#2 < bitmap_line_ydxd::e#1 bitmap_line_ydxd::$4 = ! bitmap_line_ydxd::$3 if(bitmap_line_ydxd::$4) goto bitmap_line_ydxd::@2 to:bitmap_line_ydxd::@3 bitmap_line_ydxd::@2: scope:[bitmap_line_ydxd] from bitmap_line_ydxd::@3 bitmap_line_ydxd::@4 bitmap_line_ydxd::yd#6 = phi( bitmap_line_ydxd::@3/bitmap_line_ydxd::yd#3, bitmap_line_ydxd::@4/bitmap_line_ydxd::yd#2 ) bitmap_line_ydxd::xd#5 = phi( bitmap_line_ydxd::@3/bitmap_line_ydxd::xd#6, bitmap_line_ydxd::@4/bitmap_line_ydxd::xd#3 ) bitmap_line_ydxd::e#6 = phi( bitmap_line_ydxd::@3/bitmap_line_ydxd::e#2, bitmap_line_ydxd::@4/bitmap_line_ydxd::e#1 ) bitmap_line_ydxd::x#6 = phi( bitmap_line_ydxd::@3/bitmap_line_ydxd::x#2, bitmap_line_ydxd::@4/bitmap_line_ydxd::x#7 ) bitmap_line_ydxd::y#6 = phi( bitmap_line_ydxd::@3/bitmap_line_ydxd::y#8, bitmap_line_ydxd::@4/bitmap_line_ydxd::y#3 ) bitmap_line_ydxd::y1#2 = phi( bitmap_line_ydxd::@3/bitmap_line_ydxd::y1#3, bitmap_line_ydxd::@4/bitmap_line_ydxd::y1#4 ) bitmap_line_ydxd::$6 = bitmap_line_ydxd::y1#2 + 1 bitmap_line_ydxd::$7 = bitmap_line_ydxd::y#6 != bitmap_line_ydxd::$6 if(bitmap_line_ydxd::$7) goto bitmap_line_ydxd::@1 to:bitmap_line_ydxd::@return bitmap_line_ydxd::@3: scope:[bitmap_line_ydxd] from bitmap_line_ydxd::@4 bitmap_line_ydxd::xd#6 = phi( bitmap_line_ydxd::@4/bitmap_line_ydxd::xd#3 ) bitmap_line_ydxd::y#8 = phi( bitmap_line_ydxd::@4/bitmap_line_ydxd::y#3 ) bitmap_line_ydxd::y1#3 = phi( bitmap_line_ydxd::@4/bitmap_line_ydxd::y1#4 ) bitmap_line_ydxd::yd#3 = phi( bitmap_line_ydxd::@4/bitmap_line_ydxd::yd#2 ) bitmap_line_ydxd::e#4 = phi( bitmap_line_ydxd::@4/bitmap_line_ydxd::e#1 ) bitmap_line_ydxd::x#4 = phi( bitmap_line_ydxd::@4/bitmap_line_ydxd::x#7 ) bitmap_line_ydxd::x#2 = -- bitmap_line_ydxd::x#4 bitmap_line_ydxd::$5 = bitmap_line_ydxd::e#4 - bitmap_line_ydxd::yd#3 bitmap_line_ydxd::e#2 = bitmap_line_ydxd::$5 to:bitmap_line_ydxd::@2 bitmap_line_ydxd::@return: scope:[bitmap_line_ydxd] from bitmap_line_ydxd::@2 return to:@return void main() main: scope:[main] from __start::@1 next#14 = phi( __start::@1/next#11 ) *BORDER_COLOR = 0 *BG_COLOR = 0 *D011 = VICII_BMM|VICII_DEN|VICII_RSEL|3 *VICII_MEMORY = (byte)(word)SCREEN&$3fff/$40|(word)BITMAP&$3fff/$400 bitmap_init::bitmap#0 = BITMAP call bitmap_init to:main::@2 main::@2: scope:[main] from main next#13 = phi( main/next#14 ) call bitmap_clear to:main::@3 main::@3: scope:[main] from main::@2 next#12 = phi( main::@2/next#13 ) call init_screen to:main::@4 main::@4: scope:[main] from main::@3 next#10 = phi( main::@3/next#12 ) to:main::@1 main::@1: scope:[main] from main::@4 main::@5 next#5 = phi( main::@4/next#10, main::@5/next#0 ) bitmap_line::x0#0 = 0 bitmap_line::x1#0 = next#5 bitmap_line::y0#0 = 0 bitmap_line::y1#0 = $64 call bitmap_line to:main::@5 main::@5: scope:[main] from main::@1 next#6 = phi( main::@1/next#5 ) next#0 = ++ next#6 if(true) goto main::@1 to:main::@return main::@return: scope:[main] from main::@5 next#7 = phi( main::@5/next#0 ) next#1 = next#7 return to:@return void init_screen() init_screen: scope:[init_screen] from main::@3 init_screen::c#0 = SCREEN to:init_screen::@1 init_screen::@1: scope:[init_screen] from init_screen init_screen::@2 init_screen::c#2 = phi( init_screen/init_screen::c#0, init_screen::@2/init_screen::c#1 ) init_screen::$0 = init_screen::c#2 != SCREEN+$400 if(init_screen::$0) goto init_screen::@2 to:init_screen::@return init_screen::@2: scope:[init_screen] from init_screen::@1 init_screen::c#3 = phi( init_screen::@1/init_screen::c#2 ) *init_screen::c#3 = $14 init_screen::c#1 = ++ init_screen::c#3 to:init_screen::@1 init_screen::@return: scope:[init_screen] from init_screen::@1 return to:@return void __start() __start: scope:[__start] from to:__start::__init1 __start::__init1: scope:[__start] from __start next#2 = 0 to:__start::@1 __start::@1: scope:[__start] from __start::__init1 next#11 = phi( __start::__init1/next#2 ) call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 next#8 = phi( __start::@1/next#1 ) next#3 = next#8 to:__start::@return __start::@return: scope:[__start] from __start::@2 next#9 = phi( __start::@2/next#3 ) next#4 = next#9 return to:@return SYMBOL TABLE SSA const nomodify byte* BG_COLOR = (byte*)$d021 const nomodify byte* BITMAP = (byte*)$2000 const nomodify byte* BORDER_COLOR = (byte*)$d020 const nomodify byte* D011 = (byte*)$d011 const nomodify byte* SCREEN = (byte*)$400 const nomodify byte VICII_BMM = $20 const nomodify byte VICII_DEN = $10 const nomodify byte* VICII_MEMORY = (byte*)$d018 const nomodify byte VICII_RSEL = 8 void __start() void bitmap_clear() bool~ bitmap_clear::$0 bool~ bitmap_clear::$1 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 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 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 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 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 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 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 byte* bitmap_plot::plotter byte* bitmap_plot::plotter#0 word bitmap_plot::plotter_x word bitmap_plot::plotter_x#0 word bitmap_plot::plotter_y word bitmap_plot::plotter_y#0 byte bitmap_plot::x byte bitmap_plot::x#0 byte bitmap_plot::x#1 byte bitmap_plot::x#2 byte bitmap_plot::x#3 byte bitmap_plot::x#4 byte bitmap_plot::y byte bitmap_plot::y#0 byte bitmap_plot::y#1 byte bitmap_plot::y#2 byte bitmap_plot::y#3 byte bitmap_plot::y#4 const to_nomodify byte* bitmap_plot_bit[$100] = { fill( $100, 0) } const to_nomodify byte* bitmap_plot_xhi[$100] = { fill( $100, 0) } const to_nomodify byte* bitmap_plot_xlo[$100] = { fill( $100, 0) } const to_nomodify byte* bitmap_plot_yhi[$100] = { fill( $100, 0) } const to_nomodify byte* bitmap_plot_ylo[$100] = { fill( $100, 0) } void init_screen() bool~ init_screen::$0 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() byte next byte next#0 byte next#1 byte next#10 byte next#11 byte next#12 byte next#13 byte next#14 byte next#2 byte next#3 byte next#4 byte next#5 byte next#6 byte next#7 byte next#8 byte next#9 Fixing inline constructor with bitmap_clear::$2 = (byte)bitmap_plot_xhi[0] w= (byte)bitmap_plot_xlo[0] Fixing inline constructor with bitmap_plot::$2 = (byte)bitmap_plot_xhi[bitmap_plot::x#4] w= (byte)bitmap_plot_xlo[bitmap_plot::x#4] Fixing inline constructor with bitmap_plot::$3 = (byte)bitmap_plot_yhi[bitmap_plot::y#4] w= (byte)bitmap_plot_ylo[bitmap_plot::y#4] Successful SSA optimization Pass2FixInlineConstructors Adding number conversion cast (unumber) $f8 in bitmap_init::$0 = bitmap_init::x#2 & $f8 Adding number conversion cast (unumber) bitmap_init::$0 in bitmap_init::$0 = bitmap_init::x#2 & (unumber)$f8 Adding number conversion cast (unumber) 1 in bitmap_init::$2 = bitmap_init::bits#3 >> 1 Adding number conversion cast (unumber) 0 in bitmap_init::$3 = bitmap_init::bits#1 == 0 Adding number conversion cast (unumber) $80 in bitmap_init::bits#2 = $80 Adding number conversion cast (unumber) 7 in bitmap_init::$6 = bitmap_init::y#2 & 7 Adding number conversion cast (unumber) bitmap_init::$6 in bitmap_init::$6 = bitmap_init::y#2 & (unumber)7 Adding number conversion cast (unumber) bitmap_init::$8 in bitmap_init::$8 = bitmap_init::$6 | bitmap_init::$7 Adding number conversion cast (unumber) 7 in bitmap_init::$10 = bitmap_init::y#2 & 7 Adding number conversion cast (unumber) bitmap_init::$10 in bitmap_init::$10 = bitmap_init::y#2 & (unumber)7 Adding number conversion cast (unumber) 7 in bitmap_init::$11 = bitmap_init::$10 == 7 Adding number conversion cast (unumber) $28*8 in bitmap_init::$13 = bitmap_init::yoffs#3 + $28*8 Adding number conversion cast (unumber) 0 in bitmap_clear::$2 = (byte)bitmap_plot_xhi[0] w= (byte)bitmap_plot_xlo[0] Adding number conversion cast (unumber) 0 in bitmap_clear::$2 = (byte)bitmap_plot_xhi[(unumber)0] w= (byte)bitmap_plot_xlo[0] Adding number conversion cast (unumber) 0 in *bitmap_clear::bitmap#2 = 0 Adding number conversion cast (unumber) 1 in bitmap_line_xdyi::$0 = bitmap_line_xdyi::yd#2 >> 1 Adding number conversion cast (unumber) 1 in bitmap_line_xdyi::$6 = bitmap_line_xdyi::x1#2 + 1 Adding number conversion cast (unumber) bitmap_line_xdyi::$6 in bitmap_line_xdyi::$6 = bitmap_line_xdyi::x1#2 + (unumber)1 Adding number conversion cast (unumber) 1 in bitmap_line_xdyd::$0 = bitmap_line_xdyd::yd#2 >> 1 Adding number conversion cast (unumber) 1 in bitmap_line_xdyd::$6 = bitmap_line_xdyd::x1#2 + 1 Adding number conversion cast (unumber) bitmap_line_xdyd::$6 in bitmap_line_xdyd::$6 = bitmap_line_xdyd::x1#2 + (unumber)1 Adding number conversion cast (unumber) 1 in bitmap_line_ydxi::$0 = bitmap_line_ydxi::xd#2 >> 1 Adding number conversion cast (unumber) 1 in bitmap_line_ydxi::$6 = bitmap_line_ydxi::y1#2 + 1 Adding number conversion cast (unumber) bitmap_line_ydxi::$6 in bitmap_line_ydxi::$6 = bitmap_line_ydxi::y1#2 + (unumber)1 Adding number conversion cast (unumber) 1 in bitmap_line_ydxd::$0 = bitmap_line_ydxd::xd#2 >> 1 Adding number conversion cast (unumber) 1 in bitmap_line_ydxd::$6 = bitmap_line_ydxd::y1#2 + 1 Adding number conversion cast (unumber) bitmap_line_ydxd::$6 in bitmap_line_ydxd::$6 = bitmap_line_ydxd::y1#2 + (unumber)1 Adding number conversion cast (unumber) 0 in *BORDER_COLOR = 0 Adding number conversion cast (unumber) 0 in *BG_COLOR = 0 Adding number conversion cast (unumber) VICII_BMM|VICII_DEN|VICII_RSEL|3 in *D011 = VICII_BMM|VICII_DEN|VICII_RSEL|3 Adding number conversion cast (unumber) 3 in *D011 = ((unumber)) VICII_BMM|VICII_DEN|VICII_RSEL|3 Adding number conversion cast (unumber) $3fff in *VICII_MEMORY = (byte)(word)SCREEN&$3fff/$40|(word)BITMAP&$3fff/$400 Adding number conversion cast (unumber) $3fff in *VICII_MEMORY = (byte)(word)SCREEN&(unumber)$3fff/$40|(word)BITMAP&$3fff/$400 Adding number conversion cast (unumber) 0 in bitmap_line::x0#0 = 0 Adding number conversion cast (unumber) 0 in bitmap_line::y0#0 = 0 Adding number conversion cast (unumber) $64 in bitmap_line::y1#0 = $64 Adding number conversion cast (unumber) $400 in init_screen::$0 = init_screen::c#2 != SCREEN+$400 Adding number conversion cast (unumber) $14 in *init_screen::c#3 = $14 Successful SSA optimization PassNAddNumberTypeConversions Adding number conversion cast (unumber) $40 in *VICII_MEMORY = (byte)(word)SCREEN&(unumber)$3fff/$40|(word)BITMAP&(unumber)$3fff/$400 Adding number conversion cast (unumber) $400 in *VICII_MEMORY = (byte)(word)SCREEN&(unumber)$3fff/(unumber)$40|(word)BITMAP&(unumber)$3fff/$400 Successful SSA optimization PassNAddNumberTypeConversions Inlining cast bitmap_init::bits#2 = (unumber)$80 Inlining cast *bitmap_clear::bitmap#2 = (unumber)0 Inlining cast bitmap_plot::plotter#0 = (byte*)bitmap_plot::$0 Inlining cast *BORDER_COLOR = (unumber)0 Inlining cast *BG_COLOR = (unumber)0 Inlining cast *D011 = (unumber)VICII_BMM|VICII_DEN|VICII_RSEL|(unumber)3 Inlining cast bitmap_line::x0#0 = (unumber)0 Inlining cast bitmap_line::y0#0 = (unumber)0 Inlining cast bitmap_line::y1#0 = (unumber)$64 Inlining cast *init_screen::c#3 = (unumber)$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 bitmap_plot_xhi[(unumber)0] Simplifying constant integer cast 0 Simplifying constant integer cast bitmap_plot_xlo[(unumber)0] Simplifying constant integer cast 0 Simplifying constant integer cast 0 Simplifying constant integer cast bitmap_plot_xhi[bitmap_plot::x#4] Simplifying constant integer cast bitmap_plot_xlo[bitmap_plot::x#4] Simplifying constant integer cast bitmap_plot_yhi[bitmap_plot::y#4] Simplifying constant integer cast bitmap_plot_ylo[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 VICII_BMM|VICII_DEN|VICII_RSEL|(unumber)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 bitmap_init::$0 = bitmap_init::x#2 & $f8 Inferred type updated to byte in bitmap_init::$6 = bitmap_init::y#2 & 7 Inferred type updated to byte in bitmap_init::$8 = bitmap_init::$6 | bitmap_init::$7 Inferred type updated to byte in bitmap_init::$10 = bitmap_init::y#2 & 7 Inferred type updated to byte in bitmap_line_xdyi::$6 = bitmap_line_xdyi::x1#2 + 1 Inferred type updated to byte in bitmap_line_xdyd::$6 = bitmap_line_xdyd::x1#2 + 1 Inferred type updated to byte in bitmap_line_ydxi::$6 = bitmap_line_ydxi::y1#2 + 1 Inferred type updated to byte in bitmap_line_ydxd::$6 = bitmap_line_ydxd::y1#2 + 1 Adding pointer type conversion cast (byte*) bitmap_clear::$2 in bitmap_clear::$2 = bitmap_plot_xhi[0] w= bitmap_plot_xlo[0] Successful SSA optimization PassNAddTypeConversionAssignment Inversing boolean not [12] bitmap_init::$4 = bitmap_init::bits#1 != 0 from [11] bitmap_init::$3 = bitmap_init::bits#1 == 0 Inversing boolean not [31] bitmap_init::$12 = bitmap_init::$10 != 7 from [30] bitmap_init::$11 = bitmap_init::$10 == 7 Inversing boolean not [172] bitmap_line_xdyi::$4 = bitmap_line_xdyi::xd#2 >= bitmap_line_xdyi::e#1 from [171] bitmap_line_xdyi::$3 = bitmap_line_xdyi::xd#2 < bitmap_line_xdyi::e#1 Inversing boolean not [195] bitmap_line_xdyd::$4 = bitmap_line_xdyd::xd#2 >= bitmap_line_xdyd::e#1 from [194] bitmap_line_xdyd::$3 = bitmap_line_xdyd::xd#2 < bitmap_line_xdyd::e#1 Inversing boolean not [218] bitmap_line_ydxi::$4 = bitmap_line_ydxi::yd#2 >= bitmap_line_ydxi::e#1 from [217] bitmap_line_ydxi::$3 = bitmap_line_ydxi::yd#2 < bitmap_line_ydxi::e#1 Inversing boolean not [242] bitmap_line_ydxd::$4 = bitmap_line_ydxd::yd#2 >= bitmap_line_ydxd::e#1 from [241] bitmap_line_ydxd::$3 = bitmap_line_ydxd::yd#2 < bitmap_line_ydxd::e#1 Successful SSA optimization Pass2UnaryNotSimplification Alias bitmap_init::bits#1 = bitmap_init::$2 Alias bitmap_init::x#2 = bitmap_init::x#4 Alias bitmap_init::bitmap#1 = bitmap_init::bitmap#4 Alias bitmap_init::yoffs#2 = bitmap_init::yoffs#3 Alias bitmap_init::y#2 = bitmap_init::y#4 Alias bitmap_init::yoffs#1 = bitmap_init::$13 Alias bitmap_clear::bitmap#0 = bitmap_clear::$2 Alias bitmap_clear::y#2 = bitmap_clear::y#3 Alias bitmap_clear::bitmap#1 = bitmap_clear::bitmap#4 Alias bitmap_plot::plotter_x#0 = bitmap_plot::$2 Alias bitmap_plot::plotter_y#0 = bitmap_plot::$3 Alias bitmap_line::x1#1 = bitmap_line::x1#2 bitmap_line::x1#3 bitmap_line::x1#11 bitmap_line::x1#10 bitmap_line::x1#4 bitmap_line::x1#5 bitmap_line::x1#6 bitmap_line::x1#13 bitmap_line::x1#12 bitmap_line::x1#7 bitmap_line::x1#8 bitmap_line::x1#9 Alias bitmap_line::x0#1 = bitmap_line::x0#2 bitmap_line::x0#3 bitmap_line::x0#11 bitmap_line::x0#10 bitmap_line::x0#4 bitmap_line::x0#5 bitmap_line::x0#6 bitmap_line::x0#13 bitmap_line::x0#12 bitmap_line::x0#7 bitmap_line::x0#8 bitmap_line::x0#9 Alias bitmap_line::y0#1 = bitmap_line::y0#13 bitmap_line::y0#2 bitmap_line::y0#3 bitmap_line::y0#4 bitmap_line::y0#5 bitmap_line::y0#6 bitmap_line::y0#7 bitmap_line::y0#8 bitmap_line::y0#9 bitmap_line::y0#10 bitmap_line::y0#11 bitmap_line::y0#12 Alias bitmap_line::y1#1 = bitmap_line::y1#13 bitmap_line::y1#2 bitmap_line::y1#3 bitmap_line::y1#4 bitmap_line::y1#5 bitmap_line::y1#6 bitmap_line::y1#7 bitmap_line::y1#8 bitmap_line::y1#9 bitmap_line::y1#10 bitmap_line::y1#11 bitmap_line::y1#12 Alias bitmap_line::xd#1 = bitmap_line::$11 bitmap_line::xd#9 bitmap_line::xd#10 bitmap_line::xd#11 bitmap_line::xd#12 bitmap_line::xd#13 bitmap_line::xd#14 Alias bitmap_line::xd#2 = bitmap_line::$1 bitmap_line::xd#3 bitmap_line::xd#4 bitmap_line::xd#5 bitmap_line::xd#6 bitmap_line::xd#7 bitmap_line::xd#8 Alias bitmap_line::yd#1 = bitmap_line::$7 bitmap_line::yd#7 bitmap_line::yd#8 Alias bitmap_line::yd#2 = bitmap_line::$3 bitmap_line::yd#5 bitmap_line::yd#6 Alias bitmap_line::yd#11 = bitmap_line::yd#3 bitmap_line::$17 bitmap_line::yd#12 Alias bitmap_line::yd#10 = bitmap_line::yd#4 bitmap_line::$13 bitmap_line::yd#9 Alias bitmap_line_xdyi::e#0 = bitmap_line_xdyi::$0 Alias bitmap_line_xdyi::x#3 = bitmap_line_xdyi::x#4 Alias bitmap_line_xdyi::e#3 = bitmap_line_xdyi::e#5 Alias bitmap_line_xdyi::yd#3 = bitmap_line_xdyi::yd#4 bitmap_line_xdyi::yd#6 Alias bitmap_line_xdyi::xd#2 = bitmap_line_xdyi::xd#4 bitmap_line_xdyi::xd#3 Alias bitmap_line_xdyi::x1#3 = bitmap_line_xdyi::x1#4 bitmap_line_xdyi::x1#5 Alias bitmap_line_xdyi::y#3 = bitmap_line_xdyi::y#7 bitmap_line_xdyi::y#4 Alias bitmap_line_xdyi::e#1 = bitmap_line_xdyi::$2 bitmap_line_xdyi::e#4 Alias bitmap_line_xdyi::x#2 = bitmap_line_xdyi::x#7 Alias bitmap_line_xdyi::e#2 = bitmap_line_xdyi::$5 Alias bitmap_line_xdyd::e#0 = bitmap_line_xdyd::$0 Alias bitmap_line_xdyd::x#3 = bitmap_line_xdyd::x#4 Alias bitmap_line_xdyd::e#3 = bitmap_line_xdyd::e#5 Alias bitmap_line_xdyd::yd#3 = bitmap_line_xdyd::yd#4 bitmap_line_xdyd::yd#6 Alias bitmap_line_xdyd::xd#2 = bitmap_line_xdyd::xd#4 bitmap_line_xdyd::xd#3 Alias bitmap_line_xdyd::x1#3 = bitmap_line_xdyd::x1#4 bitmap_line_xdyd::x1#5 Alias bitmap_line_xdyd::y#3 = bitmap_line_xdyd::y#7 bitmap_line_xdyd::y#4 Alias bitmap_line_xdyd::e#1 = bitmap_line_xdyd::$2 bitmap_line_xdyd::e#4 Alias bitmap_line_xdyd::x#2 = bitmap_line_xdyd::x#7 Alias bitmap_line_xdyd::e#2 = bitmap_line_xdyd::$5 Alias bitmap_line_ydxi::e#0 = bitmap_line_ydxi::$0 Alias bitmap_line_ydxi::y#3 = bitmap_line_ydxi::y#4 Alias bitmap_line_ydxi::e#3 = bitmap_line_ydxi::e#5 Alias bitmap_line_ydxi::xd#3 = bitmap_line_ydxi::xd#4 bitmap_line_ydxi::xd#6 Alias bitmap_line_ydxi::yd#2 = bitmap_line_ydxi::yd#4 bitmap_line_ydxi::yd#3 Alias bitmap_line_ydxi::y1#3 = bitmap_line_ydxi::y1#4 bitmap_line_ydxi::y1#5 Alias bitmap_line_ydxi::x#3 = bitmap_line_ydxi::x#7 bitmap_line_ydxi::x#4 Alias bitmap_line_ydxi::e#1 = bitmap_line_ydxi::$2 bitmap_line_ydxi::e#4 Alias bitmap_line_ydxi::y#2 = bitmap_line_ydxi::y#7 Alias bitmap_line_ydxi::e#2 = bitmap_line_ydxi::$5 Alias bitmap_line_ydxd::e#0 = bitmap_line_ydxd::$0 Alias bitmap_line_ydxd::y#2 = bitmap_line_ydxd::y#5 bitmap_line_ydxd::y#4 Alias bitmap_line_ydxd::e#3 = bitmap_line_ydxd::e#5 Alias bitmap_line_ydxd::xd#3 = bitmap_line_ydxd::xd#4 bitmap_line_ydxd::xd#6 Alias bitmap_line_ydxd::yd#2 = bitmap_line_ydxd::yd#4 bitmap_line_ydxd::yd#3 Alias bitmap_line_ydxd::y1#3 = bitmap_line_ydxd::y1#4 bitmap_line_ydxd::y1#5 Alias bitmap_line_ydxd::x#3 = bitmap_line_ydxd::x#7 bitmap_line_ydxd::x#4 Alias bitmap_line_ydxd::e#1 = bitmap_line_ydxd::$2 bitmap_line_ydxd::e#4 Alias bitmap_line_ydxd::y#3 = bitmap_line_ydxd::y#8 Alias bitmap_line_ydxd::e#2 = bitmap_line_ydxd::$5 Alias next#10 = next#13 next#14 next#12 Alias next#5 = next#6 Alias next#0 = next#7 next#1 Alias init_screen::c#2 = init_screen::c#3 Alias next#11 = next#2 Alias next#3 = next#8 next#9 next#4 Successful SSA optimization Pass2AliasElimination Alias bitmap_init::x#2 = bitmap_init::x#3 Alias bitmap_init::bitmap#1 = bitmap_init::bitmap#3 Alias bitmap_init::y#2 = bitmap_init::y#3 Alias bitmap_line_xdyi::x1#2 = bitmap_line_xdyi::x1#3 Alias bitmap_line_xdyi::x#2 = bitmap_line_xdyi::x#5 Alias bitmap_line_xdyi::yd#3 = bitmap_line_xdyi::yd#5 Alias bitmap_line_xdyi::xd#2 = bitmap_line_xdyi::xd#6 Alias bitmap_line_xdyd::x1#2 = bitmap_line_xdyd::x1#3 Alias bitmap_line_xdyd::x#2 = bitmap_line_xdyd::x#5 Alias bitmap_line_xdyd::yd#3 = bitmap_line_xdyd::yd#5 Alias bitmap_line_xdyd::xd#2 = bitmap_line_xdyd::xd#6 Alias bitmap_line_ydxi::y1#2 = bitmap_line_ydxi::y1#3 Alias bitmap_line_ydxi::y#2 = bitmap_line_ydxi::y#5 Alias bitmap_line_ydxi::xd#3 = bitmap_line_ydxi::xd#5 Alias bitmap_line_ydxi::yd#2 = bitmap_line_ydxi::yd#6 Alias bitmap_line_ydxd::y1#2 = bitmap_line_ydxd::y1#3 Alias bitmap_line_ydxd::y#3 = bitmap_line_ydxd::y#6 Alias bitmap_line_ydxd::xd#3 = bitmap_line_ydxd::xd#5 Alias bitmap_line_ydxd::yd#2 = bitmap_line_ydxd::yd#6 Successful SSA optimization Pass2AliasElimination Identical Phi Values bitmap_init::bitmap#2 bitmap_init::bitmap#0 Identical Phi Values bitmap_init::bitmap#1 bitmap_init::bitmap#2 Identical Phi Values bitmap_clear::y#2 bitmap_clear::y#4 Identical Phi Values bitmap_line::x0#1 bitmap_line::x0#0 Identical Phi Values bitmap_line::x1#1 bitmap_line::x1#0 Identical Phi Values bitmap_line::y0#1 bitmap_line::y0#0 Identical Phi Values bitmap_line::y1#1 bitmap_line::y1#0 Identical Phi Values bitmap_line_xdyi::yd#3 bitmap_line_xdyi::yd#2 Identical Phi Values bitmap_line_xdyi::xd#2 bitmap_line_xdyi::xd#5 Identical Phi Values bitmap_line_xdyi::x1#2 bitmap_line_xdyi::x1#6 Identical Phi Values bitmap_line_xdyd::yd#3 bitmap_line_xdyd::yd#2 Identical Phi Values bitmap_line_xdyd::xd#2 bitmap_line_xdyd::xd#5 Identical Phi Values bitmap_line_xdyd::x1#2 bitmap_line_xdyd::x1#6 Identical Phi Values bitmap_line_ydxi::xd#3 bitmap_line_ydxi::xd#2 Identical Phi Values bitmap_line_ydxi::yd#2 bitmap_line_ydxi::yd#5 Identical Phi Values bitmap_line_ydxi::y1#2 bitmap_line_ydxi::y1#6 Identical Phi Values bitmap_line_ydxd::xd#3 bitmap_line_ydxd::xd#2 Identical Phi Values bitmap_line_ydxd::yd#2 bitmap_line_ydxd::yd#5 Identical Phi Values bitmap_line_ydxd::y1#2 bitmap_line_ydxd::y1#6 Identical Phi Values next#10 next#11 Identical Phi Values next#3 next#0 Successful SSA optimization Pass2IdenticalPhiElimination Identified duplicate assignment right side [29] bitmap_init::$10 = bitmap_init::y#2 & 7 Successful SSA optimization Pass2DuplicateRValueIdentification Simple Condition bitmap_init::$4 [11] if(bitmap_init::bits#1!=0) goto bitmap_init::@2 Simple Condition bitmap_init::$5 [15] if(bitmap_init::x#1!=rangelast(0,$ff)) goto bitmap_init::@1 Simple Condition bitmap_init::$12 [28] if(bitmap_init::$10!=7) goto bitmap_init::@6 Simple Condition bitmap_init::$14 [32] if(bitmap_init::y#1!=rangelast(0,$ff)) goto bitmap_init::@5 Simple Condition bitmap_clear::$0 [45] if(bitmap_clear::x#1!=rangelast(0,$c7)) goto bitmap_clear::@2 Simple Condition bitmap_clear::$1 [48] if(bitmap_clear::y#1!=rangelast(0,$27)) goto bitmap_clear::@1 Simple Condition bitmap_line::$0 [62] if(bitmap_line::x0#0=bitmap_line_xdyi::e#1) goto bitmap_line_xdyi::@2 Simple Condition bitmap_line_xdyi::$7 [143] if(bitmap_line_xdyi::x#2!=bitmap_line_xdyi::$6) goto bitmap_line_xdyi::@1 Simple Condition bitmap_line_xdyd::$4 [156] if(bitmap_line_xdyd::xd#5>=bitmap_line_xdyd::e#1) goto bitmap_line_xdyd::@2 Simple Condition bitmap_line_xdyd::$7 [160] if(bitmap_line_xdyd::x#2!=bitmap_line_xdyd::$6) goto bitmap_line_xdyd::@1 Simple Condition bitmap_line_ydxi::$4 [173] if(bitmap_line_ydxi::yd#5>=bitmap_line_ydxi::e#1) goto bitmap_line_ydxi::@2 Simple Condition bitmap_line_ydxi::$7 [177] if(bitmap_line_ydxi::y#2!=bitmap_line_ydxi::$6) goto bitmap_line_ydxi::@1 Simple Condition bitmap_line_ydxd::$4 [190] if(bitmap_line_ydxd::yd#5>=bitmap_line_ydxd::e#1) goto bitmap_line_ydxd::@2 Simple Condition bitmap_line_ydxd::$7 [194] if(bitmap_line_ydxd::y#3!=bitmap_line_ydxd::$6) goto bitmap_line_ydxd::@1 Simple Condition init_screen::$0 [219] if(init_screen::c#2!=SCREEN+$400) goto init_screen::@2 Successful SSA optimization Pass2ConditionalJumpSimplification Constant bitmap_init::bits#0 = $80 Constant bitmap_init::x#0 = 0 Constant bitmap_init::bits#2 = $80 Constant bitmap_init::yoffs#0 = (byte*) 0 Constant bitmap_init::y#0 = 0 Constant bitmap_clear::y#0 = 0 Constant bitmap_clear::x#0 = 0 Constant bitmap_line::xd#0 = 0 Constant bitmap_line::yd#0 = 0 Constant bitmap_init::bitmap#0 = BITMAP Constant bitmap_line::x0#0 = 0 Constant bitmap_line::y0#0 = 0 Constant bitmap_line::y1#0 = $64 Constant init_screen::c#0 = SCREEN Constant next#11 = 0 Successful SSA optimization Pass2ConstantIdentification Constant bitmap_line_xdyi::y#0 = bitmap_line::y1#0 Constant bitmap_line_xdyi::x1#0 = bitmap_line::x0#0 Constant bitmap_line_ydxi::y#0 = bitmap_line::y1#0 Constant bitmap_line_ydxi::y1#0 = bitmap_line::y0#0 Constant bitmap_line_xdyd::y#0 = bitmap_line::y1#0 Constant bitmap_line_xdyd::x1#0 = bitmap_line::x0#0 Constant bitmap_line_ydxd::y#0 = bitmap_line::y0#0 Constant bitmap_line_ydxd::x#0 = bitmap_line::x0#0 Constant bitmap_line_ydxd::y1#0 = bitmap_line::y1#0 Constant bitmap_line_xdyd::x#1 = bitmap_line::x0#0 Constant bitmap_line_xdyd::y#1 = bitmap_line::y0#0 Constant bitmap_line_ydxd::y#1 = bitmap_line::y1#0 Constant bitmap_line_ydxd::y1#1 = bitmap_line::y0#0 Constant bitmap_line_xdyi::x#1 = bitmap_line::x0#0 Constant bitmap_line_xdyi::y#1 = bitmap_line::y0#0 Constant bitmap_line_ydxi::y#1 = bitmap_line::y0#0 Constant bitmap_line_ydxi::x#1 = bitmap_line::x0#0 Constant bitmap_line_ydxi::y1#1 = bitmap_line::y1#0 Successful SSA optimization Pass2ConstantIdentification if() condition always true - replacing block destination [65] if(bitmap_line::y0#0 bitmap_init::bitmap#0 Constant right-side identified [90] bitmap_line_xdyd::$6 = bitmap_line_xdyd::x1#0 + 1 Constant right-side identified [105] bitmap_line_ydxi::$6 = bitmap_line_ydxi::y1#1 + 1 Constant right-side identified [120] bitmap_line_ydxd::$6 = bitmap_line_ydxd::y1#0 + 1 Successful SSA optimization Pass2ConstantRValueConsolidation Constant bitmap_init::$1 = >bitmap_init::bitmap#0 Constant bitmap_line::yd#1 = bitmap_line::y1#0 Constant bitmap_line::yd#11 = bitmap_line::y1#0 Constant bitmap_line_xdyd::$6 = bitmap_line_xdyd::x1#0+1 Constant bitmap_line_ydxi::$6 = bitmap_line_ydxi::y1#1+1 Constant bitmap_line_ydxd::$6 = bitmap_line_ydxd::y1#0+1 Successful SSA optimization Pass2ConstantIdentification Constant bitmap_line_xdyd::yd#0 = bitmap_line::yd#1 Constant bitmap_line_ydxd::yd#0 = bitmap_line::yd#1 Constant bitmap_line_xdyi::yd#1 = bitmap_line::yd#11 Constant 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 bitmap_line_xdyi::y#0 Eliminating unused constant bitmap_line_xdyi::x1#0 Eliminating unused constant bitmap_line_xdyd::x1#0 Eliminating unused constant bitmap_line_xdyd::x#1 Eliminating unused constant bitmap_line_xdyd::y#1 Eliminating unused constant bitmap_line_ydxi::y#0 Eliminating unused constant bitmap_line_ydxi::y1#0 Eliminating unused constant bitmap_line_ydxd::y#1 Eliminating unused constant bitmap_line_ydxd::y1#1 Successful SSA optimization PassNEliminateUnusedVars Constant right-side identified [58] bitmap_line_xdyi::e#0 = bitmap_line_xdyi::yd#1 >> 1 Constant right-side identified [72] bitmap_line_xdyd::e#0 = bitmap_line_xdyd::yd#0 >> 1 Successful SSA optimization Pass2ConstantRValueConsolidation Constant bitmap_line_xdyi::e#0 = bitmap_line_xdyi::yd#1>>1 Constant bitmap_line_xdyd::e#0 = bitmap_line_xdyd::yd#0>>1 Successful SSA optimization Pass2ConstantIdentification Inlining Noop Cast [24] bitmap_clear::bitmap#0 = (byte*)bitmap_clear::$3 keeping bitmap_clear::bitmap#0 Inlining Noop Cast [38] bitmap_plot::plotter#0 = (byte*)bitmap_plot::$0 keeping bitmap_plot::plotter#0 Successful SSA optimization Pass2NopCastInlining Inlining constant with var siblings bitmap_init::bits#0 Inlining constant with var siblings bitmap_init::x#0 Inlining constant with var siblings bitmap_init::bits#2 Inlining constant with var siblings bitmap_init::yoffs#0 Inlining constant with var siblings bitmap_init::y#0 Inlining constant with var siblings bitmap_clear::y#0 Inlining constant with var siblings bitmap_clear::x#0 Inlining constant with var siblings bitmap_line_xdyi::x#1 Inlining constant with var siblings bitmap_line_xdyi::y#1 Inlining constant with var siblings bitmap_line_xdyi::e#0 Inlining constant with var siblings bitmap_line_xdyd::y#0 Inlining constant with var siblings bitmap_line_xdyd::e#0 Inlining constant with var siblings bitmap_line_ydxi::y#1 Inlining constant with var siblings bitmap_line_ydxi::x#1 Inlining constant with var siblings bitmap_line_ydxd::y#0 Inlining constant with var siblings bitmap_line_ydxd::x#0 Inlining constant with var siblings init_screen::c#0 Inlining constant with var siblings next#11 Constant inlined bitmap_line_ydxi::x#1 = bitmap_line::x0#0 Constant inlined bitmap_line::yd#1 = bitmap_line::y1#0 Constant inlined bitmap_line_xdyd::e#0 = bitmap_line::y1#0>>1 Constant inlined bitmap_line_xdyd::$6 = 1 Constant inlined bitmap_line_ydxi::$6 = bitmap_line::y1#0+1 Constant inlined bitmap_init::bits#0 = $80 Constant inlined bitmap_init::bits#2 = $80 Constant inlined bitmap_line_xdyi::e#0 = bitmap_line::y1#0>>1 Constant inlined bitmap_line_xdyd::y#0 = bitmap_line::y1#0 Constant inlined init_screen::c#0 = SCREEN Constant inlined bitmap_line_ydxi::y#1 = bitmap_line::y0#0 Constant inlined bitmap_line_xdyi::y#1 = bitmap_line::y0#0 Constant inlined bitmap_init::yoffs#0 = (byte*) 0 Constant inlined next#11 = 0 Constant inlined bitmap_line_ydxd::yd#0 = bitmap_line::y1#0 Constant inlined bitmap_clear::x#0 = 0 Constant inlined bitmap_line_xdyi::yd#1 = bitmap_line::y1#0 Constant inlined bitmap_clear::y#0 = 0 Constant inlined bitmap_line::yd#11 = bitmap_line::y1#0 Constant inlined bitmap_line_xdyd::yd#0 = bitmap_line::y1#0 Constant inlined bitmap_line_ydxi::yd#1 = bitmap_line::y1#0 Constant inlined bitmap_line_ydxd::y#0 = bitmap_line::y0#0 Constant inlined bitmap_line_ydxd::x#0 = bitmap_line::x0#0 Constant inlined bitmap_line_ydxd::y1#0 = bitmap_line::y1#0 Constant inlined bitmap_init::$1 = >BITMAP Constant inlined bitmap_line_ydxd::$6 = bitmap_line::y1#0+1 Constant inlined bitmap_init::y#0 = 0 Constant inlined bitmap_init::x#0 = 0 Constant inlined bitmap_line_ydxi::y1#1 = bitmap_line::y1#0 Constant inlined bitmap_init::bitmap#0 = BITMAP Constant inlined bitmap_line_xdyi::x#1 = bitmap_line::x0#0 Successful SSA optimization Pass2ConstantInlining Finalized unsigned number type (word) $100 Finalized unsigned number type (word) $100 Finalized unsigned number type (word) $100 Finalized unsigned number type (word) $100 Finalized unsigned number type (word) $100 Finalized unsigned number type (word) $100 Finalized unsigned number type (word) $100 Finalized unsigned number type (word) $100 Finalized unsigned number type (word) $100 Finalized unsigned number type (word) $100 Finalized unsigned number type (byte) $28 Finalized unsigned number type (byte) 8 Successful SSA optimization PassNFinalizeNumberTypeConversions Added new block during phi lifting bitmap_init::@8(between bitmap_init::@2 and bitmap_init::@1) Added new block during phi lifting bitmap_init::@9(between bitmap_init::@1 and bitmap_init::@2) Added new block during phi lifting bitmap_init::@10(between bitmap_init::@6 and bitmap_init::@5) Added new block during phi lifting bitmap_init::@11(between bitmap_init::@5 and bitmap_init::@6) Added new block during phi lifting bitmap_clear::@4(between bitmap_clear::@3 and bitmap_clear::@1) Added new block during phi lifting bitmap_clear::@5(between bitmap_clear::@2 and bitmap_clear::@2) Added new block during phi lifting bitmap_line_xdyi::@5(between bitmap_line_xdyi::@2 and bitmap_line_xdyi::@1) Added new block during phi lifting bitmap_line_xdyi::@6(between bitmap_line_xdyi::@4 and bitmap_line_xdyi::@2) Added new block during phi lifting bitmap_line_xdyd::@5(between bitmap_line_xdyd::@2 and bitmap_line_xdyd::@1) Added new block during phi lifting bitmap_line_xdyd::@6(between bitmap_line_xdyd::@4 and bitmap_line_xdyd::@2) Added new block during phi lifting bitmap_line_ydxi::@5(between bitmap_line_ydxi::@2 and bitmap_line_ydxi::@1) Added new block during phi lifting bitmap_line_ydxi::@6(between bitmap_line_ydxi::@4 and bitmap_line_ydxi::@2) Added new block during phi lifting bitmap_line_ydxd::@5(between bitmap_line_ydxd::@2 and bitmap_line_ydxd::@1) Added new block during phi lifting bitmap_line_ydxd::@6(between bitmap_line_ydxd::@4 and bitmap_line_ydxd::@2) Adding NOP phi() at start of main::@2 Adding NOP phi() at start of main::@3 Adding NOP phi() at start of main::@4 Adding NOP phi() at start of bitmap_init Adding NOP phi() at start of bitmap_init::@3 Adding NOP phi() at start of bitmap_init::@4 Adding NOP phi() at start of init_screen Adding NOP phi() at start of bitmap_line::@18 Adding NOP phi() at start of bitmap_line::@17 Adding NOP phi() at start of bitmap_line::@22 Adding NOP phi() at start of bitmap_line::@21 Adding NOP phi() at start of bitmap_line_xdyi CALL GRAPH Calls in [main] to bitmap_init:4 bitmap_clear:6 init_screen:8 bitmap_line:12 Calls in [bitmap_line] to bitmap_line_ydxd:75 bitmap_line_xdyd:80 bitmap_line_ydxi:85 bitmap_line_xdyi:89 Calls in [bitmap_line_ydxd] to bitmap_plot:98 Calls in [bitmap_line_xdyd] to bitmap_plot:120 Calls in [bitmap_line_ydxi] to bitmap_plot:143 Calls in [bitmap_line_xdyi] to bitmap_plot:165 Created 34 initial phi equivalence classes Coalesced [14] next#15 = next#0 Coalesced [37] bitmap_init::yoffs#7 = bitmap_init::yoffs#1 Coalesced [42] bitmap_init::y#5 = bitmap_init::y#1 Coalesced [43] bitmap_init::yoffs#5 = bitmap_init::yoffs#4 Coalesced (already) [44] bitmap_init::yoffs#6 = bitmap_init::yoffs#2 Coalesced [45] bitmap_init::x#5 = bitmap_init::x#1 Coalesced [46] bitmap_init::bits#5 = bitmap_init::bits#4 Coalesced [47] bitmap_init::bits#6 = bitmap_init::bits#1 Coalesced [51] bitmap_clear::bitmap#7 = bitmap_clear::bitmap#3 Coalesced [60] bitmap_clear::bitmap#6 = bitmap_clear::bitmap#1 Coalesced [61] bitmap_clear::y#5 = bitmap_clear::y#1 Coalesced (already) [62] bitmap_clear::bitmap#8 = bitmap_clear::bitmap#1 Coalesced [63] bitmap_clear::x#3 = bitmap_clear::x#1 Coalesced [70] init_screen::c#4 = init_screen::c#1 Coalesced [92] bitmap_line_ydxd::e#7 = bitmap_line_ydxd::e#0 Coalesced [96] bitmap_plot::x#7 = bitmap_plot::x#3 Coalesced [97] bitmap_plot::y#7 = bitmap_plot::y#3 Coalesced [104] bitmap_line_ydxd::x#9 = bitmap_line_ydxd::x#2 Coalesced [105] bitmap_line_ydxd::e#9 = bitmap_line_ydxd::e#2 Coalesced [109] bitmap_line_ydxd::x#8 = bitmap_line_ydxd::x#6 Coalesced [110] bitmap_line_ydxd::y#9 = bitmap_line_ydxd::y#3 Coalesced [111] bitmap_line_ydxd::e#8 = bitmap_line_ydxd::e#6 Coalesced (already) [112] bitmap_line_ydxd::x#10 = bitmap_line_ydxd::x#3 Coalesced [113] bitmap_line_ydxd::e#10 = bitmap_line_ydxd::e#1 Coalesced [114] bitmap_line_xdyd::x#8 = bitmap_line_xdyd::x#0 Coalesced [118] bitmap_plot::x#5 = bitmap_plot::x#1 Coalesced [119] bitmap_plot::y#5 = bitmap_plot::y#1 Coalesced [126] bitmap_line_xdyd::y#9 = bitmap_line_xdyd::y#2 Coalesced [127] bitmap_line_xdyd::e#8 = bitmap_line_xdyd::e#2 Coalesced [131] bitmap_line_xdyd::x#9 = bitmap_line_xdyd::x#2 Coalesced [132] bitmap_line_xdyd::y#8 = bitmap_line_xdyd::y#6 Coalesced [133] bitmap_line_xdyd::e#7 = bitmap_line_xdyd::e#6 Coalesced (already) [134] bitmap_line_xdyd::y#10 = bitmap_line_xdyd::y#3 Coalesced [135] bitmap_line_xdyd::e#9 = bitmap_line_xdyd::e#1 Coalesced [137] bitmap_line_ydxi::e#7 = bitmap_line_ydxi::e#0 Coalesced [141] bitmap_plot::x#8 = bitmap_plot::x#2 Coalesced [142] bitmap_plot::y#8 = bitmap_plot::y#2 Coalesced [149] bitmap_line_ydxi::x#9 = bitmap_line_ydxi::x#2 Coalesced [150] bitmap_line_ydxi::e#9 = bitmap_line_ydxi::e#2 Coalesced [154] bitmap_line_ydxi::x#8 = bitmap_line_ydxi::x#6 Coalesced [155] bitmap_line_ydxi::y#8 = bitmap_line_ydxi::y#2 Coalesced [156] bitmap_line_ydxi::e#8 = bitmap_line_ydxi::e#6 Coalesced (already) [157] bitmap_line_ydxi::x#10 = bitmap_line_ydxi::x#3 Coalesced [158] bitmap_line_ydxi::e#10 = bitmap_line_ydxi::e#1 Coalesced [163] bitmap_plot::x#6 = bitmap_plot::x#0 Coalesced [164] bitmap_plot::y#6 = bitmap_plot::y#0 Coalesced [171] bitmap_line_xdyi::y#9 = bitmap_line_xdyi::y#2 Coalesced [172] bitmap_line_xdyi::e#8 = bitmap_line_xdyi::e#2 Coalesced [177] bitmap_line_xdyi::x#8 = bitmap_line_xdyi::x#2 Coalesced [178] bitmap_line_xdyi::y#8 = bitmap_line_xdyi::y#6 Coalesced [179] bitmap_line_xdyi::e#7 = bitmap_line_xdyi::e#6 Coalesced (already) [180] bitmap_line_xdyi::y#10 = bitmap_line_xdyi::y#3 Coalesced [181] bitmap_line_xdyi::e#9 = bitmap_line_xdyi::e#1 Coalesced down to 23 phi equivalence classes Culled Empty Block label main::@4 Culled Empty Block label bitmap_init::@3 Culled Empty Block label bitmap_init::@4 Culled Empty Block label bitmap_init::@10 Culled Empty Block label bitmap_init::@11 Culled Empty Block label bitmap_init::@8 Culled Empty Block label bitmap_clear::@4 Culled Empty Block label bitmap_clear::@5 Culled Empty Block label bitmap_line::@18 Culled Empty Block label bitmap_line::@17 Culled Empty Block label bitmap_line::@22 Culled Empty Block label bitmap_line::@21 Culled Empty Block label bitmap_line_ydxd::@5 Culled Empty Block label bitmap_line_ydxd::@6 Culled Empty Block label bitmap_line_xdyd::@5 Culled Empty Block label bitmap_line_xdyd::@6 Culled Empty Block label bitmap_line_ydxi::@5 Culled Empty Block label bitmap_line_ydxi::@6 Culled Empty Block label bitmap_line_xdyi::@5 Culled Empty Block label bitmap_line_xdyi::@6 Renumbering block bitmap_init::@5 to bitmap_init::@3 Renumbering block bitmap_init::@6 to bitmap_init::@4 Renumbering block bitmap_init::@7 to bitmap_init::@5 Renumbering block bitmap_init::@9 to bitmap_init::@6 Renumbering block bitmap_line::@7 to bitmap_line::@3 Renumbering block bitmap_line::@9 to bitmap_line::@4 Renumbering block bitmap_line::@10 to bitmap_line::@5 Renumbering block bitmap_line::@11 to bitmap_line::@6 Renumbering block bitmap_line::@13 to bitmap_line::@7 Renumbering block bitmap_line::@14 to bitmap_line::@8 Renumbering block main::@5 to main::@4 Adding NOP phi() at start of main::@2 Adding NOP phi() at start of main::@3 Adding NOP phi() at start of bitmap_init Adding NOP phi() at start of bitmap_init::@6 Adding NOP phi() at start of init_screen Adding NOP phi() at start of bitmap_line_xdyd Adding NOP phi() at start of bitmap_line_xdyi FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] *BORDER_COLOR = 0 [1] *BG_COLOR = 0 [2] *D011 = VICII_BMM|VICII_DEN|VICII_RSEL|3 [3] *VICII_MEMORY = (byte)(word)SCREEN&$3fff/$40|(word)BITMAP&$3fff/$400 [4] call bitmap_init to:main::@2 main::@2: scope:[main] from main [5] phi() [6] call bitmap_clear to:main::@3 main::@3: scope:[main] from main::@2 [7] phi() [8] call init_screen to:main::@1 main::@1: scope:[main] from main::@3 main::@4 [9] next#5 = phi( main::@3/0, main::@4/next#0 ) [10] bitmap_line::x1#0 = next#5 [11] call bitmap_line to:main::@4 main::@4: scope:[main] from main::@1 [12] next#0 = ++ next#5 to:main::@1 void bitmap_init(byte* bitmap_init::bitmap) bitmap_init: scope:[bitmap_init] from main [13] phi() to:bitmap_init::@1 bitmap_init::@1: scope:[bitmap_init] from bitmap_init bitmap_init::@2 [14] bitmap_init::bits#3 = phi( bitmap_init/$80, bitmap_init::@2/bitmap_init::bits#4 ) [14] bitmap_init::x#2 = phi( bitmap_init/0, bitmap_init::@2/bitmap_init::x#1 ) [15] bitmap_init::$0 = bitmap_init::x#2 & $f8 [16] bitmap_plot_xlo[bitmap_init::x#2] = bitmap_init::$0 [17] bitmap_plot_xhi[bitmap_init::x#2] = >BITMAP [18] bitmap_plot_bit[bitmap_init::x#2] = bitmap_init::bits#3 [19] bitmap_init::bits#1 = bitmap_init::bits#3 >> 1 [20] if(bitmap_init::bits#1!=0) goto bitmap_init::@6 to:bitmap_init::@2 bitmap_init::@6: scope:[bitmap_init] from bitmap_init::@1 [21] phi() to:bitmap_init::@2 bitmap_init::@2: scope:[bitmap_init] from bitmap_init::@1 bitmap_init::@6 [22] bitmap_init::bits#4 = phi( bitmap_init::@6/bitmap_init::bits#1, bitmap_init::@1/$80 ) [23] bitmap_init::x#1 = ++ bitmap_init::x#2 [24] if(bitmap_init::x#1!=0) goto bitmap_init::@1 to:bitmap_init::@3 bitmap_init::@3: scope:[bitmap_init] from bitmap_init::@2 bitmap_init::@4 [25] bitmap_init::yoffs#2 = phi( bitmap_init::@2/(byte*) 0, bitmap_init::@4/bitmap_init::yoffs#4 ) [25] bitmap_init::y#2 = phi( bitmap_init::@2/0, bitmap_init::@4/bitmap_init::y#1 ) [26] bitmap_init::$10 = bitmap_init::y#2 & 7 [27] bitmap_init::$7 = < bitmap_init::yoffs#2 [28] bitmap_init::$8 = bitmap_init::$10 | bitmap_init::$7 [29] bitmap_plot_ylo[bitmap_init::y#2] = bitmap_init::$8 [30] bitmap_init::$9 = > bitmap_init::yoffs#2 [31] bitmap_plot_yhi[bitmap_init::y#2] = bitmap_init::$9 [32] if(bitmap_init::$10!=7) goto bitmap_init::@4 to:bitmap_init::@5 bitmap_init::@5: scope:[bitmap_init] from bitmap_init::@3 [33] bitmap_init::yoffs#1 = bitmap_init::yoffs#2 + (word)$28*8 to:bitmap_init::@4 bitmap_init::@4: scope:[bitmap_init] from bitmap_init::@3 bitmap_init::@5 [34] bitmap_init::yoffs#4 = phi( bitmap_init::@3/bitmap_init::yoffs#2, bitmap_init::@5/bitmap_init::yoffs#1 ) [35] bitmap_init::y#1 = ++ bitmap_init::y#2 [36] if(bitmap_init::y#1!=0) goto bitmap_init::@3 to:bitmap_init::@return bitmap_init::@return: scope:[bitmap_init] from bitmap_init::@4 [37] return to:@return void bitmap_clear() bitmap_clear: scope:[bitmap_clear] from main::@2 [38] bitmap_clear::bitmap#0 = *bitmap_plot_xhi w= *bitmap_plot_xlo [39] bitmap_clear::bitmap#5 = (byte*)bitmap_clear::bitmap#0 to:bitmap_clear::@1 bitmap_clear::@1: scope:[bitmap_clear] from bitmap_clear bitmap_clear::@3 [40] bitmap_clear::y#4 = phi( bitmap_clear/0, bitmap_clear::@3/bitmap_clear::y#1 ) [40] bitmap_clear::bitmap#3 = phi( bitmap_clear/bitmap_clear::bitmap#5, bitmap_clear::@3/bitmap_clear::bitmap#1 ) to:bitmap_clear::@2 bitmap_clear::@2: scope:[bitmap_clear] from bitmap_clear::@1 bitmap_clear::@2 [41] bitmap_clear::x#2 = phi( bitmap_clear::@1/0, bitmap_clear::@2/bitmap_clear::x#1 ) [41] bitmap_clear::bitmap#2 = phi( bitmap_clear::@1/bitmap_clear::bitmap#3, bitmap_clear::@2/bitmap_clear::bitmap#1 ) [42] *bitmap_clear::bitmap#2 = 0 [43] bitmap_clear::bitmap#1 = ++ bitmap_clear::bitmap#2 [44] bitmap_clear::x#1 = ++ bitmap_clear::x#2 [45] if(bitmap_clear::x#1!=$c8) goto bitmap_clear::@2 to:bitmap_clear::@3 bitmap_clear::@3: scope:[bitmap_clear] from bitmap_clear::@2 [46] bitmap_clear::y#1 = ++ bitmap_clear::y#4 [47] if(bitmap_clear::y#1!=$28) goto bitmap_clear::@1 to:bitmap_clear::@return bitmap_clear::@return: scope:[bitmap_clear] from bitmap_clear::@3 [48] return to:@return void init_screen() init_screen: scope:[init_screen] from main::@3 [49] phi() to:init_screen::@1 init_screen::@1: scope:[init_screen] from init_screen init_screen::@2 [50] init_screen::c#2 = phi( init_screen/SCREEN, init_screen::@2/init_screen::c#1 ) [51] if(init_screen::c#2!=SCREEN+$400) goto init_screen::@2 to:init_screen::@return init_screen::@return: scope:[init_screen] from init_screen::@1 [52] return to:@return init_screen::@2: scope:[init_screen] from init_screen::@1 [53] *init_screen::c#2 = $14 [54] init_screen::c#1 = ++ init_screen::c#2 to:init_screen::@1 void bitmap_line(byte bitmap_line::x0 , byte bitmap_line::x1 , byte bitmap_line::y0 , byte bitmap_line::y1) bitmap_line: scope:[bitmap_line] from main::@1 [55] if(bitmap_line::x0#0> 1 to:bitmap_line_ydxd::@1 bitmap_line_ydxd::@1: scope:[bitmap_line_ydxd] from bitmap_line_ydxd bitmap_line_ydxd::@2 [72] bitmap_line_ydxd::e#3 = phi( bitmap_line_ydxd/bitmap_line_ydxd::e#0, bitmap_line_ydxd::@2/bitmap_line_ydxd::e#6 ) [72] bitmap_line_ydxd::y#2 = phi( bitmap_line_ydxd/bitmap_line::y0#0, bitmap_line_ydxd::@2/bitmap_line_ydxd::y#3 ) [72] bitmap_line_ydxd::x#3 = phi( bitmap_line_ydxd/bitmap_line::x0#0, bitmap_line_ydxd::@2/bitmap_line_ydxd::x#6 ) [73] bitmap_plot::x#3 = bitmap_line_ydxd::x#3 [74] bitmap_plot::y#3 = bitmap_line_ydxd::y#2 [75] call bitmap_plot to:bitmap_line_ydxd::@4 bitmap_line_ydxd::@4: scope:[bitmap_line_ydxd] from bitmap_line_ydxd::@1 [76] bitmap_line_ydxd::y#3 = ++ bitmap_line_ydxd::y#2 [77] bitmap_line_ydxd::e#1 = bitmap_line_ydxd::e#3 + bitmap_line_ydxd::xd#0 [78] if(bitmap_line::y1#0>=bitmap_line_ydxd::e#1) goto bitmap_line_ydxd::@2 to:bitmap_line_ydxd::@3 bitmap_line_ydxd::@3: scope:[bitmap_line_ydxd] from bitmap_line_ydxd::@4 [79] bitmap_line_ydxd::x#2 = -- bitmap_line_ydxd::x#3 [80] bitmap_line_ydxd::e#2 = bitmap_line_ydxd::e#1 - bitmap_line::y1#0 to:bitmap_line_ydxd::@2 bitmap_line_ydxd::@2: scope:[bitmap_line_ydxd] from bitmap_line_ydxd::@3 bitmap_line_ydxd::@4 [81] bitmap_line_ydxd::e#6 = phi( bitmap_line_ydxd::@3/bitmap_line_ydxd::e#2, bitmap_line_ydxd::@4/bitmap_line_ydxd::e#1 ) [81] bitmap_line_ydxd::x#6 = phi( bitmap_line_ydxd::@3/bitmap_line_ydxd::x#2, bitmap_line_ydxd::@4/bitmap_line_ydxd::x#3 ) [82] if(bitmap_line_ydxd::y#3!=bitmap_line::y1#0+1) goto bitmap_line_ydxd::@1 to:bitmap_line_ydxd::@return bitmap_line_ydxd::@return: scope:[bitmap_line_ydxd] from bitmap_line_ydxd::@2 [83] return to:@return void bitmap_line_xdyd(byte bitmap_line_xdyd::x , byte bitmap_line_xdyd::y , byte bitmap_line_xdyd::x1 , byte bitmap_line_xdyd::xd , byte bitmap_line_xdyd::yd) bitmap_line_xdyd: scope:[bitmap_line_xdyd] from bitmap_line::@4 [84] phi() to:bitmap_line_xdyd::@1 bitmap_line_xdyd::@1: scope:[bitmap_line_xdyd] from bitmap_line_xdyd bitmap_line_xdyd::@2 [85] bitmap_line_xdyd::e#3 = phi( bitmap_line_xdyd/bitmap_line::y1#0>>1, bitmap_line_xdyd::@2/bitmap_line_xdyd::e#6 ) [85] bitmap_line_xdyd::y#3 = phi( bitmap_line_xdyd/bitmap_line::y1#0, bitmap_line_xdyd::@2/bitmap_line_xdyd::y#6 ) [85] bitmap_line_xdyd::x#3 = phi( bitmap_line_xdyd/bitmap_line_xdyd::x#0, bitmap_line_xdyd::@2/bitmap_line_xdyd::x#2 ) [86] bitmap_plot::x#1 = bitmap_line_xdyd::x#3 [87] bitmap_plot::y#1 = bitmap_line_xdyd::y#3 [88] call bitmap_plot to:bitmap_line_xdyd::@4 bitmap_line_xdyd::@4: scope:[bitmap_line_xdyd] from bitmap_line_xdyd::@1 [89] bitmap_line_xdyd::x#2 = ++ bitmap_line_xdyd::x#3 [90] bitmap_line_xdyd::e#1 = bitmap_line_xdyd::e#3 + bitmap_line::y1#0 [91] if(bitmap_line_xdyd::xd#0>=bitmap_line_xdyd::e#1) goto bitmap_line_xdyd::@2 to:bitmap_line_xdyd::@3 bitmap_line_xdyd::@3: scope:[bitmap_line_xdyd] from bitmap_line_xdyd::@4 [92] bitmap_line_xdyd::y#2 = -- bitmap_line_xdyd::y#3 [93] bitmap_line_xdyd::e#2 = bitmap_line_xdyd::e#1 - bitmap_line_xdyd::xd#0 to:bitmap_line_xdyd::@2 bitmap_line_xdyd::@2: scope:[bitmap_line_xdyd] from bitmap_line_xdyd::@3 bitmap_line_xdyd::@4 [94] bitmap_line_xdyd::e#6 = phi( bitmap_line_xdyd::@3/bitmap_line_xdyd::e#2, bitmap_line_xdyd::@4/bitmap_line_xdyd::e#1 ) [94] bitmap_line_xdyd::y#6 = phi( bitmap_line_xdyd::@3/bitmap_line_xdyd::y#2, bitmap_line_xdyd::@4/bitmap_line_xdyd::y#3 ) [95] if(bitmap_line_xdyd::x#2!=1) goto bitmap_line_xdyd::@1 to:bitmap_line_xdyd::@return bitmap_line_xdyd::@return: scope:[bitmap_line_xdyd] from bitmap_line_xdyd::@2 [96] return to:@return void bitmap_line_ydxi(byte bitmap_line_ydxi::y , byte bitmap_line_ydxi::x , byte bitmap_line_ydxi::y1 , byte bitmap_line_ydxi::yd , byte bitmap_line_ydxi::xd) bitmap_line_ydxi: scope:[bitmap_line_ydxi] from bitmap_line::@8 [97] bitmap_line_ydxi::e#0 = bitmap_line_ydxi::xd#1 >> 1 to:bitmap_line_ydxi::@1 bitmap_line_ydxi::@1: scope:[bitmap_line_ydxi] from bitmap_line_ydxi bitmap_line_ydxi::@2 [98] bitmap_line_ydxi::e#3 = phi( bitmap_line_ydxi/bitmap_line_ydxi::e#0, bitmap_line_ydxi::@2/bitmap_line_ydxi::e#6 ) [98] bitmap_line_ydxi::y#3 = phi( bitmap_line_ydxi/bitmap_line::y0#0, bitmap_line_ydxi::@2/bitmap_line_ydxi::y#2 ) [98] bitmap_line_ydxi::x#3 = phi( bitmap_line_ydxi/bitmap_line::x0#0, bitmap_line_ydxi::@2/bitmap_line_ydxi::x#6 ) [99] bitmap_plot::x#2 = bitmap_line_ydxi::x#3 [100] bitmap_plot::y#2 = bitmap_line_ydxi::y#3 [101] call bitmap_plot to:bitmap_line_ydxi::@4 bitmap_line_ydxi::@4: scope:[bitmap_line_ydxi] from bitmap_line_ydxi::@1 [102] bitmap_line_ydxi::y#2 = ++ bitmap_line_ydxi::y#3 [103] bitmap_line_ydxi::e#1 = bitmap_line_ydxi::e#3 + bitmap_line_ydxi::xd#1 [104] if(bitmap_line::y1#0>=bitmap_line_ydxi::e#1) goto bitmap_line_ydxi::@2 to:bitmap_line_ydxi::@3 bitmap_line_ydxi::@3: scope:[bitmap_line_ydxi] from bitmap_line_ydxi::@4 [105] bitmap_line_ydxi::x#2 = ++ bitmap_line_ydxi::x#3 [106] bitmap_line_ydxi::e#2 = bitmap_line_ydxi::e#1 - bitmap_line::y1#0 to:bitmap_line_ydxi::@2 bitmap_line_ydxi::@2: scope:[bitmap_line_ydxi] from bitmap_line_ydxi::@3 bitmap_line_ydxi::@4 [107] bitmap_line_ydxi::e#6 = phi( bitmap_line_ydxi::@3/bitmap_line_ydxi::e#2, bitmap_line_ydxi::@4/bitmap_line_ydxi::e#1 ) [107] bitmap_line_ydxi::x#6 = phi( bitmap_line_ydxi::@3/bitmap_line_ydxi::x#2, bitmap_line_ydxi::@4/bitmap_line_ydxi::x#3 ) [108] if(bitmap_line_ydxi::y#2!=bitmap_line::y1#0+1) goto bitmap_line_ydxi::@1 to:bitmap_line_ydxi::@return bitmap_line_ydxi::@return: scope:[bitmap_line_ydxi] from bitmap_line_ydxi::@2 [109] return to:@return void bitmap_line_xdyi(byte bitmap_line_xdyi::x , byte bitmap_line_xdyi::y , byte bitmap_line_xdyi::x1 , byte bitmap_line_xdyi::xd , byte bitmap_line_xdyi::yd) bitmap_line_xdyi: scope:[bitmap_line_xdyi] from bitmap_line::@7 [110] phi() to:bitmap_line_xdyi::@1 bitmap_line_xdyi::@1: scope:[bitmap_line_xdyi] from bitmap_line_xdyi bitmap_line_xdyi::@2 [111] bitmap_line_xdyi::e#3 = phi( bitmap_line_xdyi/bitmap_line::y1#0>>1, bitmap_line_xdyi::@2/bitmap_line_xdyi::e#6 ) [111] bitmap_line_xdyi::y#3 = phi( bitmap_line_xdyi/bitmap_line::y0#0, bitmap_line_xdyi::@2/bitmap_line_xdyi::y#6 ) [111] bitmap_line_xdyi::x#3 = phi( bitmap_line_xdyi/bitmap_line::x0#0, bitmap_line_xdyi::@2/bitmap_line_xdyi::x#2 ) [112] bitmap_plot::x#0 = bitmap_line_xdyi::x#3 [113] bitmap_plot::y#0 = bitmap_line_xdyi::y#3 [114] call bitmap_plot to:bitmap_line_xdyi::@4 bitmap_line_xdyi::@4: scope:[bitmap_line_xdyi] from bitmap_line_xdyi::@1 [115] bitmap_line_xdyi::x#2 = ++ bitmap_line_xdyi::x#3 [116] bitmap_line_xdyi::e#1 = bitmap_line_xdyi::e#3 + bitmap_line::y1#0 [117] if(bitmap_line_xdyi::xd#1>=bitmap_line_xdyi::e#1) goto bitmap_line_xdyi::@2 to:bitmap_line_xdyi::@3 bitmap_line_xdyi::@3: scope:[bitmap_line_xdyi] from bitmap_line_xdyi::@4 [118] bitmap_line_xdyi::y#2 = ++ bitmap_line_xdyi::y#3 [119] bitmap_line_xdyi::e#2 = bitmap_line_xdyi::e#1 - bitmap_line_xdyi::xd#1 to:bitmap_line_xdyi::@2 bitmap_line_xdyi::@2: scope:[bitmap_line_xdyi] from bitmap_line_xdyi::@3 bitmap_line_xdyi::@4 [120] bitmap_line_xdyi::e#6 = phi( bitmap_line_xdyi::@3/bitmap_line_xdyi::e#2, bitmap_line_xdyi::@4/bitmap_line_xdyi::e#1 ) [120] bitmap_line_xdyi::y#6 = phi( bitmap_line_xdyi::@3/bitmap_line_xdyi::y#2, bitmap_line_xdyi::@4/bitmap_line_xdyi::y#3 ) [121] bitmap_line_xdyi::$6 = bitmap_line_xdyi::x1#1 + 1 [122] if(bitmap_line_xdyi::x#2!=bitmap_line_xdyi::$6) goto bitmap_line_xdyi::@1 to:bitmap_line_xdyi::@return bitmap_line_xdyi::@return: scope:[bitmap_line_xdyi] from bitmap_line_xdyi::@2 [123] return to:@return void bitmap_plot(byte bitmap_plot::x , byte bitmap_plot::y) bitmap_plot: scope:[bitmap_plot] from bitmap_line_xdyd::@1 bitmap_line_xdyi::@1 bitmap_line_ydxd::@1 bitmap_line_ydxi::@1 [124] bitmap_plot::y#4 = phi( bitmap_line_xdyd::@1/bitmap_plot::y#1, bitmap_line_xdyi::@1/bitmap_plot::y#0, bitmap_line_ydxd::@1/bitmap_plot::y#3, bitmap_line_ydxi::@1/bitmap_plot::y#2 ) [124] bitmap_plot::x#4 = phi( bitmap_line_xdyd::@1/bitmap_plot::x#1, bitmap_line_xdyi::@1/bitmap_plot::x#0, bitmap_line_ydxd::@1/bitmap_plot::x#3, bitmap_line_ydxi::@1/bitmap_plot::x#2 ) [125] bitmap_plot::plotter_x#0 = bitmap_plot_xhi[bitmap_plot::x#4] w= bitmap_plot_xlo[bitmap_plot::x#4] [126] bitmap_plot::plotter_y#0 = bitmap_plot_yhi[bitmap_plot::y#4] w= bitmap_plot_ylo[bitmap_plot::y#4] [127] bitmap_plot::plotter#0 = bitmap_plot::plotter_x#0 + bitmap_plot::plotter_y#0 [128] bitmap_plot::$1 = *((byte*)bitmap_plot::plotter#0) | bitmap_plot_bit[bitmap_plot::x#4] [129] *((byte*)bitmap_plot::plotter#0) = bitmap_plot::$1 to:bitmap_plot::@return bitmap_plot::@return: scope:[bitmap_plot] from bitmap_plot [130] return to:@return VARIABLE REGISTER WEIGHTS void bitmap_clear() byte* bitmap_clear::bitmap word bitmap_clear::bitmap#0 11.0 byte* bitmap_clear::bitmap#1 420.59999999999997 byte* bitmap_clear::bitmap#2 1552.0 byte* bitmap_clear::bitmap#3 213.0 byte* bitmap_clear::bitmap#5 22.0 byte bitmap_clear::x byte bitmap_clear::x#1 1501.5 byte bitmap_clear::x#2 667.3333333333334 byte bitmap_clear::y byte bitmap_clear::y#1 151.5 byte bitmap_clear::y#4 33.666666666666664 void bitmap_init(byte* bitmap_init::bitmap) byte~ bitmap_init::$0 202.0 byte~ bitmap_init::$10 50.5 byte~ bitmap_init::$7 202.0 byte~ bitmap_init::$8 202.0 byte~ bitmap_init::$9 202.0 byte* bitmap_init::bitmap byte bitmap_init::bits byte bitmap_init::bits#1 101.0 byte bitmap_init::bits#3 60.599999999999994 byte bitmap_init::bits#4 67.33333333333333 byte bitmap_init::x byte bitmap_init::x#1 151.5 byte bitmap_init::x#2 67.33333333333333 byte bitmap_init::y byte bitmap_init::y#1 151.5 byte bitmap_init::y#2 50.5 byte* bitmap_init::yoffs byte* bitmap_init::yoffs#1 202.0 byte* bitmap_init::yoffs#2 63.125 byte* bitmap_init::yoffs#4 101.0 void bitmap_line(byte bitmap_line::x0 , byte bitmap_line::x1 , byte bitmap_line::y0 , byte bitmap_line::y1) byte bitmap_line::x0 byte bitmap_line::x1 byte bitmap_line::x1#0 85.99999999999999 byte bitmap_line::xd byte bitmap_line::xd#1 134.66666666666666 byte bitmap_line::xd#2 134.66666666666666 byte bitmap_line::y0 byte bitmap_line::y1 byte bitmap_line::yd void bitmap_line_xdyd(byte bitmap_line_xdyd::x , byte bitmap_line_xdyd::y , byte bitmap_line_xdyd::x1 , byte bitmap_line_xdyd::xd , byte bitmap_line_xdyd::yd) byte bitmap_line_xdyd::e byte bitmap_line_xdyd::e#1 133334.66666666666 byte bitmap_line_xdyd::e#2 200002.0 byte bitmap_line_xdyd::e#3 40000.4 byte bitmap_line_xdyd::e#6 150001.5 byte bitmap_line_xdyd::x byte bitmap_line_xdyd::x#0 367.33333333333337 byte bitmap_line_xdyd::x#2 42857.57142857143 byte bitmap_line_xdyd::x#3 75251.0 byte bitmap_line_xdyd::x1 byte bitmap_line_xdyd::xd byte bitmap_line_xdyd::xd#0 15392.538461538461 byte bitmap_line_xdyd::y byte bitmap_line_xdyd::y#2 100001.0 byte bitmap_line_xdyd::y#3 57143.42857142857 byte bitmap_line_xdyd::y#6 150001.5 byte bitmap_line_xdyd::yd void bitmap_line_xdyi(byte bitmap_line_xdyi::x , byte bitmap_line_xdyi::y , byte bitmap_line_xdyi::x1 , byte bitmap_line_xdyi::xd , byte bitmap_line_xdyi::yd) byte~ bitmap_line_xdyi::$6 200002.0 byte bitmap_line_xdyi::e byte bitmap_line_xdyi::e#1 133334.66666666666 byte bitmap_line_xdyi::e#2 200002.0 byte bitmap_line_xdyi::e#3 40000.4 byte bitmap_line_xdyi::e#6 100001.0 byte bitmap_line_xdyi::x byte bitmap_line_xdyi::x#2 37500.375 byte bitmap_line_xdyi::x#3 75000.75 byte bitmap_line_xdyi::x1 byte bitmap_line_xdyi::x1#1 6673.466666666667 byte bitmap_line_xdyi::xd byte bitmap_line_xdyi::xd#1 14293.071428571428 byte bitmap_line_xdyi::y byte bitmap_line_xdyi::y#2 100001.0 byte bitmap_line_xdyi::y#3 57143.42857142857 byte bitmap_line_xdyi::y#6 100001.0 byte bitmap_line_xdyi::yd void bitmap_line_ydxd(byte bitmap_line_ydxd::y , byte bitmap_line_ydxd::x , byte bitmap_line_ydxd::y1 , byte bitmap_line_ydxd::yd , byte bitmap_line_ydxd::xd) byte bitmap_line_ydxd::e byte bitmap_line_ydxd::e#0 2002.0 byte bitmap_line_ydxd::e#1 133334.66666666666 byte bitmap_line_ydxd::e#2 200002.0 byte bitmap_line_ydxd::e#3 40200.600000000006 byte bitmap_line_ydxd::e#6 150001.5 byte bitmap_line_ydxd::x byte bitmap_line_ydxd::x#2 100001.0 byte bitmap_line_ydxd::x#3 57143.42857142857 byte bitmap_line_ydxd::x#6 150001.5 byte bitmap_line_ydxd::xd byte bitmap_line_ydxd::xd#0 7777.153846153846 byte bitmap_line_ydxd::y byte bitmap_line_ydxd::y#2 75000.75 byte bitmap_line_ydxd::y#3 42857.57142857143 byte bitmap_line_ydxd::y1 byte bitmap_line_ydxd::yd void bitmap_line_ydxi(byte bitmap_line_ydxi::y , byte bitmap_line_ydxi::x , byte bitmap_line_ydxi::y1 , byte bitmap_line_ydxi::yd , byte bitmap_line_ydxi::xd) byte bitmap_line_ydxi::e byte bitmap_line_ydxi::e#0 2002.0 byte bitmap_line_ydxi::e#1 133334.66666666666 byte bitmap_line_ydxi::e#2 200002.0 byte bitmap_line_ydxi::e#3 40200.600000000006 byte bitmap_line_ydxi::e#6 150001.5 byte bitmap_line_ydxi::x byte bitmap_line_ydxi::x#2 100001.0 byte bitmap_line_ydxi::x#3 57143.42857142857 byte bitmap_line_ydxi::x#6 150001.5 byte bitmap_line_ydxi::xd byte bitmap_line_ydxi::xd#1 7777.153846153846 byte bitmap_line_ydxi::y byte bitmap_line_ydxi::y#2 42857.57142857143 byte bitmap_line_ydxi::y#3 75000.75 byte bitmap_line_ydxi::y1 byte bitmap_line_ydxi::yd void bitmap_plot(byte bitmap_plot::x , byte bitmap_plot::y) byte~ bitmap_plot::$1 2000002.0 byte* bitmap_plot::plotter word bitmap_plot::plotter#0 500000.5 word bitmap_plot::plotter_x word bitmap_plot::plotter_x#0 1000001.0 word bitmap_plot::plotter_y word bitmap_plot::plotter_y#0 2000002.0 byte bitmap_plot::x byte bitmap_plot::x#0 100001.0 byte bitmap_plot::x#1 100001.0 byte bitmap_plot::x#2 100001.0 byte bitmap_plot::x#3 100001.0 byte bitmap_plot::x#4 850001.75 byte bitmap_plot::y byte bitmap_plot::y#0 200002.0 byte bitmap_plot::y#1 200002.0 byte bitmap_plot::y#2 200002.0 byte bitmap_plot::y#3 200002.0 byte bitmap_plot::y#4 1200003.0 void init_screen() byte* init_screen::c byte* init_screen::c#1 202.0 byte* init_screen::c#2 134.66666666666666 void main() byte next byte next#0 22.0 byte next#5 11.0 Initial phi equivalence classes [ next#5 next#0 ] [ bitmap_init::x#2 bitmap_init::x#1 ] [ bitmap_init::bits#3 bitmap_init::bits#4 bitmap_init::bits#1 ] [ bitmap_init::y#2 bitmap_init::y#1 ] [ bitmap_init::yoffs#2 bitmap_init::yoffs#4 bitmap_init::yoffs#1 ] [ bitmap_clear::y#4 bitmap_clear::y#1 ] [ bitmap_clear::bitmap#2 bitmap_clear::bitmap#3 bitmap_clear::bitmap#5 bitmap_clear::bitmap#1 ] [ bitmap_clear::x#2 bitmap_clear::x#1 ] [ init_screen::c#2 init_screen::c#1 ] [ bitmap_line_ydxd::x#3 bitmap_line_ydxd::x#6 bitmap_line_ydxd::x#2 ] [ bitmap_line_ydxd::y#2 bitmap_line_ydxd::y#3 ] [ bitmap_line_ydxd::e#3 bitmap_line_ydxd::e#0 bitmap_line_ydxd::e#6 bitmap_line_ydxd::e#2 bitmap_line_ydxd::e#1 ] [ bitmap_line_xdyd::x#3 bitmap_line_xdyd::x#0 bitmap_line_xdyd::x#2 ] [ bitmap_line_xdyd::y#3 bitmap_line_xdyd::y#6 bitmap_line_xdyd::y#2 ] [ bitmap_line_xdyd::e#3 bitmap_line_xdyd::e#6 bitmap_line_xdyd::e#2 bitmap_line_xdyd::e#1 ] [ bitmap_line_ydxi::x#3 bitmap_line_ydxi::x#6 bitmap_line_ydxi::x#2 ] [ bitmap_line_ydxi::y#3 bitmap_line_ydxi::y#2 ] [ bitmap_line_ydxi::e#3 bitmap_line_ydxi::e#0 bitmap_line_ydxi::e#6 bitmap_line_ydxi::e#2 bitmap_line_ydxi::e#1 ] [ bitmap_line_xdyi::x#3 bitmap_line_xdyi::x#2 ] [ bitmap_line_xdyi::y#3 bitmap_line_xdyi::y#6 bitmap_line_xdyi::y#2 ] [ bitmap_line_xdyi::e#3 bitmap_line_xdyi::e#6 bitmap_line_xdyi::e#2 bitmap_line_xdyi::e#1 ] [ bitmap_plot::x#4 bitmap_plot::x#1 bitmap_plot::x#0 bitmap_plot::x#3 bitmap_plot::x#2 ] [ bitmap_plot::y#4 bitmap_plot::y#1 bitmap_plot::y#0 bitmap_plot::y#3 bitmap_plot::y#2 ] Added variable bitmap_line::x1#0 to live range equivalence class [ bitmap_line::x1#0 ] Added variable bitmap_init::$0 to live range equivalence class [ bitmap_init::$0 ] Added variable bitmap_init::$10 to live range equivalence class [ bitmap_init::$10 ] Added variable bitmap_init::$7 to live range equivalence class [ bitmap_init::$7 ] Added variable bitmap_init::$8 to live range equivalence class [ bitmap_init::$8 ] Added variable bitmap_init::$9 to live range equivalence class [ bitmap_init::$9 ] Added variable bitmap_clear::bitmap#0 to live range equivalence class [ bitmap_clear::bitmap#0 ] Added variable bitmap_line::xd#2 to live range equivalence class [ bitmap_line::xd#2 ] Added variable bitmap_line_ydxd::xd#0 to live range equivalence class [ bitmap_line_ydxd::xd#0 ] Added variable bitmap_line_xdyd::xd#0 to live range equivalence class [ bitmap_line_xdyd::xd#0 ] Added variable bitmap_line::xd#1 to live range equivalence class [ bitmap_line::xd#1 ] Added variable bitmap_line_ydxi::xd#1 to live range equivalence class [ bitmap_line_ydxi::xd#1 ] Added variable bitmap_line_xdyi::x1#1 to live range equivalence class [ bitmap_line_xdyi::x1#1 ] Added variable bitmap_line_xdyi::xd#1 to live range equivalence class [ bitmap_line_xdyi::xd#1 ] Added variable bitmap_line_xdyi::$6 to live range equivalence class [ bitmap_line_xdyi::$6 ] Added variable bitmap_plot::plotter_x#0 to live range equivalence class [ bitmap_plot::plotter_x#0 ] Added variable bitmap_plot::plotter_y#0 to live range equivalence class [ bitmap_plot::plotter_y#0 ] Added variable bitmap_plot::plotter#0 to live range equivalence class [ bitmap_plot::plotter#0 ] Added variable bitmap_plot::$1 to live range equivalence class [ bitmap_plot::$1 ] Complete equivalence classes [ next#5 next#0 ] [ bitmap_init::x#2 bitmap_init::x#1 ] [ bitmap_init::bits#3 bitmap_init::bits#4 bitmap_init::bits#1 ] [ bitmap_init::y#2 bitmap_init::y#1 ] [ bitmap_init::yoffs#2 bitmap_init::yoffs#4 bitmap_init::yoffs#1 ] [ bitmap_clear::y#4 bitmap_clear::y#1 ] [ bitmap_clear::bitmap#2 bitmap_clear::bitmap#3 bitmap_clear::bitmap#5 bitmap_clear::bitmap#1 ] [ bitmap_clear::x#2 bitmap_clear::x#1 ] [ init_screen::c#2 init_screen::c#1 ] [ bitmap_line_ydxd::x#3 bitmap_line_ydxd::x#6 bitmap_line_ydxd::x#2 ] [ bitmap_line_ydxd::y#2 bitmap_line_ydxd::y#3 ] [ bitmap_line_ydxd::e#3 bitmap_line_ydxd::e#0 bitmap_line_ydxd::e#6 bitmap_line_ydxd::e#2 bitmap_line_ydxd::e#1 ] [ bitmap_line_xdyd::x#3 bitmap_line_xdyd::x#0 bitmap_line_xdyd::x#2 ] [ bitmap_line_xdyd::y#3 bitmap_line_xdyd::y#6 bitmap_line_xdyd::y#2 ] [ bitmap_line_xdyd::e#3 bitmap_line_xdyd::e#6 bitmap_line_xdyd::e#2 bitmap_line_xdyd::e#1 ] [ bitmap_line_ydxi::x#3 bitmap_line_ydxi::x#6 bitmap_line_ydxi::x#2 ] [ bitmap_line_ydxi::y#3 bitmap_line_ydxi::y#2 ] [ bitmap_line_ydxi::e#3 bitmap_line_ydxi::e#0 bitmap_line_ydxi::e#6 bitmap_line_ydxi::e#2 bitmap_line_ydxi::e#1 ] [ bitmap_line_xdyi::x#3 bitmap_line_xdyi::x#2 ] [ bitmap_line_xdyi::y#3 bitmap_line_xdyi::y#6 bitmap_line_xdyi::y#2 ] [ bitmap_line_xdyi::e#3 bitmap_line_xdyi::e#6 bitmap_line_xdyi::e#2 bitmap_line_xdyi::e#1 ] [ bitmap_plot::x#4 bitmap_plot::x#1 bitmap_plot::x#0 bitmap_plot::x#3 bitmap_plot::x#2 ] [ bitmap_plot::y#4 bitmap_plot::y#1 bitmap_plot::y#0 bitmap_plot::y#3 bitmap_plot::y#2 ] [ bitmap_line::x1#0 ] [ bitmap_init::$0 ] [ bitmap_init::$10 ] [ bitmap_init::$7 ] [ bitmap_init::$8 ] [ bitmap_init::$9 ] [ bitmap_clear::bitmap#0 ] [ bitmap_line::xd#2 ] [ bitmap_line_ydxd::xd#0 ] [ bitmap_line_xdyd::xd#0 ] [ bitmap_line::xd#1 ] [ bitmap_line_ydxi::xd#1 ] [ bitmap_line_xdyi::x1#1 ] [ bitmap_line_xdyi::xd#1 ] [ bitmap_line_xdyi::$6 ] [ bitmap_plot::plotter_x#0 ] [ bitmap_plot::plotter_y#0 ] [ bitmap_plot::plotter#0 ] [ bitmap_plot::$1 ] Allocated zp[1]:2 [ next#5 next#0 ] Allocated zp[1]:3 [ bitmap_init::x#2 bitmap_init::x#1 ] Allocated zp[1]:4 [ bitmap_init::bits#3 bitmap_init::bits#4 bitmap_init::bits#1 ] Allocated zp[1]:5 [ bitmap_init::y#2 bitmap_init::y#1 ] Allocated zp[2]:6 [ bitmap_init::yoffs#2 bitmap_init::yoffs#4 bitmap_init::yoffs#1 ] Allocated zp[1]:8 [ bitmap_clear::y#4 bitmap_clear::y#1 ] Allocated zp[2]:9 [ bitmap_clear::bitmap#2 bitmap_clear::bitmap#3 bitmap_clear::bitmap#5 bitmap_clear::bitmap#1 ] Allocated zp[1]:11 [ bitmap_clear::x#2 bitmap_clear::x#1 ] Allocated zp[2]:12 [ init_screen::c#2 init_screen::c#1 ] Allocated zp[1]:14 [ bitmap_line_ydxd::x#3 bitmap_line_ydxd::x#6 bitmap_line_ydxd::x#2 ] Allocated zp[1]:15 [ bitmap_line_ydxd::y#2 bitmap_line_ydxd::y#3 ] Allocated zp[1]:16 [ bitmap_line_ydxd::e#3 bitmap_line_ydxd::e#0 bitmap_line_ydxd::e#6 bitmap_line_ydxd::e#2 bitmap_line_ydxd::e#1 ] Allocated zp[1]:17 [ bitmap_line_xdyd::x#3 bitmap_line_xdyd::x#0 bitmap_line_xdyd::x#2 ] Allocated zp[1]:18 [ bitmap_line_xdyd::y#3 bitmap_line_xdyd::y#6 bitmap_line_xdyd::y#2 ] Allocated zp[1]:19 [ bitmap_line_xdyd::e#3 bitmap_line_xdyd::e#6 bitmap_line_xdyd::e#2 bitmap_line_xdyd::e#1 ] Allocated zp[1]:20 [ bitmap_line_ydxi::x#3 bitmap_line_ydxi::x#6 bitmap_line_ydxi::x#2 ] Allocated zp[1]:21 [ bitmap_line_ydxi::y#3 bitmap_line_ydxi::y#2 ] Allocated zp[1]:22 [ bitmap_line_ydxi::e#3 bitmap_line_ydxi::e#0 bitmap_line_ydxi::e#6 bitmap_line_ydxi::e#2 bitmap_line_ydxi::e#1 ] Allocated zp[1]:23 [ bitmap_line_xdyi::x#3 bitmap_line_xdyi::x#2 ] Allocated zp[1]:24 [ bitmap_line_xdyi::y#3 bitmap_line_xdyi::y#6 bitmap_line_xdyi::y#2 ] Allocated zp[1]:25 [ bitmap_line_xdyi::e#3 bitmap_line_xdyi::e#6 bitmap_line_xdyi::e#2 bitmap_line_xdyi::e#1 ] Allocated zp[1]:26 [ bitmap_plot::x#4 bitmap_plot::x#1 bitmap_plot::x#0 bitmap_plot::x#3 bitmap_plot::x#2 ] Allocated zp[1]:27 [ bitmap_plot::y#4 bitmap_plot::y#1 bitmap_plot::y#0 bitmap_plot::y#3 bitmap_plot::y#2 ] Allocated zp[1]:28 [ bitmap_line::x1#0 ] Allocated zp[1]:29 [ bitmap_init::$0 ] Allocated zp[1]:30 [ bitmap_init::$10 ] Allocated zp[1]:31 [ bitmap_init::$7 ] Allocated zp[1]:32 [ bitmap_init::$8 ] Allocated zp[1]:33 [ bitmap_init::$9 ] Allocated zp[2]:34 [ bitmap_clear::bitmap#0 ] Allocated zp[1]:36 [ bitmap_line::xd#2 ] Allocated zp[1]:37 [ bitmap_line_ydxd::xd#0 ] Allocated zp[1]:38 [ bitmap_line_xdyd::xd#0 ] Allocated zp[1]:39 [ bitmap_line::xd#1 ] Allocated zp[1]:40 [ bitmap_line_ydxi::xd#1 ] Allocated zp[1]:41 [ bitmap_line_xdyi::x1#1 ] Allocated zp[1]:42 [ bitmap_line_xdyi::xd#1 ] Allocated zp[1]:43 [ bitmap_line_xdyi::$6 ] Allocated zp[2]:44 [ bitmap_plot::plotter_x#0 ] Allocated zp[2]:46 [ bitmap_plot::plotter_y#0 ] Allocated zp[2]:48 [ bitmap_plot::plotter#0 ] Allocated zp[1]:50 [ bitmap_plot::$1 ] REGISTER UPLIFT POTENTIAL REGISTERS Equivalence Class zp[1]:31 [ bitmap_init::$7 ] has ALU potential. Statement [0] *BORDER_COLOR = 0 [ ] ( [ ] { } ) always clobbers reg byte a Statement [1] *BG_COLOR = 0 [ ] ( [ ] { } ) always clobbers reg byte a Statement [2] *D011 = VICII_BMM|VICII_DEN|VICII_RSEL|3 [ ] ( [ ] { } ) always clobbers reg byte a Statement [3] *VICII_MEMORY = (byte)(word)SCREEN&$3fff/$40|(word)BITMAP&$3fff/$400 [ ] ( [ ] { } ) always clobbers reg byte a Statement [17] bitmap_plot_xhi[bitmap_init::x#2] = >BITMAP [ bitmap_init::x#2 bitmap_init::bits#3 ] ( bitmap_init:4 [ bitmap_init::x#2 bitmap_init::bits#3 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:3 [ bitmap_init::x#2 bitmap_init::x#1 ] Removing always clobbered register reg byte a as potential for zp[1]:4 [ bitmap_init::bits#3 bitmap_init::bits#4 bitmap_init::bits#1 ] Statement [18] bitmap_plot_bit[bitmap_init::x#2] = bitmap_init::bits#3 [ bitmap_init::x#2 bitmap_init::bits#3 ] ( bitmap_init:4 [ bitmap_init::x#2 bitmap_init::bits#3 ] { } ) always clobbers reg byte a Statement [33] bitmap_init::yoffs#1 = bitmap_init::yoffs#2 + (word)$28*8 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] ( bitmap_init:4 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:5 [ bitmap_init::y#2 bitmap_init::y#1 ] Statement [38] bitmap_clear::bitmap#0 = *bitmap_plot_xhi w= *bitmap_plot_xlo [ bitmap_clear::bitmap#0 ] ( bitmap_clear:6 [ bitmap_clear::bitmap#0 ] { } ) always clobbers reg byte a Statement [39] bitmap_clear::bitmap#5 = (byte*)bitmap_clear::bitmap#0 [ bitmap_clear::bitmap#5 ] ( bitmap_clear:6 [ bitmap_clear::bitmap#5 ] { } ) always clobbers reg byte a Statement [42] *bitmap_clear::bitmap#2 = 0 [ bitmap_clear::y#4 bitmap_clear::bitmap#2 bitmap_clear::x#2 ] ( bitmap_clear:6 [ bitmap_clear::y#4 bitmap_clear::bitmap#2 bitmap_clear::x#2 ] { } ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte a as potential for zp[1]:8 [ bitmap_clear::y#4 bitmap_clear::y#1 ] Removing always clobbered register reg byte y as potential for zp[1]:8 [ bitmap_clear::y#4 bitmap_clear::y#1 ] Removing always clobbered register reg byte a as potential for zp[1]:11 [ bitmap_clear::x#2 bitmap_clear::x#1 ] Removing always clobbered register reg byte y as potential for zp[1]:11 [ bitmap_clear::x#2 bitmap_clear::x#1 ] Statement [51] if(init_screen::c#2!=SCREEN+$400) goto init_screen::@2 [ init_screen::c#2 ] ( init_screen:8 [ init_screen::c#2 ] { } ) always clobbers reg byte a Statement [53] *init_screen::c#2 = $14 [ init_screen::c#2 ] ( init_screen:8 [ init_screen::c#2 ] { } ) always clobbers reg byte a reg byte y Statement [71] bitmap_line_ydxd::e#0 = bitmap_line_ydxd::xd#0 >> 1 [ bitmap_line_ydxd::xd#0 bitmap_line_ydxd::e#0 ] ( bitmap_line:11::bitmap_line_ydxd:59 [ next#5 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::e#0 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxd::xd#0 = bitmap_line::xd#2 } } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:2 [ next#5 next#0 ] Removing always clobbered register reg byte a as potential for zp[1]:37 [ bitmap_line_ydxd::xd#0 ] Statement [77] bitmap_line_ydxd::e#1 = bitmap_line_ydxd::e#3 + bitmap_line_ydxd::xd#0 [ bitmap_line_ydxd::xd#0 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 ] ( bitmap_line:11::bitmap_line_ydxd:59 [ next#5 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxd::xd#0 = bitmap_line::xd#2 } } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:14 [ bitmap_line_ydxd::x#3 bitmap_line_ydxd::x#6 bitmap_line_ydxd::x#2 ] Removing always clobbered register reg byte a as potential for zp[1]:15 [ bitmap_line_ydxd::y#2 bitmap_line_ydxd::y#3 ] Statement [80] bitmap_line_ydxd::e#2 = bitmap_line_ydxd::e#1 - bitmap_line::y1#0 [ bitmap_line_ydxd::xd#0 bitmap_line_ydxd::y#3 bitmap_line_ydxd::x#2 bitmap_line_ydxd::e#2 ] ( bitmap_line:11::bitmap_line_ydxd:59 [ next#5 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::y#3 bitmap_line_ydxd::x#2 bitmap_line_ydxd::e#2 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxd::xd#0 = bitmap_line::xd#2 } } ) always clobbers reg byte a Statement [90] bitmap_line_xdyd::e#1 = bitmap_line_xdyd::e#3 + bitmap_line::y1#0 [ bitmap_line_xdyd::xd#0 bitmap_line_xdyd::y#3 bitmap_line_xdyd::x#2 bitmap_line_xdyd::e#1 ] ( bitmap_line:11::bitmap_line_xdyd:63 [ next#5 bitmap_line_xdyd::xd#0 bitmap_line_xdyd::y#3 bitmap_line_xdyd::x#2 bitmap_line_xdyd::e#1 ] { { next#5 = bitmap_line::x1#0 bitmap_line_xdyd::x#0 } { bitmap_line_xdyd::xd#0 = bitmap_line::xd#2 } } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:38 [ bitmap_line_xdyd::xd#0 ] Removing always clobbered register reg byte a as potential for zp[1]:18 [ bitmap_line_xdyd::y#3 bitmap_line_xdyd::y#6 bitmap_line_xdyd::y#2 ] Removing always clobbered register reg byte a as potential for zp[1]:17 [ bitmap_line_xdyd::x#3 bitmap_line_xdyd::x#0 bitmap_line_xdyd::x#2 ] Statement [93] bitmap_line_xdyd::e#2 = bitmap_line_xdyd::e#1 - bitmap_line_xdyd::xd#0 [ bitmap_line_xdyd::xd#0 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#2 bitmap_line_xdyd::e#2 ] ( bitmap_line:11::bitmap_line_xdyd:63 [ next#5 bitmap_line_xdyd::xd#0 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#2 bitmap_line_xdyd::e#2 ] { { next#5 = bitmap_line::x1#0 bitmap_line_xdyd::x#0 } { bitmap_line_xdyd::xd#0 = bitmap_line::xd#2 } } ) always clobbers reg byte a Statement [97] bitmap_line_ydxi::e#0 = bitmap_line_ydxi::xd#1 >> 1 [ bitmap_line_ydxi::xd#1 bitmap_line_ydxi::e#0 ] ( bitmap_line:11::bitmap_line_ydxi:67 [ next#5 bitmap_line_ydxi::xd#1 bitmap_line_ydxi::e#0 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxi::xd#1 = bitmap_line::xd#1 } } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:40 [ bitmap_line_ydxi::xd#1 ] Statement [103] bitmap_line_ydxi::e#1 = bitmap_line_ydxi::e#3 + bitmap_line_ydxi::xd#1 [ bitmap_line_ydxi::xd#1 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#1 ] ( bitmap_line:11::bitmap_line_ydxi:67 [ next#5 bitmap_line_ydxi::xd#1 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#1 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxi::xd#1 = bitmap_line::xd#1 } } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:20 [ bitmap_line_ydxi::x#3 bitmap_line_ydxi::x#6 bitmap_line_ydxi::x#2 ] Removing always clobbered register reg byte a as potential for zp[1]:21 [ bitmap_line_ydxi::y#3 bitmap_line_ydxi::y#2 ] Statement [106] bitmap_line_ydxi::e#2 = bitmap_line_ydxi::e#1 - bitmap_line::y1#0 [ bitmap_line_ydxi::xd#1 bitmap_line_ydxi::y#2 bitmap_line_ydxi::x#2 bitmap_line_ydxi::e#2 ] ( bitmap_line:11::bitmap_line_ydxi:67 [ next#5 bitmap_line_ydxi::xd#1 bitmap_line_ydxi::y#2 bitmap_line_ydxi::x#2 bitmap_line_ydxi::e#2 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxi::xd#1 = bitmap_line::xd#1 } } ) always clobbers reg byte a Statement [116] bitmap_line_xdyi::e#1 = bitmap_line_xdyi::e#3 + bitmap_line::y1#0 [ bitmap_line_xdyi::x1#1 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::y#3 bitmap_line_xdyi::x#2 bitmap_line_xdyi::e#1 ] ( bitmap_line:11::bitmap_line_xdyi:70 [ next#5 bitmap_line_xdyi::x1#1 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::y#3 bitmap_line_xdyi::x#2 bitmap_line_xdyi::e#1 ] { { next#5 = bitmap_line::x1#0 bitmap_line_xdyi::x1#1 } { bitmap_line_xdyi::xd#1 = bitmap_line::xd#1 } } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:41 [ bitmap_line_xdyi::x1#1 ] Removing always clobbered register reg byte a as potential for zp[1]:42 [ bitmap_line_xdyi::xd#1 ] Removing always clobbered register reg byte a as potential for zp[1]:24 [ bitmap_line_xdyi::y#3 bitmap_line_xdyi::y#6 bitmap_line_xdyi::y#2 ] Removing always clobbered register reg byte a as potential for zp[1]:23 [ bitmap_line_xdyi::x#3 bitmap_line_xdyi::x#2 ] Statement [119] bitmap_line_xdyi::e#2 = bitmap_line_xdyi::e#1 - bitmap_line_xdyi::xd#1 [ bitmap_line_xdyi::x1#1 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#2 bitmap_line_xdyi::e#2 ] ( bitmap_line:11::bitmap_line_xdyi:70 [ next#5 bitmap_line_xdyi::x1#1 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#2 bitmap_line_xdyi::e#2 ] { { next#5 = bitmap_line::x1#0 bitmap_line_xdyi::x1#1 } { bitmap_line_xdyi::xd#1 = bitmap_line::xd#1 } } ) always clobbers reg byte a Statement [125] bitmap_plot::plotter_x#0 = bitmap_plot_xhi[bitmap_plot::x#4] w= bitmap_plot_xlo[bitmap_plot::x#4] [ bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] ( bitmap_line:11::bitmap_line_ydxd:59::bitmap_plot:75 [ next#5 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxd::xd#0 = bitmap_line::xd#2 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line_ydxd::x#3 } { bitmap_plot::y#3 = bitmap_plot::y#4 bitmap_line_ydxd::y#2 } } bitmap_line:11::bitmap_line_xdyd:63::bitmap_plot:88 [ next#5 bitmap_line_xdyd::xd#0 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] { { next#5 = bitmap_line::x1#0 bitmap_line_xdyd::x#0 } { bitmap_line_xdyd::xd#0 = bitmap_line::xd#2 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line_xdyd::x#3 } { bitmap_plot::y#1 = bitmap_plot::y#4 bitmap_line_xdyd::y#3 } } bitmap_line:11::bitmap_line_ydxi:67::bitmap_plot:101 [ next#5 bitmap_line_ydxi::xd#1 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxi::xd#1 = bitmap_line::xd#1 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line_ydxi::x#3 } { bitmap_plot::y#2 = bitmap_plot::y#4 bitmap_line_ydxi::y#3 } } bitmap_line:11::bitmap_line_xdyi:70::bitmap_plot:114 [ next#5 bitmap_line_xdyi::x1#1 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] { { next#5 = bitmap_line::x1#0 bitmap_line_xdyi::x1#1 } { bitmap_line_xdyi::xd#1 = bitmap_line::xd#1 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line_xdyi::x#3 } { bitmap_plot::y#0 = bitmap_plot::y#4 bitmap_line_xdyi::y#3 } } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:16 [ bitmap_line_ydxd::e#3 bitmap_line_ydxd::e#0 bitmap_line_ydxd::e#6 bitmap_line_ydxd::e#2 bitmap_line_ydxd::e#1 ] Removing always clobbered register reg byte a as potential for zp[1]:26 [ bitmap_plot::x#4 bitmap_plot::x#1 bitmap_plot::x#0 bitmap_plot::x#3 bitmap_plot::x#2 ] Removing always clobbered register reg byte a as potential for zp[1]:27 [ bitmap_plot::y#4 bitmap_plot::y#1 bitmap_plot::y#0 bitmap_plot::y#3 bitmap_plot::y#2 ] Removing always clobbered register reg byte a as potential for zp[1]:19 [ bitmap_line_xdyd::e#3 bitmap_line_xdyd::e#6 bitmap_line_xdyd::e#2 bitmap_line_xdyd::e#1 ] Removing always clobbered register reg byte a as potential for zp[1]:22 [ bitmap_line_ydxi::e#3 bitmap_line_ydxi::e#0 bitmap_line_ydxi::e#6 bitmap_line_ydxi::e#2 bitmap_line_ydxi::e#1 ] Removing always clobbered register reg byte a as potential for zp[1]:25 [ bitmap_line_xdyi::e#3 bitmap_line_xdyi::e#6 bitmap_line_xdyi::e#2 bitmap_line_xdyi::e#1 ] Statement [126] bitmap_plot::plotter_y#0 = bitmap_plot_yhi[bitmap_plot::y#4] w= bitmap_plot_ylo[bitmap_plot::y#4] [ bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] ( bitmap_line:11::bitmap_line_ydxd:59::bitmap_plot:75 [ next#5 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxd::xd#0 = bitmap_line::xd#2 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line_ydxd::x#3 } { bitmap_plot::y#3 = bitmap_plot::y#4 bitmap_line_ydxd::y#2 } } bitmap_line:11::bitmap_line_xdyd:63::bitmap_plot:88 [ next#5 bitmap_line_xdyd::xd#0 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] { { next#5 = bitmap_line::x1#0 bitmap_line_xdyd::x#0 } { bitmap_line_xdyd::xd#0 = bitmap_line::xd#2 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line_xdyd::x#3 } { bitmap_plot::y#1 = bitmap_plot::y#4 bitmap_line_xdyd::y#3 } } bitmap_line:11::bitmap_line_ydxi:67::bitmap_plot:101 [ next#5 bitmap_line_ydxi::xd#1 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxi::xd#1 = bitmap_line::xd#1 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line_ydxi::x#3 } { bitmap_plot::y#2 = bitmap_plot::y#4 bitmap_line_ydxi::y#3 } } bitmap_line:11::bitmap_line_xdyi:70::bitmap_plot:114 [ next#5 bitmap_line_xdyi::x1#1 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] { { next#5 = bitmap_line::x1#0 bitmap_line_xdyi::x1#1 } { bitmap_line_xdyi::xd#1 = bitmap_line::xd#1 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line_xdyi::x#3 } { bitmap_plot::y#0 = bitmap_plot::y#4 bitmap_line_xdyi::y#3 } } ) always clobbers reg byte a Statement [127] bitmap_plot::plotter#0 = bitmap_plot::plotter_x#0 + bitmap_plot::plotter_y#0 [ bitmap_plot::x#4 bitmap_plot::plotter#0 ] ( bitmap_line:11::bitmap_line_ydxd:59::bitmap_plot:75 [ next#5 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::plotter#0 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxd::xd#0 = bitmap_line::xd#2 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line_ydxd::x#3 } { bitmap_plot::y#3 = bitmap_plot::y#4 bitmap_line_ydxd::y#2 } } bitmap_line:11::bitmap_line_xdyd:63::bitmap_plot:88 [ next#5 bitmap_line_xdyd::xd#0 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::plotter#0 ] { { next#5 = bitmap_line::x1#0 bitmap_line_xdyd::x#0 } { bitmap_line_xdyd::xd#0 = bitmap_line::xd#2 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line_xdyd::x#3 } { bitmap_plot::y#1 = bitmap_plot::y#4 bitmap_line_xdyd::y#3 } } bitmap_line:11::bitmap_line_ydxi:67::bitmap_plot:101 [ next#5 bitmap_line_ydxi::xd#1 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::plotter#0 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxi::xd#1 = bitmap_line::xd#1 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line_ydxi::x#3 } { bitmap_plot::y#2 = bitmap_plot::y#4 bitmap_line_ydxi::y#3 } } bitmap_line:11::bitmap_line_xdyi:70::bitmap_plot:114 [ next#5 bitmap_line_xdyi::x1#1 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::plotter#0 ] { { next#5 = bitmap_line::x1#0 bitmap_line_xdyi::x1#1 } { bitmap_line_xdyi::xd#1 = bitmap_line::xd#1 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line_xdyi::x#3 } { bitmap_plot::y#0 = bitmap_plot::y#4 bitmap_line_xdyi::y#3 } } ) always clobbers reg byte a Statement [128] bitmap_plot::$1 = *((byte*)bitmap_plot::plotter#0) | bitmap_plot_bit[bitmap_plot::x#4] [ bitmap_plot::plotter#0 bitmap_plot::$1 ] ( bitmap_line:11::bitmap_line_ydxd:59::bitmap_plot:75 [ next#5 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::plotter#0 bitmap_plot::$1 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxd::xd#0 = bitmap_line::xd#2 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line_ydxd::x#3 } { bitmap_plot::y#3 = bitmap_plot::y#4 bitmap_line_ydxd::y#2 } } bitmap_line:11::bitmap_line_xdyd:63::bitmap_plot:88 [ next#5 bitmap_line_xdyd::xd#0 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::plotter#0 bitmap_plot::$1 ] { { next#5 = bitmap_line::x1#0 bitmap_line_xdyd::x#0 } { bitmap_line_xdyd::xd#0 = bitmap_line::xd#2 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line_xdyd::x#3 } { bitmap_plot::y#1 = bitmap_plot::y#4 bitmap_line_xdyd::y#3 } } bitmap_line:11::bitmap_line_ydxi:67::bitmap_plot:101 [ next#5 bitmap_line_ydxi::xd#1 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::plotter#0 bitmap_plot::$1 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxi::xd#1 = bitmap_line::xd#1 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line_ydxi::x#3 } { bitmap_plot::y#2 = bitmap_plot::y#4 bitmap_line_ydxi::y#3 } } bitmap_line:11::bitmap_line_xdyi:70::bitmap_plot:114 [ next#5 bitmap_line_xdyi::x1#1 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::plotter#0 bitmap_plot::$1 ] { { next#5 = bitmap_line::x1#0 bitmap_line_xdyi::x1#1 } { bitmap_line_xdyi::xd#1 = bitmap_line::xd#1 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line_xdyi::x#3 } { bitmap_plot::y#0 = bitmap_plot::y#4 bitmap_line_xdyi::y#3 } } ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte y as potential for zp[1]:2 [ next#5 next#0 ] Removing always clobbered register reg byte y as potential for zp[1]:37 [ bitmap_line_ydxd::xd#0 ] Removing always clobbered register reg byte y as potential for zp[1]:14 [ bitmap_line_ydxd::x#3 bitmap_line_ydxd::x#6 bitmap_line_ydxd::x#2 ] Removing always clobbered register reg byte y as potential for zp[1]:15 [ bitmap_line_ydxd::y#2 bitmap_line_ydxd::y#3 ] Removing always clobbered register reg byte y as potential for zp[1]:16 [ bitmap_line_ydxd::e#3 bitmap_line_ydxd::e#0 bitmap_line_ydxd::e#6 bitmap_line_ydxd::e#2 bitmap_line_ydxd::e#1 ] Removing always clobbered register reg byte y as potential for zp[1]:38 [ bitmap_line_xdyd::xd#0 ] Removing always clobbered register reg byte y as potential for zp[1]:17 [ bitmap_line_xdyd::x#3 bitmap_line_xdyd::x#0 bitmap_line_xdyd::x#2 ] Removing always clobbered register reg byte y as potential for zp[1]:18 [ bitmap_line_xdyd::y#3 bitmap_line_xdyd::y#6 bitmap_line_xdyd::y#2 ] Removing always clobbered register reg byte y as potential for zp[1]:19 [ bitmap_line_xdyd::e#3 bitmap_line_xdyd::e#6 bitmap_line_xdyd::e#2 bitmap_line_xdyd::e#1 ] Removing always clobbered register reg byte y as potential for zp[1]:40 [ bitmap_line_ydxi::xd#1 ] Removing always clobbered register reg byte y as potential for zp[1]:20 [ bitmap_line_ydxi::x#3 bitmap_line_ydxi::x#6 bitmap_line_ydxi::x#2 ] Removing always clobbered register reg byte y as potential for zp[1]:21 [ bitmap_line_ydxi::y#3 bitmap_line_ydxi::y#2 ] Removing always clobbered register reg byte y as potential for zp[1]:22 [ bitmap_line_ydxi::e#3 bitmap_line_ydxi::e#0 bitmap_line_ydxi::e#6 bitmap_line_ydxi::e#2 bitmap_line_ydxi::e#1 ] Removing always clobbered register reg byte y as potential for zp[1]:41 [ bitmap_line_xdyi::x1#1 ] Removing always clobbered register reg byte y as potential for zp[1]:42 [ bitmap_line_xdyi::xd#1 ] Removing always clobbered register reg byte y as potential for zp[1]:23 [ bitmap_line_xdyi::x#3 bitmap_line_xdyi::x#2 ] Removing always clobbered register reg byte y as potential for zp[1]:24 [ bitmap_line_xdyi::y#3 bitmap_line_xdyi::y#6 bitmap_line_xdyi::y#2 ] Removing always clobbered register reg byte y as potential for zp[1]:25 [ bitmap_line_xdyi::e#3 bitmap_line_xdyi::e#6 bitmap_line_xdyi::e#2 bitmap_line_xdyi::e#1 ] Statement [129] *((byte*)bitmap_plot::plotter#0) = bitmap_plot::$1 [ ] ( bitmap_line:11::bitmap_line_ydxd:59::bitmap_plot:75 [ next#5 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxd::xd#0 = bitmap_line::xd#2 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line_ydxd::x#3 } { bitmap_plot::y#3 = bitmap_plot::y#4 bitmap_line_ydxd::y#2 } } bitmap_line:11::bitmap_line_xdyd:63::bitmap_plot:88 [ next#5 bitmap_line_xdyd::xd#0 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] { { next#5 = bitmap_line::x1#0 bitmap_line_xdyd::x#0 } { bitmap_line_xdyd::xd#0 = bitmap_line::xd#2 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line_xdyd::x#3 } { bitmap_plot::y#1 = bitmap_plot::y#4 bitmap_line_xdyd::y#3 } } bitmap_line:11::bitmap_line_ydxi:67::bitmap_plot:101 [ next#5 bitmap_line_ydxi::xd#1 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxi::xd#1 = bitmap_line::xd#1 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line_ydxi::x#3 } { bitmap_plot::y#2 = bitmap_plot::y#4 bitmap_line_ydxi::y#3 } } bitmap_line:11::bitmap_line_xdyi:70::bitmap_plot:114 [ next#5 bitmap_line_xdyi::x1#1 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 ] { { next#5 = bitmap_line::x1#0 bitmap_line_xdyi::x1#1 } { bitmap_line_xdyi::xd#1 = bitmap_line::xd#1 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line_xdyi::x#3 } { bitmap_plot::y#0 = bitmap_plot::y#4 bitmap_line_xdyi::y#3 } } ) always clobbers reg byte y Statement [0] *BORDER_COLOR = 0 [ ] ( [ ] { } ) always clobbers reg byte a Statement [1] *BG_COLOR = 0 [ ] ( [ ] { } ) always clobbers reg byte a Statement [2] *D011 = VICII_BMM|VICII_DEN|VICII_RSEL|3 [ ] ( [ ] { } ) always clobbers reg byte a Statement [3] *VICII_MEMORY = (byte)(word)SCREEN&$3fff/$40|(word)BITMAP&$3fff/$400 [ ] ( [ ] { } ) always clobbers reg byte a Statement [15] bitmap_init::$0 = bitmap_init::x#2 & $f8 [ bitmap_init::x#2 bitmap_init::bits#3 bitmap_init::$0 ] ( bitmap_init:4 [ bitmap_init::x#2 bitmap_init::bits#3 bitmap_init::$0 ] { } ) always clobbers reg byte a Statement [17] bitmap_plot_xhi[bitmap_init::x#2] = >BITMAP [ bitmap_init::x#2 bitmap_init::bits#3 ] ( bitmap_init:4 [ bitmap_init::x#2 bitmap_init::bits#3 ] { } ) always clobbers reg byte a Statement [18] bitmap_plot_bit[bitmap_init::x#2] = bitmap_init::bits#3 [ bitmap_init::x#2 bitmap_init::bits#3 ] ( bitmap_init:4 [ bitmap_init::x#2 bitmap_init::bits#3 ] { } ) always clobbers reg byte a Statement [26] bitmap_init::$10 = bitmap_init::y#2 & 7 [ bitmap_init::y#2 bitmap_init::yoffs#2 bitmap_init::$10 ] ( bitmap_init:4 [ bitmap_init::y#2 bitmap_init::yoffs#2 bitmap_init::$10 ] { } ) always clobbers reg byte a Statement [33] bitmap_init::yoffs#1 = bitmap_init::yoffs#2 + (word)$28*8 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] ( bitmap_init:4 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] { } ) always clobbers reg byte a Statement [38] bitmap_clear::bitmap#0 = *bitmap_plot_xhi w= *bitmap_plot_xlo [ bitmap_clear::bitmap#0 ] ( bitmap_clear:6 [ bitmap_clear::bitmap#0 ] { } ) always clobbers reg byte a Statement [39] bitmap_clear::bitmap#5 = (byte*)bitmap_clear::bitmap#0 [ bitmap_clear::bitmap#5 ] ( bitmap_clear:6 [ bitmap_clear::bitmap#5 ] { } ) always clobbers reg byte a Statement [42] *bitmap_clear::bitmap#2 = 0 [ bitmap_clear::y#4 bitmap_clear::bitmap#2 bitmap_clear::x#2 ] ( bitmap_clear:6 [ bitmap_clear::y#4 bitmap_clear::bitmap#2 bitmap_clear::x#2 ] { } ) always clobbers reg byte a reg byte y Statement [51] if(init_screen::c#2!=SCREEN+$400) goto init_screen::@2 [ init_screen::c#2 ] ( init_screen:8 [ init_screen::c#2 ] { } ) always clobbers reg byte a Statement [53] *init_screen::c#2 = $14 [ init_screen::c#2 ] ( init_screen:8 [ init_screen::c#2 ] { } ) always clobbers reg byte a reg byte y Statement [71] bitmap_line_ydxd::e#0 = bitmap_line_ydxd::xd#0 >> 1 [ bitmap_line_ydxd::xd#0 bitmap_line_ydxd::e#0 ] ( bitmap_line:11::bitmap_line_ydxd:59 [ next#5 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::e#0 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxd::xd#0 = bitmap_line::xd#2 } } ) always clobbers reg byte a Statement [77] bitmap_line_ydxd::e#1 = bitmap_line_ydxd::e#3 + bitmap_line_ydxd::xd#0 [ bitmap_line_ydxd::xd#0 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 ] ( bitmap_line:11::bitmap_line_ydxd:59 [ next#5 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxd::xd#0 = bitmap_line::xd#2 } } ) always clobbers reg byte a Statement [80] bitmap_line_ydxd::e#2 = bitmap_line_ydxd::e#1 - bitmap_line::y1#0 [ bitmap_line_ydxd::xd#0 bitmap_line_ydxd::y#3 bitmap_line_ydxd::x#2 bitmap_line_ydxd::e#2 ] ( bitmap_line:11::bitmap_line_ydxd:59 [ next#5 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::y#3 bitmap_line_ydxd::x#2 bitmap_line_ydxd::e#2 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxd::xd#0 = bitmap_line::xd#2 } } ) always clobbers reg byte a reg byte x Removing always clobbered register reg byte x as potential for zp[1]:2 [ next#5 next#0 ] Removing always clobbered register reg byte x as potential for zp[1]:37 [ bitmap_line_ydxd::xd#0 ] Removing always clobbered register reg byte x as potential for zp[1]:15 [ bitmap_line_ydxd::y#2 bitmap_line_ydxd::y#3 ] Removing always clobbered register reg byte x as potential for zp[1]:14 [ bitmap_line_ydxd::x#3 bitmap_line_ydxd::x#6 bitmap_line_ydxd::x#2 ] Statement [82] if(bitmap_line_ydxd::y#3!=bitmap_line::y1#0+1) goto bitmap_line_ydxd::@1 [ bitmap_line_ydxd::xd#0 bitmap_line_ydxd::x#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#6 ] ( bitmap_line:11::bitmap_line_ydxd:59 [ next#5 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::x#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#6 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxd::xd#0 = bitmap_line::xd#2 } } ) always clobbers reg byte a Statement [90] bitmap_line_xdyd::e#1 = bitmap_line_xdyd::e#3 + bitmap_line::y1#0 [ bitmap_line_xdyd::xd#0 bitmap_line_xdyd::y#3 bitmap_line_xdyd::x#2 bitmap_line_xdyd::e#1 ] ( bitmap_line:11::bitmap_line_xdyd:63 [ next#5 bitmap_line_xdyd::xd#0 bitmap_line_xdyd::y#3 bitmap_line_xdyd::x#2 bitmap_line_xdyd::e#1 ] { { next#5 = bitmap_line::x1#0 bitmap_line_xdyd::x#0 } { bitmap_line_xdyd::xd#0 = bitmap_line::xd#2 } } ) always clobbers reg byte a reg byte x Removing always clobbered register reg byte x as potential for zp[1]:38 [ bitmap_line_xdyd::xd#0 ] Removing always clobbered register reg byte x as potential for zp[1]:18 [ bitmap_line_xdyd::y#3 bitmap_line_xdyd::y#6 bitmap_line_xdyd::y#2 ] Removing always clobbered register reg byte x as potential for zp[1]:17 [ bitmap_line_xdyd::x#3 bitmap_line_xdyd::x#0 bitmap_line_xdyd::x#2 ] Statement [91] if(bitmap_line_xdyd::xd#0>=bitmap_line_xdyd::e#1) goto bitmap_line_xdyd::@2 [ bitmap_line_xdyd::xd#0 bitmap_line_xdyd::y#3 bitmap_line_xdyd::x#2 bitmap_line_xdyd::e#1 ] ( bitmap_line:11::bitmap_line_xdyd:63 [ next#5 bitmap_line_xdyd::xd#0 bitmap_line_xdyd::y#3 bitmap_line_xdyd::x#2 bitmap_line_xdyd::e#1 ] { { next#5 = bitmap_line::x1#0 bitmap_line_xdyd::x#0 } { bitmap_line_xdyd::xd#0 = bitmap_line::xd#2 } } ) always clobbers reg byte a Statement [93] bitmap_line_xdyd::e#2 = bitmap_line_xdyd::e#1 - bitmap_line_xdyd::xd#0 [ bitmap_line_xdyd::xd#0 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#2 bitmap_line_xdyd::e#2 ] ( bitmap_line:11::bitmap_line_xdyd:63 [ next#5 bitmap_line_xdyd::xd#0 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#2 bitmap_line_xdyd::e#2 ] { { next#5 = bitmap_line::x1#0 bitmap_line_xdyd::x#0 } { bitmap_line_xdyd::xd#0 = bitmap_line::xd#2 } } ) always clobbers reg byte a Statement [95] if(bitmap_line_xdyd::x#2!=1) goto bitmap_line_xdyd::@1 [ bitmap_line_xdyd::xd#0 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#6 bitmap_line_xdyd::e#6 ] ( bitmap_line:11::bitmap_line_xdyd:63 [ next#5 bitmap_line_xdyd::xd#0 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#6 bitmap_line_xdyd::e#6 ] { { next#5 = bitmap_line::x1#0 bitmap_line_xdyd::x#0 } { bitmap_line_xdyd::xd#0 = bitmap_line::xd#2 } } ) always clobbers reg byte a Statement [97] bitmap_line_ydxi::e#0 = bitmap_line_ydxi::xd#1 >> 1 [ bitmap_line_ydxi::xd#1 bitmap_line_ydxi::e#0 ] ( bitmap_line:11::bitmap_line_ydxi:67 [ next#5 bitmap_line_ydxi::xd#1 bitmap_line_ydxi::e#0 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxi::xd#1 = bitmap_line::xd#1 } } ) always clobbers reg byte a Statement [103] bitmap_line_ydxi::e#1 = bitmap_line_ydxi::e#3 + bitmap_line_ydxi::xd#1 [ bitmap_line_ydxi::xd#1 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#1 ] ( bitmap_line:11::bitmap_line_ydxi:67 [ next#5 bitmap_line_ydxi::xd#1 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#1 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxi::xd#1 = bitmap_line::xd#1 } } ) always clobbers reg byte a Statement [106] bitmap_line_ydxi::e#2 = bitmap_line_ydxi::e#1 - bitmap_line::y1#0 [ bitmap_line_ydxi::xd#1 bitmap_line_ydxi::y#2 bitmap_line_ydxi::x#2 bitmap_line_ydxi::e#2 ] ( bitmap_line:11::bitmap_line_ydxi:67 [ next#5 bitmap_line_ydxi::xd#1 bitmap_line_ydxi::y#2 bitmap_line_ydxi::x#2 bitmap_line_ydxi::e#2 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxi::xd#1 = bitmap_line::xd#1 } } ) always clobbers reg byte a reg byte x Removing always clobbered register reg byte x as potential for zp[1]:40 [ bitmap_line_ydxi::xd#1 ] Removing always clobbered register reg byte x as potential for zp[1]:21 [ bitmap_line_ydxi::y#3 bitmap_line_ydxi::y#2 ] Removing always clobbered register reg byte x as potential for zp[1]:20 [ bitmap_line_ydxi::x#3 bitmap_line_ydxi::x#6 bitmap_line_ydxi::x#2 ] Statement [108] if(bitmap_line_ydxi::y#2!=bitmap_line::y1#0+1) goto bitmap_line_ydxi::@1 [ bitmap_line_ydxi::xd#1 bitmap_line_ydxi::x#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#6 ] ( bitmap_line:11::bitmap_line_ydxi:67 [ next#5 bitmap_line_ydxi::xd#1 bitmap_line_ydxi::x#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#6 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxi::xd#1 = bitmap_line::xd#1 } } ) always clobbers reg byte a Statement [116] bitmap_line_xdyi::e#1 = bitmap_line_xdyi::e#3 + bitmap_line::y1#0 [ bitmap_line_xdyi::x1#1 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::y#3 bitmap_line_xdyi::x#2 bitmap_line_xdyi::e#1 ] ( bitmap_line:11::bitmap_line_xdyi:70 [ next#5 bitmap_line_xdyi::x1#1 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::y#3 bitmap_line_xdyi::x#2 bitmap_line_xdyi::e#1 ] { { next#5 = bitmap_line::x1#0 bitmap_line_xdyi::x1#1 } { bitmap_line_xdyi::xd#1 = bitmap_line::xd#1 } } ) always clobbers reg byte a reg byte x Removing always clobbered register reg byte x as potential for zp[1]:41 [ bitmap_line_xdyi::x1#1 ] Removing always clobbered register reg byte x as potential for zp[1]:42 [ bitmap_line_xdyi::xd#1 ] Removing always clobbered register reg byte x as potential for zp[1]:24 [ bitmap_line_xdyi::y#3 bitmap_line_xdyi::y#6 bitmap_line_xdyi::y#2 ] Removing always clobbered register reg byte x as potential for zp[1]:23 [ bitmap_line_xdyi::x#3 bitmap_line_xdyi::x#2 ] Statement [117] if(bitmap_line_xdyi::xd#1>=bitmap_line_xdyi::e#1) goto bitmap_line_xdyi::@2 [ bitmap_line_xdyi::x1#1 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::y#3 bitmap_line_xdyi::x#2 bitmap_line_xdyi::e#1 ] ( bitmap_line:11::bitmap_line_xdyi:70 [ next#5 bitmap_line_xdyi::x1#1 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::y#3 bitmap_line_xdyi::x#2 bitmap_line_xdyi::e#1 ] { { next#5 = bitmap_line::x1#0 bitmap_line_xdyi::x1#1 } { bitmap_line_xdyi::xd#1 = bitmap_line::xd#1 } } ) always clobbers reg byte a Statement [119] bitmap_line_xdyi::e#2 = bitmap_line_xdyi::e#1 - bitmap_line_xdyi::xd#1 [ bitmap_line_xdyi::x1#1 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#2 bitmap_line_xdyi::e#2 ] ( bitmap_line:11::bitmap_line_xdyi:70 [ next#5 bitmap_line_xdyi::x1#1 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#2 bitmap_line_xdyi::e#2 ] { { next#5 = bitmap_line::x1#0 bitmap_line_xdyi::x1#1 } { bitmap_line_xdyi::xd#1 = bitmap_line::xd#1 } } ) always clobbers reg byte a Statement [125] bitmap_plot::plotter_x#0 = bitmap_plot_xhi[bitmap_plot::x#4] w= bitmap_plot_xlo[bitmap_plot::x#4] [ bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] ( bitmap_line:11::bitmap_line_ydxd:59::bitmap_plot:75 [ next#5 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxd::xd#0 = bitmap_line::xd#2 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line_ydxd::x#3 } { bitmap_plot::y#3 = bitmap_plot::y#4 bitmap_line_ydxd::y#2 } } bitmap_line:11::bitmap_line_xdyd:63::bitmap_plot:88 [ next#5 bitmap_line_xdyd::xd#0 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] { { next#5 = bitmap_line::x1#0 bitmap_line_xdyd::x#0 } { bitmap_line_xdyd::xd#0 = bitmap_line::xd#2 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line_xdyd::x#3 } { bitmap_plot::y#1 = bitmap_plot::y#4 bitmap_line_xdyd::y#3 } } bitmap_line:11::bitmap_line_ydxi:67::bitmap_plot:101 [ next#5 bitmap_line_ydxi::xd#1 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxi::xd#1 = bitmap_line::xd#1 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line_ydxi::x#3 } { bitmap_plot::y#2 = bitmap_plot::y#4 bitmap_line_ydxi::y#3 } } bitmap_line:11::bitmap_line_xdyi:70::bitmap_plot:114 [ next#5 bitmap_line_xdyi::x1#1 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] { { next#5 = bitmap_line::x1#0 bitmap_line_xdyi::x1#1 } { bitmap_line_xdyi::xd#1 = bitmap_line::xd#1 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line_xdyi::x#3 } { bitmap_plot::y#0 = bitmap_plot::y#4 bitmap_line_xdyi::y#3 } } ) always clobbers reg byte a Statement [126] bitmap_plot::plotter_y#0 = bitmap_plot_yhi[bitmap_plot::y#4] w= bitmap_plot_ylo[bitmap_plot::y#4] [ bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] ( bitmap_line:11::bitmap_line_ydxd:59::bitmap_plot:75 [ next#5 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxd::xd#0 = bitmap_line::xd#2 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line_ydxd::x#3 } { bitmap_plot::y#3 = bitmap_plot::y#4 bitmap_line_ydxd::y#2 } } bitmap_line:11::bitmap_line_xdyd:63::bitmap_plot:88 [ next#5 bitmap_line_xdyd::xd#0 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] { { next#5 = bitmap_line::x1#0 bitmap_line_xdyd::x#0 } { bitmap_line_xdyd::xd#0 = bitmap_line::xd#2 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line_xdyd::x#3 } { bitmap_plot::y#1 = bitmap_plot::y#4 bitmap_line_xdyd::y#3 } } bitmap_line:11::bitmap_line_ydxi:67::bitmap_plot:101 [ next#5 bitmap_line_ydxi::xd#1 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxi::xd#1 = bitmap_line::xd#1 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line_ydxi::x#3 } { bitmap_plot::y#2 = bitmap_plot::y#4 bitmap_line_ydxi::y#3 } } bitmap_line:11::bitmap_line_xdyi:70::bitmap_plot:114 [ next#5 bitmap_line_xdyi::x1#1 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] { { next#5 = bitmap_line::x1#0 bitmap_line_xdyi::x1#1 } { bitmap_line_xdyi::xd#1 = bitmap_line::xd#1 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line_xdyi::x#3 } { bitmap_plot::y#0 = bitmap_plot::y#4 bitmap_line_xdyi::y#3 } } ) always clobbers reg byte a Statement [127] bitmap_plot::plotter#0 = bitmap_plot::plotter_x#0 + bitmap_plot::plotter_y#0 [ bitmap_plot::x#4 bitmap_plot::plotter#0 ] ( bitmap_line:11::bitmap_line_ydxd:59::bitmap_plot:75 [ next#5 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::plotter#0 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxd::xd#0 = bitmap_line::xd#2 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line_ydxd::x#3 } { bitmap_plot::y#3 = bitmap_plot::y#4 bitmap_line_ydxd::y#2 } } bitmap_line:11::bitmap_line_xdyd:63::bitmap_plot:88 [ next#5 bitmap_line_xdyd::xd#0 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::plotter#0 ] { { next#5 = bitmap_line::x1#0 bitmap_line_xdyd::x#0 } { bitmap_line_xdyd::xd#0 = bitmap_line::xd#2 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line_xdyd::x#3 } { bitmap_plot::y#1 = bitmap_plot::y#4 bitmap_line_xdyd::y#3 } } bitmap_line:11::bitmap_line_ydxi:67::bitmap_plot:101 [ next#5 bitmap_line_ydxi::xd#1 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::plotter#0 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxi::xd#1 = bitmap_line::xd#1 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line_ydxi::x#3 } { bitmap_plot::y#2 = bitmap_plot::y#4 bitmap_line_ydxi::y#3 } } bitmap_line:11::bitmap_line_xdyi:70::bitmap_plot:114 [ next#5 bitmap_line_xdyi::x1#1 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::plotter#0 ] { { next#5 = bitmap_line::x1#0 bitmap_line_xdyi::x1#1 } { bitmap_line_xdyi::xd#1 = bitmap_line::xd#1 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line_xdyi::x#3 } { bitmap_plot::y#0 = bitmap_plot::y#4 bitmap_line_xdyi::y#3 } } ) always clobbers reg byte a Statement [128] bitmap_plot::$1 = *((byte*)bitmap_plot::plotter#0) | bitmap_plot_bit[bitmap_plot::x#4] [ bitmap_plot::plotter#0 bitmap_plot::$1 ] ( bitmap_line:11::bitmap_line_ydxd:59::bitmap_plot:75 [ next#5 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::plotter#0 bitmap_plot::$1 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxd::xd#0 = bitmap_line::xd#2 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line_ydxd::x#3 } { bitmap_plot::y#3 = bitmap_plot::y#4 bitmap_line_ydxd::y#2 } } bitmap_line:11::bitmap_line_xdyd:63::bitmap_plot:88 [ next#5 bitmap_line_xdyd::xd#0 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::plotter#0 bitmap_plot::$1 ] { { next#5 = bitmap_line::x1#0 bitmap_line_xdyd::x#0 } { bitmap_line_xdyd::xd#0 = bitmap_line::xd#2 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line_xdyd::x#3 } { bitmap_plot::y#1 = bitmap_plot::y#4 bitmap_line_xdyd::y#3 } } bitmap_line:11::bitmap_line_ydxi:67::bitmap_plot:101 [ next#5 bitmap_line_ydxi::xd#1 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::plotter#0 bitmap_plot::$1 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxi::xd#1 = bitmap_line::xd#1 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line_ydxi::x#3 } { bitmap_plot::y#2 = bitmap_plot::y#4 bitmap_line_ydxi::y#3 } } bitmap_line:11::bitmap_line_xdyi:70::bitmap_plot:114 [ next#5 bitmap_line_xdyi::x1#1 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::plotter#0 bitmap_plot::$1 ] { { next#5 = bitmap_line::x1#0 bitmap_line_xdyi::x1#1 } { bitmap_line_xdyi::xd#1 = bitmap_line::xd#1 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line_xdyi::x#3 } { bitmap_plot::y#0 = bitmap_plot::y#4 bitmap_line_xdyi::y#3 } } ) always clobbers reg byte a reg byte y Statement [129] *((byte*)bitmap_plot::plotter#0) = bitmap_plot::$1 [ ] ( bitmap_line:11::bitmap_line_ydxd:59::bitmap_plot:75 [ next#5 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxd::xd#0 = bitmap_line::xd#2 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line_ydxd::x#3 } { bitmap_plot::y#3 = bitmap_plot::y#4 bitmap_line_ydxd::y#2 } } bitmap_line:11::bitmap_line_xdyd:63::bitmap_plot:88 [ next#5 bitmap_line_xdyd::xd#0 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] { { next#5 = bitmap_line::x1#0 bitmap_line_xdyd::x#0 } { bitmap_line_xdyd::xd#0 = bitmap_line::xd#2 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line_xdyd::x#3 } { bitmap_plot::y#1 = bitmap_plot::y#4 bitmap_line_xdyd::y#3 } } bitmap_line:11::bitmap_line_ydxi:67::bitmap_plot:101 [ next#5 bitmap_line_ydxi::xd#1 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxi::xd#1 = bitmap_line::xd#1 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line_ydxi::x#3 } { bitmap_plot::y#2 = bitmap_plot::y#4 bitmap_line_ydxi::y#3 } } bitmap_line:11::bitmap_line_xdyi:70::bitmap_plot:114 [ next#5 bitmap_line_xdyi::x1#1 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 ] { { next#5 = bitmap_line::x1#0 bitmap_line_xdyi::x1#1 } { bitmap_line_xdyi::xd#1 = bitmap_line::xd#1 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line_xdyi::x#3 } { bitmap_plot::y#0 = bitmap_plot::y#4 bitmap_line_xdyi::y#3 } } ) always clobbers reg byte y Statement [0] *BORDER_COLOR = 0 [ ] ( [ ] { } ) always clobbers reg byte a Statement [1] *BG_COLOR = 0 [ ] ( [ ] { } ) always clobbers reg byte a Statement [2] *D011 = VICII_BMM|VICII_DEN|VICII_RSEL|3 [ ] ( [ ] { } ) always clobbers reg byte a Statement [3] *VICII_MEMORY = (byte)(word)SCREEN&$3fff/$40|(word)BITMAP&$3fff/$400 [ ] ( [ ] { } ) always clobbers reg byte a Statement [15] bitmap_init::$0 = bitmap_init::x#2 & $f8 [ bitmap_init::x#2 bitmap_init::bits#3 bitmap_init::$0 ] ( bitmap_init:4 [ bitmap_init::x#2 bitmap_init::bits#3 bitmap_init::$0 ] { } ) always clobbers reg byte a Statement [17] bitmap_plot_xhi[bitmap_init::x#2] = >BITMAP [ bitmap_init::x#2 bitmap_init::bits#3 ] ( bitmap_init:4 [ bitmap_init::x#2 bitmap_init::bits#3 ] { } ) always clobbers reg byte a Statement [18] bitmap_plot_bit[bitmap_init::x#2] = bitmap_init::bits#3 [ bitmap_init::x#2 bitmap_init::bits#3 ] ( bitmap_init:4 [ bitmap_init::x#2 bitmap_init::bits#3 ] { } ) always clobbers reg byte a Statement [26] bitmap_init::$10 = bitmap_init::y#2 & 7 [ bitmap_init::y#2 bitmap_init::yoffs#2 bitmap_init::$10 ] ( bitmap_init:4 [ bitmap_init::y#2 bitmap_init::yoffs#2 bitmap_init::$10 ] { } ) always clobbers reg byte a Statement [33] bitmap_init::yoffs#1 = bitmap_init::yoffs#2 + (word)$28*8 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] ( bitmap_init:4 [ bitmap_init::y#2 bitmap_init::yoffs#1 ] { } ) always clobbers reg byte a Statement [38] bitmap_clear::bitmap#0 = *bitmap_plot_xhi w= *bitmap_plot_xlo [ bitmap_clear::bitmap#0 ] ( bitmap_clear:6 [ bitmap_clear::bitmap#0 ] { } ) always clobbers reg byte a Statement [39] bitmap_clear::bitmap#5 = (byte*)bitmap_clear::bitmap#0 [ bitmap_clear::bitmap#5 ] ( bitmap_clear:6 [ bitmap_clear::bitmap#5 ] { } ) always clobbers reg byte a Statement [42] *bitmap_clear::bitmap#2 = 0 [ bitmap_clear::y#4 bitmap_clear::bitmap#2 bitmap_clear::x#2 ] ( bitmap_clear:6 [ bitmap_clear::y#4 bitmap_clear::bitmap#2 bitmap_clear::x#2 ] { } ) always clobbers reg byte a reg byte y Statement [51] if(init_screen::c#2!=SCREEN+$400) goto init_screen::@2 [ init_screen::c#2 ] ( init_screen:8 [ init_screen::c#2 ] { } ) always clobbers reg byte a Statement [53] *init_screen::c#2 = $14 [ init_screen::c#2 ] ( init_screen:8 [ init_screen::c#2 ] { } ) always clobbers reg byte a reg byte y Statement [71] bitmap_line_ydxd::e#0 = bitmap_line_ydxd::xd#0 >> 1 [ bitmap_line_ydxd::xd#0 bitmap_line_ydxd::e#0 ] ( bitmap_line:11::bitmap_line_ydxd:59 [ next#5 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::e#0 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxd::xd#0 = bitmap_line::xd#2 } } ) always clobbers reg byte a Statement [77] bitmap_line_ydxd::e#1 = bitmap_line_ydxd::e#3 + bitmap_line_ydxd::xd#0 [ bitmap_line_ydxd::xd#0 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 ] ( bitmap_line:11::bitmap_line_ydxd:59 [ next#5 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#1 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxd::xd#0 = bitmap_line::xd#2 } } ) always clobbers reg byte a Statement [80] bitmap_line_ydxd::e#2 = bitmap_line_ydxd::e#1 - bitmap_line::y1#0 [ bitmap_line_ydxd::xd#0 bitmap_line_ydxd::y#3 bitmap_line_ydxd::x#2 bitmap_line_ydxd::e#2 ] ( bitmap_line:11::bitmap_line_ydxd:59 [ next#5 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::y#3 bitmap_line_ydxd::x#2 bitmap_line_ydxd::e#2 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxd::xd#0 = bitmap_line::xd#2 } } ) always clobbers reg byte a reg byte x Statement [82] if(bitmap_line_ydxd::y#3!=bitmap_line::y1#0+1) goto bitmap_line_ydxd::@1 [ bitmap_line_ydxd::xd#0 bitmap_line_ydxd::x#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#6 ] ( bitmap_line:11::bitmap_line_ydxd:59 [ next#5 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::x#6 bitmap_line_ydxd::y#3 bitmap_line_ydxd::e#6 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxd::xd#0 = bitmap_line::xd#2 } } ) always clobbers reg byte a Statement [90] bitmap_line_xdyd::e#1 = bitmap_line_xdyd::e#3 + bitmap_line::y1#0 [ bitmap_line_xdyd::xd#0 bitmap_line_xdyd::y#3 bitmap_line_xdyd::x#2 bitmap_line_xdyd::e#1 ] ( bitmap_line:11::bitmap_line_xdyd:63 [ next#5 bitmap_line_xdyd::xd#0 bitmap_line_xdyd::y#3 bitmap_line_xdyd::x#2 bitmap_line_xdyd::e#1 ] { { next#5 = bitmap_line::x1#0 bitmap_line_xdyd::x#0 } { bitmap_line_xdyd::xd#0 = bitmap_line::xd#2 } } ) always clobbers reg byte a reg byte x Statement [91] if(bitmap_line_xdyd::xd#0>=bitmap_line_xdyd::e#1) goto bitmap_line_xdyd::@2 [ bitmap_line_xdyd::xd#0 bitmap_line_xdyd::y#3 bitmap_line_xdyd::x#2 bitmap_line_xdyd::e#1 ] ( bitmap_line:11::bitmap_line_xdyd:63 [ next#5 bitmap_line_xdyd::xd#0 bitmap_line_xdyd::y#3 bitmap_line_xdyd::x#2 bitmap_line_xdyd::e#1 ] { { next#5 = bitmap_line::x1#0 bitmap_line_xdyd::x#0 } { bitmap_line_xdyd::xd#0 = bitmap_line::xd#2 } } ) always clobbers reg byte a Statement [93] bitmap_line_xdyd::e#2 = bitmap_line_xdyd::e#1 - bitmap_line_xdyd::xd#0 [ bitmap_line_xdyd::xd#0 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#2 bitmap_line_xdyd::e#2 ] ( bitmap_line:11::bitmap_line_xdyd:63 [ next#5 bitmap_line_xdyd::xd#0 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#2 bitmap_line_xdyd::e#2 ] { { next#5 = bitmap_line::x1#0 bitmap_line_xdyd::x#0 } { bitmap_line_xdyd::xd#0 = bitmap_line::xd#2 } } ) always clobbers reg byte a Statement [95] if(bitmap_line_xdyd::x#2!=1) goto bitmap_line_xdyd::@1 [ bitmap_line_xdyd::xd#0 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#6 bitmap_line_xdyd::e#6 ] ( bitmap_line:11::bitmap_line_xdyd:63 [ next#5 bitmap_line_xdyd::xd#0 bitmap_line_xdyd::x#2 bitmap_line_xdyd::y#6 bitmap_line_xdyd::e#6 ] { { next#5 = bitmap_line::x1#0 bitmap_line_xdyd::x#0 } { bitmap_line_xdyd::xd#0 = bitmap_line::xd#2 } } ) always clobbers reg byte a Statement [97] bitmap_line_ydxi::e#0 = bitmap_line_ydxi::xd#1 >> 1 [ bitmap_line_ydxi::xd#1 bitmap_line_ydxi::e#0 ] ( bitmap_line:11::bitmap_line_ydxi:67 [ next#5 bitmap_line_ydxi::xd#1 bitmap_line_ydxi::e#0 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxi::xd#1 = bitmap_line::xd#1 } } ) always clobbers reg byte a Statement [103] bitmap_line_ydxi::e#1 = bitmap_line_ydxi::e#3 + bitmap_line_ydxi::xd#1 [ bitmap_line_ydxi::xd#1 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#1 ] ( bitmap_line:11::bitmap_line_ydxi:67 [ next#5 bitmap_line_ydxi::xd#1 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#1 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxi::xd#1 = bitmap_line::xd#1 } } ) always clobbers reg byte a Statement [106] bitmap_line_ydxi::e#2 = bitmap_line_ydxi::e#1 - bitmap_line::y1#0 [ bitmap_line_ydxi::xd#1 bitmap_line_ydxi::y#2 bitmap_line_ydxi::x#2 bitmap_line_ydxi::e#2 ] ( bitmap_line:11::bitmap_line_ydxi:67 [ next#5 bitmap_line_ydxi::xd#1 bitmap_line_ydxi::y#2 bitmap_line_ydxi::x#2 bitmap_line_ydxi::e#2 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxi::xd#1 = bitmap_line::xd#1 } } ) always clobbers reg byte a reg byte x Statement [108] if(bitmap_line_ydxi::y#2!=bitmap_line::y1#0+1) goto bitmap_line_ydxi::@1 [ bitmap_line_ydxi::xd#1 bitmap_line_ydxi::x#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#6 ] ( bitmap_line:11::bitmap_line_ydxi:67 [ next#5 bitmap_line_ydxi::xd#1 bitmap_line_ydxi::x#6 bitmap_line_ydxi::y#2 bitmap_line_ydxi::e#6 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxi::xd#1 = bitmap_line::xd#1 } } ) always clobbers reg byte a Statement [116] bitmap_line_xdyi::e#1 = bitmap_line_xdyi::e#3 + bitmap_line::y1#0 [ bitmap_line_xdyi::x1#1 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::y#3 bitmap_line_xdyi::x#2 bitmap_line_xdyi::e#1 ] ( bitmap_line:11::bitmap_line_xdyi:70 [ next#5 bitmap_line_xdyi::x1#1 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::y#3 bitmap_line_xdyi::x#2 bitmap_line_xdyi::e#1 ] { { next#5 = bitmap_line::x1#0 bitmap_line_xdyi::x1#1 } { bitmap_line_xdyi::xd#1 = bitmap_line::xd#1 } } ) always clobbers reg byte a reg byte x Statement [117] if(bitmap_line_xdyi::xd#1>=bitmap_line_xdyi::e#1) goto bitmap_line_xdyi::@2 [ bitmap_line_xdyi::x1#1 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::y#3 bitmap_line_xdyi::x#2 bitmap_line_xdyi::e#1 ] ( bitmap_line:11::bitmap_line_xdyi:70 [ next#5 bitmap_line_xdyi::x1#1 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::y#3 bitmap_line_xdyi::x#2 bitmap_line_xdyi::e#1 ] { { next#5 = bitmap_line::x1#0 bitmap_line_xdyi::x1#1 } { bitmap_line_xdyi::xd#1 = bitmap_line::xd#1 } } ) always clobbers reg byte a Statement [119] bitmap_line_xdyi::e#2 = bitmap_line_xdyi::e#1 - bitmap_line_xdyi::xd#1 [ bitmap_line_xdyi::x1#1 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#2 bitmap_line_xdyi::e#2 ] ( bitmap_line:11::bitmap_line_xdyi:70 [ next#5 bitmap_line_xdyi::x1#1 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::x#2 bitmap_line_xdyi::y#2 bitmap_line_xdyi::e#2 ] { { next#5 = bitmap_line::x1#0 bitmap_line_xdyi::x1#1 } { bitmap_line_xdyi::xd#1 = bitmap_line::xd#1 } } ) always clobbers reg byte a Statement [125] bitmap_plot::plotter_x#0 = bitmap_plot_xhi[bitmap_plot::x#4] w= bitmap_plot_xlo[bitmap_plot::x#4] [ bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] ( bitmap_line:11::bitmap_line_ydxd:59::bitmap_plot:75 [ next#5 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxd::xd#0 = bitmap_line::xd#2 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line_ydxd::x#3 } { bitmap_plot::y#3 = bitmap_plot::y#4 bitmap_line_ydxd::y#2 } } bitmap_line:11::bitmap_line_xdyd:63::bitmap_plot:88 [ next#5 bitmap_line_xdyd::xd#0 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] { { next#5 = bitmap_line::x1#0 bitmap_line_xdyd::x#0 } { bitmap_line_xdyd::xd#0 = bitmap_line::xd#2 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line_xdyd::x#3 } { bitmap_plot::y#1 = bitmap_plot::y#4 bitmap_line_xdyd::y#3 } } bitmap_line:11::bitmap_line_ydxi:67::bitmap_plot:101 [ next#5 bitmap_line_ydxi::xd#1 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxi::xd#1 = bitmap_line::xd#1 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line_ydxi::x#3 } { bitmap_plot::y#2 = bitmap_plot::y#4 bitmap_line_ydxi::y#3 } } bitmap_line:11::bitmap_line_xdyi:70::bitmap_plot:114 [ next#5 bitmap_line_xdyi::x1#1 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::y#4 bitmap_plot::plotter_x#0 ] { { next#5 = bitmap_line::x1#0 bitmap_line_xdyi::x1#1 } { bitmap_line_xdyi::xd#1 = bitmap_line::xd#1 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line_xdyi::x#3 } { bitmap_plot::y#0 = bitmap_plot::y#4 bitmap_line_xdyi::y#3 } } ) always clobbers reg byte a Statement [126] bitmap_plot::plotter_y#0 = bitmap_plot_yhi[bitmap_plot::y#4] w= bitmap_plot_ylo[bitmap_plot::y#4] [ bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] ( bitmap_line:11::bitmap_line_ydxd:59::bitmap_plot:75 [ next#5 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxd::xd#0 = bitmap_line::xd#2 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line_ydxd::x#3 } { bitmap_plot::y#3 = bitmap_plot::y#4 bitmap_line_ydxd::y#2 } } bitmap_line:11::bitmap_line_xdyd:63::bitmap_plot:88 [ next#5 bitmap_line_xdyd::xd#0 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] { { next#5 = bitmap_line::x1#0 bitmap_line_xdyd::x#0 } { bitmap_line_xdyd::xd#0 = bitmap_line::xd#2 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line_xdyd::x#3 } { bitmap_plot::y#1 = bitmap_plot::y#4 bitmap_line_xdyd::y#3 } } bitmap_line:11::bitmap_line_ydxi:67::bitmap_plot:101 [ next#5 bitmap_line_ydxi::xd#1 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxi::xd#1 = bitmap_line::xd#1 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line_ydxi::x#3 } { bitmap_plot::y#2 = bitmap_plot::y#4 bitmap_line_ydxi::y#3 } } bitmap_line:11::bitmap_line_xdyi:70::bitmap_plot:114 [ next#5 bitmap_line_xdyi::x1#1 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::plotter_x#0 bitmap_plot::plotter_y#0 ] { { next#5 = bitmap_line::x1#0 bitmap_line_xdyi::x1#1 } { bitmap_line_xdyi::xd#1 = bitmap_line::xd#1 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line_xdyi::x#3 } { bitmap_plot::y#0 = bitmap_plot::y#4 bitmap_line_xdyi::y#3 } } ) always clobbers reg byte a Statement [127] bitmap_plot::plotter#0 = bitmap_plot::plotter_x#0 + bitmap_plot::plotter_y#0 [ bitmap_plot::x#4 bitmap_plot::plotter#0 ] ( bitmap_line:11::bitmap_line_ydxd:59::bitmap_plot:75 [ next#5 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::x#4 bitmap_plot::plotter#0 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxd::xd#0 = bitmap_line::xd#2 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line_ydxd::x#3 } { bitmap_plot::y#3 = bitmap_plot::y#4 bitmap_line_ydxd::y#2 } } bitmap_line:11::bitmap_line_xdyd:63::bitmap_plot:88 [ next#5 bitmap_line_xdyd::xd#0 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::x#4 bitmap_plot::plotter#0 ] { { next#5 = bitmap_line::x1#0 bitmap_line_xdyd::x#0 } { bitmap_line_xdyd::xd#0 = bitmap_line::xd#2 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line_xdyd::x#3 } { bitmap_plot::y#1 = bitmap_plot::y#4 bitmap_line_xdyd::y#3 } } bitmap_line:11::bitmap_line_ydxi:67::bitmap_plot:101 [ next#5 bitmap_line_ydxi::xd#1 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::x#4 bitmap_plot::plotter#0 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxi::xd#1 = bitmap_line::xd#1 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line_ydxi::x#3 } { bitmap_plot::y#2 = bitmap_plot::y#4 bitmap_line_ydxi::y#3 } } bitmap_line:11::bitmap_line_xdyi:70::bitmap_plot:114 [ next#5 bitmap_line_xdyi::x1#1 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::x#4 bitmap_plot::plotter#0 ] { { next#5 = bitmap_line::x1#0 bitmap_line_xdyi::x1#1 } { bitmap_line_xdyi::xd#1 = bitmap_line::xd#1 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line_xdyi::x#3 } { bitmap_plot::y#0 = bitmap_plot::y#4 bitmap_line_xdyi::y#3 } } ) always clobbers reg byte a Statement [128] bitmap_plot::$1 = *((byte*)bitmap_plot::plotter#0) | bitmap_plot_bit[bitmap_plot::x#4] [ bitmap_plot::plotter#0 bitmap_plot::$1 ] ( bitmap_line:11::bitmap_line_ydxd:59::bitmap_plot:75 [ next#5 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 bitmap_plot::plotter#0 bitmap_plot::$1 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxd::xd#0 = bitmap_line::xd#2 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line_ydxd::x#3 } { bitmap_plot::y#3 = bitmap_plot::y#4 bitmap_line_ydxd::y#2 } } bitmap_line:11::bitmap_line_xdyd:63::bitmap_plot:88 [ next#5 bitmap_line_xdyd::xd#0 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 bitmap_plot::plotter#0 bitmap_plot::$1 ] { { next#5 = bitmap_line::x1#0 bitmap_line_xdyd::x#0 } { bitmap_line_xdyd::xd#0 = bitmap_line::xd#2 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line_xdyd::x#3 } { bitmap_plot::y#1 = bitmap_plot::y#4 bitmap_line_xdyd::y#3 } } bitmap_line:11::bitmap_line_ydxi:67::bitmap_plot:101 [ next#5 bitmap_line_ydxi::xd#1 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 bitmap_plot::plotter#0 bitmap_plot::$1 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxi::xd#1 = bitmap_line::xd#1 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line_ydxi::x#3 } { bitmap_plot::y#2 = bitmap_plot::y#4 bitmap_line_ydxi::y#3 } } bitmap_line:11::bitmap_line_xdyi:70::bitmap_plot:114 [ next#5 bitmap_line_xdyi::x1#1 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 bitmap_plot::plotter#0 bitmap_plot::$1 ] { { next#5 = bitmap_line::x1#0 bitmap_line_xdyi::x1#1 } { bitmap_line_xdyi::xd#1 = bitmap_line::xd#1 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line_xdyi::x#3 } { bitmap_plot::y#0 = bitmap_plot::y#4 bitmap_line_xdyi::y#3 } } ) always clobbers reg byte a reg byte y Statement [129] *((byte*)bitmap_plot::plotter#0) = bitmap_plot::$1 [ ] ( bitmap_line:11::bitmap_line_ydxd:59::bitmap_plot:75 [ next#5 bitmap_line_ydxd::xd#0 bitmap_line_ydxd::x#3 bitmap_line_ydxd::y#2 bitmap_line_ydxd::e#3 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxd::xd#0 = bitmap_line::xd#2 } { bitmap_plot::x#3 = bitmap_plot::x#4 bitmap_line_ydxd::x#3 } { bitmap_plot::y#3 = bitmap_plot::y#4 bitmap_line_ydxd::y#2 } } bitmap_line:11::bitmap_line_xdyd:63::bitmap_plot:88 [ next#5 bitmap_line_xdyd::xd#0 bitmap_line_xdyd::x#3 bitmap_line_xdyd::y#3 bitmap_line_xdyd::e#3 ] { { next#5 = bitmap_line::x1#0 bitmap_line_xdyd::x#0 } { bitmap_line_xdyd::xd#0 = bitmap_line::xd#2 } { bitmap_plot::x#1 = bitmap_plot::x#4 bitmap_line_xdyd::x#3 } { bitmap_plot::y#1 = bitmap_plot::y#4 bitmap_line_xdyd::y#3 } } bitmap_line:11::bitmap_line_ydxi:67::bitmap_plot:101 [ next#5 bitmap_line_ydxi::xd#1 bitmap_line_ydxi::x#3 bitmap_line_ydxi::y#3 bitmap_line_ydxi::e#3 ] { { next#5 = bitmap_line::x1#0 } { bitmap_line_ydxi::xd#1 = bitmap_line::xd#1 } { bitmap_plot::x#2 = bitmap_plot::x#4 bitmap_line_ydxi::x#3 } { bitmap_plot::y#2 = bitmap_plot::y#4 bitmap_line_ydxi::y#3 } } bitmap_line:11::bitmap_line_xdyi:70::bitmap_plot:114 [ next#5 bitmap_line_xdyi::x1#1 bitmap_line_xdyi::xd#1 bitmap_line_xdyi::x#3 bitmap_line_xdyi::y#3 bitmap_line_xdyi::e#3 ] { { next#5 = bitmap_line::x1#0 bitmap_line_xdyi::x1#1 } { bitmap_line_xdyi::xd#1 = bitmap_line::xd#1 } { bitmap_plot::x#0 = bitmap_plot::x#4 bitmap_line_xdyi::x#3 } { bitmap_plot::y#0 = bitmap_plot::y#4 bitmap_line_xdyi::y#3 } } ) always clobbers reg byte y Potential registers zp[1]:2 [ next#5 next#0 ] : zp[1]:2 , Potential registers zp[1]:3 [ bitmap_init::x#2 bitmap_init::x#1 ] : zp[1]:3 , reg byte x , reg byte y , Potential registers zp[1]:4 [ bitmap_init::bits#3 bitmap_init::bits#4 bitmap_init::bits#1 ] : zp[1]:4 , reg byte x , reg byte y , Potential registers zp[1]:5 [ bitmap_init::y#2 bitmap_init::y#1 ] : zp[1]:5 , reg byte x , reg byte y , Potential registers zp[2]:6 [ bitmap_init::yoffs#2 bitmap_init::yoffs#4 bitmap_init::yoffs#1 ] : zp[2]:6 , Potential registers zp[1]:8 [ bitmap_clear::y#4 bitmap_clear::y#1 ] : zp[1]:8 , reg byte x , Potential registers zp[2]:9 [ bitmap_clear::bitmap#2 bitmap_clear::bitmap#3 bitmap_clear::bitmap#5 bitmap_clear::bitmap#1 ] : zp[2]:9 , Potential registers zp[1]:11 [ bitmap_clear::x#2 bitmap_clear::x#1 ] : zp[1]:11 , reg byte x , Potential registers zp[2]:12 [ init_screen::c#2 init_screen::c#1 ] : zp[2]:12 , Potential registers zp[1]:14 [ bitmap_line_ydxd::x#3 bitmap_line_ydxd::x#6 bitmap_line_ydxd::x#2 ] : zp[1]:14 , Potential registers zp[1]:15 [ bitmap_line_ydxd::y#2 bitmap_line_ydxd::y#3 ] : zp[1]:15 , Potential registers zp[1]:16 [ bitmap_line_ydxd::e#3 bitmap_line_ydxd::e#0 bitmap_line_ydxd::e#6 bitmap_line_ydxd::e#2 bitmap_line_ydxd::e#1 ] : zp[1]:16 , reg byte x , Potential registers zp[1]:17 [ bitmap_line_xdyd::x#3 bitmap_line_xdyd::x#0 bitmap_line_xdyd::x#2 ] : zp[1]:17 , Potential registers zp[1]:18 [ bitmap_line_xdyd::y#3 bitmap_line_xdyd::y#6 bitmap_line_xdyd::y#2 ] : zp[1]:18 , Potential registers zp[1]:19 [ bitmap_line_xdyd::e#3 bitmap_line_xdyd::e#6 bitmap_line_xdyd::e#2 bitmap_line_xdyd::e#1 ] : zp[1]:19 , reg byte x , Potential registers zp[1]:20 [ bitmap_line_ydxi::x#3 bitmap_line_ydxi::x#6 bitmap_line_ydxi::x#2 ] : zp[1]:20 , Potential registers zp[1]:21 [ bitmap_line_ydxi::y#3 bitmap_line_ydxi::y#2 ] : zp[1]:21 , Potential registers zp[1]:22 [ bitmap_line_ydxi::e#3 bitmap_line_ydxi::e#0 bitmap_line_ydxi::e#6 bitmap_line_ydxi::e#2 bitmap_line_ydxi::e#1 ] : zp[1]:22 , reg byte x , Potential registers zp[1]:23 [ bitmap_line_xdyi::x#3 bitmap_line_xdyi::x#2 ] : zp[1]:23 , Potential registers zp[1]:24 [ bitmap_line_xdyi::y#3 bitmap_line_xdyi::y#6 bitmap_line_xdyi::y#2 ] : zp[1]:24 , Potential registers zp[1]:25 [ bitmap_line_xdyi::e#3 bitmap_line_xdyi::e#6 bitmap_line_xdyi::e#2 bitmap_line_xdyi::e#1 ] : zp[1]:25 , reg byte x , Potential registers zp[1]:26 [ bitmap_plot::x#4 bitmap_plot::x#1 bitmap_plot::x#0 bitmap_plot::x#3 bitmap_plot::x#2 ] : zp[1]:26 , reg byte x , reg byte y , Potential registers zp[1]:27 [ bitmap_plot::y#4 bitmap_plot::y#1 bitmap_plot::y#0 bitmap_plot::y#3 bitmap_plot::y#2 ] : zp[1]:27 , reg byte x , reg byte y , Potential registers zp[1]:28 [ bitmap_line::x1#0 ] : zp[1]:28 , reg byte a , reg byte x , reg byte y , Potential registers zp[1]:29 [ bitmap_init::$0 ] : zp[1]:29 , reg byte a , reg byte x , reg byte y , Potential registers zp[1]:30 [ bitmap_init::$10 ] : zp[1]:30 , reg byte a , reg byte x , reg byte y , Potential registers zp[1]:31 [ bitmap_init::$7 ] : zp[1]:31 , reg byte a , reg byte x , reg byte y , reg byte alu , Potential registers zp[1]:32 [ bitmap_init::$8 ] : zp[1]:32 , reg byte a , reg byte x , reg byte y , Potential registers zp[1]:33 [ bitmap_init::$9 ] : zp[1]:33 , reg byte a , reg byte x , reg byte y , Potential registers zp[2]:34 [ bitmap_clear::bitmap#0 ] : zp[2]:34 , Potential registers zp[1]:36 [ bitmap_line::xd#2 ] : zp[1]:36 , reg byte a , reg byte x , reg byte y , Potential registers zp[1]:37 [ bitmap_line_ydxd::xd#0 ] : zp[1]:37 , Potential registers zp[1]:38 [ bitmap_line_xdyd::xd#0 ] : zp[1]:38 , Potential registers zp[1]:39 [ bitmap_line::xd#1 ] : zp[1]:39 , reg byte a , reg byte x , reg byte y , Potential registers zp[1]:40 [ bitmap_line_ydxi::xd#1 ] : zp[1]:40 , Potential registers zp[1]:41 [ bitmap_line_xdyi::x1#1 ] : zp[1]:41 , Potential registers zp[1]:42 [ bitmap_line_xdyi::xd#1 ] : zp[1]:42 , Potential registers zp[1]:43 [ bitmap_line_xdyi::$6 ] : zp[1]:43 , reg byte a , reg byte x , reg byte y , Potential registers zp[2]:44 [ bitmap_plot::plotter_x#0 ] : zp[2]:44 , Potential registers zp[2]:46 [ bitmap_plot::plotter_y#0 ] : zp[2]:46 , Potential registers zp[2]:48 [ bitmap_plot::plotter#0 ] : zp[2]:48 , Potential registers zp[1]:50 [ bitmap_plot::$1 ] : zp[1]:50 , reg byte a , reg byte x , reg byte y , REGISTER UPLIFT SCOPES Uplift Scope [bitmap_plot] 2,000,011: zp[1]:27 [ bitmap_plot::y#4 bitmap_plot::y#1 bitmap_plot::y#0 bitmap_plot::y#3 bitmap_plot::y#2 ] 2,000,002: zp[2]:46 [ bitmap_plot::plotter_y#0 ] 2,000,002: zp[1]:50 [ bitmap_plot::$1 ] 1,250,005.75: zp[1]:26 [ bitmap_plot::x#4 bitmap_plot::x#1 bitmap_plot::x#0 bitmap_plot::x#3 bitmap_plot::x#2 ] 1,000,001: zp[2]:44 [ bitmap_plot::plotter_x#0 ] 500,000.5: zp[2]:48 [ bitmap_plot::plotter#0 ] Uplift Scope [bitmap_line_xdyi] 473,338.07: zp[1]:25 [ bitmap_line_xdyi::e#3 bitmap_line_xdyi::e#6 bitmap_line_xdyi::e#2 bitmap_line_xdyi::e#1 ] 257,145.43: zp[1]:24 [ bitmap_line_xdyi::y#3 bitmap_line_xdyi::y#6 bitmap_line_xdyi::y#2 ] 200,002: zp[1]:43 [ bitmap_line_xdyi::$6 ] 112,501.12: zp[1]:23 [ bitmap_line_xdyi::x#3 bitmap_line_xdyi::x#2 ] 14,293.07: zp[1]:42 [ bitmap_line_xdyi::xd#1 ] 6,673.47: zp[1]:41 [ bitmap_line_xdyi::x1#1 ] Uplift Scope [bitmap_line_xdyd] 523,338.57: zp[1]:19 [ bitmap_line_xdyd::e#3 bitmap_line_xdyd::e#6 bitmap_line_xdyd::e#2 bitmap_line_xdyd::e#1 ] 307,145.93: zp[1]:18 [ bitmap_line_xdyd::y#3 bitmap_line_xdyd::y#6 bitmap_line_xdyd::y#2 ] 118,475.9: zp[1]:17 [ bitmap_line_xdyd::x#3 bitmap_line_xdyd::x#0 bitmap_line_xdyd::x#2 ] 15,392.54: zp[1]:38 [ bitmap_line_xdyd::xd#0 ] Uplift Scope [bitmap_line_ydxi] 525,540.77: zp[1]:22 [ bitmap_line_ydxi::e#3 bitmap_line_ydxi::e#0 bitmap_line_ydxi::e#6 bitmap_line_ydxi::e#2 bitmap_line_ydxi::e#1 ] 307,145.93: zp[1]:20 [ bitmap_line_ydxi::x#3 bitmap_line_ydxi::x#6 bitmap_line_ydxi::x#2 ] 117,858.32: zp[1]:21 [ bitmap_line_ydxi::y#3 bitmap_line_ydxi::y#2 ] 7,777.15: zp[1]:40 [ bitmap_line_ydxi::xd#1 ] Uplift Scope [bitmap_line_ydxd] 525,540.77: zp[1]:16 [ bitmap_line_ydxd::e#3 bitmap_line_ydxd::e#0 bitmap_line_ydxd::e#6 bitmap_line_ydxd::e#2 bitmap_line_ydxd::e#1 ] 307,145.93: zp[1]:14 [ bitmap_line_ydxd::x#3 bitmap_line_ydxd::x#6 bitmap_line_ydxd::x#2 ] 117,858.32: zp[1]:15 [ bitmap_line_ydxd::y#2 bitmap_line_ydxd::y#3 ] 7,777.15: zp[1]:37 [ bitmap_line_ydxd::xd#0 ] Uplift Scope [bitmap_clear] 2,207.6: zp[2]:9 [ bitmap_clear::bitmap#2 bitmap_clear::bitmap#3 bitmap_clear::bitmap#5 bitmap_clear::bitmap#1 ] 2,168.83: zp[1]:11 [ bitmap_clear::x#2 bitmap_clear::x#1 ] 185.17: zp[1]:8 [ bitmap_clear::y#4 bitmap_clear::y#1 ] 11: zp[2]:34 [ bitmap_clear::bitmap#0 ] Uplift Scope [bitmap_init] 366.12: zp[2]:6 [ bitmap_init::yoffs#2 bitmap_init::yoffs#4 bitmap_init::yoffs#1 ] 228.93: zp[1]:4 [ bitmap_init::bits#3 bitmap_init::bits#4 bitmap_init::bits#1 ] 218.83: zp[1]:3 [ bitmap_init::x#2 bitmap_init::x#1 ] 202: zp[1]:5 [ bitmap_init::y#2 bitmap_init::y#1 ] 202: zp[1]:29 [ bitmap_init::$0 ] 202: zp[1]:31 [ bitmap_init::$7 ] 202: zp[1]:32 [ bitmap_init::$8 ] 202: zp[1]:33 [ bitmap_init::$9 ] 50.5: zp[1]:30 [ bitmap_init::$10 ] Uplift Scope [bitmap_line] 134.67: zp[1]:36 [ bitmap_line::xd#2 ] 134.67: zp[1]:39 [ bitmap_line::xd#1 ] 86: zp[1]:28 [ bitmap_line::x1#0 ] Uplift Scope [init_screen] 336.67: zp[2]:12 [ init_screen::c#2 init_screen::c#1 ] Uplift Scope [] 33: zp[1]:2 [ next#5 next#0 ] Uplift Scope [MOS6526_CIA] Uplift Scope [MOS6569_VICII] Uplift Scope [MOS6581_SID] Uplift Scope [main] Uplifting [bitmap_plot] best 40153 combination reg byte y [ bitmap_plot::y#4 bitmap_plot::y#1 bitmap_plot::y#0 bitmap_plot::y#3 bitmap_plot::y#2 ] zp[2]:46 [ bitmap_plot::plotter_y#0 ] reg byte a [ bitmap_plot::$1 ] reg byte x [ bitmap_plot::x#4 bitmap_plot::x#1 bitmap_plot::x#0 bitmap_plot::x#3 bitmap_plot::x#2 ] zp[2]:44 [ bitmap_plot::plotter_x#0 ] zp[2]:48 [ bitmap_plot::plotter#0 ] Uplifting [bitmap_line_xdyi] best 39553 combination zp[1]:25 [ bitmap_line_xdyi::e#3 bitmap_line_xdyi::e#6 bitmap_line_xdyi::e#2 bitmap_line_xdyi::e#1 ] zp[1]:24 [ bitmap_line_xdyi::y#3 bitmap_line_xdyi::y#6 bitmap_line_xdyi::y#2 ] reg byte x [ bitmap_line_xdyi::$6 ] zp[1]:23 [ bitmap_line_xdyi::x#3 bitmap_line_xdyi::x#2 ] zp[1]:42 [ bitmap_line_xdyi::xd#1 ] zp[1]:41 [ bitmap_line_xdyi::x1#1 ] Uplifting [bitmap_line_xdyd] best 39553 combination zp[1]:19 [ bitmap_line_xdyd::e#3 bitmap_line_xdyd::e#6 bitmap_line_xdyd::e#2 bitmap_line_xdyd::e#1 ] zp[1]:18 [ bitmap_line_xdyd::y#3 bitmap_line_xdyd::y#6 bitmap_line_xdyd::y#2 ] zp[1]:17 [ bitmap_line_xdyd::x#3 bitmap_line_xdyd::x#0 bitmap_line_xdyd::x#2 ] zp[1]:38 [ bitmap_line_xdyd::xd#0 ] Uplifting [bitmap_line_ydxi] best 39553 combination zp[1]:22 [ bitmap_line_ydxi::e#3 bitmap_line_ydxi::e#0 bitmap_line_ydxi::e#6 bitmap_line_ydxi::e#2 bitmap_line_ydxi::e#1 ] zp[1]:20 [ bitmap_line_ydxi::x#3 bitmap_line_ydxi::x#6 bitmap_line_ydxi::x#2 ] zp[1]:21 [ bitmap_line_ydxi::y#3 bitmap_line_ydxi::y#2 ] zp[1]:40 [ bitmap_line_ydxi::xd#1 ] Uplifting [bitmap_line_ydxd] best 39553 combination zp[1]:16 [ bitmap_line_ydxd::e#3 bitmap_line_ydxd::e#0 bitmap_line_ydxd::e#6 bitmap_line_ydxd::e#2 bitmap_line_ydxd::e#1 ] zp[1]:14 [ bitmap_line_ydxd::x#3 bitmap_line_ydxd::x#6 bitmap_line_ydxd::x#2 ] zp[1]:15 [ bitmap_line_ydxd::y#2 bitmap_line_ydxd::y#3 ] zp[1]:37 [ bitmap_line_ydxd::xd#0 ] Uplifting [bitmap_clear] best 38653 combination zp[2]:9 [ bitmap_clear::bitmap#2 bitmap_clear::bitmap#3 bitmap_clear::bitmap#5 bitmap_clear::bitmap#1 ] reg byte x [ bitmap_clear::x#2 bitmap_clear::x#1 ] zp[1]:8 [ bitmap_clear::y#4 bitmap_clear::y#1 ] zp[2]:34 [ bitmap_clear::bitmap#0 ] Uplifting [bitmap_init] best 38133 combination zp[2]:6 [ bitmap_init::yoffs#2 bitmap_init::yoffs#4 bitmap_init::yoffs#1 ] reg byte y [ bitmap_init::bits#3 bitmap_init::bits#4 bitmap_init::bits#1 ] reg byte x [ bitmap_init::x#2 bitmap_init::x#1 ] reg byte x [ bitmap_init::y#2 bitmap_init::y#1 ] reg byte a [ bitmap_init::$0 ] zp[1]:31 [ bitmap_init::$7 ] zp[1]:32 [ bitmap_init::$8 ] zp[1]:33 [ bitmap_init::$9 ] zp[1]:30 [ bitmap_init::$10 ] Limited combination testing to 100 combinations of 34560 possible. Uplifting [bitmap_line] best 38077 combination reg byte x [ bitmap_line::xd#2 ] reg byte x [ bitmap_line::xd#1 ] reg byte a [ bitmap_line::x1#0 ] Uplifting [init_screen] best 38077 combination zp[2]:12 [ init_screen::c#2 init_screen::c#1 ] Uplifting [] best 38077 combination zp[1]:2 [ next#5 next#0 ] Uplifting [MOS6526_CIA] best 38077 combination Uplifting [MOS6569_VICII] best 38077 combination Uplifting [MOS6581_SID] best 38077 combination Uplifting [main] best 38077 combination Attempting to uplift remaining variables inzp[1]:16 [ bitmap_line_ydxd::e#3 bitmap_line_ydxd::e#0 bitmap_line_ydxd::e#6 bitmap_line_ydxd::e#2 bitmap_line_ydxd::e#1 ] Uplifting [bitmap_line_ydxd] best 38077 combination zp[1]:16 [ bitmap_line_ydxd::e#3 bitmap_line_ydxd::e#0 bitmap_line_ydxd::e#6 bitmap_line_ydxd::e#2 bitmap_line_ydxd::e#1 ] Attempting to uplift remaining variables inzp[1]:22 [ bitmap_line_ydxi::e#3 bitmap_line_ydxi::e#0 bitmap_line_ydxi::e#6 bitmap_line_ydxi::e#2 bitmap_line_ydxi::e#1 ] Uplifting [bitmap_line_ydxi] best 38077 combination zp[1]:22 [ bitmap_line_ydxi::e#3 bitmap_line_ydxi::e#0 bitmap_line_ydxi::e#6 bitmap_line_ydxi::e#2 bitmap_line_ydxi::e#1 ] Attempting to uplift remaining variables inzp[1]:19 [ bitmap_line_xdyd::e#3 bitmap_line_xdyd::e#6 bitmap_line_xdyd::e#2 bitmap_line_xdyd::e#1 ] Uplifting [bitmap_line_xdyd] best 38077 combination zp[1]:19 [ bitmap_line_xdyd::e#3 bitmap_line_xdyd::e#6 bitmap_line_xdyd::e#2 bitmap_line_xdyd::e#1 ] Attempting to uplift remaining variables inzp[1]:25 [ bitmap_line_xdyi::e#3 bitmap_line_xdyi::e#6 bitmap_line_xdyi::e#2 bitmap_line_xdyi::e#1 ] Uplifting [bitmap_line_xdyi] best 38077 combination zp[1]:25 [ bitmap_line_xdyi::e#3 bitmap_line_xdyi::e#6 bitmap_line_xdyi::e#2 bitmap_line_xdyi::e#1 ] Attempting to uplift remaining variables inzp[1]:14 [ bitmap_line_ydxd::x#3 bitmap_line_ydxd::x#6 bitmap_line_ydxd::x#2 ] Uplifting [bitmap_line_ydxd] best 38077 combination zp[1]:14 [ bitmap_line_ydxd::x#3 bitmap_line_ydxd::x#6 bitmap_line_ydxd::x#2 ] Attempting to uplift remaining variables inzp[1]:18 [ bitmap_line_xdyd::y#3 bitmap_line_xdyd::y#6 bitmap_line_xdyd::y#2 ] Uplifting [bitmap_line_xdyd] best 38077 combination zp[1]:18 [ bitmap_line_xdyd::y#3 bitmap_line_xdyd::y#6 bitmap_line_xdyd::y#2 ] Attempting to uplift remaining variables inzp[1]:20 [ bitmap_line_ydxi::x#3 bitmap_line_ydxi::x#6 bitmap_line_ydxi::x#2 ] Uplifting [bitmap_line_ydxi] best 38077 combination zp[1]:20 [ bitmap_line_ydxi::x#3 bitmap_line_ydxi::x#6 bitmap_line_ydxi::x#2 ] Attempting to uplift remaining variables inzp[1]:24 [ bitmap_line_xdyi::y#3 bitmap_line_xdyi::y#6 bitmap_line_xdyi::y#2 ] Uplifting [bitmap_line_xdyi] best 38077 combination zp[1]:24 [ bitmap_line_xdyi::y#3 bitmap_line_xdyi::y#6 bitmap_line_xdyi::y#2 ] Attempting to uplift remaining variables inzp[1]:17 [ bitmap_line_xdyd::x#3 bitmap_line_xdyd::x#0 bitmap_line_xdyd::x#2 ] Uplifting [bitmap_line_xdyd] best 38077 combination zp[1]:17 [ bitmap_line_xdyd::x#3 bitmap_line_xdyd::x#0 bitmap_line_xdyd::x#2 ] Attempting to uplift remaining variables inzp[1]:15 [ bitmap_line_ydxd::y#2 bitmap_line_ydxd::y#3 ] Uplifting [bitmap_line_ydxd] best 38077 combination zp[1]:15 [ bitmap_line_ydxd::y#2 bitmap_line_ydxd::y#3 ] Attempting to uplift remaining variables inzp[1]:21 [ bitmap_line_ydxi::y#3 bitmap_line_ydxi::y#2 ] Uplifting [bitmap_line_ydxi] best 38077 combination zp[1]:21 [ bitmap_line_ydxi::y#3 bitmap_line_ydxi::y#2 ] Attempting to uplift remaining variables inzp[1]:23 [ bitmap_line_xdyi::x#3 bitmap_line_xdyi::x#2 ] Uplifting [bitmap_line_xdyi] best 38077 combination zp[1]:23 [ bitmap_line_xdyi::x#3 bitmap_line_xdyi::x#2 ] Attempting to uplift remaining variables inzp[1]:38 [ bitmap_line_xdyd::xd#0 ] Uplifting [bitmap_line_xdyd] best 38077 combination zp[1]:38 [ bitmap_line_xdyd::xd#0 ] Attempting to uplift remaining variables inzp[1]:42 [ bitmap_line_xdyi::xd#1 ] Uplifting [bitmap_line_xdyi] best 38077 combination zp[1]:42 [ bitmap_line_xdyi::xd#1 ] Attempting to uplift remaining variables inzp[1]:37 [ bitmap_line_ydxd::xd#0 ] Uplifting [bitmap_line_ydxd] best 38077 combination zp[1]:37 [ bitmap_line_ydxd::xd#0 ] Attempting to uplift remaining variables inzp[1]:40 [ bitmap_line_ydxi::xd#1 ] Uplifting [bitmap_line_ydxi] best 38077 combination zp[1]:40 [ bitmap_line_ydxi::xd#1 ] Attempting to uplift remaining variables inzp[1]:41 [ bitmap_line_xdyi::x1#1 ] Uplifting [bitmap_line_xdyi] best 38077 combination zp[1]:41 [ bitmap_line_xdyi::x1#1 ] Attempting to uplift remaining variables inzp[1]:31 [ bitmap_init::$7 ] Uplifting [bitmap_init] best 38017 combination reg byte a [ bitmap_init::$7 ] Attempting to uplift remaining variables inzp[1]:32 [ bitmap_init::$8 ] Uplifting [bitmap_init] best 37957 combination reg byte a [ bitmap_init::$8 ] Attempting to uplift remaining variables inzp[1]:33 [ bitmap_init::$9 ] Uplifting [bitmap_init] best 37897 combination reg byte a [ bitmap_init::$9 ] Attempting to uplift remaining variables inzp[1]:8 [ bitmap_clear::y#4 bitmap_clear::y#1 ] Uplifting [bitmap_clear] best 37897 combination zp[1]:8 [ bitmap_clear::y#4 bitmap_clear::y#1 ] Attempting to uplift remaining variables inzp[1]:30 [ bitmap_init::$10 ] Uplifting [bitmap_init] best 37897 combination zp[1]:30 [ bitmap_init::$10 ] Attempting to uplift remaining variables inzp[1]:2 [ next#5 next#0 ] Uplifting [] best 37897 combination zp[1]:2 [ next#5 next#0 ] Coalescing zero page register [ zp[2]:9 [ bitmap_clear::bitmap#2 bitmap_clear::bitmap#3 bitmap_clear::bitmap#5 bitmap_clear::bitmap#1 ] ] with [ zp[2]:34 [ bitmap_clear::bitmap#0 ] ] - score: 1 Coalescing zero page register [ zp[2]:44 [ bitmap_plot::plotter_x#0 ] ] with [ zp[2]:48 [ bitmap_plot::plotter#0 ] ] - score: 1 Coalescing zero page register [ zp[1]:8 [ bitmap_clear::y#4 bitmap_clear::y#1 ] ] with [ zp[1]:2 [ next#5 next#0 ] ] Coalescing zero page register [ zp[2]:9 [ bitmap_clear::bitmap#2 bitmap_clear::bitmap#3 bitmap_clear::bitmap#5 bitmap_clear::bitmap#1 bitmap_clear::bitmap#0 ] ] with [ zp[2]:6 [ bitmap_init::yoffs#2 bitmap_init::yoffs#4 bitmap_init::yoffs#1 ] ] Coalescing zero page register [ zp[1]:17 [ bitmap_line_xdyd::x#3 bitmap_line_xdyd::x#0 bitmap_line_xdyd::x#2 ] ] with [ zp[1]:14 [ bitmap_line_ydxd::x#3 bitmap_line_ydxd::x#6 bitmap_line_ydxd::x#2 ] ] Coalescing zero page register [ zp[1]:18 [ bitmap_line_xdyd::y#3 bitmap_line_xdyd::y#6 bitmap_line_xdyd::y#2 ] ] with [ zp[1]:15 [ bitmap_line_ydxd::y#2 bitmap_line_ydxd::y#3 ] ] Coalescing zero page register [ zp[1]:19 [ bitmap_line_xdyd::e#3 bitmap_line_xdyd::e#6 bitmap_line_xdyd::e#2 bitmap_line_xdyd::e#1 ] ] with [ zp[1]:16 [ bitmap_line_ydxd::e#3 bitmap_line_ydxd::e#0 bitmap_line_ydxd::e#6 bitmap_line_ydxd::e#2 bitmap_line_ydxd::e#1 ] ] Coalescing zero page register [ zp[1]:23 [ bitmap_line_xdyi::x#3 bitmap_line_xdyi::x#2 ] ] with [ zp[1]:20 [ bitmap_line_ydxi::x#3 bitmap_line_ydxi::x#6 bitmap_line_ydxi::x#2 ] ] Coalescing zero page register [ zp[1]:24 [ bitmap_line_xdyi::y#3 bitmap_line_xdyi::y#6 bitmap_line_xdyi::y#2 ] ] with [ zp[1]:21 [ bitmap_line_ydxi::y#3 bitmap_line_ydxi::y#2 ] ] Coalescing zero page register [ zp[1]:25 [ bitmap_line_xdyi::e#3 bitmap_line_xdyi::e#6 bitmap_line_xdyi::e#2 bitmap_line_xdyi::e#1 ] ] with [ zp[1]:22 [ bitmap_line_ydxi::e#3 bitmap_line_ydxi::e#0 bitmap_line_ydxi::e#6 bitmap_line_ydxi::e#2 bitmap_line_ydxi::e#1 ] ] Coalescing zero page register [ zp[1]:37 [ bitmap_line_ydxd::xd#0 ] ] with [ zp[1]:30 [ bitmap_init::$10 ] ] Coalescing zero page register [ zp[1]:40 [ bitmap_line_ydxi::xd#1 ] ] with [ zp[1]:38 [ bitmap_line_xdyd::xd#0 ] ] Coalescing zero page register [ zp[2]:44 [ bitmap_plot::plotter_x#0 bitmap_plot::plotter#0 ] ] with [ zp[2]:12 [ init_screen::c#2 init_screen::c#1 ] ] Coalescing zero page register [ zp[1]:23 [ bitmap_line_xdyi::x#3 bitmap_line_xdyi::x#2 bitmap_line_ydxi::x#3 bitmap_line_ydxi::x#6 bitmap_line_ydxi::x#2 ] ] with [ zp[1]:17 [ bitmap_line_xdyd::x#3 bitmap_line_xdyd::x#0 bitmap_line_xdyd::x#2 bitmap_line_ydxd::x#3 bitmap_line_ydxd::x#6 bitmap_line_ydxd::x#2 ] ] Coalescing zero page register [ zp[1]:24 [ bitmap_line_xdyi::y#3 bitmap_line_xdyi::y#6 bitmap_line_xdyi::y#2 bitmap_line_ydxi::y#3 bitmap_line_ydxi::y#2 ] ] with [ zp[1]:18 [ bitmap_line_xdyd::y#3 bitmap_line_xdyd::y#6 bitmap_line_xdyd::y#2 bitmap_line_ydxd::y#2 bitmap_line_ydxd::y#3 ] ] Coalescing zero page register [ zp[1]:25 [ bitmap_line_xdyi::e#3 bitmap_line_xdyi::e#6 bitmap_line_xdyi::e#2 bitmap_line_xdyi::e#1 bitmap_line_ydxi::e#3 bitmap_line_ydxi::e#0 bitmap_line_ydxi::e#6 bitmap_line_ydxi::e#2 bitmap_line_ydxi::e#1 ] ] with [ zp[1]:19 [ bitmap_line_xdyd::e#3 bitmap_line_xdyd::e#6 bitmap_line_xdyd::e#2 bitmap_line_xdyd::e#1 bitmap_line_ydxd::e#3 bitmap_line_ydxd::e#0 bitmap_line_ydxd::e#6 bitmap_line_ydxd::e#2 bitmap_line_ydxd::e#1 ] ] Coalescing zero page register [ zp[1]:40 [ bitmap_line_ydxi::xd#1 bitmap_line_xdyd::xd#0 ] ] with [ zp[1]:37 [ bitmap_line_ydxd::xd#0 bitmap_init::$10 ] ] Coalescing zero page register [ zp[1]:41 [ bitmap_line_xdyi::x1#1 ] ] with [ zp[1]:8 [ bitmap_clear::y#4 bitmap_clear::y#1 next#5 next#0 ] ] Coalescing zero page register [ zp[2]:44 [ bitmap_plot::plotter_x#0 bitmap_plot::plotter#0 init_screen::c#2 init_screen::c#1 ] ] with [ zp[2]:9 [ bitmap_clear::bitmap#2 bitmap_clear::bitmap#3 bitmap_clear::bitmap#5 bitmap_clear::bitmap#1 bitmap_clear::bitmap#0 bitmap_init::yoffs#2 bitmap_init::yoffs#4 bitmap_init::yoffs#1 ] ] Coalescing zero page register [ zp[1]:42 [ bitmap_line_xdyi::xd#1 ] ] with [ zp[1]:40 [ bitmap_line_ydxi::xd#1 bitmap_line_xdyd::xd#0 bitmap_line_ydxd::xd#0 bitmap_init::$10 ] ] Allocated (was zp[1]:23) zp[1]:2 [ bitmap_line_xdyi::x#3 bitmap_line_xdyi::x#2 bitmap_line_ydxi::x#3 bitmap_line_ydxi::x#6 bitmap_line_ydxi::x#2 bitmap_line_xdyd::x#3 bitmap_line_xdyd::x#0 bitmap_line_xdyd::x#2 bitmap_line_ydxd::x#3 bitmap_line_ydxd::x#6 bitmap_line_ydxd::x#2 ] Allocated (was zp[1]:24) zp[1]:3 [ bitmap_line_xdyi::y#3 bitmap_line_xdyi::y#6 bitmap_line_xdyi::y#2 bitmap_line_ydxi::y#3 bitmap_line_ydxi::y#2 bitmap_line_xdyd::y#3 bitmap_line_xdyd::y#6 bitmap_line_xdyd::y#2 bitmap_line_ydxd::y#2 bitmap_line_ydxd::y#3 ] Allocated (was zp[1]:25) zp[1]:4 [ bitmap_line_xdyi::e#3 bitmap_line_xdyi::e#6 bitmap_line_xdyi::e#2 bitmap_line_xdyi::e#1 bitmap_line_ydxi::e#3 bitmap_line_ydxi::e#0 bitmap_line_ydxi::e#6 bitmap_line_ydxi::e#2 bitmap_line_ydxi::e#1 bitmap_line_xdyd::e#3 bitmap_line_xdyd::e#6 bitmap_line_xdyd::e#2 bitmap_line_xdyd::e#1 bitmap_line_ydxd::e#3 bitmap_line_ydxd::e#0 bitmap_line_ydxd::e#6 bitmap_line_ydxd::e#2 bitmap_line_ydxd::e#1 ] Allocated (was zp[1]:41) zp[1]:5 [ bitmap_line_xdyi::x1#1 bitmap_clear::y#4 bitmap_clear::y#1 next#5 next#0 ] Allocated (was zp[1]:42) zp[1]:6 [ bitmap_line_xdyi::xd#1 bitmap_line_ydxi::xd#1 bitmap_line_xdyd::xd#0 bitmap_line_ydxd::xd#0 bitmap_init::$10 ] Allocated (was zp[2]:44) zp[2]:7 [ bitmap_plot::plotter_x#0 bitmap_plot::plotter#0 init_screen::c#2 init_screen::c#1 bitmap_clear::bitmap#2 bitmap_clear::bitmap#3 bitmap_clear::bitmap#5 bitmap_clear::bitmap#1 bitmap_clear::bitmap#0 bitmap_init::yoffs#2 bitmap_init::yoffs#4 bitmap_init::yoffs#1 ] Allocated (was zp[2]:46) zp[2]:9 [ bitmap_plot::plotter_y#0 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments // Illustrates problem with bitmap-draw.kc line() // Reported by Janne Johansson // Upstart // Commodore 64 PRG executable file .file [name="bitmap-line-anim-1.prg", type="prg", segments="Program"] .segmentdef Program [segments="Basic, Code, Data"] .segmentdef Basic [start=$0801] .segmentdef Code [start=$80d] .segmentdef Data [startAfter="Code"] .segment Basic :BasicUpstart(main) // Global Constants & labels .const VICII_BMM = $20 .const VICII_DEN = $10 .const VICII_RSEL = 8 .label BORDER_COLOR = $d020 .label BG_COLOR = $d021 .label D011 = $d011 .label VICII_MEMORY = $d018 .label SCREEN = $400 .label BITMAP = $2000 .label next = 5 .segment Code // main main: { // [0] *BORDER_COLOR = 0 -- _deref_pbuc1=vbuc2 lda #0 sta BORDER_COLOR // [1] *BG_COLOR = 0 -- _deref_pbuc1=vbuc2 lda #0 sta BG_COLOR // [2] *D011 = VICII_BMM|VICII_DEN|VICII_RSEL|3 -- _deref_pbuc1=vbuc2 lda #VICII_BMM|VICII_DEN|VICII_RSEL|3 sta D011 // [3] *VICII_MEMORY = (byte)(word)SCREEN&$3fff/$40|(word)BITMAP&$3fff/$400 -- _deref_pbuc1=vbuc2 lda #(SCREEN&$3fff)/$40|(BITMAP&$3fff)/$400 sta VICII_MEMORY // [4] call bitmap_init // [13] phi from main to bitmap_init [phi:main->bitmap_init] bitmap_init_from_main: jsr bitmap_init // [5] phi from main to main::@2 [phi:main->main::@2] __b2_from_main: jmp __b2 // main::@2 __b2: // [6] call bitmap_clear jsr bitmap_clear // [7] phi from main::@2 to main::@3 [phi:main::@2->main::@3] __b3_from___b2: jmp __b3 // main::@3 __b3: // [8] call init_screen // [49] phi from main::@3 to init_screen [phi:main::@3->init_screen] init_screen_from___b3: jsr init_screen // [9] phi from main::@3 to main::@1 [phi:main::@3->main::@1] __b1_from___b3: // [9] phi next#5 = 0 [phi:main::@3->main::@1#0] -- vbuz1=vbuc1 lda #0 sta.z next jmp __b1 // main::@1 __b1: // [10] bitmap_line::x1#0 = next#5 -- vbuaa=vbuz1 lda.z next // [11] call bitmap_line jsr bitmap_line jmp __b4 // main::@4 __b4: // [12] next#0 = ++ next#5 -- vbuz1=_inc_vbuz1 inc.z next // [9] phi from main::@4 to main::@1 [phi:main::@4->main::@1] __b1_from___b4: // [9] phi next#5 = next#0 [phi:main::@4->main::@1#0] -- register_copy jmp __b1 } // bitmap_init // Initialize the bitmap plotter tables for a specific bitmap bitmap_init: { .label __10 = 6 .label yoffs = 7 // [14] phi from bitmap_init to bitmap_init::@1 [phi:bitmap_init->bitmap_init::@1] __b1_from_bitmap_init: // [14] phi bitmap_init::bits#3 = $80 [phi:bitmap_init->bitmap_init::@1#0] -- vbuyy=vbuc1 ldy #$80 // [14] phi bitmap_init::x#2 = 0 [phi:bitmap_init->bitmap_init::@1#1] -- vbuxx=vbuc1 ldx #0 jmp __b1 // [14] phi from bitmap_init::@2 to bitmap_init::@1 [phi:bitmap_init::@2->bitmap_init::@1] __b1_from___b2: // [14] phi bitmap_init::bits#3 = bitmap_init::bits#4 [phi:bitmap_init::@2->bitmap_init::@1#0] -- register_copy // [14] phi bitmap_init::x#2 = bitmap_init::x#1 [phi:bitmap_init::@2->bitmap_init::@1#1] -- register_copy jmp __b1 // bitmap_init::@1 __b1: // [15] bitmap_init::$0 = bitmap_init::x#2 & $f8 -- vbuaa=vbuxx_band_vbuc1 txa and #$f8 // [16] bitmap_plot_xlo[bitmap_init::x#2] = bitmap_init::$0 -- pbuc1_derefidx_vbuxx=vbuaa sta bitmap_plot_xlo,x // [17] bitmap_plot_xhi[bitmap_init::x#2] = >BITMAP -- pbuc1_derefidx_vbuxx=vbuc2 lda #>BITMAP sta bitmap_plot_xhi,x // [18] bitmap_plot_bit[bitmap_init::x#2] = bitmap_init::bits#3 -- pbuc1_derefidx_vbuxx=vbuyy tya sta bitmap_plot_bit,x // [19] bitmap_init::bits#1 = bitmap_init::bits#3 >> 1 -- vbuyy=vbuyy_ror_1 tya lsr tay // [20] if(bitmap_init::bits#1!=0) goto bitmap_init::@6 -- vbuyy_neq_0_then_la1 cpy #0 bne __b6_from___b1 // [22] phi from bitmap_init::@1 to bitmap_init::@2 [phi:bitmap_init::@1->bitmap_init::@2] __b2_from___b1: // [22] phi bitmap_init::bits#4 = $80 [phi:bitmap_init::@1->bitmap_init::@2#0] -- vbuyy=vbuc1 ldy #$80 jmp __b2 // [21] phi from bitmap_init::@1 to bitmap_init::@6 [phi:bitmap_init::@1->bitmap_init::@6] __b6_from___b1: jmp __b6 // bitmap_init::@6 __b6: // [22] phi from bitmap_init::@6 to bitmap_init::@2 [phi:bitmap_init::@6->bitmap_init::@2] __b2_from___b6: // [22] phi bitmap_init::bits#4 = bitmap_init::bits#1 [phi:bitmap_init::@6->bitmap_init::@2#0] -- register_copy jmp __b2 // bitmap_init::@2 __b2: // [23] bitmap_init::x#1 = ++ bitmap_init::x#2 -- vbuxx=_inc_vbuxx inx // [24] if(bitmap_init::x#1!=0) goto bitmap_init::@1 -- vbuxx_neq_0_then_la1 cpx #0 bne __b1_from___b2 // [25] phi from bitmap_init::@2 to bitmap_init::@3 [phi:bitmap_init::@2->bitmap_init::@3] __b3_from___b2: // [25] phi bitmap_init::yoffs#2 = (byte*) 0 [phi:bitmap_init::@2->bitmap_init::@3#0] -- pbuz1=pbuc1 lda #<0 sta.z yoffs lda #>0 sta.z yoffs+1 // [25] phi bitmap_init::y#2 = 0 [phi:bitmap_init::@2->bitmap_init::@3#1] -- vbuxx=vbuc1 ldx #0 jmp __b3 // [25] phi from bitmap_init::@4 to bitmap_init::@3 [phi:bitmap_init::@4->bitmap_init::@3] __b3_from___b4: // [25] phi bitmap_init::yoffs#2 = bitmap_init::yoffs#4 [phi:bitmap_init::@4->bitmap_init::@3#0] -- register_copy // [25] phi bitmap_init::y#2 = bitmap_init::y#1 [phi:bitmap_init::@4->bitmap_init::@3#1] -- register_copy jmp __b3 // bitmap_init::@3 __b3: // [26] bitmap_init::$10 = bitmap_init::y#2 & 7 -- vbuz1=vbuxx_band_vbuc1 lda #7 sax.z __10 // [27] bitmap_init::$7 = < bitmap_init::yoffs#2 -- vbuaa=_lo_pbuz1 lda.z yoffs // [28] bitmap_init::$8 = bitmap_init::$10 | bitmap_init::$7 -- vbuaa=vbuz1_bor_vbuaa ora.z __10 // [29] bitmap_plot_ylo[bitmap_init::y#2] = bitmap_init::$8 -- pbuc1_derefidx_vbuxx=vbuaa sta bitmap_plot_ylo,x // [30] bitmap_init::$9 = > bitmap_init::yoffs#2 -- vbuaa=_hi_pbuz1 lda.z yoffs+1 // [31] bitmap_plot_yhi[bitmap_init::y#2] = bitmap_init::$9 -- pbuc1_derefidx_vbuxx=vbuaa sta bitmap_plot_yhi,x // [32] if(bitmap_init::$10!=7) goto bitmap_init::@4 -- vbuz1_neq_vbuc1_then_la1 lda #7 cmp.z __10 bne __b4_from___b3 jmp __b5 // bitmap_init::@5 __b5: // [33] bitmap_init::yoffs#1 = bitmap_init::yoffs#2 + (word)$28*8 -- pbuz1=pbuz1_plus_vwuc1 clc lda.z yoffs adc #<$28*8 sta.z yoffs lda.z yoffs+1 adc #>$28*8 sta.z yoffs+1 // [34] phi from bitmap_init::@3 bitmap_init::@5 to bitmap_init::@4 [phi:bitmap_init::@3/bitmap_init::@5->bitmap_init::@4] __b4_from___b3: __b4_from___b5: // [34] phi bitmap_init::yoffs#4 = bitmap_init::yoffs#2 [phi:bitmap_init::@3/bitmap_init::@5->bitmap_init::@4#0] -- register_copy jmp __b4 // bitmap_init::@4 __b4: // [35] bitmap_init::y#1 = ++ bitmap_init::y#2 -- vbuxx=_inc_vbuxx inx // [36] if(bitmap_init::y#1!=0) goto bitmap_init::@3 -- vbuxx_neq_0_then_la1 cpx #0 bne __b3_from___b4 jmp __breturn // bitmap_init::@return __breturn: // [37] return rts } // bitmap_clear // Clear all graphics on the bitmap bitmap_clear: { .label bitmap = 7 .label y = 5 // [38] bitmap_clear::bitmap#0 = *bitmap_plot_xhi w= *bitmap_plot_xlo -- vwuz1=_deref_pbuc1_word__deref_pbuc2 lda bitmap_plot_xlo sta.z bitmap lda bitmap_plot_xhi sta.z bitmap+1 // [39] bitmap_clear::bitmap#5 = (byte*)bitmap_clear::bitmap#0 // [40] phi from bitmap_clear to bitmap_clear::@1 [phi:bitmap_clear->bitmap_clear::@1] __b1_from_bitmap_clear: // [40] phi bitmap_clear::y#4 = 0 [phi:bitmap_clear->bitmap_clear::@1#0] -- vbuz1=vbuc1 lda #0 sta.z y // [40] phi bitmap_clear::bitmap#3 = bitmap_clear::bitmap#5 [phi:bitmap_clear->bitmap_clear::@1#1] -- register_copy jmp __b1 // [40] phi from bitmap_clear::@3 to bitmap_clear::@1 [phi:bitmap_clear::@3->bitmap_clear::@1] __b1_from___b3: // [40] phi bitmap_clear::y#4 = bitmap_clear::y#1 [phi:bitmap_clear::@3->bitmap_clear::@1#0] -- register_copy // [40] phi bitmap_clear::bitmap#3 = bitmap_clear::bitmap#1 [phi:bitmap_clear::@3->bitmap_clear::@1#1] -- register_copy jmp __b1 // bitmap_clear::@1 __b1: // [41] phi from bitmap_clear::@1 to bitmap_clear::@2 [phi:bitmap_clear::@1->bitmap_clear::@2] __b2_from___b1: // [41] phi bitmap_clear::x#2 = 0 [phi:bitmap_clear::@1->bitmap_clear::@2#0] -- vbuxx=vbuc1 ldx #0 // [41] phi bitmap_clear::bitmap#2 = bitmap_clear::bitmap#3 [phi:bitmap_clear::@1->bitmap_clear::@2#1] -- register_copy jmp __b2 // [41] phi from bitmap_clear::@2 to bitmap_clear::@2 [phi:bitmap_clear::@2->bitmap_clear::@2] __b2_from___b2: // [41] phi bitmap_clear::x#2 = bitmap_clear::x#1 [phi:bitmap_clear::@2->bitmap_clear::@2#0] -- register_copy // [41] phi bitmap_clear::bitmap#2 = bitmap_clear::bitmap#1 [phi:bitmap_clear::@2->bitmap_clear::@2#1] -- register_copy jmp __b2 // bitmap_clear::@2 __b2: // [42] *bitmap_clear::bitmap#2 = 0 -- _deref_pbuz1=vbuc1 lda #0 ldy #0 sta (bitmap),y // [43] bitmap_clear::bitmap#1 = ++ bitmap_clear::bitmap#2 -- pbuz1=_inc_pbuz1 inc.z bitmap bne !+ inc.z bitmap+1 !: // [44] bitmap_clear::x#1 = ++ bitmap_clear::x#2 -- vbuxx=_inc_vbuxx inx // [45] if(bitmap_clear::x#1!=$c8) goto bitmap_clear::@2 -- vbuxx_neq_vbuc1_then_la1 cpx #$c8 bne __b2_from___b2 jmp __b3 // bitmap_clear::@3 __b3: // [46] bitmap_clear::y#1 = ++ bitmap_clear::y#4 -- vbuz1=_inc_vbuz1 inc.z y // [47] if(bitmap_clear::y#1!=$28) goto bitmap_clear::@1 -- vbuz1_neq_vbuc1_then_la1 lda #$28 cmp.z y bne __b1_from___b3 jmp __breturn // bitmap_clear::@return __breturn: // [48] return rts } // init_screen init_screen: { .label c = 7 // [50] phi from init_screen to init_screen::@1 [phi:init_screen->init_screen::@1] __b1_from_init_screen: // [50] phi init_screen::c#2 = SCREEN [phi:init_screen->init_screen::@1#0] -- pbuz1=pbuc1 lda #SCREEN sta.z c+1 jmp __b1 // init_screen::@1 __b1: // [51] if(init_screen::c#2!=SCREEN+$400) goto init_screen::@2 -- pbuz1_neq_pbuc1_then_la1 lda.z c+1 cmp #>SCREEN+$400 bne __b2 lda.z c cmp #init_screen::@1] __b1_from___b2: // [50] phi init_screen::c#2 = init_screen::c#1 [phi:init_screen::@2->init_screen::@1#0] -- register_copy jmp __b1 } // bitmap_line // Draw a line on the bitmap // bitmap_line(byte register(A) x1) bitmap_line: { .label x0 = 0 .label y0 = 0 .label y1 = $64 // [55] if(bitmap_line::x0#0bitmap_line_xdyd] bitmap_line_xdyd_from___b4: jsr bitmap_line_xdyd jmp __breturn // bitmap_line::@1 __b1: // [64] bitmap_line::xd#1 = bitmap_line::x1#0 -- vbuxx=vbuaa tax jmp __b6 // bitmap_line::@6 __b6: // [65] if(bitmap_line::y1#0bitmap_line_xdyi] bitmap_line_xdyi_from___b7: jsr bitmap_line_xdyi jmp __breturn } // bitmap_line_ydxd // bitmap_line_ydxd(byte zp(3) y, byte zp(2) x, byte zp(6) xd) bitmap_line_ydxd: { .label xd = 6 .label e = 4 .label y = 3 .label x = 2 // [71] bitmap_line_ydxd::e#0 = bitmap_line_ydxd::xd#0 >> 1 -- vbuz1=vbuz2_ror_1 lda.z xd lsr sta.z e // [72] phi from bitmap_line_ydxd to bitmap_line_ydxd::@1 [phi:bitmap_line_ydxd->bitmap_line_ydxd::@1] __b1_from_bitmap_line_ydxd: // [72] phi bitmap_line_ydxd::e#3 = bitmap_line_ydxd::e#0 [phi:bitmap_line_ydxd->bitmap_line_ydxd::@1#0] -- register_copy // [72] phi bitmap_line_ydxd::y#2 = bitmap_line::y0#0 [phi:bitmap_line_ydxd->bitmap_line_ydxd::@1#1] -- vbuz1=vbuc1 lda #bitmap_line.y0 sta.z y // [72] phi bitmap_line_ydxd::x#3 = bitmap_line::x0#0 [phi:bitmap_line_ydxd->bitmap_line_ydxd::@1#2] -- vbuz1=vbuc1 lda #bitmap_line.x0 sta.z x jmp __b1 // [72] phi from bitmap_line_ydxd::@2 to bitmap_line_ydxd::@1 [phi:bitmap_line_ydxd::@2->bitmap_line_ydxd::@1] __b1_from___b2: // [72] phi bitmap_line_ydxd::e#3 = bitmap_line_ydxd::e#6 [phi:bitmap_line_ydxd::@2->bitmap_line_ydxd::@1#0] -- register_copy // [72] phi bitmap_line_ydxd::y#2 = bitmap_line_ydxd::y#3 [phi:bitmap_line_ydxd::@2->bitmap_line_ydxd::@1#1] -- register_copy // [72] phi bitmap_line_ydxd::x#3 = bitmap_line_ydxd::x#6 [phi:bitmap_line_ydxd::@2->bitmap_line_ydxd::@1#2] -- register_copy jmp __b1 // bitmap_line_ydxd::@1 __b1: // [73] bitmap_plot::x#3 = bitmap_line_ydxd::x#3 -- vbuxx=vbuz1 ldx.z x // [74] bitmap_plot::y#3 = bitmap_line_ydxd::y#2 -- vbuyy=vbuz1 ldy.z y // [75] call bitmap_plot // [124] phi from bitmap_line_ydxd::@1 to bitmap_plot [phi:bitmap_line_ydxd::@1->bitmap_plot] bitmap_plot_from___b1: // [124] phi bitmap_plot::y#4 = bitmap_plot::y#3 [phi:bitmap_line_ydxd::@1->bitmap_plot#0] -- register_copy // [124] phi bitmap_plot::x#4 = bitmap_plot::x#3 [phi:bitmap_line_ydxd::@1->bitmap_plot#1] -- register_copy jsr bitmap_plot jmp __b4 // bitmap_line_ydxd::@4 __b4: // [76] bitmap_line_ydxd::y#3 = ++ bitmap_line_ydxd::y#2 -- vbuz1=_inc_vbuz1 inc.z y // [77] bitmap_line_ydxd::e#1 = bitmap_line_ydxd::e#3 + bitmap_line_ydxd::xd#0 -- vbuz1=vbuz1_plus_vbuz2 lda.z e clc adc.z xd sta.z e // [78] if(bitmap_line::y1#0>=bitmap_line_ydxd::e#1) goto bitmap_line_ydxd::@2 -- vbuc1_ge_vbuz1_then_la1 lda #bitmap_line.y1 cmp.z e bcs __b2_from___b4 jmp __b3 // bitmap_line_ydxd::@3 __b3: // [79] bitmap_line_ydxd::x#2 = -- bitmap_line_ydxd::x#3 -- vbuz1=_dec_vbuz1 dec.z x // [80] bitmap_line_ydxd::e#2 = bitmap_line_ydxd::e#1 - bitmap_line::y1#0 -- vbuz1=vbuz1_minus_vbuc1 lax.z e axs #bitmap_line.y1 stx.z e // [81] phi from bitmap_line_ydxd::@3 bitmap_line_ydxd::@4 to bitmap_line_ydxd::@2 [phi:bitmap_line_ydxd::@3/bitmap_line_ydxd::@4->bitmap_line_ydxd::@2] __b2_from___b3: __b2_from___b4: // [81] phi bitmap_line_ydxd::e#6 = bitmap_line_ydxd::e#2 [phi:bitmap_line_ydxd::@3/bitmap_line_ydxd::@4->bitmap_line_ydxd::@2#0] -- register_copy // [81] phi bitmap_line_ydxd::x#6 = bitmap_line_ydxd::x#2 [phi:bitmap_line_ydxd::@3/bitmap_line_ydxd::@4->bitmap_line_ydxd::@2#1] -- register_copy jmp __b2 // bitmap_line_ydxd::@2 __b2: // [82] if(bitmap_line_ydxd::y#3!=bitmap_line::y1#0+1) goto bitmap_line_ydxd::@1 -- vbuz1_neq_vbuc1_then_la1 lda #bitmap_line.y1+1 cmp.z y bne __b1_from___b2 jmp __breturn // bitmap_line_ydxd::@return __breturn: // [83] return rts } // bitmap_line_xdyd // bitmap_line_xdyd(byte zp(2) x, byte zp(3) y, byte zp(6) xd) bitmap_line_xdyd: { .label x = 2 .label xd = 6 .label e = 4 .label y = 3 // [85] phi from bitmap_line_xdyd to bitmap_line_xdyd::@1 [phi:bitmap_line_xdyd->bitmap_line_xdyd::@1] __b1_from_bitmap_line_xdyd: // [85] phi bitmap_line_xdyd::e#3 = bitmap_line::y1#0>>1 [phi:bitmap_line_xdyd->bitmap_line_xdyd::@1#0] -- vbuz1=vbuc1 lda #bitmap_line.y1>>1 sta.z e // [85] phi bitmap_line_xdyd::y#3 = bitmap_line::y1#0 [phi:bitmap_line_xdyd->bitmap_line_xdyd::@1#1] -- vbuz1=vbuc1 lda #bitmap_line.y1 sta.z y // [85] phi bitmap_line_xdyd::x#3 = bitmap_line_xdyd::x#0 [phi:bitmap_line_xdyd->bitmap_line_xdyd::@1#2] -- register_copy jmp __b1 // [85] phi from bitmap_line_xdyd::@2 to bitmap_line_xdyd::@1 [phi:bitmap_line_xdyd::@2->bitmap_line_xdyd::@1] __b1_from___b2: // [85] phi bitmap_line_xdyd::e#3 = bitmap_line_xdyd::e#6 [phi:bitmap_line_xdyd::@2->bitmap_line_xdyd::@1#0] -- register_copy // [85] phi bitmap_line_xdyd::y#3 = bitmap_line_xdyd::y#6 [phi:bitmap_line_xdyd::@2->bitmap_line_xdyd::@1#1] -- register_copy // [85] phi bitmap_line_xdyd::x#3 = bitmap_line_xdyd::x#2 [phi:bitmap_line_xdyd::@2->bitmap_line_xdyd::@1#2] -- register_copy jmp __b1 // bitmap_line_xdyd::@1 __b1: // [86] bitmap_plot::x#1 = bitmap_line_xdyd::x#3 -- vbuxx=vbuz1 ldx.z x // [87] bitmap_plot::y#1 = bitmap_line_xdyd::y#3 -- vbuyy=vbuz1 ldy.z y // [88] call bitmap_plot // [124] phi from bitmap_line_xdyd::@1 to bitmap_plot [phi:bitmap_line_xdyd::@1->bitmap_plot] bitmap_plot_from___b1: // [124] phi bitmap_plot::y#4 = bitmap_plot::y#1 [phi:bitmap_line_xdyd::@1->bitmap_plot#0] -- register_copy // [124] phi bitmap_plot::x#4 = bitmap_plot::x#1 [phi:bitmap_line_xdyd::@1->bitmap_plot#1] -- register_copy jsr bitmap_plot jmp __b4 // bitmap_line_xdyd::@4 __b4: // [89] bitmap_line_xdyd::x#2 = ++ bitmap_line_xdyd::x#3 -- vbuz1=_inc_vbuz1 inc.z x // [90] bitmap_line_xdyd::e#1 = bitmap_line_xdyd::e#3 + bitmap_line::y1#0 -- vbuz1=vbuz1_plus_vbuc1 lax.z e axs #-[bitmap_line.y1] stx.z e // [91] if(bitmap_line_xdyd::xd#0>=bitmap_line_xdyd::e#1) goto bitmap_line_xdyd::@2 -- vbuz1_ge_vbuz2_then_la1 lda.z xd cmp.z e bcs __b2_from___b4 jmp __b3 // bitmap_line_xdyd::@3 __b3: // [92] bitmap_line_xdyd::y#2 = -- bitmap_line_xdyd::y#3 -- vbuz1=_dec_vbuz1 dec.z y // [93] bitmap_line_xdyd::e#2 = bitmap_line_xdyd::e#1 - bitmap_line_xdyd::xd#0 -- vbuz1=vbuz1_minus_vbuz2 lda.z e sec sbc.z xd sta.z e // [94] phi from bitmap_line_xdyd::@3 bitmap_line_xdyd::@4 to bitmap_line_xdyd::@2 [phi:bitmap_line_xdyd::@3/bitmap_line_xdyd::@4->bitmap_line_xdyd::@2] __b2_from___b3: __b2_from___b4: // [94] phi bitmap_line_xdyd::e#6 = bitmap_line_xdyd::e#2 [phi:bitmap_line_xdyd::@3/bitmap_line_xdyd::@4->bitmap_line_xdyd::@2#0] -- register_copy // [94] phi bitmap_line_xdyd::y#6 = bitmap_line_xdyd::y#2 [phi:bitmap_line_xdyd::@3/bitmap_line_xdyd::@4->bitmap_line_xdyd::@2#1] -- register_copy jmp __b2 // bitmap_line_xdyd::@2 __b2: // [95] if(bitmap_line_xdyd::x#2!=1) goto bitmap_line_xdyd::@1 -- vbuz1_neq_vbuc1_then_la1 lda #1 cmp.z x bne __b1_from___b2 jmp __breturn // bitmap_line_xdyd::@return __breturn: // [96] return rts } // bitmap_line_ydxi // bitmap_line_ydxi(byte zp(3) y, byte zp(2) x, byte zp(6) xd) bitmap_line_ydxi: { .label xd = 6 .label e = 4 .label y = 3 .label x = 2 // [97] bitmap_line_ydxi::e#0 = bitmap_line_ydxi::xd#1 >> 1 -- vbuz1=vbuz2_ror_1 lda.z xd lsr sta.z e // [98] phi from bitmap_line_ydxi to bitmap_line_ydxi::@1 [phi:bitmap_line_ydxi->bitmap_line_ydxi::@1] __b1_from_bitmap_line_ydxi: // [98] phi bitmap_line_ydxi::e#3 = bitmap_line_ydxi::e#0 [phi:bitmap_line_ydxi->bitmap_line_ydxi::@1#0] -- register_copy // [98] phi bitmap_line_ydxi::y#3 = bitmap_line::y0#0 [phi:bitmap_line_ydxi->bitmap_line_ydxi::@1#1] -- vbuz1=vbuc1 lda #bitmap_line.y0 sta.z y // [98] phi bitmap_line_ydxi::x#3 = bitmap_line::x0#0 [phi:bitmap_line_ydxi->bitmap_line_ydxi::@1#2] -- vbuz1=vbuc1 lda #bitmap_line.x0 sta.z x jmp __b1 // [98] phi from bitmap_line_ydxi::@2 to bitmap_line_ydxi::@1 [phi:bitmap_line_ydxi::@2->bitmap_line_ydxi::@1] __b1_from___b2: // [98] phi bitmap_line_ydxi::e#3 = bitmap_line_ydxi::e#6 [phi:bitmap_line_ydxi::@2->bitmap_line_ydxi::@1#0] -- register_copy // [98] phi bitmap_line_ydxi::y#3 = bitmap_line_ydxi::y#2 [phi:bitmap_line_ydxi::@2->bitmap_line_ydxi::@1#1] -- register_copy // [98] phi bitmap_line_ydxi::x#3 = bitmap_line_ydxi::x#6 [phi:bitmap_line_ydxi::@2->bitmap_line_ydxi::@1#2] -- register_copy jmp __b1 // bitmap_line_ydxi::@1 __b1: // [99] bitmap_plot::x#2 = bitmap_line_ydxi::x#3 -- vbuxx=vbuz1 ldx.z x // [100] bitmap_plot::y#2 = bitmap_line_ydxi::y#3 -- vbuyy=vbuz1 ldy.z y // [101] call bitmap_plot // [124] phi from bitmap_line_ydxi::@1 to bitmap_plot [phi:bitmap_line_ydxi::@1->bitmap_plot] bitmap_plot_from___b1: // [124] phi bitmap_plot::y#4 = bitmap_plot::y#2 [phi:bitmap_line_ydxi::@1->bitmap_plot#0] -- register_copy // [124] phi bitmap_plot::x#4 = bitmap_plot::x#2 [phi:bitmap_line_ydxi::@1->bitmap_plot#1] -- register_copy jsr bitmap_plot jmp __b4 // bitmap_line_ydxi::@4 __b4: // [102] bitmap_line_ydxi::y#2 = ++ bitmap_line_ydxi::y#3 -- vbuz1=_inc_vbuz1 inc.z y // [103] bitmap_line_ydxi::e#1 = bitmap_line_ydxi::e#3 + bitmap_line_ydxi::xd#1 -- vbuz1=vbuz1_plus_vbuz2 lda.z e clc adc.z xd sta.z e // [104] if(bitmap_line::y1#0>=bitmap_line_ydxi::e#1) goto bitmap_line_ydxi::@2 -- vbuc1_ge_vbuz1_then_la1 lda #bitmap_line.y1 cmp.z e bcs __b2_from___b4 jmp __b3 // bitmap_line_ydxi::@3 __b3: // [105] bitmap_line_ydxi::x#2 = ++ bitmap_line_ydxi::x#3 -- vbuz1=_inc_vbuz1 inc.z x // [106] bitmap_line_ydxi::e#2 = bitmap_line_ydxi::e#1 - bitmap_line::y1#0 -- vbuz1=vbuz1_minus_vbuc1 lax.z e axs #bitmap_line.y1 stx.z e // [107] phi from bitmap_line_ydxi::@3 bitmap_line_ydxi::@4 to bitmap_line_ydxi::@2 [phi:bitmap_line_ydxi::@3/bitmap_line_ydxi::@4->bitmap_line_ydxi::@2] __b2_from___b3: __b2_from___b4: // [107] phi bitmap_line_ydxi::e#6 = bitmap_line_ydxi::e#2 [phi:bitmap_line_ydxi::@3/bitmap_line_ydxi::@4->bitmap_line_ydxi::@2#0] -- register_copy // [107] phi bitmap_line_ydxi::x#6 = bitmap_line_ydxi::x#2 [phi:bitmap_line_ydxi::@3/bitmap_line_ydxi::@4->bitmap_line_ydxi::@2#1] -- register_copy jmp __b2 // bitmap_line_ydxi::@2 __b2: // [108] if(bitmap_line_ydxi::y#2!=bitmap_line::y1#0+1) goto bitmap_line_ydxi::@1 -- vbuz1_neq_vbuc1_then_la1 lda #bitmap_line.y1+1 cmp.z y bne __b1_from___b2 jmp __breturn // bitmap_line_ydxi::@return __breturn: // [109] return rts } // bitmap_line_xdyi // bitmap_line_xdyi(byte zp(2) x, byte zp(3) y, byte zp(5) x1, byte zp(6) xd) bitmap_line_xdyi: { .label x1 = 5 .label xd = 6 .label x = 2 .label e = 4 .label y = 3 // [111] phi from bitmap_line_xdyi to bitmap_line_xdyi::@1 [phi:bitmap_line_xdyi->bitmap_line_xdyi::@1] __b1_from_bitmap_line_xdyi: // [111] phi bitmap_line_xdyi::e#3 = bitmap_line::y1#0>>1 [phi:bitmap_line_xdyi->bitmap_line_xdyi::@1#0] -- vbuz1=vbuc1 lda #bitmap_line.y1>>1 sta.z e // [111] phi bitmap_line_xdyi::y#3 = bitmap_line::y0#0 [phi:bitmap_line_xdyi->bitmap_line_xdyi::@1#1] -- vbuz1=vbuc1 lda #bitmap_line.y0 sta.z y // [111] phi bitmap_line_xdyi::x#3 = bitmap_line::x0#0 [phi:bitmap_line_xdyi->bitmap_line_xdyi::@1#2] -- vbuz1=vbuc1 lda #bitmap_line.x0 sta.z x jmp __b1 // [111] phi from bitmap_line_xdyi::@2 to bitmap_line_xdyi::@1 [phi:bitmap_line_xdyi::@2->bitmap_line_xdyi::@1] __b1_from___b2: // [111] phi bitmap_line_xdyi::e#3 = bitmap_line_xdyi::e#6 [phi:bitmap_line_xdyi::@2->bitmap_line_xdyi::@1#0] -- register_copy // [111] phi bitmap_line_xdyi::y#3 = bitmap_line_xdyi::y#6 [phi:bitmap_line_xdyi::@2->bitmap_line_xdyi::@1#1] -- register_copy // [111] phi bitmap_line_xdyi::x#3 = bitmap_line_xdyi::x#2 [phi:bitmap_line_xdyi::@2->bitmap_line_xdyi::@1#2] -- register_copy jmp __b1 // bitmap_line_xdyi::@1 __b1: // [112] bitmap_plot::x#0 = bitmap_line_xdyi::x#3 -- vbuxx=vbuz1 ldx.z x // [113] bitmap_plot::y#0 = bitmap_line_xdyi::y#3 -- vbuyy=vbuz1 ldy.z y // [114] call bitmap_plot // [124] phi from bitmap_line_xdyi::@1 to bitmap_plot [phi:bitmap_line_xdyi::@1->bitmap_plot] bitmap_plot_from___b1: // [124] phi bitmap_plot::y#4 = bitmap_plot::y#0 [phi:bitmap_line_xdyi::@1->bitmap_plot#0] -- register_copy // [124] phi bitmap_plot::x#4 = bitmap_plot::x#0 [phi:bitmap_line_xdyi::@1->bitmap_plot#1] -- register_copy jsr bitmap_plot jmp __b4 // bitmap_line_xdyi::@4 __b4: // [115] bitmap_line_xdyi::x#2 = ++ bitmap_line_xdyi::x#3 -- vbuz1=_inc_vbuz1 inc.z x // [116] bitmap_line_xdyi::e#1 = bitmap_line_xdyi::e#3 + bitmap_line::y1#0 -- vbuz1=vbuz1_plus_vbuc1 lax.z e axs #-[bitmap_line.y1] stx.z e // [117] if(bitmap_line_xdyi::xd#1>=bitmap_line_xdyi::e#1) goto bitmap_line_xdyi::@2 -- vbuz1_ge_vbuz2_then_la1 lda.z xd cmp.z e bcs __b2_from___b4 jmp __b3 // bitmap_line_xdyi::@3 __b3: // [118] bitmap_line_xdyi::y#2 = ++ bitmap_line_xdyi::y#3 -- vbuz1=_inc_vbuz1 inc.z y // [119] bitmap_line_xdyi::e#2 = bitmap_line_xdyi::e#1 - bitmap_line_xdyi::xd#1 -- vbuz1=vbuz1_minus_vbuz2 lda.z e sec sbc.z xd sta.z e // [120] phi from bitmap_line_xdyi::@3 bitmap_line_xdyi::@4 to bitmap_line_xdyi::@2 [phi:bitmap_line_xdyi::@3/bitmap_line_xdyi::@4->bitmap_line_xdyi::@2] __b2_from___b3: __b2_from___b4: // [120] phi bitmap_line_xdyi::e#6 = bitmap_line_xdyi::e#2 [phi:bitmap_line_xdyi::@3/bitmap_line_xdyi::@4->bitmap_line_xdyi::@2#0] -- register_copy // [120] phi bitmap_line_xdyi::y#6 = bitmap_line_xdyi::y#2 [phi:bitmap_line_xdyi::@3/bitmap_line_xdyi::@4->bitmap_line_xdyi::@2#1] -- register_copy jmp __b2 // bitmap_line_xdyi::@2 __b2: // [121] bitmap_line_xdyi::$6 = bitmap_line_xdyi::x1#1 + 1 -- vbuxx=vbuz1_plus_1 ldx.z x1 inx // [122] if(bitmap_line_xdyi::x#2!=bitmap_line_xdyi::$6) goto bitmap_line_xdyi::@1 -- vbuz1_neq_vbuxx_then_la1 cpx.z x bne __b1_from___b2 jmp __breturn // bitmap_line_xdyi::@return __breturn: // [123] return rts } // bitmap_plot // bitmap_plot(byte register(X) x, byte register(Y) y) bitmap_plot: { .label plotter_x = 7 .label plotter_y = 9 .label plotter = 7 // [125] bitmap_plot::plotter_x#0 = bitmap_plot_xhi[bitmap_plot::x#4] w= bitmap_plot_xlo[bitmap_plot::x#4] -- vwuz1=pbuc1_derefidx_vbuxx_word_pbuc2_derefidx_vbuxx lda bitmap_plot_xhi,x sta.z plotter_x+1 lda bitmap_plot_xlo,x sta.z plotter_x // [126] bitmap_plot::plotter_y#0 = bitmap_plot_yhi[bitmap_plot::y#4] w= bitmap_plot_ylo[bitmap_plot::y#4] -- vwuz1=pbuc1_derefidx_vbuyy_word_pbuc2_derefidx_vbuyy lda bitmap_plot_yhi,y sta.z plotter_y+1 lda bitmap_plot_ylo,y sta.z plotter_y // [127] bitmap_plot::plotter#0 = bitmap_plot::plotter_x#0 + bitmap_plot::plotter_y#0 -- vwuz1=vwuz1_plus_vwuz2 lda.z plotter clc adc.z plotter_y sta.z plotter lda.z plotter+1 adc.z plotter_y+1 sta.z plotter+1 // [128] bitmap_plot::$1 = *((byte*)bitmap_plot::plotter#0) | bitmap_plot_bit[bitmap_plot::x#4] -- vbuaa=_deref_pbuz1_bor_pbuc1_derefidx_vbuxx lda bitmap_plot_bit,x ldy #0 ora (plotter),y // [129] *((byte*)bitmap_plot::plotter#0) = bitmap_plot::$1 -- _deref_pbuz1=vbuaa ldy #0 sta (plotter),y jmp __breturn // bitmap_plot::@return __breturn: // [130] return rts } // File Data .segment Data // Tables for the plotter - initialized by calling bitmap_draw_init(); bitmap_plot_xlo: .fill $100, 0 bitmap_plot_xhi: .fill $100, 0 bitmap_plot_ylo: .fill $100, 0 bitmap_plot_yhi: .fill $100, 0 bitmap_plot_bit: .fill $100, 0 ASSEMBLER OPTIMIZATIONS Removing instruction jmp __b2 Removing instruction jmp __b3 Removing instruction jmp __b1 Removing instruction jmp __b4 Removing instruction jmp __b1 Removing instruction jmp __b6 Removing instruction jmp __b2 Removing instruction jmp __b3 Removing instruction jmp __b5 Removing instruction jmp __b4 Removing instruction jmp __breturn Removing instruction jmp __b1 Removing instruction jmp __b2 Removing instruction jmp __b3 Removing instruction jmp __breturn Removing instruction jmp __b1 Removing instruction jmp __breturn Removing instruction jmp __b2 Removing instruction jmp __b3 Removing instruction jmp __b5 Removing instruction jmp __breturn Removing instruction jmp __b6 Removing instruction jmp __b8 Removing instruction jmp __b1 Removing instruction jmp __b4 Removing instruction jmp __b3 Removing instruction jmp __b2 Removing instruction jmp __breturn Removing instruction jmp __b1 Removing instruction jmp __b4 Removing instruction jmp __b3 Removing instruction jmp __b2 Removing instruction jmp __breturn Removing instruction jmp __b1 Removing instruction jmp __b4 Removing instruction jmp __b3 Removing instruction jmp __b2 Removing instruction jmp __breturn Removing instruction jmp __b1 Removing instruction jmp __b4 Removing instruction jmp __b3 Removing instruction jmp __b2 Removing instruction jmp __breturn Removing instruction jmp __breturn Succesful ASM optimization Pass5NextJumpElimination Removing instruction lda #0 Removing instruction lda #>0 Replacing instruction ldx #0 with TAX Replacing instruction ldy #0 with TAY Removing instruction ldy #0 Succesful ASM optimization Pass5UnnecesaryLoadElimination Replacing label __b6_from___b1 with __b2 Replacing label __b1_from___b2 with __b1 Replacing label __b4_from___b3 with __b4 Replacing label __b3_from___b4 with __b3 Replacing label __b2_from___b2 with __b2 Replacing label __b1_from___b3 with __b1 Replacing label __b2_from___b4 with __b2 Replacing label __b1_from___b2 with __b1 Replacing label __b2_from___b4 with __b2 Replacing label __b1_from___b2 with __b1 Replacing label __b2_from___b4 with __b2 Replacing label __b1_from___b2 with __b1 Replacing label __b2_from___b4 with __b2 Replacing label __b1_from___b2 with __b1 Removing instruction __b2_from_main: Removing instruction __b3_from___b2: Removing instruction init_screen_from___b3: Removing instruction __b1_from___b2: Removing instruction __b6_from___b1: Removing instruction __b6: Removing instruction __b2_from___b6: Removing instruction __b3_from___b4: Removing instruction __b4_from___b3: Removing instruction __b4_from___b5: Removing instruction __b1_from___b3: Removing instruction __b2_from___b1: Removing instruction __b2_from___b2: Removing instruction __b1_from___b2: Removing instruction __b2_from___b3: Removing instruction __b2_from___b4: Removing instruction __b1_from___b2: Removing instruction __b2_from___b3: Removing instruction __b2_from___b4: Removing instruction __b1_from___b2: Removing instruction __b2_from___b3: Removing instruction __b2_from___b4: Removing instruction __b1_from___b2: Removing instruction __b2_from___b3: Removing instruction __b2_from___b4: Succesful ASM optimization Pass5RedundantLabelElimination Removing instruction bitmap_init_from_main: Removing instruction __b2: Removing instruction __b3: Removing instruction __b1_from___b3: Removing instruction __b4: Removing instruction __b1_from___b4: Removing instruction __b1_from_bitmap_init: Removing instruction __b2_from___b1: Removing instruction __b3_from___b2: Removing instruction __b5: Removing instruction __breturn: Removing instruction __b1_from_bitmap_clear: Removing instruction __b3: Removing instruction __breturn: Removing instruction __b1_from_init_screen: Removing instruction __breturn: Removing instruction __b1_from___b2: Removing instruction __b2: Removing instruction __b3: Removing instruction __b5: Removing instruction bitmap_line_xdyd_from___b4: Removing instruction __b6: Removing instruction __b8: Removing instruction bitmap_line_xdyi_from___b7: Removing instruction __b1_from_bitmap_line_ydxd: Removing instruction bitmap_plot_from___b1: Removing instruction __b4: Removing instruction __b3: Removing instruction __breturn: Removing instruction __b1_from_bitmap_line_xdyd: Removing instruction bitmap_plot_from___b1: Removing instruction __b4: Removing instruction __b3: Removing instruction __breturn: Removing instruction __b1_from_bitmap_line_ydxi: Removing instruction bitmap_plot_from___b1: Removing instruction __b4: Removing instruction __b3: Removing instruction __breturn: Removing instruction __b1_from_bitmap_line_xdyi: Removing instruction bitmap_plot_from___b1: Removing instruction __b4: Removing instruction __b3: Removing instruction __breturn: Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination Replacing jump to rts with rts in jmp __breturn Replacing jump to rts with rts in jmp __breturn Replacing jump to rts with rts in jmp __breturn Succesful ASM optimization Pass5DoubleJumpElimination Removing instruction jmp __b1 Removing instruction jmp __b2 Removing instruction jmp __b3 Removing instruction jmp __b1 Removing instruction jmp __b2 Removing instruction jmp __b1 Removing instruction jmp __b1 Removing instruction jmp __b1 Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination Replacing instruction lda.z e with TXA Replacing instruction lda.z e with TXA Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination FINAL SYMBOL TABLE const nomodify byte* BG_COLOR = (byte*) 53281 const nomodify byte* BITMAP = (byte*) 8192 const nomodify byte* BORDER_COLOR = (byte*) 53280 const nomodify byte* D011 = (byte*) 53265 const nomodify byte* SCREEN = (byte*) 1024 const nomodify byte VICII_BMM = $20 const nomodify byte VICII_DEN = $10 const nomodify byte* VICII_MEMORY = (byte*) 53272 const nomodify byte VICII_RSEL = 8 void bitmap_clear() byte* bitmap_clear::bitmap word bitmap_clear::bitmap#0 bitmap zp[2]:7 11.0 byte* bitmap_clear::bitmap#1 bitmap zp[2]:7 420.59999999999997 byte* bitmap_clear::bitmap#2 bitmap zp[2]:7 1552.0 byte* bitmap_clear::bitmap#3 bitmap zp[2]:7 213.0 byte* bitmap_clear::bitmap#5 bitmap zp[2]:7 22.0 byte bitmap_clear::x byte bitmap_clear::x#1 reg byte x 1501.5 byte bitmap_clear::x#2 reg byte x 667.3333333333334 byte bitmap_clear::y byte bitmap_clear::y#1 y zp[1]:5 151.5 byte bitmap_clear::y#4 y zp[1]:5 33.666666666666664 void bitmap_init(byte* bitmap_init::bitmap) byte~ bitmap_init::$0 reg byte a 202.0 byte~ bitmap_init::$10 zp[1]:6 50.5 byte~ bitmap_init::$7 reg byte a 202.0 byte~ bitmap_init::$8 reg byte a 202.0 byte~ bitmap_init::$9 reg byte a 202.0 byte* bitmap_init::bitmap byte bitmap_init::bits byte bitmap_init::bits#1 reg byte y 101.0 byte bitmap_init::bits#3 reg byte y 60.599999999999994 byte bitmap_init::bits#4 reg byte y 67.33333333333333 byte bitmap_init::x byte bitmap_init::x#1 reg byte x 151.5 byte bitmap_init::x#2 reg byte x 67.33333333333333 byte bitmap_init::y byte bitmap_init::y#1 reg byte x 151.5 byte bitmap_init::y#2 reg byte x 50.5 byte* bitmap_init::yoffs byte* bitmap_init::yoffs#1 yoffs zp[2]:7 202.0 byte* bitmap_init::yoffs#2 yoffs zp[2]:7 63.125 byte* bitmap_init::yoffs#4 yoffs zp[2]:7 101.0 void bitmap_line(byte bitmap_line::x0 , byte bitmap_line::x1 , byte bitmap_line::y0 , byte bitmap_line::y1) byte bitmap_line::x0 const byte bitmap_line::x0#0 x0 = 0 byte bitmap_line::x1 byte bitmap_line::x1#0 reg byte a 85.99999999999999 byte bitmap_line::xd byte bitmap_line::xd#1 reg byte x 134.66666666666666 byte bitmap_line::xd#2 reg byte x 134.66666666666666 byte bitmap_line::y0 const byte bitmap_line::y0#0 y0 = 0 byte bitmap_line::y1 const byte bitmap_line::y1#0 y1 = $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) byte bitmap_line_xdyd::e byte bitmap_line_xdyd::e#1 e zp[1]:4 133334.66666666666 byte bitmap_line_xdyd::e#2 e zp[1]:4 200002.0 byte bitmap_line_xdyd::e#3 e zp[1]:4 40000.4 byte bitmap_line_xdyd::e#6 e zp[1]:4 150001.5 byte bitmap_line_xdyd::x byte bitmap_line_xdyd::x#0 x zp[1]:2 367.33333333333337 byte bitmap_line_xdyd::x#2 x zp[1]:2 42857.57142857143 byte bitmap_line_xdyd::x#3 x zp[1]:2 75251.0 byte bitmap_line_xdyd::x1 byte bitmap_line_xdyd::xd byte bitmap_line_xdyd::xd#0 xd zp[1]:6 15392.538461538461 byte bitmap_line_xdyd::y byte bitmap_line_xdyd::y#2 y zp[1]:3 100001.0 byte bitmap_line_xdyd::y#3 y zp[1]:3 57143.42857142857 byte bitmap_line_xdyd::y#6 y zp[1]:3 150001.5 byte bitmap_line_xdyd::yd void bitmap_line_xdyi(byte bitmap_line_xdyi::x , byte bitmap_line_xdyi::y , byte bitmap_line_xdyi::x1 , byte bitmap_line_xdyi::xd , byte bitmap_line_xdyi::yd) byte~ bitmap_line_xdyi::$6 reg byte x 200002.0 byte bitmap_line_xdyi::e byte bitmap_line_xdyi::e#1 e zp[1]:4 133334.66666666666 byte bitmap_line_xdyi::e#2 e zp[1]:4 200002.0 byte bitmap_line_xdyi::e#3 e zp[1]:4 40000.4 byte bitmap_line_xdyi::e#6 e zp[1]:4 100001.0 byte bitmap_line_xdyi::x byte bitmap_line_xdyi::x#2 x zp[1]:2 37500.375 byte bitmap_line_xdyi::x#3 x zp[1]:2 75000.75 byte bitmap_line_xdyi::x1 byte bitmap_line_xdyi::x1#1 x1 zp[1]:5 6673.466666666667 byte bitmap_line_xdyi::xd byte bitmap_line_xdyi::xd#1 xd zp[1]:6 14293.071428571428 byte bitmap_line_xdyi::y byte bitmap_line_xdyi::y#2 y zp[1]:3 100001.0 byte bitmap_line_xdyi::y#3 y zp[1]:3 57143.42857142857 byte bitmap_line_xdyi::y#6 y zp[1]:3 100001.0 byte bitmap_line_xdyi::yd void bitmap_line_ydxd(byte bitmap_line_ydxd::y , byte bitmap_line_ydxd::x , byte bitmap_line_ydxd::y1 , byte bitmap_line_ydxd::yd , byte bitmap_line_ydxd::xd) byte bitmap_line_ydxd::e byte bitmap_line_ydxd::e#0 e zp[1]:4 2002.0 byte bitmap_line_ydxd::e#1 e zp[1]:4 133334.66666666666 byte bitmap_line_ydxd::e#2 e zp[1]:4 200002.0 byte bitmap_line_ydxd::e#3 e zp[1]:4 40200.600000000006 byte bitmap_line_ydxd::e#6 e zp[1]:4 150001.5 byte bitmap_line_ydxd::x byte bitmap_line_ydxd::x#2 x zp[1]:2 100001.0 byte bitmap_line_ydxd::x#3 x zp[1]:2 57143.42857142857 byte bitmap_line_ydxd::x#6 x zp[1]:2 150001.5 byte bitmap_line_ydxd::xd byte bitmap_line_ydxd::xd#0 xd zp[1]:6 7777.153846153846 byte bitmap_line_ydxd::y byte bitmap_line_ydxd::y#2 y zp[1]:3 75000.75 byte bitmap_line_ydxd::y#3 y zp[1]:3 42857.57142857143 byte bitmap_line_ydxd::y1 byte bitmap_line_ydxd::yd void bitmap_line_ydxi(byte bitmap_line_ydxi::y , byte bitmap_line_ydxi::x , byte bitmap_line_ydxi::y1 , byte bitmap_line_ydxi::yd , byte bitmap_line_ydxi::xd) byte bitmap_line_ydxi::e byte bitmap_line_ydxi::e#0 e zp[1]:4 2002.0 byte bitmap_line_ydxi::e#1 e zp[1]:4 133334.66666666666 byte bitmap_line_ydxi::e#2 e zp[1]:4 200002.0 byte bitmap_line_ydxi::e#3 e zp[1]:4 40200.600000000006 byte bitmap_line_ydxi::e#6 e zp[1]:4 150001.5 byte bitmap_line_ydxi::x byte bitmap_line_ydxi::x#2 x zp[1]:2 100001.0 byte bitmap_line_ydxi::x#3 x zp[1]:2 57143.42857142857 byte bitmap_line_ydxi::x#6 x zp[1]:2 150001.5 byte bitmap_line_ydxi::xd byte bitmap_line_ydxi::xd#1 xd zp[1]:6 7777.153846153846 byte bitmap_line_ydxi::y byte bitmap_line_ydxi::y#2 y zp[1]:3 42857.57142857143 byte bitmap_line_ydxi::y#3 y zp[1]:3 75000.75 byte bitmap_line_ydxi::y1 byte bitmap_line_ydxi::yd void bitmap_plot(byte bitmap_plot::x , byte bitmap_plot::y) byte~ bitmap_plot::$1 reg byte a 2000002.0 byte* bitmap_plot::plotter word bitmap_plot::plotter#0 plotter zp[2]:7 500000.5 word bitmap_plot::plotter_x word bitmap_plot::plotter_x#0 plotter_x zp[2]:7 1000001.0 word bitmap_plot::plotter_y word bitmap_plot::plotter_y#0 plotter_y zp[2]:9 2000002.0 byte bitmap_plot::x byte bitmap_plot::x#0 reg byte x 100001.0 byte bitmap_plot::x#1 reg byte x 100001.0 byte bitmap_plot::x#2 reg byte x 100001.0 byte bitmap_plot::x#3 reg byte x 100001.0 byte bitmap_plot::x#4 reg byte x 850001.75 byte bitmap_plot::y byte bitmap_plot::y#0 reg byte y 200002.0 byte bitmap_plot::y#1 reg byte y 200002.0 byte bitmap_plot::y#2 reg byte y 200002.0 byte bitmap_plot::y#3 reg byte y 200002.0 byte bitmap_plot::y#4 reg byte y 1200003.0 const to_nomodify byte* bitmap_plot_bit[$100] = { fill( $100, 0) } const to_nomodify byte* bitmap_plot_xhi[$100] = { fill( $100, 0) } const to_nomodify byte* bitmap_plot_xlo[$100] = { fill( $100, 0) } const to_nomodify byte* bitmap_plot_yhi[$100] = { fill( $100, 0) } const to_nomodify byte* bitmap_plot_ylo[$100] = { fill( $100, 0) } void init_screen() byte* init_screen::c byte* init_screen::c#1 c zp[2]:7 202.0 byte* init_screen::c#2 c zp[2]:7 134.66666666666666 void main() byte next byte next#0 next zp[1]:5 22.0 byte next#5 next zp[1]:5 11.0 reg byte x [ bitmap_init::x#2 bitmap_init::x#1 ] reg byte y [ bitmap_init::bits#3 bitmap_init::bits#4 bitmap_init::bits#1 ] reg byte x [ bitmap_init::y#2 bitmap_init::y#1 ] reg byte x [ bitmap_clear::x#2 bitmap_clear::x#1 ] zp[1]:2 [ bitmap_line_xdyi::x#3 bitmap_line_xdyi::x#2 bitmap_line_ydxi::x#3 bitmap_line_ydxi::x#6 bitmap_line_ydxi::x#2 bitmap_line_xdyd::x#3 bitmap_line_xdyd::x#0 bitmap_line_xdyd::x#2 bitmap_line_ydxd::x#3 bitmap_line_ydxd::x#6 bitmap_line_ydxd::x#2 ] zp[1]:3 [ bitmap_line_xdyi::y#3 bitmap_line_xdyi::y#6 bitmap_line_xdyi::y#2 bitmap_line_ydxi::y#3 bitmap_line_ydxi::y#2 bitmap_line_xdyd::y#3 bitmap_line_xdyd::y#6 bitmap_line_xdyd::y#2 bitmap_line_ydxd::y#2 bitmap_line_ydxd::y#3 ] zp[1]:4 [ bitmap_line_xdyi::e#3 bitmap_line_xdyi::e#6 bitmap_line_xdyi::e#2 bitmap_line_xdyi::e#1 bitmap_line_ydxi::e#3 bitmap_line_ydxi::e#0 bitmap_line_ydxi::e#6 bitmap_line_ydxi::e#2 bitmap_line_ydxi::e#1 bitmap_line_xdyd::e#3 bitmap_line_xdyd::e#6 bitmap_line_xdyd::e#2 bitmap_line_xdyd::e#1 bitmap_line_ydxd::e#3 bitmap_line_ydxd::e#0 bitmap_line_ydxd::e#6 bitmap_line_ydxd::e#2 bitmap_line_ydxd::e#1 ] reg byte x [ bitmap_plot::x#4 bitmap_plot::x#1 bitmap_plot::x#0 bitmap_plot::x#3 bitmap_plot::x#2 ] reg byte y [ bitmap_plot::y#4 bitmap_plot::y#1 bitmap_plot::y#0 bitmap_plot::y#3 bitmap_plot::y#2 ] reg byte a [ bitmap_line::x1#0 ] reg byte a [ bitmap_init::$0 ] reg byte a [ bitmap_init::$7 ] reg byte a [ bitmap_init::$8 ] reg byte a [ bitmap_init::$9 ] reg byte x [ bitmap_line::xd#2 ] reg byte x [ bitmap_line::xd#1 ] zp[1]:5 [ bitmap_line_xdyi::x1#1 bitmap_clear::y#4 bitmap_clear::y#1 next#5 next#0 ] zp[1]:6 [ bitmap_line_xdyi::xd#1 bitmap_line_ydxi::xd#1 bitmap_line_xdyd::xd#0 bitmap_line_ydxd::xd#0 bitmap_init::$10 ] reg byte x [ bitmap_line_xdyi::$6 ] zp[2]:7 [ bitmap_plot::plotter_x#0 bitmap_plot::plotter#0 init_screen::c#2 init_screen::c#1 bitmap_clear::bitmap#2 bitmap_clear::bitmap#3 bitmap_clear::bitmap#5 bitmap_clear::bitmap#1 bitmap_clear::bitmap#0 bitmap_init::yoffs#2 bitmap_init::yoffs#4 bitmap_init::yoffs#1 ] zp[2]:9 [ bitmap_plot::plotter_y#0 ] reg byte a [ bitmap_plot::$1 ] FINAL ASSEMBLER Score: 30221 // File Comments // Illustrates problem with bitmap-draw.kc line() // Reported by Janne Johansson // Upstart // Commodore 64 PRG executable file .file [name="bitmap-line-anim-1.prg", type="prg", segments="Program"] .segmentdef Program [segments="Basic, Code, Data"] .segmentdef Basic [start=$0801] .segmentdef Code [start=$80d] .segmentdef Data [startAfter="Code"] .segment Basic :BasicUpstart(main) // Global Constants & labels .const VICII_BMM = $20 .const VICII_DEN = $10 .const VICII_RSEL = 8 .label BORDER_COLOR = $d020 .label BG_COLOR = $d021 .label D011 = $d011 .label VICII_MEMORY = $d018 .label SCREEN = $400 .label BITMAP = $2000 .label next = 5 .segment Code // main main: { // *BORDER_COLOR = 0 // [0] *BORDER_COLOR = 0 -- _deref_pbuc1=vbuc2 lda #0 sta BORDER_COLOR // *BG_COLOR = 0 // [1] *BG_COLOR = 0 -- _deref_pbuc1=vbuc2 sta BG_COLOR // *D011 = VICII_BMM|VICII_DEN|VICII_RSEL|3 // [2] *D011 = VICII_BMM|VICII_DEN|VICII_RSEL|3 -- _deref_pbuc1=vbuc2 lda #VICII_BMM|VICII_DEN|VICII_RSEL|3 sta D011 // *VICII_MEMORY = (byte)((((word)SCREEN&$3fff)/$40)|(((word)BITMAP&$3fff)/$400)) // [3] *VICII_MEMORY = (byte)(word)SCREEN&$3fff/$40|(word)BITMAP&$3fff/$400 -- _deref_pbuc1=vbuc2 lda #(SCREEN&$3fff)/$40|(BITMAP&$3fff)/$400 sta VICII_MEMORY // bitmap_init(BITMAP) // [4] call bitmap_init // [13] phi from main to bitmap_init [phi:main->bitmap_init] jsr bitmap_init // [5] phi from main to main::@2 [phi:main->main::@2] // main::@2 // bitmap_clear() // [6] call bitmap_clear jsr bitmap_clear // [7] phi from main::@2 to main::@3 [phi:main::@2->main::@3] // main::@3 // init_screen() // [8] call init_screen // [49] phi from main::@3 to init_screen [phi:main::@3->init_screen] jsr init_screen // [9] phi from main::@3 to main::@1 [phi:main::@3->main::@1] // [9] phi next#5 = 0 [phi:main::@3->main::@1#0] -- vbuz1=vbuc1 lda #0 sta.z next // main::@1 __b1: // bitmap_line(0,next,0,100) // [10] bitmap_line::x1#0 = next#5 -- vbuaa=vbuz1 lda.z next // [11] call bitmap_line jsr bitmap_line // main::@4 // next++; // [12] next#0 = ++ next#5 -- vbuz1=_inc_vbuz1 inc.z next // [9] phi from main::@4 to main::@1 [phi:main::@4->main::@1] // [9] phi next#5 = next#0 [phi:main::@4->main::@1#0] -- register_copy jmp __b1 } // bitmap_init // Initialize the bitmap plotter tables for a specific bitmap bitmap_init: { .label __10 = 6 .label yoffs = 7 // [14] phi from bitmap_init to bitmap_init::@1 [phi:bitmap_init->bitmap_init::@1] // [14] phi bitmap_init::bits#3 = $80 [phi:bitmap_init->bitmap_init::@1#0] -- vbuyy=vbuc1 ldy #$80 // [14] phi bitmap_init::x#2 = 0 [phi:bitmap_init->bitmap_init::@1#1] -- vbuxx=vbuc1 ldx #0 // [14] phi from bitmap_init::@2 to bitmap_init::@1 [phi:bitmap_init::@2->bitmap_init::@1] // [14] phi bitmap_init::bits#3 = bitmap_init::bits#4 [phi:bitmap_init::@2->bitmap_init::@1#0] -- register_copy // [14] phi bitmap_init::x#2 = bitmap_init::x#1 [phi:bitmap_init::@2->bitmap_init::@1#1] -- register_copy // bitmap_init::@1 __b1: // x&$f8 // [15] bitmap_init::$0 = bitmap_init::x#2 & $f8 -- vbuaa=vbuxx_band_vbuc1 txa and #$f8 // bitmap_plot_xlo[x] = x&$f8 // [16] bitmap_plot_xlo[bitmap_init::x#2] = bitmap_init::$0 -- pbuc1_derefidx_vbuxx=vbuaa sta bitmap_plot_xlo,x // bitmap_plot_xhi[x] = >bitmap // [17] bitmap_plot_xhi[bitmap_init::x#2] = >BITMAP -- pbuc1_derefidx_vbuxx=vbuc2 lda #>BITMAP sta bitmap_plot_xhi,x // bitmap_plot_bit[x] = bits // [18] bitmap_plot_bit[bitmap_init::x#2] = bitmap_init::bits#3 -- pbuc1_derefidx_vbuxx=vbuyy tya sta bitmap_plot_bit,x // bits = bits>>1 // [19] bitmap_init::bits#1 = bitmap_init::bits#3 >> 1 -- vbuyy=vbuyy_ror_1 tya lsr tay // if(bits==0) // [20] if(bitmap_init::bits#1!=0) goto bitmap_init::@6 -- vbuyy_neq_0_then_la1 cpy #0 bne __b2 // [22] phi from bitmap_init::@1 to bitmap_init::@2 [phi:bitmap_init::@1->bitmap_init::@2] // [22] phi bitmap_init::bits#4 = $80 [phi:bitmap_init::@1->bitmap_init::@2#0] -- vbuyy=vbuc1 ldy #$80 // [21] phi from bitmap_init::@1 to bitmap_init::@6 [phi:bitmap_init::@1->bitmap_init::@6] // bitmap_init::@6 // [22] phi from bitmap_init::@6 to bitmap_init::@2 [phi:bitmap_init::@6->bitmap_init::@2] // [22] phi bitmap_init::bits#4 = bitmap_init::bits#1 [phi:bitmap_init::@6->bitmap_init::@2#0] -- register_copy // bitmap_init::@2 __b2: // for(char x : 0..255) // [23] bitmap_init::x#1 = ++ bitmap_init::x#2 -- vbuxx=_inc_vbuxx inx // [24] if(bitmap_init::x#1!=0) goto bitmap_init::@1 -- vbuxx_neq_0_then_la1 cpx #0 bne __b1 // [25] phi from bitmap_init::@2 to bitmap_init::@3 [phi:bitmap_init::@2->bitmap_init::@3] // [25] phi bitmap_init::yoffs#2 = (byte*) 0 [phi:bitmap_init::@2->bitmap_init::@3#0] -- pbuz1=pbuc1 lda #<0 sta.z yoffs sta.z yoffs+1 // [25] phi bitmap_init::y#2 = 0 [phi:bitmap_init::@2->bitmap_init::@3#1] -- vbuxx=vbuc1 tax // [25] phi from bitmap_init::@4 to bitmap_init::@3 [phi:bitmap_init::@4->bitmap_init::@3] // [25] phi bitmap_init::yoffs#2 = bitmap_init::yoffs#4 [phi:bitmap_init::@4->bitmap_init::@3#0] -- register_copy // [25] phi bitmap_init::y#2 = bitmap_init::y#1 [phi:bitmap_init::@4->bitmap_init::@3#1] -- register_copy // bitmap_init::@3 __b3: // y&$7 // [26] bitmap_init::$10 = bitmap_init::y#2 & 7 -- vbuz1=vbuxx_band_vbuc1 lda #7 sax.z __10 // yoffs // [30] bitmap_init::$9 = > bitmap_init::yoffs#2 -- vbuaa=_hi_pbuz1 lda.z yoffs+1 // bitmap_plot_yhi[y] = >yoffs // [31] bitmap_plot_yhi[bitmap_init::y#2] = bitmap_init::$9 -- pbuc1_derefidx_vbuxx=vbuaa sta bitmap_plot_yhi,x // if((y&$7)==7) // [32] if(bitmap_init::$10!=7) goto bitmap_init::@4 -- vbuz1_neq_vbuc1_then_la1 lda #7 cmp.z __10 bne __b4 // bitmap_init::@5 // yoffs = yoffs + 40*8 // [33] bitmap_init::yoffs#1 = bitmap_init::yoffs#2 + (word)$28*8 -- pbuz1=pbuz1_plus_vwuc1 clc lda.z yoffs adc #<$28*8 sta.z yoffs lda.z yoffs+1 adc #>$28*8 sta.z yoffs+1 // [34] phi from bitmap_init::@3 bitmap_init::@5 to bitmap_init::@4 [phi:bitmap_init::@3/bitmap_init::@5->bitmap_init::@4] // [34] phi bitmap_init::yoffs#4 = bitmap_init::yoffs#2 [phi:bitmap_init::@3/bitmap_init::@5->bitmap_init::@4#0] -- register_copy // bitmap_init::@4 __b4: // for(char y : 0..255) // [35] bitmap_init::y#1 = ++ bitmap_init::y#2 -- vbuxx=_inc_vbuxx inx // [36] if(bitmap_init::y#1!=0) goto bitmap_init::@3 -- vbuxx_neq_0_then_la1 cpx #0 bne __b3 // bitmap_init::@return // } // [37] return rts } // bitmap_clear // Clear all graphics on the bitmap bitmap_clear: { .label bitmap = 7 .label y = 5 // bitmap = (char*) { bitmap_plot_xhi[0], bitmap_plot_xlo[0] } // [38] bitmap_clear::bitmap#0 = *bitmap_plot_xhi w= *bitmap_plot_xlo -- vwuz1=_deref_pbuc1_word__deref_pbuc2 lda bitmap_plot_xlo sta.z bitmap lda bitmap_plot_xhi sta.z bitmap+1 // [39] bitmap_clear::bitmap#5 = (byte*)bitmap_clear::bitmap#0 // [40] phi from bitmap_clear to bitmap_clear::@1 [phi:bitmap_clear->bitmap_clear::@1] // [40] phi bitmap_clear::y#4 = 0 [phi:bitmap_clear->bitmap_clear::@1#0] -- vbuz1=vbuc1 lda #0 sta.z y // [40] phi bitmap_clear::bitmap#3 = bitmap_clear::bitmap#5 [phi:bitmap_clear->bitmap_clear::@1#1] -- register_copy // [40] phi from bitmap_clear::@3 to bitmap_clear::@1 [phi:bitmap_clear::@3->bitmap_clear::@1] // [40] phi bitmap_clear::y#4 = bitmap_clear::y#1 [phi:bitmap_clear::@3->bitmap_clear::@1#0] -- register_copy // [40] phi bitmap_clear::bitmap#3 = bitmap_clear::bitmap#1 [phi:bitmap_clear::@3->bitmap_clear::@1#1] -- register_copy // bitmap_clear::@1 __b1: // [41] phi from bitmap_clear::@1 to bitmap_clear::@2 [phi:bitmap_clear::@1->bitmap_clear::@2] // [41] phi bitmap_clear::x#2 = 0 [phi:bitmap_clear::@1->bitmap_clear::@2#0] -- vbuxx=vbuc1 ldx #0 // [41] phi bitmap_clear::bitmap#2 = bitmap_clear::bitmap#3 [phi:bitmap_clear::@1->bitmap_clear::@2#1] -- register_copy // [41] phi from bitmap_clear::@2 to bitmap_clear::@2 [phi:bitmap_clear::@2->bitmap_clear::@2] // [41] phi bitmap_clear::x#2 = bitmap_clear::x#1 [phi:bitmap_clear::@2->bitmap_clear::@2#0] -- register_copy // [41] phi bitmap_clear::bitmap#2 = bitmap_clear::bitmap#1 [phi:bitmap_clear::@2->bitmap_clear::@2#1] -- register_copy // bitmap_clear::@2 __b2: // *bitmap++ = 0 // [42] *bitmap_clear::bitmap#2 = 0 -- _deref_pbuz1=vbuc1 lda #0 tay sta (bitmap),y // *bitmap++ = 0; // [43] bitmap_clear::bitmap#1 = ++ bitmap_clear::bitmap#2 -- pbuz1=_inc_pbuz1 inc.z bitmap bne !+ inc.z bitmap+1 !: // for( char x: 0..199 ) // [44] bitmap_clear::x#1 = ++ bitmap_clear::x#2 -- vbuxx=_inc_vbuxx inx // [45] if(bitmap_clear::x#1!=$c8) goto bitmap_clear::@2 -- vbuxx_neq_vbuc1_then_la1 cpx #$c8 bne __b2 // bitmap_clear::@3 // for( char y: 0..39 ) // [46] bitmap_clear::y#1 = ++ bitmap_clear::y#4 -- vbuz1=_inc_vbuz1 inc.z y // [47] if(bitmap_clear::y#1!=$28) goto bitmap_clear::@1 -- vbuz1_neq_vbuc1_then_la1 lda #$28 cmp.z y bne __b1 // bitmap_clear::@return // } // [48] return rts } // init_screen init_screen: { .label c = 7 // [50] phi from init_screen to init_screen::@1 [phi:init_screen->init_screen::@1] // [50] phi init_screen::c#2 = SCREEN [phi:init_screen->init_screen::@1#0] -- pbuz1=pbuc1 lda #SCREEN sta.z c+1 // init_screen::@1 __b1: // for(byte* c = SCREEN; c!=SCREEN+$400;c++) // [51] if(init_screen::c#2!=SCREEN+$400) goto init_screen::@2 -- pbuz1_neq_pbuc1_then_la1 lda.z c+1 cmp #>SCREEN+$400 bne __b2 lda.z c cmp #init_screen::@1] // [50] phi init_screen::c#2 = init_screen::c#1 [phi:init_screen::@2->init_screen::@1#0] -- register_copy jmp __b1 } // bitmap_line // Draw a line on the bitmap // bitmap_line(byte register(A) x1) bitmap_line: { .label x0 = 0 .label y0 = 0 .label y1 = $64 // if(x0bitmap_line_xdyd] jsr bitmap_line_xdyd rts // bitmap_line::@1 __b1: // xd = x1-x0 // [64] bitmap_line::xd#1 = bitmap_line::x1#0 -- vbuxx=vbuaa tax // bitmap_line::@6 // if(ydbitmap_line_xdyi] jsr bitmap_line_xdyi rts } // bitmap_line_ydxd // bitmap_line_ydxd(byte zp(3) y, byte zp(2) x, byte zp(6) xd) bitmap_line_ydxd: { .label xd = 6 .label e = 4 .label y = 3 .label x = 2 // e = xd>>1 // [71] bitmap_line_ydxd::e#0 = bitmap_line_ydxd::xd#0 >> 1 -- vbuz1=vbuz2_ror_1 lda.z xd lsr sta.z e // [72] phi from bitmap_line_ydxd to bitmap_line_ydxd::@1 [phi:bitmap_line_ydxd->bitmap_line_ydxd::@1] // [72] phi bitmap_line_ydxd::e#3 = bitmap_line_ydxd::e#0 [phi:bitmap_line_ydxd->bitmap_line_ydxd::@1#0] -- register_copy // [72] phi bitmap_line_ydxd::y#2 = bitmap_line::y0#0 [phi:bitmap_line_ydxd->bitmap_line_ydxd::@1#1] -- vbuz1=vbuc1 lda #bitmap_line.y0 sta.z y // [72] phi bitmap_line_ydxd::x#3 = bitmap_line::x0#0 [phi:bitmap_line_ydxd->bitmap_line_ydxd::@1#2] -- vbuz1=vbuc1 lda #bitmap_line.x0 sta.z x // [72] phi from bitmap_line_ydxd::@2 to bitmap_line_ydxd::@1 [phi:bitmap_line_ydxd::@2->bitmap_line_ydxd::@1] // [72] phi bitmap_line_ydxd::e#3 = bitmap_line_ydxd::e#6 [phi:bitmap_line_ydxd::@2->bitmap_line_ydxd::@1#0] -- register_copy // [72] phi bitmap_line_ydxd::y#2 = bitmap_line_ydxd::y#3 [phi:bitmap_line_ydxd::@2->bitmap_line_ydxd::@1#1] -- register_copy // [72] phi bitmap_line_ydxd::x#3 = bitmap_line_ydxd::x#6 [phi:bitmap_line_ydxd::@2->bitmap_line_ydxd::@1#2] -- register_copy // bitmap_line_ydxd::@1 __b1: // bitmap_plot(x,y) // [73] bitmap_plot::x#3 = bitmap_line_ydxd::x#3 -- vbuxx=vbuz1 ldx.z x // [74] bitmap_plot::y#3 = bitmap_line_ydxd::y#2 -- vbuyy=vbuz1 ldy.z y // [75] call bitmap_plot // [124] phi from bitmap_line_ydxd::@1 to bitmap_plot [phi:bitmap_line_ydxd::@1->bitmap_plot] // [124] phi bitmap_plot::y#4 = bitmap_plot::y#3 [phi:bitmap_line_ydxd::@1->bitmap_plot#0] -- register_copy // [124] phi bitmap_plot::x#4 = bitmap_plot::x#3 [phi:bitmap_line_ydxd::@1->bitmap_plot#1] -- register_copy jsr bitmap_plot // bitmap_line_ydxd::@4 // y = y++; // [76] bitmap_line_ydxd::y#3 = ++ bitmap_line_ydxd::y#2 -- vbuz1=_inc_vbuz1 inc.z y // e = e+xd // [77] bitmap_line_ydxd::e#1 = bitmap_line_ydxd::e#3 + bitmap_line_ydxd::xd#0 -- vbuz1=vbuz1_plus_vbuz2 lda.z e clc adc.z xd sta.z e // if(yd=bitmap_line_ydxd::e#1) goto bitmap_line_ydxd::@2 -- vbuc1_ge_vbuz1_then_la1 lda #bitmap_line.y1 cmp.z e bcs __b2 // bitmap_line_ydxd::@3 // x--; // [79] bitmap_line_ydxd::x#2 = -- bitmap_line_ydxd::x#3 -- vbuz1=_dec_vbuz1 dec.z x // e = e - yd // [80] bitmap_line_ydxd::e#2 = bitmap_line_ydxd::e#1 - bitmap_line::y1#0 -- vbuz1=vbuz1_minus_vbuc1 lax.z e axs #bitmap_line.y1 stx.z e // [81] phi from bitmap_line_ydxd::@3 bitmap_line_ydxd::@4 to bitmap_line_ydxd::@2 [phi:bitmap_line_ydxd::@3/bitmap_line_ydxd::@4->bitmap_line_ydxd::@2] // [81] phi bitmap_line_ydxd::e#6 = bitmap_line_ydxd::e#2 [phi:bitmap_line_ydxd::@3/bitmap_line_ydxd::@4->bitmap_line_ydxd::@2#0] -- register_copy // [81] phi bitmap_line_ydxd::x#6 = bitmap_line_ydxd::x#2 [phi:bitmap_line_ydxd::@3/bitmap_line_ydxd::@4->bitmap_line_ydxd::@2#1] -- register_copy // bitmap_line_ydxd::@2 __b2: // while (y!=(y1+1)) // [82] if(bitmap_line_ydxd::y#3!=bitmap_line::y1#0+1) goto bitmap_line_ydxd::@1 -- vbuz1_neq_vbuc1_then_la1 lda #bitmap_line.y1+1 cmp.z y bne __b1 // bitmap_line_ydxd::@return // } // [83] return rts } // bitmap_line_xdyd // bitmap_line_xdyd(byte zp(2) x, byte zp(3) y, byte zp(6) xd) bitmap_line_xdyd: { .label x = 2 .label xd = 6 .label e = 4 .label y = 3 // [85] phi from bitmap_line_xdyd to bitmap_line_xdyd::@1 [phi:bitmap_line_xdyd->bitmap_line_xdyd::@1] // [85] phi bitmap_line_xdyd::e#3 = bitmap_line::y1#0>>1 [phi:bitmap_line_xdyd->bitmap_line_xdyd::@1#0] -- vbuz1=vbuc1 lda #bitmap_line.y1>>1 sta.z e // [85] phi bitmap_line_xdyd::y#3 = bitmap_line::y1#0 [phi:bitmap_line_xdyd->bitmap_line_xdyd::@1#1] -- vbuz1=vbuc1 lda #bitmap_line.y1 sta.z y // [85] phi bitmap_line_xdyd::x#3 = bitmap_line_xdyd::x#0 [phi:bitmap_line_xdyd->bitmap_line_xdyd::@1#2] -- register_copy // [85] phi from bitmap_line_xdyd::@2 to bitmap_line_xdyd::@1 [phi:bitmap_line_xdyd::@2->bitmap_line_xdyd::@1] // [85] phi bitmap_line_xdyd::e#3 = bitmap_line_xdyd::e#6 [phi:bitmap_line_xdyd::@2->bitmap_line_xdyd::@1#0] -- register_copy // [85] phi bitmap_line_xdyd::y#3 = bitmap_line_xdyd::y#6 [phi:bitmap_line_xdyd::@2->bitmap_line_xdyd::@1#1] -- register_copy // [85] phi bitmap_line_xdyd::x#3 = bitmap_line_xdyd::x#2 [phi:bitmap_line_xdyd::@2->bitmap_line_xdyd::@1#2] -- register_copy // bitmap_line_xdyd::@1 __b1: // bitmap_plot(x,y) // [86] bitmap_plot::x#1 = bitmap_line_xdyd::x#3 -- vbuxx=vbuz1 ldx.z x // [87] bitmap_plot::y#1 = bitmap_line_xdyd::y#3 -- vbuyy=vbuz1 ldy.z y // [88] call bitmap_plot // [124] phi from bitmap_line_xdyd::@1 to bitmap_plot [phi:bitmap_line_xdyd::@1->bitmap_plot] // [124] phi bitmap_plot::y#4 = bitmap_plot::y#1 [phi:bitmap_line_xdyd::@1->bitmap_plot#0] -- register_copy // [124] phi bitmap_plot::x#4 = bitmap_plot::x#1 [phi:bitmap_line_xdyd::@1->bitmap_plot#1] -- register_copy jsr bitmap_plot // bitmap_line_xdyd::@4 // x++; // [89] bitmap_line_xdyd::x#2 = ++ bitmap_line_xdyd::x#3 -- vbuz1=_inc_vbuz1 inc.z x // e = e+yd // [90] bitmap_line_xdyd::e#1 = bitmap_line_xdyd::e#3 + bitmap_line::y1#0 -- vbuz1=vbuz1_plus_vbuc1 lax.z e axs #-[bitmap_line.y1] stx.z e // if(xd=bitmap_line_xdyd::e#1) goto bitmap_line_xdyd::@2 -- vbuz1_ge_vbuz2_then_la1 lda.z xd cmp.z e bcs __b2 // bitmap_line_xdyd::@3 // y--; // [92] bitmap_line_xdyd::y#2 = -- bitmap_line_xdyd::y#3 -- vbuz1=_dec_vbuz1 dec.z y // e = e - xd // [93] bitmap_line_xdyd::e#2 = bitmap_line_xdyd::e#1 - bitmap_line_xdyd::xd#0 -- vbuz1=vbuz1_minus_vbuz2 txa sec sbc.z xd sta.z e // [94] phi from bitmap_line_xdyd::@3 bitmap_line_xdyd::@4 to bitmap_line_xdyd::@2 [phi:bitmap_line_xdyd::@3/bitmap_line_xdyd::@4->bitmap_line_xdyd::@2] // [94] phi bitmap_line_xdyd::e#6 = bitmap_line_xdyd::e#2 [phi:bitmap_line_xdyd::@3/bitmap_line_xdyd::@4->bitmap_line_xdyd::@2#0] -- register_copy // [94] phi bitmap_line_xdyd::y#6 = bitmap_line_xdyd::y#2 [phi:bitmap_line_xdyd::@3/bitmap_line_xdyd::@4->bitmap_line_xdyd::@2#1] -- register_copy // bitmap_line_xdyd::@2 __b2: // while (x!=(x1+1)) // [95] if(bitmap_line_xdyd::x#2!=1) goto bitmap_line_xdyd::@1 -- vbuz1_neq_vbuc1_then_la1 lda #1 cmp.z x bne __b1 // bitmap_line_xdyd::@return // } // [96] return rts } // bitmap_line_ydxi // bitmap_line_ydxi(byte zp(3) y, byte zp(2) x, byte zp(6) xd) bitmap_line_ydxi: { .label xd = 6 .label e = 4 .label y = 3 .label x = 2 // e = xd>>1 // [97] bitmap_line_ydxi::e#0 = bitmap_line_ydxi::xd#1 >> 1 -- vbuz1=vbuz2_ror_1 lda.z xd lsr sta.z e // [98] phi from bitmap_line_ydxi to bitmap_line_ydxi::@1 [phi:bitmap_line_ydxi->bitmap_line_ydxi::@1] // [98] phi bitmap_line_ydxi::e#3 = bitmap_line_ydxi::e#0 [phi:bitmap_line_ydxi->bitmap_line_ydxi::@1#0] -- register_copy // [98] phi bitmap_line_ydxi::y#3 = bitmap_line::y0#0 [phi:bitmap_line_ydxi->bitmap_line_ydxi::@1#1] -- vbuz1=vbuc1 lda #bitmap_line.y0 sta.z y // [98] phi bitmap_line_ydxi::x#3 = bitmap_line::x0#0 [phi:bitmap_line_ydxi->bitmap_line_ydxi::@1#2] -- vbuz1=vbuc1 lda #bitmap_line.x0 sta.z x // [98] phi from bitmap_line_ydxi::@2 to bitmap_line_ydxi::@1 [phi:bitmap_line_ydxi::@2->bitmap_line_ydxi::@1] // [98] phi bitmap_line_ydxi::e#3 = bitmap_line_ydxi::e#6 [phi:bitmap_line_ydxi::@2->bitmap_line_ydxi::@1#0] -- register_copy // [98] phi bitmap_line_ydxi::y#3 = bitmap_line_ydxi::y#2 [phi:bitmap_line_ydxi::@2->bitmap_line_ydxi::@1#1] -- register_copy // [98] phi bitmap_line_ydxi::x#3 = bitmap_line_ydxi::x#6 [phi:bitmap_line_ydxi::@2->bitmap_line_ydxi::@1#2] -- register_copy // bitmap_line_ydxi::@1 __b1: // bitmap_plot(x,y) // [99] bitmap_plot::x#2 = bitmap_line_ydxi::x#3 -- vbuxx=vbuz1 ldx.z x // [100] bitmap_plot::y#2 = bitmap_line_ydxi::y#3 -- vbuyy=vbuz1 ldy.z y // [101] call bitmap_plot // [124] phi from bitmap_line_ydxi::@1 to bitmap_plot [phi:bitmap_line_ydxi::@1->bitmap_plot] // [124] phi bitmap_plot::y#4 = bitmap_plot::y#2 [phi:bitmap_line_ydxi::@1->bitmap_plot#0] -- register_copy // [124] phi bitmap_plot::x#4 = bitmap_plot::x#2 [phi:bitmap_line_ydxi::@1->bitmap_plot#1] -- register_copy jsr bitmap_plot // bitmap_line_ydxi::@4 // y++; // [102] bitmap_line_ydxi::y#2 = ++ bitmap_line_ydxi::y#3 -- vbuz1=_inc_vbuz1 inc.z y // e = e+xd // [103] bitmap_line_ydxi::e#1 = bitmap_line_ydxi::e#3 + bitmap_line_ydxi::xd#1 -- vbuz1=vbuz1_plus_vbuz2 lda.z e clc adc.z xd sta.z e // if(yd=bitmap_line_ydxi::e#1) goto bitmap_line_ydxi::@2 -- vbuc1_ge_vbuz1_then_la1 lda #bitmap_line.y1 cmp.z e bcs __b2 // bitmap_line_ydxi::@3 // x++; // [105] bitmap_line_ydxi::x#2 = ++ bitmap_line_ydxi::x#3 -- vbuz1=_inc_vbuz1 inc.z x // e = e - yd // [106] bitmap_line_ydxi::e#2 = bitmap_line_ydxi::e#1 - bitmap_line::y1#0 -- vbuz1=vbuz1_minus_vbuc1 lax.z e axs #bitmap_line.y1 stx.z e // [107] phi from bitmap_line_ydxi::@3 bitmap_line_ydxi::@4 to bitmap_line_ydxi::@2 [phi:bitmap_line_ydxi::@3/bitmap_line_ydxi::@4->bitmap_line_ydxi::@2] // [107] phi bitmap_line_ydxi::e#6 = bitmap_line_ydxi::e#2 [phi:bitmap_line_ydxi::@3/bitmap_line_ydxi::@4->bitmap_line_ydxi::@2#0] -- register_copy // [107] phi bitmap_line_ydxi::x#6 = bitmap_line_ydxi::x#2 [phi:bitmap_line_ydxi::@3/bitmap_line_ydxi::@4->bitmap_line_ydxi::@2#1] -- register_copy // bitmap_line_ydxi::@2 __b2: // while (y!=(y1+1)) // [108] if(bitmap_line_ydxi::y#2!=bitmap_line::y1#0+1) goto bitmap_line_ydxi::@1 -- vbuz1_neq_vbuc1_then_la1 lda #bitmap_line.y1+1 cmp.z y bne __b1 // bitmap_line_ydxi::@return // } // [109] return rts } // bitmap_line_xdyi // bitmap_line_xdyi(byte zp(2) x, byte zp(3) y, byte zp(5) x1, byte zp(6) xd) bitmap_line_xdyi: { .label x1 = 5 .label xd = 6 .label x = 2 .label e = 4 .label y = 3 // [111] phi from bitmap_line_xdyi to bitmap_line_xdyi::@1 [phi:bitmap_line_xdyi->bitmap_line_xdyi::@1] // [111] phi bitmap_line_xdyi::e#3 = bitmap_line::y1#0>>1 [phi:bitmap_line_xdyi->bitmap_line_xdyi::@1#0] -- vbuz1=vbuc1 lda #bitmap_line.y1>>1 sta.z e // [111] phi bitmap_line_xdyi::y#3 = bitmap_line::y0#0 [phi:bitmap_line_xdyi->bitmap_line_xdyi::@1#1] -- vbuz1=vbuc1 lda #bitmap_line.y0 sta.z y // [111] phi bitmap_line_xdyi::x#3 = bitmap_line::x0#0 [phi:bitmap_line_xdyi->bitmap_line_xdyi::@1#2] -- vbuz1=vbuc1 lda #bitmap_line.x0 sta.z x // [111] phi from bitmap_line_xdyi::@2 to bitmap_line_xdyi::@1 [phi:bitmap_line_xdyi::@2->bitmap_line_xdyi::@1] // [111] phi bitmap_line_xdyi::e#3 = bitmap_line_xdyi::e#6 [phi:bitmap_line_xdyi::@2->bitmap_line_xdyi::@1#0] -- register_copy // [111] phi bitmap_line_xdyi::y#3 = bitmap_line_xdyi::y#6 [phi:bitmap_line_xdyi::@2->bitmap_line_xdyi::@1#1] -- register_copy // [111] phi bitmap_line_xdyi::x#3 = bitmap_line_xdyi::x#2 [phi:bitmap_line_xdyi::@2->bitmap_line_xdyi::@1#2] -- register_copy // bitmap_line_xdyi::@1 __b1: // bitmap_plot(x,y) // [112] bitmap_plot::x#0 = bitmap_line_xdyi::x#3 -- vbuxx=vbuz1 ldx.z x // [113] bitmap_plot::y#0 = bitmap_line_xdyi::y#3 -- vbuyy=vbuz1 ldy.z y // [114] call bitmap_plot // [124] phi from bitmap_line_xdyi::@1 to bitmap_plot [phi:bitmap_line_xdyi::@1->bitmap_plot] // [124] phi bitmap_plot::y#4 = bitmap_plot::y#0 [phi:bitmap_line_xdyi::@1->bitmap_plot#0] -- register_copy // [124] phi bitmap_plot::x#4 = bitmap_plot::x#0 [phi:bitmap_line_xdyi::@1->bitmap_plot#1] -- register_copy jsr bitmap_plot // bitmap_line_xdyi::@4 // x++; // [115] bitmap_line_xdyi::x#2 = ++ bitmap_line_xdyi::x#3 -- vbuz1=_inc_vbuz1 inc.z x // e = e+yd // [116] bitmap_line_xdyi::e#1 = bitmap_line_xdyi::e#3 + bitmap_line::y1#0 -- vbuz1=vbuz1_plus_vbuc1 lax.z e axs #-[bitmap_line.y1] stx.z e // if(xd=bitmap_line_xdyi::e#1) goto bitmap_line_xdyi::@2 -- vbuz1_ge_vbuz2_then_la1 lda.z xd cmp.z e bcs __b2 // bitmap_line_xdyi::@3 // y++; // [118] bitmap_line_xdyi::y#2 = ++ bitmap_line_xdyi::y#3 -- vbuz1=_inc_vbuz1 inc.z y // e = e - xd // [119] bitmap_line_xdyi::e#2 = bitmap_line_xdyi::e#1 - bitmap_line_xdyi::xd#1 -- vbuz1=vbuz1_minus_vbuz2 txa sec sbc.z xd sta.z e // [120] phi from bitmap_line_xdyi::@3 bitmap_line_xdyi::@4 to bitmap_line_xdyi::@2 [phi:bitmap_line_xdyi::@3/bitmap_line_xdyi::@4->bitmap_line_xdyi::@2] // [120] phi bitmap_line_xdyi::e#6 = bitmap_line_xdyi::e#2 [phi:bitmap_line_xdyi::@3/bitmap_line_xdyi::@4->bitmap_line_xdyi::@2#0] -- register_copy // [120] phi bitmap_line_xdyi::y#6 = bitmap_line_xdyi::y#2 [phi:bitmap_line_xdyi::@3/bitmap_line_xdyi::@4->bitmap_line_xdyi::@2#1] -- register_copy // bitmap_line_xdyi::@2 __b2: // x1+1 // [121] bitmap_line_xdyi::$6 = bitmap_line_xdyi::x1#1 + 1 -- vbuxx=vbuz1_plus_1 ldx.z x1 inx // while (x!=(x1+1)) // [122] if(bitmap_line_xdyi::x#2!=bitmap_line_xdyi::$6) goto bitmap_line_xdyi::@1 -- vbuz1_neq_vbuxx_then_la1 cpx.z x bne __b1 // bitmap_line_xdyi::@return // } // [123] return rts } // bitmap_plot // bitmap_plot(byte register(X) x, byte register(Y) y) bitmap_plot: { .label plotter_x = 7 .label plotter_y = 9 .label plotter = 7 // plotter_x = { bitmap_plot_xhi[x], bitmap_plot_xlo[x] } // [125] bitmap_plot::plotter_x#0 = bitmap_plot_xhi[bitmap_plot::x#4] w= bitmap_plot_xlo[bitmap_plot::x#4] -- vwuz1=pbuc1_derefidx_vbuxx_word_pbuc2_derefidx_vbuxx lda bitmap_plot_xhi,x sta.z plotter_x+1 lda bitmap_plot_xlo,x sta.z plotter_x // plotter_y = { bitmap_plot_yhi[y], bitmap_plot_ylo[y] } // [126] bitmap_plot::plotter_y#0 = bitmap_plot_yhi[bitmap_plot::y#4] w= bitmap_plot_ylo[bitmap_plot::y#4] -- vwuz1=pbuc1_derefidx_vbuyy_word_pbuc2_derefidx_vbuyy lda bitmap_plot_yhi,y sta.z plotter_y+1 lda bitmap_plot_ylo,y sta.z plotter_y // plotter_x+plotter_y // [127] bitmap_plot::plotter#0 = bitmap_plot::plotter_x#0 + bitmap_plot::plotter_y#0 -- vwuz1=vwuz1_plus_vwuz2 lda.z plotter clc adc.z plotter_y sta.z plotter lda.z plotter+1 adc.z plotter_y+1 sta.z plotter+1 // *plotter | bitmap_plot_bit[x] // [128] bitmap_plot::$1 = *((byte*)bitmap_plot::plotter#0) | bitmap_plot_bit[bitmap_plot::x#4] -- vbuaa=_deref_pbuz1_bor_pbuc1_derefidx_vbuxx lda bitmap_plot_bit,x ldy #0 ora (plotter),y // *plotter = *plotter | bitmap_plot_bit[x] // [129] *((byte*)bitmap_plot::plotter#0) = bitmap_plot::$1 -- _deref_pbuz1=vbuaa sta (plotter),y // bitmap_plot::@return // } // [130] return rts } // File Data .segment 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