
void __start()
__start: scope:[__start]  from
  [0] phi()
  to:__start::__init1
__start::__init1: scope:[__start]  from __start
  [1] last_time = 0
  to:__start::@1
__start::@1: scope:[__start]  from __start::__init1
  [2] phi()
  [3] call main
  to:__start::@return
__start::@return: scope:[__start]  from __start::@1
  [4] return 
  to:@return

int main()
main: scope:[main]  from __start::@1
  [5] phi()
  [6] call start
  to:main::@1
main::@1: scope:[main]  from main main::@6
  [7] print_line_cursor#22 = phi( main/print_screen#0, main::@6/print_line_cursor#0 )
  [7] print_char_cursor#54 = phi( main/print_screen#0, main::@6/print_char_cursor#73 )
  [7] main::i#3 = phi( main/0, main::@6/main::i#2 )
  [8] if(main::i#3<6) goto main::@2
  to:main::@3
main::@3: scope:[main]  from main::@1
  [9] phi()
  [10] call end
  to:main::@return
main::@return: scope:[main]  from main::@3
  [11] return 
  to:@return
main::@2: scope:[main]  from main::@1
  [12] phi()
  [13] call sum
  [14] sum::return#2 = sum::s#3
  to:main::@4
main::@4: scope:[main]  from main::@2
  [15] print_uint_decimal::w#0 = sum::return#2
  [16] call print_uint_decimal
  to:main::@5
main::@5: scope:[main]  from main::@4
  [17] phi()
  [18] call print_ln
  to:main::@6
main::@6: scope:[main]  from main::@5
  [19] main::i#2 = ++ main::i#3
  [20] print_char_cursor#73 = print_line_cursor#0
  to:main::@1

void start()
start: scope:[start]  from end main
  asm { jsr$FFDE staLAST_TIME stxLAST_TIME+1  }
  to:start::@return
start::@return: scope:[start]  from start
  [22] return 
  to:@return

void end()
end: scope:[end]  from main::@3
  [23] Ticks#0 = last_time
  [24] call start
  to:end::@1
end::@1: scope:[end]  from end
  [25] last_time = last_time - Ticks#0
  [26] Ticks#1 = last_time
  [27] print_uint::w#0 = Ticks#1
  [28] call print_uint
  to:end::@2
end::@2: scope:[end]  from end::@1
  [29] phi()
  [30] call print_ln
  to:end::@return
end::@return: scope:[end]  from end::@2
  [31] return 
  to:@return

unsigned int sum()
sum: scope:[sum]  from main::@2
  [32] phi()
  to:sum::@1
sum::@1: scope:[sum]  from sum sum::@3
  [33] sum::p#5 = phi( sum/rom, sum::@3/sum::p#2 )
  [33] sum::s#3 = phi( sum/0, sum::@3/sum::s#2 )
  [33] sum::page#3 = phi( sum/0, sum::@3/sum::page#2 )
  [34] if(sum::page#3<$20) goto sum::@2
  to:sum::@return
sum::@return: scope:[sum]  from sum::@1
  [35] return 
  to:@return
sum::@2: scope:[sum]  from sum::@1 sum::@2
  [36] sum::s#4 = phi( sum::@1/sum::s#3, sum::@2/sum::s#2 )
  [36] sum::i#3 = phi( sum::@1/0, sum::@2/sum::i#2 )
  [37] sum::tmp#1 = sum::p#5[sum::i#3]
  [38] sum::s#2 = sum::s#4 + sum::tmp#1
  [39] sum::i#2 = ++ sum::i#3
  [40] if(0!=sum::i#2) goto sum::@2
  to:sum::@3
sum::@3: scope:[sum]  from sum::@2
  [41] sum::p#2 = sum::p#5 + $100
  [42] sum::page#2 = ++ sum::page#3
  to:sum::@1

void print_uint_decimal(unsigned int w)
print_uint_decimal: scope:[print_uint_decimal]  from main::@4
  [43] utoa::value#0 = print_uint_decimal::w#0
  [44] call utoa
  to:print_uint_decimal::@1
print_uint_decimal::@1: scope:[print_uint_decimal]  from print_uint_decimal
  [45] phi()
  [46] call print_str
  to:print_uint_decimal::@return
print_uint_decimal::@return: scope:[print_uint_decimal]  from print_uint_decimal::@1
  [47] return 
  to:@return

void print_ln()
print_ln: scope:[print_ln]  from end::@2 main::@5
  [48] print_char_cursor#49 = phi( end::@2/print_char_cursor#12, main::@5/print_char_cursor#1 )
  to:print_ln::@1
print_ln::@1: scope:[print_ln]  from print_ln print_ln::@1
  [49] print_line_cursor#10 = phi( print_ln/print_line_cursor#22, print_ln::@1/print_line_cursor#0 )
  [50] print_line_cursor#0 = print_line_cursor#10 + $28
  [51] if(print_line_cursor#0<print_char_cursor#49) goto print_ln::@1
  to:print_ln::@return
print_ln::@return: scope:[print_ln]  from print_ln::@1
  [52] return 
  to:@return

void print_uint(unsigned int w)
print_uint: scope:[print_uint]  from end::@1
  [53] print_uchar::b#0 = byte1  print_uint::w#0
  [54] call print_uchar
  to:print_uint::@1
print_uint::@1: scope:[print_uint]  from print_uint
  [55] print_uchar::b#1 = byte0  print_uint::w#0
  [56] call print_uchar
  to:print_uint::@return
print_uint::@return: scope:[print_uint]  from print_uint::@1
  [57] return 
  to:@return

void utoa(unsigned int value , char *buffer , char radix)
utoa: scope:[utoa]  from print_uint_decimal
  [58] phi()
  to:utoa::@1
utoa::@1: scope:[utoa]  from utoa utoa::@4
  [59] utoa::buffer#11 = phi( utoa::@4/utoa::buffer#14, utoa/decimal_digits )
  [59] utoa::started#2 = phi( utoa::@4/utoa::started#4, utoa/0 )
  [59] utoa::value#2 = phi( utoa::@4/utoa::value#6, utoa/utoa::value#0 )
  [59] utoa::digit#2 = phi( utoa::@4/utoa::digit#1, utoa/0 )
  [60] if(utoa::digit#2<utoa::max_digits#1-1) goto utoa::@2
  to:utoa::@3
utoa::@3: scope:[utoa]  from utoa::@1
  [61] utoa::$11 = (char)utoa::value#2
  [62] *utoa::buffer#11 = DIGITS[utoa::$11]
  [63] utoa::buffer#4 = ++ utoa::buffer#11
  [64] *utoa::buffer#4 = 0
  to:utoa::@return
utoa::@return: scope:[utoa]  from utoa::@3
  [65] return 
  to:@return
utoa::@2: scope:[utoa]  from utoa::@1
  [66] utoa::$10 = utoa::digit#2 << 1
  [67] utoa::digit_value#0 = RADIX_DECIMAL_VALUES[utoa::$10]
  [68] if(0!=utoa::started#2) goto utoa::@5
  to:utoa::@7
utoa::@7: scope:[utoa]  from utoa::@2
  [69] if(utoa::value#2>=utoa::digit_value#0) goto utoa::@5
  to:utoa::@4
utoa::@4: scope:[utoa]  from utoa::@6 utoa::@7
  [70] utoa::buffer#14 = phi( utoa::@7/utoa::buffer#11, utoa::@6/utoa::buffer#5 )
  [70] utoa::started#4 = phi( utoa::@7/utoa::started#2, utoa::@6/1 )
  [70] utoa::value#6 = phi( utoa::@7/utoa::value#2, utoa::@6/utoa::value#1 )
  [71] utoa::digit#1 = ++ utoa::digit#2
  to:utoa::@1
utoa::@5: scope:[utoa]  from utoa::@2 utoa::@7
  [72] utoa_append::buffer#0 = utoa::buffer#11
  [73] utoa_append::value#0 = utoa::value#2
  [74] utoa_append::sub#0 = utoa::digit_value#0
  [75] call utoa_append
  [76] utoa_append::return#0 = utoa_append::value#2
  to:utoa::@6
utoa::@6: scope:[utoa]  from utoa::@5
  [77] utoa::value#1 = utoa_append::return#0
  [78] utoa::buffer#5 = ++ utoa::buffer#11
  to:utoa::@4

void print_str(char *str)
print_str: scope:[print_str]  from print_uint_decimal::@1
  [79] phi()
  to:print_str::@1
print_str::@1: scope:[print_str]  from print_str print_str::@3
  [80] print_char_cursor#1 = phi( print_str/print_char_cursor#54, print_str::@3/print_char_cursor#12 )
  [80] print_str::str#2 = phi( print_str/decimal_digits, print_str::@3/print_str::str#0 )
  [81] if(0!=*print_str::str#2) goto print_str::@2
  to:print_str::@return
print_str::@return: scope:[print_str]  from print_str::@1
  [82] return 
  to:@return
print_str::@2: scope:[print_str]  from print_str::@1
  [83] print_char::ch#0 = *print_str::str#2
  [84] call print_char
  to:print_str::@3
print_str::@3: scope:[print_str]  from print_str::@2
  [85] print_str::str#0 = ++ print_str::str#2
  to:print_str::@1

void print_uchar(char b)
print_uchar: scope:[print_uchar]  from print_uint print_uint::@1
  [86] print_char_cursor#52 = phi( print_uint/print_char_cursor#54, print_uint::@1/print_char_cursor#12 )
  [86] print_uchar::b#2 = phi( print_uint/print_uchar::b#0, print_uint::@1/print_uchar::b#1 )
  [87] print_uchar::$0 = print_uchar::b#2 >> 4
  [88] print_char::ch#1 = DIGITS[print_uchar::$0]
  [89] call print_char
  to:print_uchar::@1
print_uchar::@1: scope:[print_uchar]  from print_uchar
  [90] print_uchar::$2 = print_uchar::b#2 & $f
  [91] print_char::ch#2 = DIGITS[print_uchar::$2]
  [92] call print_char
  to:print_uchar::@return
print_uchar::@return: scope:[print_uchar]  from print_uchar::@1
  [93] return 
  to:@return

unsigned int utoa_append(char *buffer , unsigned int value , unsigned int sub)
utoa_append: scope:[utoa_append]  from utoa::@5
  [94] phi()
  to:utoa_append::@1
utoa_append::@1: scope:[utoa_append]  from utoa_append utoa_append::@2
  [95] utoa_append::digit#2 = phi( utoa_append/0, utoa_append::@2/utoa_append::digit#1 )
  [95] utoa_append::value#2 = phi( utoa_append/utoa_append::value#0, utoa_append::@2/utoa_append::value#1 )
  [96] if(utoa_append::value#2>=utoa_append::sub#0) goto utoa_append::@2
  to:utoa_append::@3
utoa_append::@3: scope:[utoa_append]  from utoa_append::@1
  [97] *utoa_append::buffer#0 = DIGITS[utoa_append::digit#2]
  to:utoa_append::@return
utoa_append::@return: scope:[utoa_append]  from utoa_append::@3
  [98] return 
  to:@return
utoa_append::@2: scope:[utoa_append]  from utoa_append::@1
  [99] utoa_append::digit#1 = ++ utoa_append::digit#2
  [100] utoa_append::value#1 = utoa_append::value#2 - utoa_append::sub#0
  to:utoa_append::@1

void print_char(char ch)
print_char: scope:[print_char]  from print_str::@2 print_uchar print_uchar::@1
  [101] print_char_cursor#36 = phi( print_str::@2/print_char_cursor#1, print_uchar/print_char_cursor#52, print_uchar::@1/print_char_cursor#12 )
  [101] print_char::ch#3 = phi( print_str::@2/print_char::ch#0, print_uchar/print_char::ch#1, print_uchar::@1/print_char::ch#2 )
  [102] *print_char_cursor#36 = print_char::ch#3
  [103] print_char_cursor#12 = ++ print_char_cursor#36
  to:print_char::@return
print_char::@return: scope:[print_char]  from print_char
  [104] return 
  to:@return
