
void __start()
__start: scope:[__start]  from
  [0] phi()
  to:__start::__init1
__start::__init1: scope:[__start]  from __start
  [1] last_time = 0
  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

int main()
main: scope:[main]  from __start::@1
  [5] phi()
  [6] call makechar
  to:main::@4
main::@4: scope:[main]  from main
  [7] phi()
  [8] call start
  to:main::@5
main::@5: scope:[main]  from main::@4
  [9] main::block#1 = *((char *)CIA2)
  [10] main::tmp#1 = main::block#1 & $fc
  [11] *((char *)CIA2) = main::tmp#1
  [12] main::v#1 = *VICII_MEMORY
  to:main::@1
main::@1: scope:[main]  from main::@5 main::@7
  [13] main::count#2 = phi( main::@5/$1f4, main::@7/main::count#1 )
  [14] if(0!=main::count#2) goto main::@2
  to:main::@3
main::@3: scope:[main]  from main::@1
  [15] *VICII_MEMORY = main::v#1
  [16] *((char *)CIA2) = main::block#1
  [17] call end
  to:main::@return
main::@return: scope:[main]  from main::@3
  [18] return 
  to:@return
main::@2: scope:[main]  from main::@1
  [19] phi()
  [20] call doplasma
  to:main::@6
main::@6: scope:[main]  from main::@2
  [21] *VICII_MEMORY = PAGE1
  [22] call doplasma
  to:main::@7
main::@7: scope:[main]  from main::@6
  [23] *VICII_MEMORY = PAGE2
  [24] main::count#1 = -- main::count#2
  to:main::@1

void makechar()
makechar: scope:[makechar]  from main
  [25] phi()
  to:makechar::@1
makechar::@1: scope:[makechar]  from makechar makechar::@4
  [26] rand_state#14 = phi( makechar/1, makechar::@4/rand_state#25 )
  [26] makechar::c#3 = phi( makechar/0, makechar::@4/makechar::c#2 )
  [27] if(makechar::c#3<$100) goto makechar::@2
  to:makechar::@return
makechar::@return: scope:[makechar]  from makechar::@1
  [28] return 
  to:@return
makechar::@2: scope:[makechar]  from makechar::@1
  [29] makechar::$9 = (char)makechar::c#3
  [30] makechar::s#1 = sinetable[makechar::$9]
  to:makechar::@3
makechar::@3: scope:[makechar]  from makechar::@2 makechar::@7
  [31] rand_state#25 = phi( makechar::@2/rand_state#14, makechar::@7/rand_state#19 )
  [31] makechar::i#3 = phi( makechar::@2/0, makechar::@7/makechar::i#2 )
  [32] if(makechar::i#3<8) goto makechar::@5
  to:makechar::@4
makechar::@4: scope:[makechar]  from makechar::@3
  [33] makechar::c#2 = ++ makechar::c#3
  to:makechar::@1
makechar::@5: scope:[makechar]  from makechar::@3 makechar::@8
  [34] rand_state#19 = phi( makechar::@3/rand_state#25, makechar::@8/rand_state#12 )
  [34] makechar::b#3 = phi( makechar::@3/0, makechar::@8/makechar::b#7 )
  [34] makechar::ii#3 = phi( makechar::@3/0, makechar::@8/makechar::ii#2 )
  [35] if(makechar::ii#3<8) goto makechar::@6
  to:makechar::@7
makechar::@7: scope:[makechar]  from makechar::@5
  [36] makechar::$7 = makechar::c#3 << 3
  [37] makechar::$8 = makechar::$7 + makechar::i#3
  [38] makechar::$10 = CHARSET + makechar::$8
  [39] *makechar::$10 = makechar::b#3
  [40] makechar::i#2 = ++ makechar::i#3
  to:makechar::@3
makechar::@6: scope:[makechar]  from makechar::@5
  [41] phi()
  [42] call rand
  [43] rand::return#2 = rand::return#0
  to:makechar::@10
makechar::@10: scope:[makechar]  from makechar::@6
  [44] makechar::$3 = rand::return#2
  [45] makechar::$4 = makechar::$3 & $ff
  [46] if(makechar::$4<=makechar::s#1) goto makechar::@8
  to:makechar::@9
makechar::@9: scope:[makechar]  from makechar::@10
  [47] makechar::b#2 = makechar::b#3 | bittab[makechar::ii#3]
  to:makechar::@8
makechar::@8: scope:[makechar]  from makechar::@10 makechar::@9
  [48] makechar::b#7 = phi( makechar::@9/makechar::b#2, makechar::@10/makechar::b#3 )
  [49] makechar::ii#2 = ++ makechar::ii#3
  to:makechar::@5

void start()
start: scope:[start]  from end main::@4
  asm { jsr$FFDE staLAST_TIME stxLAST_TIME+1  }
  to:start::@return
start::@return: scope:[start]  from start
  [51] return 
  to:@return

void end()
end: scope:[end]  from main::@3
  [52] Ticks#0 = last_time
  [53] call start
  to:end::@1
end::@1: scope:[end]  from end
  [54] last_time = last_time - Ticks#0
  [55] Ticks#1 = last_time
  [56] print_uint::w#0 = Ticks#1
  [57] call print_uint
  to:end::@2
end::@2: scope:[end]  from end::@1
  [58] phi()
  [59] call print_ln
  to:end::@return
end::@return: scope:[end]  from end::@2
  [60] return 
  to:@return

void doplasma(char *scrn)
doplasma: scope:[doplasma]  from main::@2 main::@6
  [61] doplasma::scrn#13 = phi( main::@2/SCREEN1, main::@6/SCREEN2 )
  to:doplasma::@1
doplasma::@1: scope:[doplasma]  from doplasma doplasma::@2
  [62] doplasma::c1b#3 = phi( doplasma/0, doplasma::@2/doplasma::c1b#2 )
  [62] doplasma::c1a#3 = phi( doplasma/0, doplasma::@2/doplasma::c1a#2 )
  [62] doplasma::ii#3 = phi( doplasma/0, doplasma::@2/doplasma::ii#2 )
  [63] if(doplasma::ii#3<$19) goto doplasma::@2
  to:doplasma::@3
doplasma::@3: scope:[doplasma]  from doplasma::@1 doplasma::@4
  [64] doplasma::c2b#3 = phi( doplasma::@1/doplasma::c2B#0, doplasma::@4/doplasma::c2b#2 )
  [64] doplasma::c2a#3 = phi( doplasma::@1/doplasma::c2A#0, doplasma::@4/doplasma::c2a#2 )
  [64] doplasma::i#3 = phi( doplasma::@1/0, doplasma::@4/doplasma::i#2 )
  [65] if(doplasma::i#3<$28) goto doplasma::@4
  to:doplasma::@5
doplasma::@5: scope:[doplasma]  from doplasma::@3 doplasma::@8
  [66] doplasma::scrn#6 = phi( doplasma::@8/doplasma::scrn#0, doplasma::@3/doplasma::scrn#13 )
  [66] doplasma::jj#3 = phi( doplasma::@8/doplasma::jj#2, doplasma::@3/0 )
  [67] if(doplasma::jj#3<$19) goto doplasma::@6
  to:doplasma::@return
doplasma::@return: scope:[doplasma]  from doplasma::@5
  [68] return 
  to:@return
doplasma::@6: scope:[doplasma]  from doplasma::@5 doplasma::@7
  [69] doplasma::j#3 = phi( doplasma::@7/doplasma::j#2, doplasma::@5/0 )
  [70] if(doplasma::j#3<$28) goto doplasma::@7
  to:doplasma::@8
doplasma::@8: scope:[doplasma]  from doplasma::@6
  [71] doplasma::scrn#0 = doplasma::scrn#6 + $28
  [72] doplasma::jj#2 = ++ doplasma::jj#3
  to:doplasma::@5
doplasma::@7: scope:[doplasma]  from doplasma::@6
  [73] doplasma::$6 = xbuf[doplasma::j#3] + ybuf[doplasma::jj#3]
  [74] doplasma::scrn#6[doplasma::j#3] = doplasma::$6
  [75] doplasma::j#2 = ++ doplasma::j#3
  to:doplasma::@6
doplasma::@4: scope:[doplasma]  from doplasma::@3
  [76] doplasma::$3 = sinetable[doplasma::c2a#3] + sinetable[doplasma::c2b#3]
  [77] xbuf[doplasma::i#3] = doplasma::$3
  [78] doplasma::c2a#2 = doplasma::c2a#3 + 3
  [79] doplasma::c2b#2 = doplasma::c2b#3 + 7
  [80] doplasma::i#2 = ++ doplasma::i#3
  to:doplasma::@3
doplasma::@2: scope:[doplasma]  from doplasma::@1
  [81] doplasma::$1 = sinetable[doplasma::c1a#3] + sinetable[doplasma::c1b#3]
  [82] ybuf[doplasma::ii#3] = doplasma::$1
  [83] doplasma::c1a#2 = doplasma::c1a#3 + 4
  [84] doplasma::c1b#2 = doplasma::c1b#3 + 9
  [85] doplasma::ii#2 = ++ doplasma::ii#3
  to:doplasma::@1

unsigned int rand()
rand: scope:[rand]  from makechar::@6
  [86] rand::$0 = rand_state#19 << 7
  [87] rand_state#0 = rand_state#19 ^ rand::$0
  [88] rand::$1 = rand_state#0 >> 9
  [89] rand_state#1 = rand_state#0 ^ rand::$1
  [90] rand::$2 = rand_state#1 << 8
  [91] rand_state#12 = rand_state#1 ^ rand::$2
  [92] rand::return#0 = rand_state#12
  to:rand::@return
rand::@return: scope:[rand]  from rand
  [93] return 
  to:@return

void print_uint(unsigned int w)
print_uint: scope:[print_uint]  from end::@1
  [94] print_uchar::b#0 = byte1  print_uint::w#0
  [95] call print_uchar
  to:print_uint::@1
print_uint::@1: scope:[print_uint]  from print_uint
  [96] print_uchar::b#1 = byte0  print_uint::w#0
  [97] call print_uchar
  to:print_uint::@return
print_uint::@return: scope:[print_uint]  from print_uint::@1
  [98] return 
  to:@return

void print_ln()
print_ln: scope:[print_ln]  from end::@2
  [99] phi()
  to:print_ln::@1
print_ln::@1: scope:[print_ln]  from print_ln print_ln::@1
  [100] print_line_cursor#9 = phi( print_ln/print_screen#0, print_ln::@1/print_line_cursor#0 )
  [101] print_line_cursor#0 = print_line_cursor#9 + $28
  [102] if(print_line_cursor#0<print_char_cursor#27) goto print_ln::@1
  to:print_ln::@return
print_ln::@return: scope:[print_ln]  from print_ln::@1
  [103] return 
  to:@return

void print_uchar(char b)
print_uchar: scope:[print_uchar]  from print_uint print_uint::@1
  [104] print_char_cursor#37 = phi( print_uint/print_screen#0, print_uint::@1/print_char_cursor#27 )
  [104] print_uchar::b#2 = phi( print_uint/print_uchar::b#0, print_uint::@1/print_uchar::b#1 )
  [105] print_uchar::$0 = print_uchar::b#2 >> 4
  [106] print_char::ch#0 = print_hextab[print_uchar::$0]
  [107] call print_char
  to:print_uchar::@1
print_uchar::@1: scope:[print_uchar]  from print_uchar
  [108] print_uchar::$2 = print_uchar::b#2 & $f
  [109] print_char::ch#1 = print_hextab[print_uchar::$2]
  [110] call print_char
  to:print_uchar::@return
print_uchar::@return: scope:[print_uchar]  from print_uchar::@1
  [111] return 
  to:@return

void print_char(char ch)
print_char: scope:[print_char]  from print_uchar print_uchar::@1
  [112] print_char_cursor#26 = phi( print_uchar/print_char_cursor#37, print_uchar::@1/print_char_cursor#27 )
  [112] print_char::ch#2 = phi( print_uchar/print_char::ch#0, print_uchar::@1/print_char::ch#1 )
  [113] *print_char_cursor#26 = print_char::ch#2
  [114] print_char_cursor#27 = ++ print_char_cursor#26
  to:print_char::@return
print_char::@return: scope:[print_char]  from print_char
  [115] return 
  to:@return
