
void __start()
__start: scope:[__start]  from
  [0] phi()
  to:__start::__init1
__start::__init1: scope:[__start]  from __start
  [1] frame_cnt = 1
  to:__start::@1
__start::@1: scope:[__start]  from __start::__init1
  [2] phi()
  [3] call main
  to:__start::@return
__start::@return: scope:[__start]  from __start::@1
  [4] return 
  to:@return

__interrupt(hardware_clobber) void irq()
irq: scope:[irq]  from
  [5] *BG_COLOR = WHITE
  [6] if(0==frame_cnt) goto irq::@1
  to:irq::@2
irq::@2: scope:[irq]  from irq
  [7] frame_cnt = ++ frame_cnt
  to:irq::@1
irq::@1: scope:[irq]  from irq irq::@2
  [8] *BG_COLOR = BLACK
  [9] *IRQ_STATUS = IRQ_RASTER
  to:irq::@return
irq::@return: scope:[irq]  from irq::@1
  [10] return 
  to:@return

void main()
main: scope:[main]  from __start::@1
  [11] phi()
  [12] call bitmap_init
  to:main::@8
main::@8: scope:[main]  from main
  [13] phi()
  [14] call bitmap_clear
  to:main::@9
main::@9: scope:[main]  from main::@8
  [15] *D011 = VICII_BMM|VICII_DEN|VICII_RSEL|3
  to:main::toD0181
main::toD0181: scope:[main]  from main::@9
  [16] phi()
  to:main::@7
main::@7: scope:[main]  from main::toD0181
  [17] *D018 = main::toD0181_return#0
  [18] call init_irq
  to:main::@1
main::@1: scope:[main]  from main::@4 main::@7
  [19] main::vy#2 = phi( main::@7/1, main::@4/main::vy#8 )
  [19] main::vx#2 = phi( main::@7/1, main::@4/main::vx#6 )
  [19] main::y#2 = phi( main::@7/0, main::@4/main::y#1 )
  [19] main::x#2 = phi( main::@7/0, main::@4/main::x#1 )
  to:main::@2
main::@2: scope:[main]  from main::@1
  [20] bitmap_plot::x#0 = main::x#2
  [21] bitmap_plot::y#0 = main::y#2
  [22] call bitmap_plot
  to:main::@10
main::@10: scope:[main]  from main::@2
  [23] main::x#1 = main::x#2 + main::vx#2
  [24] main::y#1 = main::y#2 + main::vy#2
  [25] if(main::x#1==$13f) goto main::@5
  to:main::@11
main::@11: scope:[main]  from main::@10
  [26] if(main::x#1!=0) goto main::@3
  to:main::@5
main::@5: scope:[main]  from main::@10 main::@11
  [27] main::vx#1 = - main::vx#2
  to:main::@3
main::@3: scope:[main]  from main::@11 main::@5
  [28] main::vx#6 = phi( main::@11/main::vx#2, main::@5/main::vx#1 )
  [29] if(main::y#1==$c7) goto main::@6
  to:main::@12
main::@12: scope:[main]  from main::@3
  [30] if(main::y#1!=0) goto main::@4
  to:main::@6
main::@6: scope:[main]  from main::@12 main::@3
  [31] main::vy#1 = - main::vy#2
  to:main::@4
main::@4: scope:[main]  from main::@12 main::@6
  [32] main::vy#8 = phi( main::@12/main::vy#2, main::@6/main::vy#1 )
  [33] plots_per_frame[frame_cnt] = ++ plots_per_frame[frame_cnt]
  to:main::@1

void bitmap_init(char *gfx , char *screen)
bitmap_init: scope:[bitmap_init]  from main
  [34] phi()
  to:bitmap_init::@1
bitmap_init::@1: scope:[bitmap_init]  from bitmap_init bitmap_init::@2
  [35] bitmap_init::x#2 = phi( bitmap_init/0, bitmap_init::@2/bitmap_init::x#1 )
  [35] bitmap_init::bits#3 = phi( bitmap_init/$80, bitmap_init::@2/bitmap_init::bits#4 )
  [36] bitmap_plot_bit[bitmap_init::x#2] = bitmap_init::bits#3
  [37] bitmap_init::bits#1 = bitmap_init::bits#3 >> 1
  [38] if(bitmap_init::bits#1!=0) goto bitmap_init::@6
  to:bitmap_init::@2
bitmap_init::@6: scope:[bitmap_init]  from bitmap_init::@1
  [39] phi()
  to:bitmap_init::@2
bitmap_init::@2: scope:[bitmap_init]  from bitmap_init::@1 bitmap_init::@6
  [40] bitmap_init::bits#4 = phi( bitmap_init::@6/bitmap_init::bits#1, bitmap_init::@1/$80 )
  [41] bitmap_init::x#1 = ++ bitmap_init::x#2
  [42] 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
  [43] bitmap_init::yoffs#2 = phi( bitmap_init::@2/BITMAP, bitmap_init::@4/bitmap_init::yoffs#4 )
  [43] bitmap_init::y#2 = phi( bitmap_init::@2/0, bitmap_init::@4/bitmap_init::y#1 )
  [44] bitmap_init::$7 = bitmap_init::y#2 & 7
  [45] bitmap_init::$4 = byte0  bitmap_init::yoffs#2
  [46] bitmap_init::$5 = bitmap_init::$7 | bitmap_init::$4
  [47] bitmap_plot_ylo[bitmap_init::y#2] = bitmap_init::$5
  [48] bitmap_init::$6 = byte1  bitmap_init::yoffs#2
  [49] bitmap_plot_yhi[bitmap_init::y#2] = bitmap_init::$6
  [50] if(bitmap_init::$7!=7) goto bitmap_init::@4
  to:bitmap_init::@5
bitmap_init::@5: scope:[bitmap_init]  from bitmap_init::@3
  [51] 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
  [52] bitmap_init::yoffs#4 = phi( bitmap_init::@3/bitmap_init::yoffs#2, bitmap_init::@5/bitmap_init::yoffs#1 )
  [53] bitmap_init::y#1 = ++ bitmap_init::y#2
  [54] if(bitmap_init::y#1!=0) goto bitmap_init::@3
  to:bitmap_init::@return
bitmap_init::@return: scope:[bitmap_init]  from bitmap_init::@4
  [55] return 
  to:@return

void bitmap_clear(char bgcol , char fgcol)
bitmap_clear: scope:[bitmap_clear]  from main::@8
  [56] phi()
  [57] call memset
  to:bitmap_clear::@1
bitmap_clear::@1: scope:[bitmap_clear]  from bitmap_clear
  [58] phi()
  [59] call memset
  to:bitmap_clear::@return
bitmap_clear::@return: scope:[bitmap_clear]  from bitmap_clear::@1
  [60] return 
  to:@return

void init_irq()
init_irq: scope:[init_irq]  from main::@7
  asm { sei  }
  [62] *PROCPORT_DDR = PROCPORT_DDR_MEMORY_MASK
  [63] *PROCPORT = PROCPORT_RAM_IO
  [64] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_INTERRUPT) = CIA_INTERRUPT_CLEAR
  [65] *VICII_CONTROL1 = *VICII_CONTROL1 | $80
  [66] *RASTER = 0
  [67] *IRQ_ENABLE = IRQ_RASTER
  [68] *HARDWARE_IRQ = &irq
  asm { cli  }
  to:init_irq::@return
init_irq::@return: scope:[init_irq]  from init_irq
  [70] return 
  to:@return

void bitmap_plot(unsigned int x , char y)
bitmap_plot: scope:[bitmap_plot]  from main::@2
  [71] bitmap_plot::plotter#0 = bitmap_plot_yhi[bitmap_plot::y#0] w= bitmap_plot_ylo[bitmap_plot::y#0]
  [72] bitmap_plot::$1 = bitmap_plot::x#0 & $fff8
  [73] bitmap_plot::plotter#1 = (char *)bitmap_plot::plotter#0 + bitmap_plot::$1
  [74] bitmap_plot::$2 = byte0  bitmap_plot::x#0
  [75] *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
  [76] return 
  to:@return

void * memset(void *str , char c , unsigned int num)
memset: scope:[memset]  from bitmap_clear bitmap_clear::@1
  [77] memset::c#4 = phi( bitmap_clear/bitmap_clear::col#0, bitmap_clear::@1/0 )
  [77] memset::str#3 = phi( bitmap_clear/(void *)SCREEN, bitmap_clear::@1/(void *)BITMAP )
  [77] memset::num#2 = phi( bitmap_clear/$3e8, bitmap_clear::@1/$1f40 )
  [78] if(memset::num#2<=0) goto memset::@return
  to:memset::@1
memset::@1: scope:[memset]  from memset
  [79] memset::end#0 = (char *)memset::str#3 + memset::num#2
  [80] memset::dst#4 = (char *)memset::str#3
  to:memset::@2
memset::@2: scope:[memset]  from memset::@1 memset::@3
  [81] memset::dst#2 = phi( memset::@1/memset::dst#4, memset::@3/memset::dst#1 )
  [82] if(memset::dst#2!=memset::end#0) goto memset::@3
  to:memset::@return
memset::@return: scope:[memset]  from memset memset::@2
  [83] return 
  to:@return
memset::@3: scope:[memset]  from memset::@2
  [84] *memset::dst#2 = memset::c#4
  [85] memset::dst#1 = ++ memset::dst#2
  to:memset::@2
