@begin: scope:[]  from
  [0] phi()
  to:@1
@1: scope:[]  from @begin
  [1] phi()
  [2] call main 
  to:@end
@end: scope:[]  from @1
  [3] phi()
main: scope:[main]  from @1
  asm { sei  }
  [5] *((const byte*) BORDERCOL#0) ← (const byte) BLUE#0
  [6] *((const byte*) BGCOL#0) ← (const byte) BLUE#0
  to:main::@1
main::@1: scope:[main]  from main main::@1
  [7] (byte*) main::col#2 ← phi( main/(const byte*) COLS#0 main::@1/(byte*) main::col#1 )
  [8] *((byte*) main::col#2) ← (const byte) BLACK#0
  [9] (byte*) main::col#1 ← ++ (byte*) main::col#2
  [10] if((byte*) main::col#1!=(const byte*) COLS#0+(word) $3e8+(byte) 1) goto main::@1
  to:main::@2
main::@2: scope:[main]  from main::@1
  [11] phi()
  [12] call makecharset 
  to:main::@3
main::@3: scope:[main]  from main::@2 main::@6
  [13] (byte) c2B#14 ← phi( main::@6/(byte) c2B#4 main::@2/(byte) 0 )
  [13] (byte) c2A#14 ← phi( main::@6/(byte) c2A#4 main::@2/(byte) 0 )
  [13] (byte) c1B#14 ← phi( main::@6/(byte) c1B#4 main::@2/(byte) 0 )
  [13] (byte) c1A#14 ← phi( main::@6/(byte) c1A#4 main::@2/(byte) 0 )
  to:main::@4
main::@4: scope:[main]  from main::@3
  [14] phi()
  [15] call doplasma 
  to:main::toD0181
main::toD0181: scope:[main]  from main::@4
  [16] phi()
  to:main::@5
main::@5: scope:[main]  from main::toD0181
  [17] *((const byte*) D018#0) ← (const byte) main::toD0181_return#0
  [18] call doplasma 
  to:main::toD0182
main::toD0182: scope:[main]  from main::@5
  [19] phi()
  to:main::@6
main::@6: scope:[main]  from main::toD0182
  [20] *((const byte*) D018#0) ← (const byte) main::toD0182_return#0
  to:main::@3
doplasma: scope:[doplasma]  from main::@4 main::@5
  [21] (byte*) doplasma::screen#13 ← phi( main::@4/(const byte*) SCREEN1#0 main::@5/(const byte*) SCREEN2#0 )
  [21] (byte) c2B#24 ← phi( main::@4/(byte) c2B#14 main::@5/(byte) c2B#4 )
  [21] (byte) c2A#24 ← phi( main::@4/(byte) c2A#14 main::@5/(byte) c2A#4 )
  [21] (byte) c1B#10 ← phi( main::@4/(byte) c1B#14 main::@5/(byte) c1B#4 )
  [21] (byte) c1A#10 ← phi( main::@4/(byte) c1A#14 main::@5/(byte) c1A#4 )
  [22] (byte) doplasma::c1a#0 ← (byte) c1A#10
  [23] (byte) doplasma::c1b#0 ← (byte) c1B#10
  to:doplasma::@2
doplasma::@2: scope:[doplasma]  from doplasma doplasma::@1
  [24] (byte) doplasma::c1b#4 ← phi( doplasma::@1/(byte) doplasma::c1b#1 doplasma/(byte) doplasma::c1b#0 )
  [24] (byte) doplasma::c1a#4 ← phi( doplasma::@1/(byte) doplasma::c1a#1 doplasma/(byte) doplasma::c1a#0 )
  [24] (byte) doplasma::i#4 ← phi( doplasma::@1/(byte) doplasma::i#1 doplasma/(byte) 0 )
  [25] (byte~) doplasma::$1 ← *((const byte[$100]) SINTABLE#0 + (byte) doplasma::c1a#4) + *((const byte[$100]) SINTABLE#0 + (byte) doplasma::c1b#4)
  [26] *((const byte[$19]) doplasma::ybuf#0 + (byte) doplasma::i#4) ← (byte~) doplasma::$1
  [27] (byte) doplasma::c1a#1 ← (byte) doplasma::c1a#4 + (byte) 4
  [28] (byte) doplasma::c1b#1 ← (byte) doplasma::c1b#4 + (byte) 9
  [29] (byte) doplasma::i#1 ← ++ (byte) doplasma::i#4
  to:doplasma::@1
doplasma::@1: scope:[doplasma]  from doplasma::@2
  [30] if((byte) doplasma::i#1<(byte) $19) goto doplasma::@2
  to:doplasma::@3
doplasma::@3: scope:[doplasma]  from doplasma::@1
  [31] (byte) c1A#4 ← (byte) c1A#10 + (byte) 3
  [32] (byte) c1B#4 ← (byte) c1B#10 - (byte) 5
  [33] (byte) doplasma::c2a#0 ← (byte) c2A#24
  [34] (byte) doplasma::c2b#0 ← (byte) c2B#24
  to:doplasma::@5
doplasma::@5: scope:[doplasma]  from doplasma::@3 doplasma::@4
  [35] (byte) doplasma::c2b#4 ← phi( doplasma::@4/(byte) doplasma::c2b#1 doplasma::@3/(byte) doplasma::c2b#0 )
  [35] (byte) doplasma::c2a#4 ← phi( doplasma::@4/(byte) doplasma::c2a#1 doplasma::@3/(byte) doplasma::c2a#0 )
  [35] (byte) doplasma::i1#4 ← phi( doplasma::@4/(byte) doplasma::i1#1 doplasma::@3/(byte) 0 )
  [36] (byte~) doplasma::$3 ← *((const byte[$100]) SINTABLE#0 + (byte) doplasma::c2a#4) + *((const byte[$100]) SINTABLE#0 + (byte) doplasma::c2b#4)
  [37] *((const byte[$28]) doplasma::xbuf#0 + (byte) doplasma::i1#4) ← (byte~) doplasma::$3
  [38] (byte) doplasma::c2a#1 ← (byte) doplasma::c2a#4 + (byte) 3
  [39] (byte) doplasma::c2b#1 ← (byte) doplasma::c2b#4 + (byte) 7
  [40] (byte) doplasma::i1#1 ← ++ (byte) doplasma::i1#4
  to:doplasma::@4
doplasma::@4: scope:[doplasma]  from doplasma::@5
  [41] if((byte) doplasma::i1#1<(byte) $28) goto doplasma::@5
  to:doplasma::@6
doplasma::@6: scope:[doplasma]  from doplasma::@4
  [42] (byte) c2A#4 ← (byte) c2A#24 + (byte) 2
  [43] (byte) c2B#4 ← (byte) c2B#24 - (byte) 3
  to:doplasma::@8
doplasma::@8: scope:[doplasma]  from doplasma::@6 doplasma::@7
  [44] (byte*) doplasma::screen#18 ← phi( doplasma::@7/(byte*) doplasma::screen#2 doplasma::@6/(byte*) doplasma::screen#13 )
  [44] (byte) doplasma::ii#10 ← phi( doplasma::@7/(byte) doplasma::ii#1 doplasma::@6/(byte) 0 )
  to:doplasma::@10
doplasma::@10: scope:[doplasma]  from doplasma::@8 doplasma::@9
  [45] (byte) doplasma::i2#4 ← phi( doplasma::@9/(byte) doplasma::i2#1 doplasma::@8/(byte) 0 )
  [46] (byte~) doplasma::$6 ← *((const byte[$28]) doplasma::xbuf#0 + (byte) doplasma::i2#4) + *((const byte[$19]) doplasma::ybuf#0 + (byte) doplasma::ii#10)
  [47] *((byte*) doplasma::screen#18 + (byte) doplasma::i2#4) ← (byte~) doplasma::$6
  [48] (byte) doplasma::i2#1 ← ++ (byte) doplasma::i2#4
  to:doplasma::@9
doplasma::@9: scope:[doplasma]  from doplasma::@10
  [49] if((byte) doplasma::i2#1<(byte) $28) goto doplasma::@10
  to:doplasma::@11
doplasma::@11: scope:[doplasma]  from doplasma::@9
  [50] (byte*) doplasma::screen#2 ← (byte*) doplasma::screen#18 + (byte) $28
  [51] (byte) doplasma::ii#1 ← ++ (byte) doplasma::ii#10
  to:doplasma::@7
doplasma::@7: scope:[doplasma]  from doplasma::@11
  [52] if((byte) doplasma::ii#1<(byte) $19) goto doplasma::@8
  to:doplasma::@return
doplasma::@return: scope:[doplasma]  from doplasma::@7
  [53] return 
  to:@return
makecharset: scope:[makecharset]  from main::@2
  [54] phi()
  [55] call sid_rnd_init 
  to:makecharset::@13
makecharset::@13: scope:[makecharset]  from makecharset
  [56] phi()
  [57] call print_cls 
  to:makecharset::@2
makecharset::@2: scope:[makecharset]  from makecharset::@1 makecharset::@13
  [58] (byte*) print_char_cursor#56 ← phi( makecharset::@1/(byte*) print_char_cursor#18 makecharset::@13/(const byte*) print_line_cursor#0 )
  [58] (word) makecharset::c#16 ← phi( makecharset::@1/(word) makecharset::c#1 makecharset::@13/(byte) 0 )
  [59] (byte~) makecharset::$3 ← < (word) makecharset::c#16
  [60] (byte) makecharset::s#0 ← *((const byte[$100]) SINTABLE#0 + (byte~) makecharset::$3)
  to:makecharset::@4
makecharset::@4: scope:[makecharset]  from makecharset::@2 makecharset::@3
  [61] (byte) makecharset::i#13 ← phi( makecharset::@3/(byte) makecharset::i#1 makecharset::@2/(byte) 0 )
  to:makecharset::@7
makecharset::@7: scope:[makecharset]  from makecharset::@4 makecharset::@6
  [62] (byte) makecharset::b#10 ← phi( makecharset::@6/(byte) makecharset::b#2 makecharset::@4/(byte) 0 )
  [62] (byte) makecharset::ii#10 ← phi( makecharset::@6/(byte) makecharset::ii#1 makecharset::@4/(byte) 0 )
  [63] call sid_rnd 
  [64] (byte) sid_rnd::return#2 ← (byte) sid_rnd::return#0
  to:makecharset::@14
makecharset::@14: scope:[makecharset]  from makecharset::@7
  [65] (byte~) makecharset::$6 ← (byte) sid_rnd::return#2
  [66] (byte~) makecharset::$7 ← (byte~) makecharset::$6 & (byte) $ff
  [67] if((byte~) makecharset::$7<=(byte) makecharset::s#0) goto makecharset::@9
  to:makecharset::@10
makecharset::@10: scope:[makecharset]  from makecharset::@14
  [68] (byte) makecharset::b#1 ← (byte) makecharset::b#10 | *((const byte[8]) makecharset::bittab#0 + (byte) makecharset::ii#10)
  to:makecharset::@9
makecharset::@9: scope:[makecharset]  from makecharset::@10 makecharset::@14
  [69] (byte) makecharset::b#2 ← phi( makecharset::@10/(byte) makecharset::b#1 makecharset::@14/(byte) makecharset::b#10 )
  [70] (byte) makecharset::ii#1 ← ++ (byte) makecharset::ii#10
  to:makecharset::@6
makecharset::@6: scope:[makecharset]  from makecharset::@9
  [71] if((byte) makecharset::ii#1<(byte) 8) goto makecharset::@7
  to:makecharset::@8
makecharset::@8: scope:[makecharset]  from makecharset::@6
  [72] (word~) makecharset::$10 ← (word) makecharset::c#16 << (byte) 3
  [73] (word~) makecharset::$11 ← (word~) makecharset::$10 + (byte) makecharset::i#13
  [74] (byte*~) makecharset::$16 ← (const byte*) CHARSET#0 + (word~) makecharset::$11
  [75] *((byte*~) makecharset::$16) ← (byte) makecharset::b#2
  [76] (byte) makecharset::i#1 ← ++ (byte) makecharset::i#13
  to:makecharset::@3
makecharset::@3: scope:[makecharset]  from makecharset::@8
  [77] if((byte) makecharset::i#1<(byte) 8) goto makecharset::@4
  to:makecharset::@5
makecharset::@5: scope:[makecharset]  from makecharset::@3
  [78] (byte~) makecharset::$12 ← (word) makecharset::c#16 & (byte) 7
  [79] if((byte~) makecharset::$12!=(byte) 0) goto makecharset::@12
  to:makecharset::@11
makecharset::@11: scope:[makecharset]  from makecharset::@5
  [80] phi()
  [81] call print_char 
  to:makecharset::@12
makecharset::@12: scope:[makecharset]  from makecharset::@11 makecharset::@5
  [82] (byte*) print_char_cursor#18 ← phi( makecharset::@11/(byte*) print_char_cursor#1 makecharset::@5/(byte*) print_char_cursor#56 )
  [83] (word) makecharset::c#1 ← ++ (word) makecharset::c#16
  to:makecharset::@1
makecharset::@1: scope:[makecharset]  from makecharset::@12
  [84] if((word) makecharset::c#1<(word) $100) goto makecharset::@2
  to:makecharset::@return
makecharset::@return: scope:[makecharset]  from makecharset::@1
  [85] return 
  to:@return
print_char: scope:[print_char]  from makecharset::@11
  [86] *((byte*) print_char_cursor#56) ← (const byte) print_char::ch#0
  [87] (byte*) print_char_cursor#1 ← ++ (byte*) print_char_cursor#56
  to:print_char::@return
print_char::@return: scope:[print_char]  from print_char
  [88] return 
  to:@return
sid_rnd: scope:[sid_rnd]  from makecharset::@7
  [89] (byte) sid_rnd::return#0 ← *((const byte*) SID_VOICE3_OSC#0)
  to:sid_rnd::@return
sid_rnd::@return: scope:[sid_rnd]  from sid_rnd
  [90] return 
  to:@return
print_cls: scope:[print_cls]  from makecharset::@13
  [91] phi()
  [92] call memset 
  to:print_cls::@return
print_cls::@return: scope:[print_cls]  from print_cls
  [93] return 
  to:@return
memset: scope:[memset]  from print_cls
  [94] phi()
  to:memset::@2
memset::@2: scope:[memset]  from memset memset::@1
  [95] (byte*) memset::dst#4 ← phi( memset::@1/(byte*) memset::dst#1 memset/(byte*)(const void*) memset::str#0 )
  [96] *((byte*) memset::dst#4) ← (const byte) memset::c#0
  [97] (byte*) memset::dst#1 ← ++ (byte*) memset::dst#4
  to:memset::@1
memset::@1: scope:[memset]  from memset::@2
  [98] if((byte*) memset::dst#1!=(const byte*) memset::end#0) goto memset::@2
  to:memset::@return
memset::@return: scope:[memset]  from memset::@1
  [99] return 
  to:@return
sid_rnd_init: scope:[sid_rnd_init]  from makecharset
  [100] *((const word*) SID_VOICE3_FREQ#0) ← (word) $ffff
  [101] *((const byte*) SID_VOICE3_CONTROL#0) ← (const byte) SID_CONTROL_NOISE#0
  to:sid_rnd_init::@return
sid_rnd_init::@return: scope:[sid_rnd_init]  from sid_rnd_init
  [102] return 
  to:@return
