@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
  [4] phi()
  to:main::@2
main::@2: scope:[main]  from main main::@1
  [5] (byte*) main::sc#4 ← phi( main::@1/(byte*) main::sc#1 main/(byte*) 1024 )
  [6] *((byte*) main::sc#4) ← (byte) ' '
  [7] (byte*) main::sc#1 ← ++ (byte*) main::sc#4
  to:main::@1
main::@1: scope:[main]  from main::@2
  [8] if((byte*) main::sc#1<(word)(number) $400+(number) $3e8) goto main::@2
  to:main::@3
main::@3: scope:[main]  from main::@1
  [9] phi()
  [10] call keyboard_init 
  to:main::@4
main::@4: scope:[main]  from main::@16 main::@3 main::@4
  [11] if(*((const byte*) RASTER#0)!=(byte) $ff) goto main::@4
  to:main::@5
main::@5: scope:[main]  from main::@10 main::@4
  [12] (byte*) main::screen#13 ← phi( main::@4/(byte*) 1024 main::@10/(byte*) main::screen#1 )
  [12] (byte) main::row#2 ← phi( main::@4/(byte) 0 main::@10/(byte) main::row#1 )
  [13] (byte) keyboard_matrix_read::rowid#1 ← (byte) main::row#2
  [14] call keyboard_matrix_read 
  [15] (byte) keyboard_matrix_read::return#3 ← (byte) keyboard_matrix_read::return#0
  to:main::@17
main::@17: scope:[main]  from main::@5
  [16] (byte) main::row_pressed_bits#0 ← (byte) keyboard_matrix_read::return#3
  to:main::@6
main::@6: scope:[main]  from main::@17 main::@8
  [17] (byte) main::col#2 ← phi( main::@8/(byte) main::col#1 main::@17/(byte) 0 )
  [17] (byte) main::row_pressed_bits#2 ← phi( main::@8/(byte) main::row_pressed_bits#1 main::@17/(byte) main::row_pressed_bits#0 )
  [18] (byte~) main::$4 ← (byte) main::row_pressed_bits#2 & (byte) $80
  [19] if((byte~) main::$4!=(byte) 0) goto main::@7
  to:main::@9
main::@9: scope:[main]  from main::@6
  [20] *((byte*) main::screen#13 + (byte) main::col#2) ← (byte) '0'
  to:main::@8
main::@8: scope:[main]  from main::@7 main::@9
  [21] (byte) main::row_pressed_bits#1 ← (byte) main::row_pressed_bits#2 << (byte) 1
  [22] (byte) main::col#1 ← ++ (byte) main::col#2
  [23] if((byte) main::col#1!=(byte) 8) goto main::@6
  to:main::@10
main::@10: scope:[main]  from main::@8
  [24] (byte*) main::screen#1 ← (byte*) main::screen#13 + (byte) $28
  [25] (byte) main::row#1 ← ++ (byte) main::row#2
  [26] if((byte) main::row#1!=(byte) 8) goto main::@5
  to:main::@11
main::@11: scope:[main]  from main::@10
  [27] (byte*) main::screen#2 ← (byte*) main::screen#1 + (byte) $28
  to:main::@12
main::@12: scope:[main]  from main::@11 main::@13
  [28] (byte) main::i#3 ← phi( main::@11/(byte) 0 main::@13/(byte) main::i#6 )
  [28] (byte) main::ch#2 ← phi( main::@11/(byte) 0 main::@13/(byte) main::ch#1 )
  [29] (byte) keyboard_get_keycode::ch#0 ← (byte) main::ch#2
  [30] call keyboard_get_keycode 
  [31] (byte) keyboard_get_keycode::return#2 ← (byte) keyboard_get_keycode::return#0
  to:main::@18
main::@18: scope:[main]  from main::@12
  [32] (byte) main::key#0 ← (byte) keyboard_get_keycode::return#2
  [33] if((byte) main::key#0==(byte) $3f) goto main::@13
  to:main::@14
main::@14: scope:[main]  from main::@18
  [34] (byte) keyboard_key_pressed::key#0 ← (byte) main::key#0
  [35] call keyboard_key_pressed 
  [36] (byte) keyboard_key_pressed::return#2 ← (byte) keyboard_key_pressed::return#0
  to:main::@19
main::@19: scope:[main]  from main::@14
  [37] (byte~) main::$14 ← (byte) keyboard_key_pressed::return#2
  [38] if((byte~) main::$14==(byte) 0) goto main::@13
  to:main::@15
main::@15: scope:[main]  from main::@19
  [39] *((byte*) main::screen#2 + (byte) main::i#3) ← (byte) main::ch#2
  [40] (byte) main::i#1 ← ++ (byte) main::i#3
  to:main::@13
main::@13: scope:[main]  from main::@15 main::@18 main::@19
  [41] (byte) main::i#6 ← phi( main::@15/(byte) main::i#1 main::@18/(byte) main::i#3 main::@19/(byte) main::i#3 )
  [42] (byte) main::ch#1 ← ++ (byte) main::ch#2
  [43] if((byte) main::ch#1!=(byte) $40) goto main::@12
  to:main::@16
main::@16: scope:[main]  from main::@13 main::@16
  [44] (byte) main::i#4 ← phi( main::@13/(byte) main::i#6 main::@16/(byte) main::i#2 )
  [45] *((byte*) main::screen#2 + (byte) main::i#4) ← (byte) ' '
  [46] (byte) main::i#2 ← ++ (byte) main::i#4
  [47] if((byte) main::i#2<(byte) 5) goto main::@16
  to:main::@4
main::@7: scope:[main]  from main::@6
  [48] *((byte*) main::screen#13 + (byte) main::col#2) ← (byte) '1'
  to:main::@8
keyboard_key_pressed: scope:[keyboard_key_pressed]  from main::@14
  [49] (byte) keyboard_key_pressed::colidx#0 ← (byte) keyboard_key_pressed::key#0 & (byte) 7
  [50] (byte) keyboard_key_pressed::rowidx#0 ← (byte) keyboard_key_pressed::key#0 >> (byte) 3
  [51] (byte) keyboard_matrix_read::rowid#0 ← (byte) keyboard_key_pressed::rowidx#0
  [52] call keyboard_matrix_read 
  [53] (byte) keyboard_matrix_read::return#2 ← (byte) keyboard_matrix_read::return#0
  to:keyboard_key_pressed::@1
keyboard_key_pressed::@1: scope:[keyboard_key_pressed]  from keyboard_key_pressed
  [54] (byte~) keyboard_key_pressed::$2 ← (byte) keyboard_matrix_read::return#2
  [55] (byte) keyboard_key_pressed::return#0 ← (byte~) keyboard_key_pressed::$2 & *((const byte[8]) keyboard_matrix_col_bitmask#0 + (byte) keyboard_key_pressed::colidx#0)
  to:keyboard_key_pressed::@return
keyboard_key_pressed::@return: scope:[keyboard_key_pressed]  from keyboard_key_pressed::@1
  [56] return 
  to:@return
keyboard_matrix_read: scope:[keyboard_matrix_read]  from keyboard_key_pressed main::@5
  [57] (byte) keyboard_matrix_read::rowid#2 ← phi( keyboard_key_pressed/(byte) keyboard_matrix_read::rowid#0 main::@5/(byte) keyboard_matrix_read::rowid#1 )
  [58] *((const byte*) CIA1_PORT_A#0) ← *((const byte[8]) keyboard_matrix_row_bitmask#0 + (byte) keyboard_matrix_read::rowid#2)
  [59] (byte) keyboard_matrix_read::return#0 ← ~ *((const byte*) CIA1_PORT_B#0)
  to:keyboard_matrix_read::@return
keyboard_matrix_read::@return: scope:[keyboard_matrix_read]  from keyboard_matrix_read
  [60] return 
  to:@return
keyboard_get_keycode: scope:[keyboard_get_keycode]  from main::@12
  [61] (byte) keyboard_get_keycode::return#0 ← *((const byte[]) keyboard_char_keycodes#0 + (byte) keyboard_get_keycode::ch#0)
  to:keyboard_get_keycode::@return
keyboard_get_keycode::@return: scope:[keyboard_get_keycode]  from keyboard_get_keycode
  [62] return 
  to:@return
keyboard_init: scope:[keyboard_init]  from main::@3
  [63] *((const byte*) CIA1_PORT_A_DDR#0) ← (byte) $ff
  [64] *((const byte*) CIA1_PORT_B_DDR#0) ← (byte) 0
  to:keyboard_init::@return
keyboard_init::@return: scope:[keyboard_init]  from keyboard_init
  [65] return 
  to:@return
