@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::toD0181
main::toD0181: scope:[main]  from main::@2
  [13] phi()
  to:main::@5
main::@5: scope:[main]  from main::toD0181
  [14] *((const byte*) D018#0) ← (const byte) main::toD0181_return#0
  to:main::@3
main::@3: scope:[main]  from main::@4 main::@5
  [15] (byte) c2B#1 ← phi( main::@4/(byte) c2B#3 main::@5/(byte) 0 )
  [15] (byte) c2A#1 ← phi( main::@4/(byte) c2A#3 main::@5/(byte) 0 )
  [15] (byte) c1B#1 ← phi( main::@4/(byte) c1B#3 main::@5/(byte) 0 )
  [15] (byte) c1A#1 ← phi( main::@4/(byte) c1A#3 main::@5/(byte) 0 )
  to:main::@4
main::@4: scope:[main]  from main::@3
  [16] phi()
  [17] call doplasma 
  to:main::@3
doplasma: scope:[doplasma]  from main::@4
  [18] (byte) doplasma::c1a#0 ← (byte) c1A#1
  [19] (byte) doplasma::c1b#0 ← (byte) c1B#1
  to:doplasma::@2
doplasma::@2: scope:[doplasma]  from doplasma doplasma::@11
  [20] (byte) doplasma::yprev#4 ← phi( doplasma::@11/(byte~) doplasma::yprev#6 doplasma/(byte) 0 )
  [20] (byte) doplasma::c1b#4 ← phi( doplasma::@11/(byte) doplasma::c1b#1 doplasma/(byte) doplasma::c1b#0 )
  [20] (byte) doplasma::c1a#4 ← phi( doplasma::@11/(byte) doplasma::c1a#1 doplasma/(byte) doplasma::c1a#0 )
  [20] (byte) doplasma::i#4 ← phi( doplasma::@11/(byte) doplasma::i#1 doplasma/(byte) 0 )
  [21] (byte) doplasma::yprev#2 ← *((const byte[$100]) SINTABLE#0 + (byte) doplasma::c1a#4) + *((const byte[$100]) SINTABLE#0 + (byte) doplasma::c1b#4)
  [22] (byte~) doplasma::$2 ← (byte) doplasma::yprev#2 - (byte) doplasma::yprev#4
  [23] *((const byte[$19]) doplasma::ybuf#0 + (byte) doplasma::i#4) ← (byte~) doplasma::$2
  [24] (byte) doplasma::c1a#1 ← (byte) doplasma::c1a#4 + (byte) 4
  [25] (byte) doplasma::c1b#1 ← (byte) doplasma::c1b#4 + (byte) 9
  [26] (byte) doplasma::i#1 ← ++ (byte) doplasma::i#4
  to:doplasma::@1
doplasma::@1: scope:[doplasma]  from doplasma::@2
  [27] if((byte) doplasma::i#1<(byte) $19) goto doplasma::@11
  to:doplasma::@3
doplasma::@3: scope:[doplasma]  from doplasma::@1
  [28] (byte) c1A#3 ← (byte) c1A#1 + (byte) 3
  [29] (byte) c1B#3 ← (byte) c1B#1 - (byte) 5
  [30] (byte) doplasma::c2a#0 ← (byte) c2A#1
  [31] (byte) doplasma::c2b#0 ← (byte) c2B#1
  to:doplasma::@5
doplasma::@5: scope:[doplasma]  from doplasma::@3 doplasma::@4
  [32] (byte) doplasma::c2b#4 ← phi( doplasma::@4/(byte) doplasma::c2b#1 doplasma::@3/(byte) doplasma::c2b#0 )
  [32] (byte) doplasma::c2a#4 ← phi( doplasma::@4/(byte) doplasma::c2a#1 doplasma::@3/(byte) doplasma::c2a#0 )
  [32] (byte) doplasma::i1#4 ← phi( doplasma::@4/(byte) doplasma::i1#1 doplasma::@3/(byte) 0 )
  [33] (byte~) doplasma::$4 ← *((const byte[$100]) SINTABLE#0 + (byte) doplasma::c2a#4) + *((const byte[$100]) SINTABLE#0 + (byte) doplasma::c2b#4)
  [34] *((const byte[$28]) doplasma::xbuf#0 + (byte) doplasma::i1#4) ← (byte~) doplasma::$4
  [35] (byte) doplasma::c2a#1 ← (byte) doplasma::c2a#4 + (byte) 3
  [36] (byte) doplasma::c2b#1 ← (byte) doplasma::c2b#4 + (byte) 7
  [37] (byte) doplasma::i1#1 ← ++ (byte) doplasma::i1#4
  to:doplasma::@4
doplasma::@4: scope:[doplasma]  from doplasma::@5
  [38] if((byte) doplasma::i1#1<(byte) $28) goto doplasma::@5
  to:doplasma::@6
doplasma::@6: scope:[doplasma]  from doplasma::@4
  [39] (byte) c2A#3 ← (byte) c2A#1 + (byte) 2
  [40] (byte) c2B#3 ← (byte) c2B#1 - (byte) 3
  to:doplasma::@8
doplasma::@8: scope:[doplasma]  from doplasma::@6 doplasma::@7
  [41] (byte) doplasma::i2#11 ← phi( doplasma::@7/(byte) doplasma::i2#1 doplasma::@6/(byte) 0 )
  [42] (byte) doplasma::val#0 ← *((const byte[$28]) doplasma::xbuf#0 + (byte) doplasma::i2#11)
  to:doplasma::@9
doplasma::@9: scope:[doplasma]  from doplasma::@8
  [43] (byte) doplasma::val#1 ← (byte) doplasma::val#0 + *((const byte[$19]) doplasma::ybuf#0)
  [44] *((const byte*) SCREEN1#0 + (byte) doplasma::i2#11) ← (byte) doplasma::val#1
  to:doplasma::@17_1
doplasma::@17_1: scope:[doplasma]  from doplasma::@9
  [45] (byte) doplasma::val#7 ← (byte) doplasma::val#1 + *((const byte[$19]) doplasma::ybuf#0+(byte) 1)
  [46] *((const byte*) SCREEN1#0+(byte) 1*(byte) $28 + (byte) doplasma::i2#11) ← (byte) doplasma::val#7
  to:doplasma::@17_2
doplasma::@17_2: scope:[doplasma]  from doplasma::@17_1
  [47] (byte) doplasma::val#10 ← (byte) doplasma::val#7 + *((const byte[$19]) doplasma::ybuf#0+(byte) 2)
  [48] *((const byte*) SCREEN1#0+(byte) 2*(byte) $28 + (byte) doplasma::i2#11) ← (byte) doplasma::val#10
  to:doplasma::@17_3
doplasma::@17_3: scope:[doplasma]  from doplasma::@17_2
  [49] (byte) doplasma::val#11 ← (byte) doplasma::val#10 + *((const byte[$19]) doplasma::ybuf#0+(byte) 3)
  [50] *((const byte*) SCREEN1#0+(byte) 3*(byte) $28 + (byte) doplasma::i2#11) ← (byte) doplasma::val#11
  to:doplasma::@17_4
doplasma::@17_4: scope:[doplasma]  from doplasma::@17_3
  [51] (byte) doplasma::val#13 ← (byte) doplasma::val#11 + *((const byte[$19]) doplasma::ybuf#0+(byte) 4)
  [52] *((const byte*) SCREEN1#0+(byte) 4*(byte) $28 + (byte) doplasma::i2#11) ← (byte) doplasma::val#13
  to:doplasma::@17_5
doplasma::@17_5: scope:[doplasma]  from doplasma::@17_4
  [53] (byte) doplasma::val#15 ← (byte) doplasma::val#13 + *((const byte[$19]) doplasma::ybuf#0+(byte) 5)
  [54] *((const byte*) SCREEN1#0+(byte) 5*(byte) $28 + (byte) doplasma::i2#11) ← (byte) doplasma::val#15
  to:doplasma::@17_6
doplasma::@17_6: scope:[doplasma]  from doplasma::@17_5
  [55] (byte) doplasma::val#17 ← (byte) doplasma::val#15 + *((const byte[$19]) doplasma::ybuf#0+(byte) 6)
  [56] *((const byte*) SCREEN1#0+(byte) 6*(byte) $28 + (byte) doplasma::i2#11) ← (byte) doplasma::val#17
  to:doplasma::@17_7
doplasma::@17_7: scope:[doplasma]  from doplasma::@17_6
  [57] (byte) doplasma::val#19 ← (byte) doplasma::val#17 + *((const byte[$19]) doplasma::ybuf#0+(byte) 7)
  [58] *((const byte*) SCREEN1#0+(byte) 7*(byte) $28 + (byte) doplasma::i2#11) ← (byte) doplasma::val#19
  to:doplasma::@17_8
doplasma::@17_8: scope:[doplasma]  from doplasma::@17_7
  [59] (byte) doplasma::val#21 ← (byte) doplasma::val#19 + *((const byte[$19]) doplasma::ybuf#0+(byte) 8)
  [60] *((const byte*) SCREEN1#0+(byte) 8*(byte) $28 + (byte) doplasma::i2#11) ← (byte) doplasma::val#21
  to:doplasma::@17_9
doplasma::@17_9: scope:[doplasma]  from doplasma::@17_8
  [61] (byte) doplasma::val#23 ← (byte) doplasma::val#21 + *((const byte[$19]) doplasma::ybuf#0+(byte) 9)
  [62] *((const byte*) SCREEN1#0+(byte) 9*(byte) $28 + (byte) doplasma::i2#11) ← (byte) doplasma::val#23
  to:doplasma::@17_10
doplasma::@17_10: scope:[doplasma]  from doplasma::@17_9
  [63] (byte) doplasma::val#25 ← (byte) doplasma::val#23 + *((const byte[$19]) doplasma::ybuf#0+(byte) $a)
  [64] *((const byte*) SCREEN1#0+(byte) $a*(byte) $28 + (byte) doplasma::i2#11) ← (byte) doplasma::val#25
  to:doplasma::@17_11
doplasma::@17_11: scope:[doplasma]  from doplasma::@17_10
  [65] (byte) doplasma::val#27 ← (byte) doplasma::val#25 + *((const byte[$19]) doplasma::ybuf#0+(byte) $b)
  [66] *((const byte*) SCREEN1#0+(byte) $b*(byte) $28 + (byte) doplasma::i2#11) ← (byte) doplasma::val#27
  to:doplasma::@17_12
doplasma::@17_12: scope:[doplasma]  from doplasma::@17_11
  [67] (byte) doplasma::val#29 ← (byte) doplasma::val#27 + *((const byte[$19]) doplasma::ybuf#0+(byte) $c)
  [68] *((const byte*) SCREEN1#0+(byte) $c*(byte) $28 + (byte) doplasma::i2#11) ← (byte) doplasma::val#29
  to:doplasma::@17_13
doplasma::@17_13: scope:[doplasma]  from doplasma::@17_12
  [69] (byte) doplasma::val#31 ← (byte) doplasma::val#29 + *((const byte[$19]) doplasma::ybuf#0+(byte) $d)
  [70] *((const byte*) SCREEN1#0+(byte) $d*(byte) $28 + (byte) doplasma::i2#11) ← (byte) doplasma::val#31
  to:doplasma::@17_14
doplasma::@17_14: scope:[doplasma]  from doplasma::@17_13
  [71] (byte) doplasma::val#33 ← (byte) doplasma::val#31 + *((const byte[$19]) doplasma::ybuf#0+(byte) $e)
  [72] *((const byte*) SCREEN1#0+(byte) $e*(byte) $28 + (byte) doplasma::i2#11) ← (byte) doplasma::val#33
  to:doplasma::@17_15
doplasma::@17_15: scope:[doplasma]  from doplasma::@17_14
  [73] (byte) doplasma::val#35 ← (byte) doplasma::val#33 + *((const byte[$19]) doplasma::ybuf#0+(byte) $f)
  [74] *((const byte*) SCREEN1#0+(byte) $f*(byte) $28 + (byte) doplasma::i2#11) ← (byte) doplasma::val#35
  to:doplasma::@17_16
doplasma::@17_16: scope:[doplasma]  from doplasma::@17_15
  [75] (byte) doplasma::val#37 ← (byte) doplasma::val#35 + *((const byte[$19]) doplasma::ybuf#0+(byte) $10)
  [76] *((const byte*) SCREEN1#0+(byte) $10*(byte) $28 + (byte) doplasma::i2#11) ← (byte) doplasma::val#37
  to:doplasma::@17_17
doplasma::@17_17: scope:[doplasma]  from doplasma::@17_16
  [77] (byte) doplasma::val#39 ← (byte) doplasma::val#37 + *((const byte[$19]) doplasma::ybuf#0+(byte) $11)
  [78] *((const byte*) SCREEN1#0+(byte) $11*(byte) $28 + (byte) doplasma::i2#11) ← (byte) doplasma::val#39
  to:doplasma::@17_18
doplasma::@17_18: scope:[doplasma]  from doplasma::@17_17
  [79] (byte) doplasma::val#41 ← (byte) doplasma::val#39 + *((const byte[$19]) doplasma::ybuf#0+(byte) $12)
  [80] *((const byte*) SCREEN1#0+(byte) $12*(byte) $28 + (byte) doplasma::i2#11) ← (byte) doplasma::val#41
  to:doplasma::@17_19
doplasma::@17_19: scope:[doplasma]  from doplasma::@17_18
  [81] (byte) doplasma::val#43 ← (byte) doplasma::val#41 + *((const byte[$19]) doplasma::ybuf#0+(byte) $13)
  [82] *((const byte*) SCREEN1#0+(byte) $13*(byte) $28 + (byte) doplasma::i2#11) ← (byte) doplasma::val#43
  to:doplasma::@17_20
doplasma::@17_20: scope:[doplasma]  from doplasma::@17_19
  [83] (byte) doplasma::val#45 ← (byte) doplasma::val#43 + *((const byte[$19]) doplasma::ybuf#0+(byte) $14)
  [84] *((const byte*) SCREEN1#0+(byte) $14*(byte) $28 + (byte) doplasma::i2#11) ← (byte) doplasma::val#45
  to:doplasma::@17_21
doplasma::@17_21: scope:[doplasma]  from doplasma::@17_20
  [85] (byte) doplasma::val#47 ← (byte) doplasma::val#45 + *((const byte[$19]) doplasma::ybuf#0+(byte) $15)
  [86] *((const byte*) SCREEN1#0+(byte) $15*(byte) $28 + (byte) doplasma::i2#11) ← (byte) doplasma::val#47
  to:doplasma::@17_22
doplasma::@17_22: scope:[doplasma]  from doplasma::@17_21
  [87] (byte) doplasma::val#49 ← (byte) doplasma::val#47 + *((const byte[$19]) doplasma::ybuf#0+(byte) $16)
  [88] *((const byte*) SCREEN1#0+(byte) $16*(byte) $28 + (byte) doplasma::i2#11) ← (byte) doplasma::val#49
  to:doplasma::@17_23
doplasma::@17_23: scope:[doplasma]  from doplasma::@17_22
  [89] (byte) doplasma::val#51 ← (byte) doplasma::val#49 + *((const byte[$19]) doplasma::ybuf#0+(byte) $17)
  [90] *((const byte*) SCREEN1#0+(byte) $17*(byte) $28 + (byte) doplasma::i2#11) ← (byte) doplasma::val#51
  to:doplasma::@17_24
doplasma::@17_24: scope:[doplasma]  from doplasma::@17_23
  [91] (byte) doplasma::val#53 ← (byte) doplasma::val#51 + *((const byte[$19]) doplasma::ybuf#0+(byte) $18)
  [92] *((const byte*) SCREEN1#0+(byte) $18*(byte) $28 + (byte) doplasma::i2#11) ← (byte) doplasma::val#53
  to:doplasma::@10
doplasma::@10: scope:[doplasma]  from doplasma::@17_24
  [93] (byte) doplasma::i2#1 ← ++ (byte) doplasma::i2#11
  to:doplasma::@7
doplasma::@7: scope:[doplasma]  from doplasma::@10
  [94] if((byte) doplasma::i2#1<(byte) $28) goto doplasma::@8
  to:doplasma::@return
doplasma::@return: scope:[doplasma]  from doplasma::@7
  [95] return 
  to:@return
doplasma::@11: scope:[doplasma]  from doplasma::@1
  [96] (byte~) doplasma::yprev#6 ← (byte) doplasma::yprev#2
  to:doplasma::@2
makecharset: scope:[makecharset]  from main::@2
  [97] phi()
  [98] call sid_rnd_init 
  to:makecharset::@13
makecharset::@13: scope:[makecharset]  from makecharset
  [99] phi()
  [100] call print_cls 
  to:makecharset::@2
makecharset::@2: scope:[makecharset]  from makecharset::@1 makecharset::@13
  [101] (byte*) print_char_cursor#52 ← phi( makecharset::@1/(byte*) print_char_cursor#18 makecharset::@13/(const byte*) print_line_cursor#0 )
  [101] (word) makecharset::c#16 ← phi( makecharset::@1/(word) makecharset::c#1 makecharset::@13/(byte) 0 )
  [102] (byte~) makecharset::$3 ← < (word) makecharset::c#16
  [103] (byte) makecharset::s#0 ← *((const byte[$100]) SINTABLE#0 + (byte~) makecharset::$3)
  to:makecharset::@4
makecharset::@4: scope:[makecharset]  from makecharset::@2 makecharset::@3
  [104] (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
  [105] (byte) makecharset::b#10 ← phi( makecharset::@6/(byte) makecharset::b#2 makecharset::@4/(byte) 0 )
  [105] (byte) makecharset::ii#10 ← phi( makecharset::@6/(byte) makecharset::ii#1 makecharset::@4/(byte) 0 )
  [106] call sid_rnd 
  [107] (byte) sid_rnd::return#2 ← (byte) sid_rnd::return#0
  to:makecharset::@14
makecharset::@14: scope:[makecharset]  from makecharset::@7
  [108] (byte~) makecharset::$6 ← (byte) sid_rnd::return#2
  [109] (byte~) makecharset::$7 ← (byte~) makecharset::$6 & (byte) $ff
  [110] if((byte~) makecharset::$7<=(byte) makecharset::s#0) goto makecharset::@9
  to:makecharset::@10
makecharset::@10: scope:[makecharset]  from makecharset::@14
  [111] (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
  [112] (byte) makecharset::b#2 ← phi( makecharset::@10/(byte) makecharset::b#1 makecharset::@14/(byte) makecharset::b#10 )
  [113] (byte) makecharset::ii#1 ← ++ (byte) makecharset::ii#10
  to:makecharset::@6
makecharset::@6: scope:[makecharset]  from makecharset::@9
  [114] if((byte) makecharset::ii#1<(byte) 8) goto makecharset::@7
  to:makecharset::@8
makecharset::@8: scope:[makecharset]  from makecharset::@6
  [115] (word~) makecharset::$10 ← (word) makecharset::c#16 << (byte) 3
  [116] (word~) makecharset::$11 ← (word~) makecharset::$10 + (byte) makecharset::i#13
  [117] (byte*~) makecharset::$16 ← (const byte*) CHARSET#0 + (word~) makecharset::$11
  [118] *((byte*~) makecharset::$16) ← (byte) makecharset::b#2
  [119] (byte) makecharset::i#1 ← ++ (byte) makecharset::i#13
  to:makecharset::@3
makecharset::@3: scope:[makecharset]  from makecharset::@8
  [120] if((byte) makecharset::i#1<(byte) 8) goto makecharset::@4
  to:makecharset::@5
makecharset::@5: scope:[makecharset]  from makecharset::@3
  [121] (byte~) makecharset::$12 ← (word) makecharset::c#16 & (byte) 7
  [122] if((byte~) makecharset::$12!=(byte) 0) goto makecharset::@12
  to:makecharset::@11
makecharset::@11: scope:[makecharset]  from makecharset::@5
  [123] phi()
  [124] call print_char 
  to:makecharset::@12
makecharset::@12: scope:[makecharset]  from makecharset::@11 makecharset::@5
  [125] (byte*) print_char_cursor#18 ← phi( makecharset::@11/(byte*) print_char_cursor#1 makecharset::@5/(byte*) print_char_cursor#52 )
  [126] (word) makecharset::c#1 ← ++ (word) makecharset::c#16
  to:makecharset::@1
makecharset::@1: scope:[makecharset]  from makecharset::@12
  [127] if((word) makecharset::c#1<(word) $100) goto makecharset::@2
  to:makecharset::@return
makecharset::@return: scope:[makecharset]  from makecharset::@1
  [128] return 
  to:@return
print_char: scope:[print_char]  from makecharset::@11
  [129] *((byte*) print_char_cursor#52) ← (const byte) print_char::ch#0
  [130] (byte*) print_char_cursor#1 ← ++ (byte*) print_char_cursor#52
  to:print_char::@return
print_char::@return: scope:[print_char]  from print_char
  [131] return 
  to:@return
sid_rnd: scope:[sid_rnd]  from makecharset::@7
  [132] (byte) sid_rnd::return#0 ← *((const byte*) SID_VOICE3_OSC#0)
  to:sid_rnd::@return
sid_rnd::@return: scope:[sid_rnd]  from sid_rnd
  [133] return 
  to:@return
print_cls: scope:[print_cls]  from makecharset::@13
  [134] phi()
  [135] call memset 
  to:print_cls::@return
print_cls::@return: scope:[print_cls]  from print_cls
  [136] return 
  to:@return
memset: scope:[memset]  from print_cls
  [137] phi()
  to:memset::@2
memset::@2: scope:[memset]  from memset memset::@1
  [138] (byte*) memset::dst#4 ← phi( memset::@1/(byte*) memset::dst#1 memset/(byte*)(const void*) memset::str#0 )
  [139] *((byte*) memset::dst#4) ← (const byte) memset::c#0
  [140] (byte*) memset::dst#1 ← ++ (byte*) memset::dst#4
  to:memset::@1
memset::@1: scope:[memset]  from memset::@2
  [141] if((byte*) memset::dst#1!=(const byte*) memset::end#0) goto memset::@2
  to:memset::@return
memset::@return: scope:[memset]  from memset::@1
  [142] return 
  to:@return
sid_rnd_init: scope:[sid_rnd_init]  from makecharset
  [143] *((const word*) SID_VOICE3_FREQ#0) ← (word) $ffff
  [144] *((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
  [145] return 
  to:@return
