@begin: scope:[]  from
  [0] phi()
  to:@1
@1: scope:[]  from @begin
  [1] phi()
  [2] call main 
  to:@end
@end: scope:[]  from @1
  [3] phi()

(void()) main()
main: scope:[main]  from @1
  asm { sei  }
  [5] *((const byte*) PROCPORT_DDR) ← (const byte) PROCPORT_DDR_MEMORY_MASK
  [6] *((const byte*) PROCPORT) ← (const byte) PROCPORT_RAM_ALL
  [7] *((const byte*) BASIC_ROM) ← (byte) $a0
  [8] *((const byte*) KERNAL_ROM) ← (byte) $e0
  [9] *((const byte*) IO_RAM) ← (byte) $d0
  [10] *((const byte*) PROCPORT_DDR) ← (const byte) PROCPORT_DDR_MEMORY_MASK
  [11] *((const byte*) PROCPORT) ← (const byte) PROCPORT_BASIC_KERNEL_IO
  [12] *((const byte*) IO_RAM) ← (byte) $dd
  [13] call print_cls 
  to:main::@2
main::@2: scope:[main]  from main
  [14] phi()
  [15] call print_str 
  to:main::@3
main::@3: scope:[main]  from main::@2
  [16] phi()
  [17] call print_ln 
  to:main::@4
main::@4: scope:[main]  from main::@3
  [18] phi()
  [19] call testProcport 
  to:main::@5
main::@5: scope:[main]  from main::@4
  [20] phi()
  [21] call testProcport 
  to:main::@6
main::@6: scope:[main]  from main::@5
  [22] phi()
  [23] call testProcport 
  to:main::@7
main::@7: scope:[main]  from main::@6
  [24] phi()
  [25] call testProcport 
  to:main::@8
main::@8: scope:[main]  from main::@7
  [26] phi()
  [27] call testProcport 
  to:main::@9
main::@9: scope:[main]  from main::@8
  [28] phi()
  [29] call testProcport 
  to:main::@10
main::@10: scope:[main]  from main::@9
  [30] phi()
  [31] call testProcport 
  to:main::@11
main::@11: scope:[main]  from main::@10
  [32] phi()
  [33] call testProcport 
  to:main::@12
main::@12: scope:[main]  from main::@11
  [34] phi()
  [35] call testProcport 
  to:main::@13
main::@13: scope:[main]  from main::@12
  [36] phi()
  [37] call testProcport 
  to:main::@14
main::@14: scope:[main]  from main::@13
  [38] phi()
  [39] call testProcport 
  to:main::@15
main::@15: scope:[main]  from main::@14
  [40] phi()
  [41] call testProcport 
  to:main::@16
main::@16: scope:[main]  from main::@15
  [42] phi()
  [43] call testProcport 
  to:main::@17
main::@17: scope:[main]  from main::@16
  [44] phi()
  [45] call testProcport 
  to:main::@18
main::@18: scope:[main]  from main::@17
  [46] phi()
  [47] call testProcport 
  to:main::@19
main::@19: scope:[main]  from main::@18
  [48] phi()
  [49] call testProcport 
  to:main::@20
main::@20: scope:[main]  from main::@19
  [50] phi()
  [51] call testProcport 
  to:main::@21
main::@21: scope:[main]  from main::@20
  [52] phi()
  [53] call testProcport 
  to:main::@22
main::@22: scope:[main]  from main::@21
  [54] phi()
  [55] call testProcport 
  to:main::@23
main::@23: scope:[main]  from main::@22
  [56] phi()
  [57] call testProcport 
  to:main::@24
main::@24: scope:[main]  from main::@23
  [58] phi()
  [59] call testProcport 
  to:main::@25
main::@25: scope:[main]  from main::@24
  [60] phi()
  [61] call testProcport 
  to:main::@26
main::@26: scope:[main]  from main::@25
  [62] phi()
  [63] call testProcport 
  to:main::@27
main::@27: scope:[main]  from main::@26
  asm { cli  }
  [65] *((const byte*) PROCPORT_DDR) ← (const byte) PROCPORT_DDR_MEMORY_MASK
  [66] *((const byte*) PROCPORT) ← (const byte) PROCPORT_BASIC_KERNEL_IO
  to:main::@1
main::@1: scope:[main]  from main::@1 main::@27
  [67] *((const byte*) SCREEN+(word) $3e7) ← ++ *((const byte*) SCREEN+(word) $3e7)
  to:main::@1

(void()) testProcport((byte) testProcport::ddr , (byte) testProcport::port , (byte) testProcport::ddr2)
testProcport: scope:[testProcport]  from main::@10 main::@11 main::@12 main::@13 main::@14 main::@15 main::@16 main::@17 main::@18 main::@19 main::@20 main::@21 main::@22 main::@23 main::@24 main::@25 main::@26 main::@4 main::@5 main::@6 main::@7 main::@8 main::@9
  [68] (byte) testProcport::ddr2#23 ← phi( main::@5/(const byte) PROCPORT_DDR_MEMORY_MASK main::@6/(const byte) PROCPORT_DDR_MEMORY_MASK main::@7/(const byte) PROCPORT_DDR_MEMORY_MASK main::@8/(const byte) PROCPORT_DDR_MEMORY_MASK main::@9/(byte) 0 main::@10/(byte) 0 main::@11/(byte) 0 main::@12/(byte) $ff main::@13/(byte) $ff main::@14/(byte) $ff main::@15/(byte) $ff main::@16/(byte) $55 main::@17/(byte) $55 main::@18/(byte) $55 main::@19/(byte) $aa main::@20/(byte) $aa main::@21/(byte) $aa main::@22/(byte) 0 main::@23/(byte) $55 main::@24/(byte) $15 main::@25/(byte) $17 main::@26/(byte) $17 main::@4/(const byte) PROCPORT_DDR_MEMORY_MASK )
  [68] (byte) testProcport::port#23 ← phi( main::@5/(const byte) PROCPORT_RAM_IO main::@6/(const byte) PROCPORT_RAM_CHARROM main::@7/(const byte) PROCPORT_KERNEL_IO main::@8/(const byte) PROCPORT_BASIC_KERNEL_IO main::@9/(byte) 0 main::@10/(byte) 0 main::@11/(byte) $ff main::@12/(byte) 0 main::@13/(byte) $55 main::@14/(byte) $aa main::@15/(byte) $ff main::@16/(byte) 0 main::@17/(byte) $55 main::@18/(byte) $ff main::@19/(byte) 0 main::@20/(byte) $ff main::@21/(byte) $aa main::@22/(byte) $d0 main::@23/(byte) $55 main::@24/(byte) $15 main::@25/(byte) $15 main::@26/(byte) $17 main::@4/(const byte) PROCPORT_RAM_ALL )
  [68] (byte) testProcport::ddr#23 ← phi( main::@5/(const byte) PROCPORT_DDR_MEMORY_MASK main::@6/(const byte) PROCPORT_DDR_MEMORY_MASK main::@7/(const byte) PROCPORT_DDR_MEMORY_MASK main::@8/(const byte) PROCPORT_DDR_MEMORY_MASK main::@9/(byte) 0 main::@10/(byte) $ff main::@11/(byte) $ff main::@12/(byte) $ff main::@13/(byte) $ff main::@14/(byte) $ff main::@15/(byte) $ff main::@16/(byte) $55 main::@17/(byte) $55 main::@18/(byte) $55 main::@19/(byte) $aa main::@20/(byte) $aa main::@21/(byte) $aa main::@22/(byte) $ff main::@23/(byte) $ff main::@24/(byte) $17 main::@25/(byte) $17 main::@26/(byte) $17 main::@4/(const byte) PROCPORT_DDR_MEMORY_MASK )
  [69] *((const byte*) PROCPORT_DDR) ← (byte) $ff
  [70] *((const byte*) PROCPORT) ← (byte) 0
  [71] *((const byte*) PROCPORT_DDR) ← (byte) testProcport::ddr#23
  [72] *((const byte*) PROCPORT) ← (byte) testProcport::port#23
  [73] *((const byte*) PROCPORT_DDR) ← (byte) testProcport::ddr2#23
  [74] (byte*) print_char_cursor#123 ← (byte*) print_line_cursor#1
  [75] call print_str 
  to:testProcport::@1
testProcport::@1: scope:[testProcport]  from testProcport
  [76] (byte) print_byte::b#0 ← (byte) testProcport::ddr#23
  [77] call print_byte 
  to:testProcport::@2
testProcport::@2: scope:[testProcport]  from testProcport::@1
  [78] phi()
  [79] call print_str 
  to:testProcport::@3
testProcport::@3: scope:[testProcport]  from testProcport::@2
  [80] (byte) print_byte::b#1 ← (byte) testProcport::port#23
  [81] call print_byte 
  to:testProcport::@4
testProcport::@4: scope:[testProcport]  from testProcport::@3
  [82] phi()
  [83] call print_str 
  to:testProcport::@5
testProcport::@5: scope:[testProcport]  from testProcport::@4
  [84] (byte) print_byte::b#2 ← (byte) testProcport::ddr2#23
  [85] call print_byte 
  to:testProcport::@6
testProcport::@6: scope:[testProcport]  from testProcport::@5
  [86] phi()
  [87] call print_str 
  to:testProcport::@7
testProcport::@7: scope:[testProcport]  from testProcport::@6
  [88] (byte) print_byte::b#3 ← *((const byte*) PROCPORT_DDR)
  [89] call print_byte 
  to:testProcport::@8
testProcport::@8: scope:[testProcport]  from testProcport::@7
  [90] phi()
  [91] call print_str 
  to:testProcport::@9
testProcport::@9: scope:[testProcport]  from testProcport::@8
  [92] (byte) print_byte::b#4 ← *((const byte*) PROCPORT)
  [93] call print_byte 
  to:testProcport::@10
testProcport::@10: scope:[testProcport]  from testProcport::@9
  [94] phi()
  [95] call print_str 
  to:testProcport::@11
testProcport::@11: scope:[testProcport]  from testProcport::@10
  [96] (byte) print_byte::b#5 ← *((const byte*) BASIC_ROM)
  [97] call print_byte 
  to:testProcport::@12
testProcport::@12: scope:[testProcport]  from testProcport::@11
  [98] phi()
  [99] call print_str 
  to:testProcport::@13
testProcport::@13: scope:[testProcport]  from testProcport::@12
  [100] (byte) print_byte::b#6 ← *((const byte*) IO_RAM)
  [101] call print_byte 
  to:testProcport::@14
testProcport::@14: scope:[testProcport]  from testProcport::@13
  [102] phi()
  [103] call print_str 
  to:testProcport::@15
testProcport::@15: scope:[testProcport]  from testProcport::@14
  [104] (byte) print_byte::b#7 ← *((const byte*) KERNAL_ROM)
  [105] call print_byte 
  to:testProcport::@16
testProcport::@16: scope:[testProcport]  from testProcport::@15
  [106] phi()
  [107] call print_ln 
  to:testProcport::@return
testProcport::@return: scope:[testProcport]  from testProcport::@16
  [108] return 
  to:@return

(void()) print_ln()
print_ln: scope:[print_ln]  from main::@3 testProcport::@16
  [109] (byte*) print_char_cursor#115 ← phi( main::@3/(byte*) print_char_cursor#114 testProcport::@16/(byte*) print_char_cursor#66 )
  [109] (byte*) print_line_cursor#67 ← phi( main::@3/(byte*) 1024 testProcport::@16/(byte*) print_line_cursor#1 )
  to:print_ln::@1
print_ln::@1: scope:[print_ln]  from print_ln print_ln::@1
  [110] (byte*) print_line_cursor#34 ← phi( print_ln/(byte*) print_line_cursor#67 print_ln::@1/(byte*) print_line_cursor#1 )
  [111] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#34 + (byte) $28
  [112] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#115) goto print_ln::@1
  to:print_ln::@return
print_ln::@return: scope:[print_ln]  from print_ln::@1
  [113] return 
  to:@return

(void()) print_byte((byte) print_byte::b)
print_byte: scope:[print_byte]  from testProcport::@1 testProcport::@11 testProcport::@13 testProcport::@15 testProcport::@3 testProcport::@5 testProcport::@7 testProcport::@9
  [114] (byte) print_byte::b#8 ← phi( testProcport::@1/(byte) print_byte::b#0 testProcport::@11/(byte) print_byte::b#5 testProcport::@13/(byte) print_byte::b#6 testProcport::@15/(byte) print_byte::b#7 testProcport::@3/(byte) print_byte::b#1 testProcport::@5/(byte) print_byte::b#2 testProcport::@7/(byte) print_byte::b#3 testProcport::@9/(byte) print_byte::b#4 )
  [115] (byte~) print_byte::$0 ← (byte) print_byte::b#8 >> (byte) 4
  [116] (byte) print_char::ch#0 ← *((const byte*) print_hextab + (byte~) print_byte::$0)
  [117] call print_char 
  to:print_byte::@1
print_byte::@1: scope:[print_byte]  from print_byte
  [118] (byte~) print_byte::$2 ← (byte) print_byte::b#8 & (byte) $f
  [119] (byte) print_char::ch#1 ← *((const byte*) print_hextab + (byte~) print_byte::$2)
  [120] call print_char 
  to:print_byte::@return
print_byte::@return: scope:[print_byte]  from print_byte::@1
  [121] return 
  to:@return

(void()) print_char((byte) print_char::ch)
print_char: scope:[print_char]  from print_byte print_byte::@1
  [122] (byte*) print_char_cursor#65 ← phi( print_byte/(byte*) print_char_cursor#114 print_byte::@1/(byte*) print_char_cursor#66 )
  [122] (byte) print_char::ch#2 ← phi( print_byte/(byte) print_char::ch#0 print_byte::@1/(byte) print_char::ch#1 )
  [123] *((byte*) print_char_cursor#65) ← (byte) print_char::ch#2
  [124] (byte*) print_char_cursor#66 ← ++ (byte*) print_char_cursor#65
  to:print_char::@return
print_char::@return: scope:[print_char]  from print_char
  [125] return 
  to:@return

(void()) print_str((byte*) print_str::str)
print_str: scope:[print_str]  from main::@2 testProcport testProcport::@10 testProcport::@12 testProcport::@14 testProcport::@2 testProcport::@4 testProcport::@6 testProcport::@8
  [126] (byte*) print_char_cursor#121 ← phi( main::@2/(byte*) 1024 testProcport/(byte*) print_char_cursor#123 testProcport::@10/(byte*) print_char_cursor#66 testProcport::@12/(byte*) print_char_cursor#66 testProcport::@14/(byte*) print_char_cursor#66 testProcport::@2/(byte*) print_char_cursor#66 testProcport::@4/(byte*) print_char_cursor#66 testProcport::@6/(byte*) print_char_cursor#66 testProcport::@8/(byte*) print_char_cursor#66 )
  [126] (byte*) print_str::str#12 ← phi( main::@2/(const string) main::str testProcport/(const string) testProcport::str testProcport::@10/(const string) testProcport::str5 testProcport::@12/(const string) testProcport::str5 testProcport::@14/(const string) testProcport::str5 testProcport::@2/(const string) testProcport::str1 testProcport::@4/(const string) testProcport::str1 testProcport::@6/(const string) testProcport::str3 testProcport::@8/(const string) testProcport::str3 )
  to:print_str::@1
print_str::@1: scope:[print_str]  from print_str print_str::@2
  [127] (byte*) print_char_cursor#114 ← phi( print_str/(byte*) print_char_cursor#121 print_str::@2/(byte*) print_char_cursor#1 )
  [127] (byte*) print_str::str#10 ← phi( print_str/(byte*) print_str::str#12 print_str::@2/(byte*) print_str::str#0 )
  [128] if((byte) 0!=*((byte*) print_str::str#10)) goto print_str::@2
  to:print_str::@return
print_str::@return: scope:[print_str]  from print_str::@1
  [129] return 
  to:@return
print_str::@2: scope:[print_str]  from print_str::@1
  [130] *((byte*) print_char_cursor#114) ← *((byte*) print_str::str#10)
  [131] (byte*) print_char_cursor#1 ← ++ (byte*) print_char_cursor#114
  [132] (byte*) print_str::str#0 ← ++ (byte*) print_str::str#10
  to:print_str::@1

(void()) print_cls()
print_cls: scope:[print_cls]  from main
  [133] phi()
  [134] call memset 
  to:print_cls::@return
print_cls::@return: scope:[print_cls]  from print_cls
  [135] return 
  to:@return

(void*()) memset((void*) memset::str , (byte) memset::c , (word) memset::num)
memset: scope:[memset]  from print_cls
  [136] phi()
  to:memset::@1
memset::@1: scope:[memset]  from memset memset::@2
  [137] (byte*) memset::dst#2 ← phi( memset/(byte*)(const void*) memset::str#0 memset::@2/(byte*) memset::dst#1 )
  [138] if((byte*) memset::dst#2!=(const byte*) memset::end#0) goto memset::@2
  to:memset::@return
memset::@return: scope:[memset]  from memset::@1
  [139] return 
  to:@return
memset::@2: scope:[memset]  from memset::@1
  [140] *((byte*) memset::dst#2) ← (const byte) memset::c#0
  [141] (byte*) memset::dst#1 ← ++ (byte*) memset::dst#2
  to:memset::@1
