
void main()
main: scope:[main]  from
  [0] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = 0
  [1] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = 0
  [2] *D011 = VICII_BMM|VICII_DEN|VICII_RSEL|3
  [3] *VICII_MEMORY = (char)(unsigned int)SCREEN&$3fff/$40|(unsigned int)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::@1 main::@3
  [9] phi()
  [10] call lines
  to:main::@1

void bitmap_init(char *gfx , char *screen)
bitmap_init: scope:[bitmap_init]  from main
  [11] phi()
  to:bitmap_init::@1
bitmap_init::@1: scope:[bitmap_init]  from bitmap_init bitmap_init::@2
  [12] bitmap_init::x#2 = phi( bitmap_init/0, bitmap_init::@2/bitmap_init::x#1 )
  [12] bitmap_init::bits#3 = phi( bitmap_init/$80, bitmap_init::@2/bitmap_init::bits#4 )
  [13] bitmap_plot_bit[bitmap_init::x#2] = bitmap_init::bits#3
  [14] bitmap_init::bits#1 = bitmap_init::bits#3 >> 1
  [15] if(bitmap_init::bits#1!=0) goto bitmap_init::@6
  to:bitmap_init::@2
bitmap_init::@6: scope:[bitmap_init]  from bitmap_init::@1
  [16] phi()
  to:bitmap_init::@2
bitmap_init::@2: scope:[bitmap_init]  from bitmap_init::@1 bitmap_init::@6
  [17] bitmap_init::bits#4 = phi( bitmap_init::@6/bitmap_init::bits#1, bitmap_init::@1/$80 )
  [18] bitmap_init::x#1 = ++ bitmap_init::x#2
  [19] 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
  [20] bitmap_init::yoffs#2 = phi( bitmap_init::@2/BITMAP, bitmap_init::@4/bitmap_init::yoffs#4 )
  [20] bitmap_init::y#2 = phi( bitmap_init::@2/0, bitmap_init::@4/bitmap_init::y#1 )
  [21] bitmap_init::$7 = bitmap_init::y#2 & 7
  [22] bitmap_init::$4 = byte0  bitmap_init::yoffs#2
  [23] bitmap_init::$5 = bitmap_init::$7 | bitmap_init::$4
  [24] bitmap_plot_ylo[bitmap_init::y#2] = bitmap_init::$5
  [25] bitmap_init::$6 = byte1  bitmap_init::yoffs#2
  [26] bitmap_plot_yhi[bitmap_init::y#2] = bitmap_init::$6
  [27] if(bitmap_init::$7!=7) goto bitmap_init::@4
  to:bitmap_init::@5
bitmap_init::@5: scope:[bitmap_init]  from bitmap_init::@3
  [28] bitmap_init::yoffs#1 = bitmap_init::yoffs#2 + (unsigned int)$28*8
  to:bitmap_init::@4
bitmap_init::@4: scope:[bitmap_init]  from bitmap_init::@3 bitmap_init::@5
  [29] bitmap_init::yoffs#4 = phi( bitmap_init::@3/bitmap_init::yoffs#2, bitmap_init::@5/bitmap_init::yoffs#1 )
  [30] bitmap_init::y#1 = ++ bitmap_init::y#2
  [31] if(bitmap_init::y#1!=0) goto bitmap_init::@3
  to:bitmap_init::@return
bitmap_init::@return: scope:[bitmap_init]  from bitmap_init::@4
  [32] return 
  to:@return

void bitmap_clear(char bgcol , char fgcol)
bitmap_clear: scope:[bitmap_clear]  from main::@2
  [33] phi()
  [34] call memset
  to:bitmap_clear::@1
bitmap_clear::@1: scope:[bitmap_clear]  from bitmap_clear
  [35] phi()
  [36] call memset
  to:bitmap_clear::@return
bitmap_clear::@return: scope:[bitmap_clear]  from bitmap_clear::@1
  [37] return 
  to:@return

void init_screen()
init_screen: scope:[init_screen]  from main::@3
  [38] phi()
  to:init_screen::@1
init_screen::@1: scope:[init_screen]  from init_screen init_screen::@2
  [39] init_screen::c#2 = phi( init_screen/SCREEN, init_screen::@2/init_screen::c#1 )
  [40] 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
  [41] return 
  to:@return
init_screen::@2: scope:[init_screen]  from init_screen::@1
  [42] *init_screen::c#2 = $14
  [43] init_screen::c#1 = ++ init_screen::c#2
  to:init_screen::@1

void lines()
lines: scope:[lines]  from main::@1
  [44] phi()
  to:lines::@1
lines::@1: scope:[lines]  from lines lines::@3
  [45] lines::l#2 = phi( lines/0, lines::@3/lines::l#1 )
  [46] if(lines::l#2<LINES) goto lines::@2
  to:lines::@return
lines::@return: scope:[lines]  from lines::@1
  [47] return 
  to:@return
lines::@2: scope:[lines]  from lines::@1
  [48] bitmap_line::x1#0 = lines_x[lines::l#2]
  [49] bitmap_line::y1#0 = lines_y[lines::l#2]
  [50] bitmap_line::x2#0 = (lines_x+1)[lines::l#2]
  [51] bitmap_line::y2#0 = (lines_y+1)[lines::l#2]
  [52] call bitmap_line
  to:lines::@3
lines::@3: scope:[lines]  from lines::@2
  [53] lines::l#1 = ++ lines::l#2
  to:lines::@1

void * memset(void *str , char c , unsigned int num)
memset: scope:[memset]  from bitmap_clear bitmap_clear::@1
  [54] memset::c#4 = phi( bitmap_clear/bitmap_clear::col#0, bitmap_clear::@1/0 )
  [54] memset::str#3 = phi( bitmap_clear/(void *)SCREEN, bitmap_clear::@1/(void *)BITMAP )
  [54] memset::num#2 = phi( bitmap_clear/$3e8, bitmap_clear::@1/$1f40 )
  [55] if(memset::num#2<=0) goto memset::@return
  to:memset::@1
memset::@1: scope:[memset]  from memset
  [56] memset::end#0 = (char *)memset::str#3 + memset::num#2
  [57] memset::dst#4 = (char *)memset::str#3
  to:memset::@2
memset::@2: scope:[memset]  from memset::@1 memset::@3
  [58] memset::dst#2 = phi( memset::@1/memset::dst#4, memset::@3/memset::dst#1 )
  [59] if(memset::dst#2!=memset::end#0) goto memset::@3
  to:memset::@return
memset::@return: scope:[memset]  from memset memset::@2
  [60] return 
  to:@return
memset::@3: scope:[memset]  from memset::@2
  [61] *memset::dst#2 = memset::c#4
  [62] memset::dst#1 = ++ memset::dst#2
  to:memset::@2

void bitmap_line(unsigned int x1 , unsigned int y1 , unsigned int x2 , unsigned int y2)
bitmap_line: scope:[bitmap_line]  from lines::@2
  [63] abs_u16::w#0 = bitmap_line::x2#0 - bitmap_line::x1#0
  [64] call abs_u16
  [65] abs_u16::return#0 = abs_u16::return#4
  to:bitmap_line::@12
bitmap_line::@12: scope:[bitmap_line]  from bitmap_line
  [66] bitmap_line::dx#0 = abs_u16::return#0
  [67] abs_u16::w#1 = bitmap_line::y2#0 - bitmap_line::y1#0
  [68] call abs_u16
  [69] abs_u16::return#1 = abs_u16::return#4
  to:bitmap_line::@13
bitmap_line::@13: scope:[bitmap_line]  from bitmap_line::@12
  [70] bitmap_line::dy#0 = abs_u16::return#1
  [71] if(bitmap_line::dx#0!=0) goto bitmap_line::@1
  to:bitmap_line::@18
bitmap_line::@18: scope:[bitmap_line]  from bitmap_line::@13
  [72] if(bitmap_line::dy#0==0) goto bitmap_line::@4
  to:bitmap_line::@1
bitmap_line::@1: scope:[bitmap_line]  from bitmap_line::@13 bitmap_line::@18
  [73] sgn_u16::w#0 = bitmap_line::x2#0 - bitmap_line::x1#0
  [74] call sgn_u16
  [75] sgn_u16::return#0 = sgn_u16::return#4
  to:bitmap_line::@14
bitmap_line::@14: scope:[bitmap_line]  from bitmap_line::@1
  [76] bitmap_line::sx#0 = sgn_u16::return#0
  [77] sgn_u16::w#1 = bitmap_line::y2#0 - bitmap_line::y1#0
  [78] call sgn_u16
  [79] sgn_u16::return#1 = sgn_u16::return#4
  to:bitmap_line::@15
bitmap_line::@15: scope:[bitmap_line]  from bitmap_line::@14
  [80] bitmap_line::sy#0 = sgn_u16::return#1
  [81] if(bitmap_line::dx#0>bitmap_line::dy#0) goto bitmap_line::@2
  to:bitmap_line::@5
bitmap_line::@5: scope:[bitmap_line]  from bitmap_line::@15
  [82] bitmap_line::e#0 = bitmap_line::dx#0 >> 1
  to:bitmap_line::@6
bitmap_line::@6: scope:[bitmap_line]  from bitmap_line::@5 bitmap_line::@7
  [83] bitmap_line::e#3 = phi( bitmap_line::@5/bitmap_line::e#0, bitmap_line::@7/bitmap_line::e#6 )
  [83] bitmap_line::y#4 = phi( bitmap_line::@5/bitmap_line::y1#0, bitmap_line::@7/bitmap_line::y#1 )
  [83] bitmap_line::x#13 = phi( bitmap_line::@5/bitmap_line::x1#0, bitmap_line::@7/bitmap_line::x#12 )
  [84] bitmap_plot::x#1 = bitmap_line::x#13
  [85] bitmap_plot::y#1 = (char)bitmap_line::y#4
  [86] call bitmap_plot
  to:bitmap_line::@16
bitmap_line::@16: scope:[bitmap_line]  from bitmap_line::@6
  [87] bitmap_line::y#1 = bitmap_line::y#4 + bitmap_line::sy#0
  [88] bitmap_line::e#1 = bitmap_line::e#3 + bitmap_line::dx#0
  [89] if(bitmap_line::dy#0>=bitmap_line::e#1) goto bitmap_line::@7
  to:bitmap_line::@8
bitmap_line::@8: scope:[bitmap_line]  from bitmap_line::@16
  [90] bitmap_line::x#1 = bitmap_line::x#13 + bitmap_line::sx#0
  [91] bitmap_line::e#2 = bitmap_line::e#1 - bitmap_line::dy#0
  to:bitmap_line::@7
bitmap_line::@7: scope:[bitmap_line]  from bitmap_line::@16 bitmap_line::@8
  [92] bitmap_line::e#6 = phi( bitmap_line::@16/bitmap_line::e#1, bitmap_line::@8/bitmap_line::e#2 )
  [92] bitmap_line::x#12 = phi( bitmap_line::@16/bitmap_line::x#13, bitmap_line::@8/bitmap_line::x#1 )
  [93] if(bitmap_line::y#1!=bitmap_line::y2#0) goto bitmap_line::@6
  to:bitmap_line::@3
bitmap_line::@3: scope:[bitmap_line]  from bitmap_line::@10 bitmap_line::@7
  [94] bitmap_line::y#7 = phi( bitmap_line::@10/bitmap_line::y#13, bitmap_line::@7/bitmap_line::y#1 )
  [94] bitmap_line::x#6 = phi( bitmap_line::@10/bitmap_line::x#15, bitmap_line::@7/bitmap_line::x#12 )
  [95] bitmap_plot::x#2 = bitmap_line::x#6
  [96] bitmap_plot::y#2 = (char)bitmap_line::y#7
  [97] call bitmap_plot
  to:bitmap_line::@return
bitmap_line::@return: scope:[bitmap_line]  from bitmap_line::@3 bitmap_line::@4
  [98] return 
  to:@return
bitmap_line::@2: scope:[bitmap_line]  from bitmap_line::@15
  [99] bitmap_line::e1#0 = bitmap_line::dy#0 >> 1
  to:bitmap_line::@9
bitmap_line::@9: scope:[bitmap_line]  from bitmap_line::@10 bitmap_line::@2
  [100] bitmap_line::e1#3 = phi( bitmap_line::@10/bitmap_line::e1#6, bitmap_line::@2/bitmap_line::e1#0 )
  [100] bitmap_line::y#15 = phi( bitmap_line::@10/bitmap_line::y#13, bitmap_line::@2/bitmap_line::y1#0 )
  [100] bitmap_line::x#7 = phi( bitmap_line::@10/bitmap_line::x#15, bitmap_line::@2/bitmap_line::x1#0 )
  [101] bitmap_plot::x#3 = bitmap_line::x#7
  [102] bitmap_plot::y#3 = (char)bitmap_line::y#15
  [103] call bitmap_plot
  to:bitmap_line::@17
bitmap_line::@17: scope:[bitmap_line]  from bitmap_line::@9
  [104] bitmap_line::x#15 = bitmap_line::x#7 + bitmap_line::sx#0
  [105] bitmap_line::e1#1 = bitmap_line::e1#3 + bitmap_line::dy#0
  [106] if(bitmap_line::dx#0>=bitmap_line::e1#1) goto bitmap_line::@10
  to:bitmap_line::@11
bitmap_line::@11: scope:[bitmap_line]  from bitmap_line::@17
  [107] bitmap_line::y#2 = bitmap_line::y#15 + bitmap_line::sy#0
  [108] bitmap_line::e1#2 = bitmap_line::e1#1 - bitmap_line::dx#0
  to:bitmap_line::@10
bitmap_line::@10: scope:[bitmap_line]  from bitmap_line::@11 bitmap_line::@17
  [109] bitmap_line::e1#6 = phi( bitmap_line::@11/bitmap_line::e1#2, bitmap_line::@17/bitmap_line::e1#1 )
  [109] bitmap_line::y#13 = phi( bitmap_line::@11/bitmap_line::y#2, bitmap_line::@17/bitmap_line::y#15 )
  [110] if(bitmap_line::x#15!=bitmap_line::x2#0) goto bitmap_line::@9
  to:bitmap_line::@3
bitmap_line::@4: scope:[bitmap_line]  from bitmap_line::@18
  [111] bitmap_plot::x#0 = bitmap_line::x1#0
  [112] bitmap_plot::y#0 = (char)bitmap_line::y1#0
  [113] call bitmap_plot
  to:bitmap_line::@return

unsigned int abs_u16(unsigned int w)
abs_u16: scope:[abs_u16]  from bitmap_line bitmap_line::@12
  [114] abs_u16::w#2 = phi( bitmap_line/abs_u16::w#0, bitmap_line::@12/abs_u16::w#1 )
  [115] abs_u16::$0 = byte1  abs_u16::w#2
  [116] abs_u16::$1 = abs_u16::$0 & $80
  [117] if(0!=abs_u16::$1) goto abs_u16::@1
  to:abs_u16::@return
abs_u16::@1: scope:[abs_u16]  from abs_u16
  [118] abs_u16::return#2 = - abs_u16::w#2
  to:abs_u16::@return
abs_u16::@return: scope:[abs_u16]  from abs_u16 abs_u16::@1
  [119] abs_u16::return#4 = phi( abs_u16::@1/abs_u16::return#2, abs_u16/abs_u16::w#2 )
  [120] return 
  to:@return

unsigned int sgn_u16(unsigned int w)
sgn_u16: scope:[sgn_u16]  from bitmap_line::@1 bitmap_line::@14
  [121] sgn_u16::w#2 = phi( bitmap_line::@1/sgn_u16::w#0, bitmap_line::@14/sgn_u16::w#1 )
  [122] sgn_u16::$0 = byte1  sgn_u16::w#2
  [123] sgn_u16::$1 = sgn_u16::$0 & $80
  [124] if(0!=sgn_u16::$1) goto sgn_u16::@1
  to:sgn_u16::@return
sgn_u16::@1: scope:[sgn_u16]  from sgn_u16
  [125] phi()
  to:sgn_u16::@return
sgn_u16::@return: scope:[sgn_u16]  from sgn_u16 sgn_u16::@1
  [126] sgn_u16::return#4 = phi( sgn_u16::@1/-1, sgn_u16/1 )
  [127] return 
  to:@return

void bitmap_plot(unsigned int x , char y)
bitmap_plot: scope:[bitmap_plot]  from bitmap_line::@3 bitmap_line::@4 bitmap_line::@6 bitmap_line::@9
  [128] bitmap_plot::x#4 = phi( bitmap_line::@3/bitmap_plot::x#2, bitmap_line::@4/bitmap_plot::x#0, bitmap_line::@6/bitmap_plot::x#1, bitmap_line::@9/bitmap_plot::x#3 )
  [128] bitmap_plot::y#4 = phi( bitmap_line::@3/bitmap_plot::y#2, bitmap_line::@4/bitmap_plot::y#0, bitmap_line::@6/bitmap_plot::y#1, bitmap_line::@9/bitmap_plot::y#3 )
  [129] bitmap_plot::plotter#0 = bitmap_plot_yhi[bitmap_plot::y#4] w= bitmap_plot_ylo[bitmap_plot::y#4]
  [130] bitmap_plot::$1 = bitmap_plot::x#4 & $fff8
  [131] bitmap_plot::plotter#1 = (char *)bitmap_plot::plotter#0 + bitmap_plot::$1
  [132] bitmap_plot::$2 = byte0  bitmap_plot::x#4
  [133] *bitmap_plot::plotter#1 = *bitmap_plot::plotter#1 | bitmap_plot_bit[bitmap_plot::$2]
  to:bitmap_plot::@return
bitmap_plot::@return: scope:[bitmap_plot]  from bitmap_plot
  [134] return 
  to:@return
