@begin: scope:[]  from
  [0] phi()
  to:@12
@12: scope:[]  from @begin
  [1] phi()
  [2] call main 
  to:@end
@end: scope:[]  from @12
  [3] phi()
main: scope:[main]  from @12
  [4] phi()
  to:main::@1
main::@1: scope:[main]  from main main::@1
  [5] (byte*) main::sc#2 ← phi( main/((byte*))(word/signed word/dword/signed dword) 1024 main::@1/(byte*) main::sc#1 )
  [6] *((byte*) main::sc#2) ← (byte) ' '
  [7] (byte*) main::sc#1 ← ++ (byte*) main::sc#2
  [8] if((byte*) main::sc#1<(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000) goto main::@1
  to:main::@14
main::@14: scope:[main]  from main::@1
  [9] phi()
  [10] call keyboard_init 
  to:main::@5
main::@5: scope:[main]  from main::@13 main::@14 main::@5
  [11] if(*((const byte*) RASTER#0)!=(byte/word/signed word/dword/signed dword) 255) goto main::@5
  to:main::@6
main::@6: scope:[main]  from main::@20 main::@5
  [12] (byte*) main::screen#13 ← phi( main::@5/((byte*))(word/signed word/dword/signed dword) 1024 main::@20/(byte*) main::screen#1 )
  [12] (byte) main::row#2 ← phi( main::@5/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@20/(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::@28
main::@28: scope:[main]  from main::@6
  [16] (byte) main::row_pressed_bits#0 ← (byte) keyboard_matrix_read::return#3
  to:main::@7
main::@7: scope:[main]  from main::@28 main::@9
  [17] (byte) main::col#2 ← phi( main::@28/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@9/(byte) main::col#1 )
  [17] (byte) main::row_pressed_bits#2 ← phi( main::@28/(byte) main::row_pressed_bits#0 main::@9/(byte) main::row_pressed_bits#1 )
  [18] (byte~) main::$5 ← (byte) main::row_pressed_bits#2 & (byte/word/signed word/dword/signed dword) 128
  [19] if((byte~) main::$5!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@8
  to:main::@18
main::@18: scope:[main]  from main::@7
  [20] *((byte*) main::screen#13 + (byte) main::col#2) ← (byte) '0'
  to:main::@9
main::@9: scope:[main]  from main::@18 main::@8
  [21] (byte) main::row_pressed_bits#1 ← (byte) main::row_pressed_bits#2 << (byte/signed byte/word/signed word/dword/signed dword) 1
  [22] (byte) main::col#1 ← ++ (byte) main::col#2
  [23] if((byte) main::col#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto main::@7
  to:main::@20
main::@20: scope:[main]  from main::@9
  [24] (byte*) main::screen#1 ← (byte*) main::screen#13 + (byte/signed byte/word/signed word/dword/signed dword) 40
  [25] (byte) main::row#1 ← ++ (byte) main::row#2
  [26] if((byte) main::row#1!=(byte/signed byte/word/signed word/dword/signed dword) 8) goto main::@6
  to:main::@21
main::@21: scope:[main]  from main::@20
  [27] (byte*) main::screen#2 ← (byte*) main::screen#1 + (byte/signed byte/word/signed word/dword/signed dword) 40
  to:main::@10
main::@10: scope:[main]  from main::@11 main::@21
  [28] (byte) main::i#10 ← phi( main::@11/(byte) main::i#6 main::@21/(byte/signed byte/word/signed word/dword/signed dword) 0 )
  [28] (byte) main::ch#2 ← phi( main::@11/(byte) main::ch#1 main::@21/(byte/signed byte/word/signed word/dword/signed dword) 0 )
  [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::@29
main::@29: scope:[main]  from main::@10
  [32] (byte) main::key#0 ← (byte) keyboard_get_keycode::return#2
  [33] if((byte) main::key#0==(byte/signed byte/word/signed word/dword/signed dword) 63) goto main::@11
  to:main::@22
main::@22: scope:[main]  from main::@29
  [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::@30
main::@30: scope:[main]  from main::@22
  [37] (byte~) main::$15 ← (byte) keyboard_key_pressed::return#2
  [38] if((byte~) main::$15==(byte/signed byte/word/signed word/dword/signed dword) 0) goto main::@11
  to:main::@23
main::@23: scope:[main]  from main::@30
  [39] *((byte*) main::screen#2 + (byte) main::i#10) ← (byte) main::ch#2
  [40] (byte) main::i#1 ← ++ (byte) main::i#10
  to:main::@11
main::@11: scope:[main]  from main::@23 main::@29 main::@30
  [41] (byte) main::i#6 ← phi( main::@30/(byte) main::i#10 main::@23/(byte) main::i#1 main::@29/(byte) main::i#10 )
  [42] (byte) main::ch#1 ← ++ (byte) main::ch#2
  [43] if((byte) main::ch#1!=(byte/signed byte/word/signed word/dword/signed dword) 64) goto main::@10
  to:main::@13
main::@13: scope:[main]  from main::@11 main::@13
  [44] (byte) main::i#4 ← phi( main::@11/(byte) main::i#6 main::@13/(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/signed byte/word/signed word/dword/signed dword) 5) goto main::@13
  to:main::@5
main::@8: scope:[main]  from main::@7
  [48] *((byte*) main::screen#13 + (byte) main::col#2) ← (byte) '1'
  to:main::@9
keyboard_key_pressed: scope:[keyboard_key_pressed]  from main::@22
  [49] (byte) keyboard_key_pressed::colidx#0 ← (byte) keyboard_key_pressed::key#0 & (byte/signed byte/word/signed word/dword/signed dword) 7
  [50] (byte) keyboard_key_pressed::rowidx#0 ← (byte) keyboard_key_pressed::key#0 >> (byte/signed byte/word/signed word/dword/signed dword) 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::@2
keyboard_key_pressed::@2: 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::@2
  [56] return 
  to:@return
keyboard_matrix_read: scope:[keyboard_matrix_read]  from keyboard_key_pressed main::@6
  [57] (byte) keyboard_matrix_read::rowid#2 ← phi( keyboard_key_pressed/(byte) keyboard_matrix_read::rowid#0 main::@6/(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::@10
  [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::@14
  [63] *((const byte*) CIA1_PORT_A_DDR#0) ← (byte/word/signed word/dword/signed dword) 255
  [64] *((const byte*) CIA1_PORT_B_DDR#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0
  to:keyboard_init::@return
keyboard_init::@return: scope:[keyboard_init]  from keyboard_init
  [65] return 
  to:@return
