@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
  [4] phi()
  [5] call print 
  to:main::@1
main::@1: scope:[main]  from main
  [6] phi()
  [7] call print 
  to:main::@return
main::@return: scope:[main]  from main::@1
  [8] return 
  to:@return

(void()) print((byte*) print::m)
print: scope:[print]  from main main::@1
  [9] (byte) screen_idx#10 ← phi( main/(byte) 0 main::@1/(byte) screen_idx#11 )
  [9] (byte*) print::m#2 ← phi( main/(const byte*) msg1 main::@1/(const byte*) msg2 )
  [10] (byte~) print::$2 ← (byte) screen_idx#10 << (byte) 1
  [11] *((const word*) SCREEN + (byte~) print::$2) ← *((word*)(byte*) print::m#2 + (byte) 2)
  [12] (byte) screen_idx#11 ← ++ (byte) screen_idx#10
  to:print::@return
print::@return: scope:[print]  from print
  [13] return 
  to:@return
