
void main()
main: scope:[main]  from
  [0] phi()
  [1] call bitmap_init
  to:main::@5
main::@5: scope:[main]  from main
  [2] phi()
  [3] call bitmap_clear
  to:main::@6
main::@6: scope:[main]  from main::@5
  [4] *D011 = VICII_BMM|VICII_DEN|VICII_RSEL|3
  to:main::toD0181
main::toD0181: scope:[main]  from main::@6
  [5] phi()
  to:main::@4
main::@4: scope:[main]  from main::toD0181
  [6] *D018 = main::toD0181_return#0
  to:main::@1
main::@1: scope:[main]  from main::@4 main::@7
  [7] main::a#2 = phi( main::@4/0, main::@7/main::a#1 )
  [7] main::i#2 = phi( main::@4/0, main::@7/main::i#1 )
  [8] if(main::i#2!=8) goto main::@2
  to:main::@3
main::@3: scope:[main]  from main::@1 main::@3
  [9] *(SCREEN+$3e7) = ++ *(SCREEN+$3e7)
  to:main::@3
main::@2: scope:[main]  from main::@1
  [10] main::$13 = (unsigned int)COSTAB[main::a#2]
  [11] bitmap_line::x1#0 = main::$13 + $78
  [12] main::$14 = (unsigned int)(COSTAB+$20)[main::a#2]
  [13] bitmap_line::x2#0 = main::$14 + $78
  [14] bitmap_line::y1#0 = (unsigned int)SINTAB[main::a#2]
  [15] bitmap_line::y2#0 = (unsigned int)(SINTAB+$20)[main::a#2]
  [16] call bitmap_line
  to:main::@7
main::@7: scope:[main]  from main::@2
  [17] main::a#1 = main::a#2 + $20
  [18] main::i#1 = ++ main::i#2
  to:main::@1

void bitmap_init(char *gfx , char *screen)
bitmap_init: scope:[bitmap_init]  from main
  [19] phi()
  to:bitmap_init::@1
bitmap_init::@1: scope:[bitmap_init]  from bitmap_init bitmap_init::@2
  [20] bitmap_init::x#2 = phi( bitmap_init/0, bitmap_init::@2/bitmap_init::x#1 )
  [20] bitmap_init::bits#3 = phi( bitmap_init/$80, bitmap_init::@2/bitmap_init::bits#4 )
  [21] bitmap_plot_bit[bitmap_init::x#2] = bitmap_init::bits#3
  [22] bitmap_init::bits#1 = bitmap_init::bits#3 >> 1
  [23] if(bitmap_init::bits#1!=0) goto bitmap_init::@6
  to:bitmap_init::@2
bitmap_init::@6: scope:[bitmap_init]  from bitmap_init::@1
  [24] phi()
  to:bitmap_init::@2
bitmap_init::@2: scope:[bitmap_init]  from bitmap_init::@1 bitmap_init::@6
  [25] bitmap_init::bits#4 = phi( bitmap_init::@6/bitmap_init::bits#1, bitmap_init::@1/$80 )
  [26] bitmap_init::x#1 = ++ bitmap_init::x#2
  [27] 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
  [28] bitmap_init::yoffs#2 = phi( bitmap_init::@2/BITMAP, bitmap_init::@4/bitmap_init::yoffs#4 )
  [28] bitmap_init::y#2 = phi( bitmap_init::@2/0, bitmap_init::@4/bitmap_init::y#1 )
  [29] bitmap_init::$7 = bitmap_init::y#2 & 7
  [30] bitmap_init::$4 = byte0  bitmap_init::yoffs#2
  [31] bitmap_init::$5 = bitmap_init::$7 | bitmap_init::$4
  [32] bitmap_plot_ylo[bitmap_init::y#2] = bitmap_init::$5
  [33] bitmap_init::$6 = byte1  bitmap_init::yoffs#2
  [34] bitmap_plot_yhi[bitmap_init::y#2] = bitmap_init::$6
  [35] if(bitmap_init::$7!=7) goto bitmap_init::@4
  to:bitmap_init::@5
bitmap_init::@5: scope:[bitmap_init]  from bitmap_init::@3
  [36] 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
  [37] bitmap_init::yoffs#4 = phi( bitmap_init::@3/bitmap_init::yoffs#2, bitmap_init::@5/bitmap_init::yoffs#1 )
  [38] bitmap_init::y#1 = ++ bitmap_init::y#2
  [39] if(bitmap_init::y#1!=0) goto bitmap_init::@3
  to:bitmap_init::@return
bitmap_init::@return: scope:[bitmap_init]  from bitmap_init::@4
  [40] return 
  to:@return

void bitmap_clear(char bgcol , char fgcol)
bitmap_clear: scope:[bitmap_clear]  from main::@5
  [41] phi()
  [42] call memset
  to:bitmap_clear::@1
bitmap_clear::@1: scope:[bitmap_clear]  from bitmap_clear
  [43] phi()
  [44] call memset
  to:bitmap_clear::@return
bitmap_clear::@return: scope:[bitmap_clear]  from bitmap_clear::@1
  [45] return 
  to:@return

void bitmap_line(unsigned int x1 , unsigned int y1 , unsigned int x2 , unsigned int y2)
bitmap_line: scope:[bitmap_line]  from main::@2
  [46] abs_u16::w#0 = bitmap_line::x2#0 - bitmap_line::x1#0
  [47] call abs_u16
  [48] abs_u16::return#0 = abs_u16::return#4
  to:bitmap_line::@12
bitmap_line::@12: scope:[bitmap_line]  from bitmap_line
  [49] bitmap_line::dx#0 = abs_u16::return#0
  [50] abs_u16::w#1 = bitmap_line::y2#0 - bitmap_line::y1#0
  [51] call abs_u16
  [52] abs_u16::return#1 = abs_u16::return#4
  to:bitmap_line::@13
bitmap_line::@13: scope:[bitmap_line]  from bitmap_line::@12
  [53] bitmap_line::dy#0 = abs_u16::return#1
  [54] if(bitmap_line::dx#0!=0) goto bitmap_line::@1
  to:bitmap_line::@18
bitmap_line::@18: scope:[bitmap_line]  from bitmap_line::@13
  [55] 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
  [56] sgn_u16::w#0 = bitmap_line::x2#0 - bitmap_line::x1#0
  [57] call sgn_u16
  [58] sgn_u16::return#0 = sgn_u16::return#4
  to:bitmap_line::@14
bitmap_line::@14: scope:[bitmap_line]  from bitmap_line::@1
  [59] bitmap_line::sx#0 = sgn_u16::return#0
  [60] sgn_u16::w#1 = bitmap_line::y2#0 - bitmap_line::y1#0
  [61] call sgn_u16
  [62] sgn_u16::return#1 = sgn_u16::return#4
  to:bitmap_line::@15
bitmap_line::@15: scope:[bitmap_line]  from bitmap_line::@14
  [63] bitmap_line::sy#0 = sgn_u16::return#1
  [64] 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
  [65] 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
  [66] bitmap_line::e#3 = phi( bitmap_line::@5/bitmap_line::e#0, bitmap_line::@7/bitmap_line::e#6 )
  [66] bitmap_line::y#4 = phi( bitmap_line::@5/bitmap_line::y1#0, bitmap_line::@7/bitmap_line::y#1 )
  [66] bitmap_line::x#13 = phi( bitmap_line::@5/bitmap_line::x1#0, bitmap_line::@7/bitmap_line::x#12 )
  [67] bitmap_plot::x#1 = bitmap_line::x#13
  [68] bitmap_plot::y#1 = (char)bitmap_line::y#4
  [69] call bitmap_plot
  to:bitmap_line::@16
bitmap_line::@16: scope:[bitmap_line]  from bitmap_line::@6
  [70] bitmap_line::y#1 = bitmap_line::y#4 + bitmap_line::sy#0
  [71] bitmap_line::e#1 = bitmap_line::e#3 + bitmap_line::dx#0
  [72] 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
  [73] bitmap_line::x#1 = bitmap_line::x#13 + bitmap_line::sx#0
  [74] 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
  [75] bitmap_line::e#6 = phi( bitmap_line::@16/bitmap_line::e#1, bitmap_line::@8/bitmap_line::e#2 )
  [75] bitmap_line::x#12 = phi( bitmap_line::@16/bitmap_line::x#13, bitmap_line::@8/bitmap_line::x#1 )
  [76] 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
  [77] bitmap_line::y#7 = phi( bitmap_line::@10/bitmap_line::y#13, bitmap_line::@7/bitmap_line::y#1 )
  [77] bitmap_line::x#6 = phi( bitmap_line::@10/bitmap_line::x#15, bitmap_line::@7/bitmap_line::x#12 )
  [78] bitmap_plot::x#2 = bitmap_line::x#6
  [79] bitmap_plot::y#2 = (char)bitmap_line::y#7
  [80] call bitmap_plot
  to:bitmap_line::@return
bitmap_line::@return: scope:[bitmap_line]  from bitmap_line::@3 bitmap_line::@4
  [81] return 
  to:@return
bitmap_line::@2: scope:[bitmap_line]  from bitmap_line::@15
  [82] 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
  [83] bitmap_line::e1#3 = phi( bitmap_line::@10/bitmap_line::e1#6, bitmap_line::@2/bitmap_line::e1#0 )
  [83] bitmap_line::y#15 = phi( bitmap_line::@10/bitmap_line::y#13, bitmap_line::@2/bitmap_line::y1#0 )
  [83] bitmap_line::x#7 = phi( bitmap_line::@10/bitmap_line::x#15, bitmap_line::@2/bitmap_line::x1#0 )
  [84] bitmap_plot::x#3 = bitmap_line::x#7
  [85] bitmap_plot::y#3 = (char)bitmap_line::y#15
  [86] call bitmap_plot
  to:bitmap_line::@17
bitmap_line::@17: scope:[bitmap_line]  from bitmap_line::@9
  [87] bitmap_line::x#15 = bitmap_line::x#7 + bitmap_line::sx#0
  [88] bitmap_line::e1#1 = bitmap_line::e1#3 + bitmap_line::dy#0
  [89] 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
  [90] bitmap_line::y#2 = bitmap_line::y#15 + bitmap_line::sy#0
  [91] 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
  [92] bitmap_line::e1#6 = phi( bitmap_line::@11/bitmap_line::e1#2, bitmap_line::@17/bitmap_line::e1#1 )
  [92] bitmap_line::y#13 = phi( bitmap_line::@11/bitmap_line::y#2, bitmap_line::@17/bitmap_line::y#15 )
  [93] 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
  [94] bitmap_plot::x#0 = bitmap_line::x1#0
  [95] bitmap_plot::y#0 = (char)bitmap_line::y1#0
  [96] call bitmap_plot
  to:bitmap_line::@return

void * memset(void *str , char c , unsigned int num)
memset: scope:[memset]  from bitmap_clear bitmap_clear::@1
  [97] memset::c#4 = phi( bitmap_clear/bitmap_clear::col#0, bitmap_clear::@1/0 )
  [97] memset::str#3 = phi( bitmap_clear/(void *)SCREEN, bitmap_clear::@1/(void *)BITMAP )
  [97] memset::num#2 = phi( bitmap_clear/$3e8, bitmap_clear::@1/$1f40 )
  [98] if(memset::num#2<=0) goto memset::@return
  to:memset::@1
memset::@1: scope:[memset]  from memset
  [99] memset::end#0 = (char *)memset::str#3 + memset::num#2
  [100] memset::dst#4 = (char *)memset::str#3
  to:memset::@2
memset::@2: scope:[memset]  from memset::@1 memset::@3
  [101] memset::dst#2 = phi( memset::@1/memset::dst#4, memset::@3/memset::dst#1 )
  [102] if(memset::dst#2!=memset::end#0) goto memset::@3
  to:memset::@return
memset::@return: scope:[memset]  from memset memset::@2
  [103] return 
  to:@return
memset::@3: scope:[memset]  from memset::@2
  [104] *memset::dst#2 = memset::c#4
  [105] memset::dst#1 = ++ memset::dst#2
  to:memset::@2

unsigned int abs_u16(unsigned int w)
abs_u16: scope:[abs_u16]  from bitmap_line bitmap_line::@12
  [106] abs_u16::w#2 = phi( bitmap_line/abs_u16::w#0, bitmap_line::@12/abs_u16::w#1 )
  [107] abs_u16::$0 = byte1  abs_u16::w#2
  [108] abs_u16::$1 = abs_u16::$0 & $80
  [109] if(0!=abs_u16::$1) goto abs_u16::@1
  to:abs_u16::@return
abs_u16::@1: scope:[abs_u16]  from abs_u16
  [110] abs_u16::return#2 = - abs_u16::w#2
  to:abs_u16::@return
abs_u16::@return: scope:[abs_u16]  from abs_u16 abs_u16::@1
  [111] abs_u16::return#4 = phi( abs_u16::@1/abs_u16::return#2, abs_u16/abs_u16::w#2 )
  [112] return 
  to:@return

unsigned int sgn_u16(unsigned int w)
sgn_u16: scope:[sgn_u16]  from bitmap_line::@1 bitmap_line::@14
  [113] sgn_u16::w#2 = phi( bitmap_line::@1/sgn_u16::w#0, bitmap_line::@14/sgn_u16::w#1 )
  [114] sgn_u16::$0 = byte1  sgn_u16::w#2
  [115] sgn_u16::$1 = sgn_u16::$0 & $80
  [116] if(0!=sgn_u16::$1) goto sgn_u16::@1
  to:sgn_u16::@return
sgn_u16::@1: scope:[sgn_u16]  from sgn_u16
  [117] phi()
  to:sgn_u16::@return
sgn_u16::@return: scope:[sgn_u16]  from sgn_u16 sgn_u16::@1
  [118] sgn_u16::return#4 = phi( sgn_u16::@1/-1, sgn_u16/1 )
  [119] 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
  [120] 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 )
  [120] 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 )
  [121] bitmap_plot::plotter#0 = bitmap_plot_yhi[bitmap_plot::y#4] w= bitmap_plot_ylo[bitmap_plot::y#4]
  [122] bitmap_plot::$1 = bitmap_plot::x#4 & $fff8
  [123] bitmap_plot::plotter#1 = (char *)bitmap_plot::plotter#0 + bitmap_plot::$1
  [124] bitmap_plot::$2 = byte0  bitmap_plot::x#4
  [125] *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
  [126] return 
  to:@return
