
void main()
main: scope:[main]  from
  asm { sei  }
  [1] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BORDER_COLOR) = BLACK
  [2] *((char *)VICII+OFFSET_STRUCT_MOS6569_VICII_BG_COLOR) = BLACK
  [3] call fillscreen
  to:main::@5
main::@5: scope:[main]  from main
  [4] phi()
  [5] call fillscreen
  to:main::@6
main::@6: scope:[main]  from main::@5
  [6] phi()
  [7] call fillscreen
  to:main::@7
main::@7: scope:[main]  from main::@6
  [8] phi()
  [9] call fillscreen
  to:main::sid_rnd_init1
main::sid_rnd_init1: scope:[main]  from main::@7
  [10] *((unsigned int *)SID+OFFSET_STRUCT_MOS6581_SID_CH3_FREQ) = $ffff
  [11] *((char *)SID+OFFSET_STRUCT_MOS6581_SID_CH3_CONTROL) = SID_CONTROL_NOISE
  to:main::@2
main::@2: scope:[main]  from main::sid_rnd_init1
  [12] phi()
  [13] call makecharset
  to:main::@1
main::@1: scope:[main]  from main::@2 main::@4
  [14] phi()
  [15] call fire
  to:main::toD0181
main::toD0181: scope:[main]  from main::@1
  [16] phi()
  to:main::@3
main::@3: scope:[main]  from main::toD0181
  [17] *D018 = main::toD0181_return#0
  [18] call fire
  to:main::toD0182
main::toD0182: scope:[main]  from main::@3
  [19] phi()
  to:main::@4
main::@4: scope:[main]  from main::toD0182
  [20] *D018 = main::toD0182_return#0
  to:main::@1

void fillscreen(char *screen , char fill)
fillscreen: scope:[fillscreen]  from main main::@5 main::@6 main::@7
  [21] fillscreen::screen#6 = phi( main/BUFFER, main::@5/SCREEN1, main::@6/SCREEN2, main::@7/COLS )
  [21] fillscreen::fill#5 = phi( main/0, main::@5/0, main::@6/0, main::@7/YELLOW )
  to:fillscreen::@1
fillscreen::@1: scope:[fillscreen]  from fillscreen fillscreen::@1
  [22] fillscreen::i#2 = phi( fillscreen/0, fillscreen::@1/fillscreen::i#1 )
  [22] fillscreen::screen#5 = phi( fillscreen/fillscreen::screen#6, fillscreen::@1/fillscreen::screen#4 )
  [23] *fillscreen::screen#5 = fillscreen::fill#5
  [24] fillscreen::screen#4 = ++ fillscreen::screen#5
  [25] fillscreen::i#1 = ++ fillscreen::i#2
  [26] if(fillscreen::i#1!=$3e8) goto fillscreen::@1
  to:fillscreen::@return
fillscreen::@return: scope:[fillscreen]  from fillscreen::@1
  [27] return 
  to:@return

void makecharset(char *charset)
makecharset: scope:[makecharset]  from main::@2
  [28] phi()
  to:makecharset::@1
makecharset::@1: scope:[makecharset]  from makecharset makecharset::@2
  [29] makecharset::font#2 = phi( makecharset/CHARSET, makecharset::@2/makecharset::font#1 )
  [30] if(makecharset::font#2!=CHARSET+1*8) goto makecharset::@2
  to:makecharset::@3
makecharset::@3: scope:[makecharset]  from makecharset::@1 makecharset::@4
  [31] makecharset::font1#2 = phi( makecharset::@1/CHARSET+(unsigned int)$40*8, makecharset::@4/makecharset::font1#1 )
  [32] if(makecharset::font1#2!=CHARSET+$100*8) goto makecharset::@4
  to:makecharset::@5
makecharset::@5: scope:[makecharset]  from makecharset::@3 makecharset::@7
  [33] makecharset::c#2 = phi( makecharset::@7/makecharset::c#1, makecharset::@3/0 )
  [34] if(makecharset::c#2<$40) goto makecharset::@6
  to:makecharset::@return
makecharset::@return: scope:[makecharset]  from makecharset::@5
  [35] return 
  to:@return
makecharset::@6: scope:[makecharset]  from makecharset::@10 makecharset::@5
  [36] makecharset::bc#6 = phi( makecharset::@10/makecharset::bc#3, makecharset::@5/0 )
  [36] makecharset::i#2 = phi( makecharset::@10/makecharset::i#1, makecharset::@5/0 )
  [37] if(makecharset::i#2<8) goto makecharset::@8
  to:makecharset::@7
makecharset::@7: scope:[makecharset]  from makecharset::@6
  [38] makecharset::c#1 = ++ makecharset::c#2
  to:makecharset::@5
makecharset::@8: scope:[makecharset]  from makecharset::@11 makecharset::@6
  [39] makecharset::b#2 = phi( makecharset::@6/0, makecharset::@11/makecharset::b#6 )
  [39] makecharset::bc#3 = phi( makecharset::@6/makecharset::bc#6, makecharset::@11/makecharset::bc#7 )
  [39] makecharset::ii#2 = phi( makecharset::@6/0, makecharset::@11/makecharset::ii#1 )
  [40] if(makecharset::ii#2<8) goto makecharset::@9
  to:makecharset::@10
makecharset::@10: scope:[makecharset]  from makecharset::@8
  [41] makecharset::$17 = (unsigned int)makecharset::c#2
  [42] makecharset::$15 = makecharset::$17 << 3
  [43] makecharset::$16 = makecharset::$15 + makecharset::i#2
  [44] makecharset::$18 = CHARSET+1*8 + makecharset::$16
  [45] *makecharset::$18 = makecharset::b#2
  [46] makecharset::i#1 = ++ makecharset::i#2
  to:makecharset::@6
makecharset::@9: scope:[makecharset]  from makecharset::@8
  [47] makecharset::bc#1 = makecharset::bc#3 + makecharset::c#2
  [48] if(makecharset::bc#1<$3f+1) goto makecharset::@11
  to:makecharset::@12
makecharset::@12: scope:[makecharset]  from makecharset::@9
  [49] makecharset::bc#2 = makecharset::bc#1 - $40
  [50] makecharset::$11 = makecharset::i#2 & 1
  [51] makecharset::$12 = makecharset::ii#2 + makecharset::$11
  [52] makecharset::$13 = makecharset::$12 & 7
  [53] makecharset::b#1 = makecharset::b#2 + makecharset::bittab[makecharset::$13]
  to:makecharset::@11
makecharset::@11: scope:[makecharset]  from makecharset::@12 makecharset::@9
  [54] makecharset::b#6 = phi( makecharset::@9/makecharset::b#2, makecharset::@12/makecharset::b#1 )
  [54] makecharset::bc#7 = phi( makecharset::@9/makecharset::bc#1, makecharset::@12/makecharset::bc#2 )
  [55] makecharset::ii#1 = ++ makecharset::ii#2
  to:makecharset::@8
makecharset::@4: scope:[makecharset]  from makecharset::@3
  [56] *makecharset::font1#2 = $ff
  [57] makecharset::font1#1 = ++ makecharset::font1#2
  to:makecharset::@3
makecharset::@2: scope:[makecharset]  from makecharset::@1
  [58] *makecharset::font#2 = 0
  [59] makecharset::font#1 = ++ makecharset::font#2
  to:makecharset::@1

void fire(char *screenbase)
fire: scope:[fire]  from main::@1 main::@3
  [60] fire::screen#0 = phi( main::@1/SCREEN1, main::@3/SCREEN2 )
  [61] fire::screen#12 = fire::screen#0
  to:fire::@1
fire::@1: scope:[fire]  from fire fire::@4
  [62] fire::screen#4 = phi( fire/fire::screen#12, fire::@4/fire::screen#2 )
  [62] fire::buffer#4 = phi( fire/BUFFER, fire::@4/fire::buffer#2 )
  [63] if(fire::buffer#4!=BUFFER+(unsigned int)$18*$28) goto fire::@2
  to:fire::@3
fire::@3: scope:[fire]  from fire::@1
  [64] fire::screen#1 = fire::screen#0 + (unsigned int)$18*$28
  to:fire::@6
fire::@6: scope:[fire]  from fire::@3 fire::@7
  [65] fire::screen#10 = phi( fire::@3/fire::screen#1, fire::@7/fire::screen#3 )
  [65] fire::buffer#10 = phi( fire::@3/BUFFER+(unsigned int)$18*$28, fire::@7/fire::buffer#3 )
  [66] if(fire::buffer#10!=BUFFER+(unsigned int)$19*$28) goto fire::sid_rnd1
  to:fire::@return
fire::@return: scope:[fire]  from fire::@6
  [67] return 
  to:@return
fire::sid_rnd1: scope:[fire]  from fire::@6
  [68] fire::sid_rnd1_return#0 = *((char *)SID+OFFSET_STRUCT_MOS6581_SID_CH3_OSC)
  to:fire::@7
fire::@7: scope:[fire]  from fire::sid_rnd1
  [69] fire::$13 = fire::sid_rnd1_return#0 >> 4
  [70] fire::$14 = $30 + fire::$13
  [71] *fire::buffer#10 = fire::$14
  [72] *fire::screen#10 = *fire::buffer#10
  [73] fire::screen#3 = ++ fire::screen#10
  [74] fire::buffer#3 = ++ fire::buffer#10
  to:fire::@6
fire::@2: scope:[fire]  from fire::@1
  [75] fire::$4 = fire::buffer#4[$28-1] + fire::buffer#4[$28-1]
  [76] fire::$5 = fire::$4 + fire::buffer#4[$28]
  [77] fire::$6 = fire::$5 + fire::buffer#4[$29]
  [78] fire::c#0 = fire::$6 >> 2
  [79] if(fire::c#0<2+1) goto fire::@4
  to:fire::@5
fire::@5: scope:[fire]  from fire::@2
  [80] fire::c#1 = fire::c#0 - 3
  to:fire::@4
fire::@4: scope:[fire]  from fire::@2 fire::@5
  [81] fire::c#2 = phi( fire::@2/fire::c#0, fire::@5/fire::c#1 )
  [82] *fire::buffer#4 = fire::c#2
  [83] *fire::screen#4 = *fire::buffer#4
  [84] fire::screen#2 = ++ fire::screen#4
  [85] fire::buffer#2 = ++ fire::buffer#4
  to:fire::@1
