
void __start()
__start: scope:[__start]  from
  [0] phi()
  to:__start::__init1
__start::__init1: scope:[__start]  from __start
  [1] conio_cursor_x = 0
  [2] conio_cursor_y = 0
  [3] conio_line_text = DEFAULT_SCREEN
  [4] conio_line_color = COLORRAM
  [5] call conio_c64_init
  to:__start::@1
__start::@1: scope:[__start]  from __start::__init1
  [6] phi()
  [7] call main
  to:__start::@return
__start::@return: scope:[__start]  from __start::@1
  [8] return 
  to:@return

void conio_c64_init()
conio_c64_init: scope:[conio_c64_init]  from __start::__init1
  [9] conio_c64_init::line#0 = *conio_c64_init::BASIC_CURSOR_LINE
  [10] if(conio_c64_init::line#0<$19) goto conio_c64_init::@2
  to:conio_c64_init::@1
conio_c64_init::@2: scope:[conio_c64_init]  from conio_c64_init
  [11] phi()
  to:conio_c64_init::@1
conio_c64_init::@1: scope:[conio_c64_init]  from conio_c64_init conio_c64_init::@2
  [12] conio_c64_init::line#2 = phi( conio_c64_init::@2/conio_c64_init::line#0, conio_c64_init/$19-1 )
  [13] gotoxy::y#2 = conio_c64_init::line#2
  [14] call gotoxy
  to:conio_c64_init::@return
conio_c64_init::@return: scope:[conio_c64_init]  from conio_c64_init::@1
  [15] return 
  to:@return

void main()
main: scope:[main]  from __start::@1
  [16] tod_init::tod_TENTHS#0 = *((char *)&TOD_ZERO)
  [17] tod_init::tod_SEC#0 = *((char *)&TOD_ZERO+OFFSET_STRUCT_TIME_OF_DAY_SEC)
  [18] tod_init::tod_MIN#0 = *((char *)&TOD_ZERO+OFFSET_STRUCT_TIME_OF_DAY_MIN)
  [19] tod_init::tod_HOURS#0 = *((char *)&TOD_ZERO+OFFSET_STRUCT_TIME_OF_DAY_HOURS)
  [20] call tod_init
  to:main::@1
main::@1: scope:[main]  from main main::@4
  [21] phi()
  [22] call gotoxy
  to:main::@2
main::@2: scope:[main]  from main::@1
  [23] phi()
  [24] call tod_read
  [25] tod_read::return_TENTHS#1 = tod_read::return_TENTHS#0
  [26] tod_read::return_SEC#1 = tod_read::return_SEC#0
  [27] tod_read::return_MIN#1 = tod_read::return_MIN#0
  [28] tod_read::return_HOURS#1 = tod_read::return_HOURS#0
  to:main::@3
main::@3: scope:[main]  from main::@2
  [29] tod_str::tod_TENTHS#0 = tod_read::return_TENTHS#1
  [30] tod_str::tod_SEC#0 = tod_read::return_SEC#1
  [31] tod_str::tod_MIN#0 = tod_read::return_MIN#1
  [32] tod_str::tod_HOURS#0 = tod_read::return_HOURS#1
  [33] call tod_str
  to:main::@4
main::@4: scope:[main]  from main::@3
  [34] phi()
  [35] call cputs
  to:main::@1

void gotoxy(char x , char y)
gotoxy: scope:[gotoxy]  from conio_c64_init::@1 main::@1
  [36] gotoxy::y#4 = phi( conio_c64_init::@1/gotoxy::y#2, main::@1/0 )
  [37] if(gotoxy::y#4<$19+1) goto gotoxy::@3
  to:gotoxy::@1
gotoxy::@3: scope:[gotoxy]  from gotoxy
  [38] phi()
  to:gotoxy::@1
gotoxy::@1: scope:[gotoxy]  from gotoxy gotoxy::@3
  [39] gotoxy::y#5 = phi( gotoxy::@3/gotoxy::y#4, gotoxy/0 )
  to:gotoxy::@2
gotoxy::@2: scope:[gotoxy]  from gotoxy::@1
  [40] conio_cursor_x = 0
  [41] conio_cursor_y = gotoxy::y#5
  [42] gotoxy::$7 = (unsigned int)gotoxy::y#5
  [43] gotoxy::$8 = gotoxy::$7 << 2
  [44] gotoxy::$9 = gotoxy::$8 + gotoxy::$7
  [45] gotoxy::line_offset#0 = gotoxy::$9 << 3
  [46] gotoxy::$5 = DEFAULT_SCREEN + gotoxy::line_offset#0
  [47] conio_line_text = gotoxy::$5
  [48] gotoxy::$6 = COLORRAM + gotoxy::line_offset#0
  [49] conio_line_color = gotoxy::$6
  to:gotoxy::@return
gotoxy::@return: scope:[gotoxy]  from gotoxy::@2
  [50] return 
  to:@return

void tod_init(char tod_TENTHS , char tod_SEC , char tod_MIN , char tod_HOURS)
tod_init: scope:[tod_init]  from main
  [51] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) = *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_A_CONTROL) | $80
  [52] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) = *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_TIMER_B_CONTROL) & $7f
  [53] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS) = tod_init::tod_HOURS#0
  [54] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_MIN) = tod_init::tod_MIN#0
  [55] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_SEC) = tod_init::tod_SEC#0
  [56] *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_10THS) = tod_init::tod_TENTHS#0
  to:tod_init::@return
tod_init::@return: scope:[tod_init]  from tod_init
  [57] return 
  to:@return

struct TIME_OF_DAY tod_read()
tod_read: scope:[tod_read]  from main::@2
  [58] tod_read::return_HOURS#0 = *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_HOURS)
  [59] tod_read::return_MIN#0 = *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_MIN)
  [60] tod_read::return_SEC#0 = *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_SEC)
  [61] tod_read::return_TENTHS#0 = *((char *)CIA1+OFFSET_STRUCT_MOS6526_CIA_TOD_10THS)
  to:tod_read::@return
tod_read::@return: scope:[tod_read]  from tod_read
  [62] return 
  to:@return

char * tod_str(char tod_TENTHS , char tod_SEC , char tod_MIN , char tod_HOURS)
tod_str: scope:[tod_str]  from main::@3
  [63] tod_str::$0 = tod_str::tod_HOURS#0 >> 4
  [64] tod_str::$1 = '0' + tod_str::$0
  [65] *tod_buffer = tod_str::$1
  [66] tod_str::$2 = tod_str::tod_HOURS#0 & $f
  [67] tod_str::$3 = '0' + tod_str::$2
  [68] *(tod_buffer+1) = tod_str::$3
  [69] tod_str::$4 = tod_str::tod_MIN#0 >> 4
  [70] tod_str::$5 = '0' + tod_str::$4
  [71] *(tod_buffer+3) = tod_str::$5
  [72] tod_str::$6 = tod_str::tod_MIN#0 & $f
  [73] tod_str::$7 = '0' + tod_str::$6
  [74] *(tod_buffer+4) = tod_str::$7
  [75] tod_str::$8 = tod_str::tod_SEC#0 >> 4
  [76] tod_str::$9 = '0' + tod_str::$8
  [77] *(tod_buffer+6) = tod_str::$9
  [78] tod_str::$10 = tod_str::tod_SEC#0 & $f
  [79] tod_str::$11 = '0' + tod_str::$10
  [80] *(tod_buffer+7) = tod_str::$11
  [81] tod_str::$12 = tod_str::tod_TENTHS#0 >> 4
  [82] tod_str::$13 = '0' + tod_str::$12
  [83] *(tod_buffer+9) = tod_str::$13
  [84] tod_str::$14 = tod_str::tod_TENTHS#0 & $f
  [85] tod_str::$15 = '0' + tod_str::$14
  [86] *(tod_buffer+$a) = tod_str::$15
  to:tod_str::@return
tod_str::@return: scope:[tod_str]  from tod_str
  [87] return 
  to:@return

void cputs(const char *s)
cputs: scope:[cputs]  from main::@4
  [88] phi()
  to:cputs::@1
cputs::@1: scope:[cputs]  from cputs cputs::@2
  [89] cputs::s#2 = phi( cputs/tod_buffer, cputs::@2/cputs::s#0 )
  [90] cputs::c#1 = *cputs::s#2
  [91] cputs::s#0 = ++ cputs::s#2
  [92] if(0!=cputs::c#1) goto cputs::@2
  to:cputs::@return
cputs::@return: scope:[cputs]  from cputs::@1
  [93] return 
  to:@return
cputs::@2: scope:[cputs]  from cputs::@1
  [94] cputc::c#0 = cputs::c#1
  [95] call cputc
  to:cputs::@1

void cputc(char c)
cputc: scope:[cputc]  from cputs::@2
  [96] if(cputc::c#0=='
') goto cputc::@1
  to:cputc::@2
cputc::@2: scope:[cputc]  from cputc
  [97] conio_line_text[conio_cursor_x] = cputc::c#0
  [98] conio_line_color[conio_cursor_x] = LIGHT_BLUE
  [99] conio_cursor_x = ++ conio_cursor_x
  [100] if(conio_cursor_x!=$28) goto cputc::@return
  to:cputc::@3
cputc::@3: scope:[cputc]  from cputc::@2
  [101] phi()
  [102] call cputln
  to:cputc::@return
cputc::@return: scope:[cputc]  from cputc::@1 cputc::@2 cputc::@3
  [103] return 
  to:@return
cputc::@1: scope:[cputc]  from cputc
  [104] phi()
  [105] call cputln
  to:cputc::@return

void cputln()
cputln: scope:[cputln]  from cputc::@1 cputc::@3
  [106] conio_line_text = conio_line_text + $28
  [107] conio_line_color = conio_line_color + $28
  [108] conio_cursor_x = 0
  [109] conio_cursor_y = ++ conio_cursor_y
  [110] call cscroll
  to:cputln::@return
cputln::@return: scope:[cputln]  from cputln
  [111] return 
  to:@return

void cscroll()
cscroll: scope:[cscroll]  from cputln
  [112] if(conio_cursor_y!=$19) goto cscroll::@return
  to:cscroll::@1
cscroll::@1: scope:[cscroll]  from cscroll
  [113] phi()
  [114] call memcpy
  to:cscroll::@2
cscroll::@2: scope:[cscroll]  from cscroll::@1
  [115] phi()
  [116] call memcpy
  to:cscroll::@3
cscroll::@3: scope:[cscroll]  from cscroll::@2
  [117] phi()
  [118] call memset
  to:cscroll::@4
cscroll::@4: scope:[cscroll]  from cscroll::@3
  [119] phi()
  [120] call memset
  to:cscroll::@5
cscroll::@5: scope:[cscroll]  from cscroll::@4
  [121] conio_line_text = conio_line_text - $28
  [122] conio_line_color = conio_line_color - $28
  [123] conio_cursor_y = -- conio_cursor_y
  to:cscroll::@return
cscroll::@return: scope:[cscroll]  from cscroll cscroll::@5
  [124] return 
  to:@return

void * memcpy(void *destination , void *source , unsigned int num)
memcpy: scope:[memcpy]  from cscroll::@1 cscroll::@2
  [125] memcpy::destination#2 = phi( cscroll::@1/(void *)DEFAULT_SCREEN, cscroll::@2/(void *)COLORRAM )
  [125] memcpy::source#2 = phi( cscroll::@1/(void *)DEFAULT_SCREEN+$28, cscroll::@2/(void *)COLORRAM+$28 )
  [126] memcpy::src_end#0 = (char *)memcpy::source#2 + (unsigned int)$19*$28-$28
  [127] memcpy::src#4 = (char *)memcpy::source#2
  [128] memcpy::dst#4 = (char *)memcpy::destination#2
  to:memcpy::@1
memcpy::@1: scope:[memcpy]  from memcpy memcpy::@2
  [129] memcpy::dst#2 = phi( memcpy/memcpy::dst#4, memcpy::@2/memcpy::dst#1 )
  [129] memcpy::src#2 = phi( memcpy/memcpy::src#4, memcpy::@2/memcpy::src#1 )
  [130] if(memcpy::src#2!=memcpy::src_end#0) goto memcpy::@2
  to:memcpy::@return
memcpy::@return: scope:[memcpy]  from memcpy::@1
  [131] return 
  to:@return
memcpy::@2: scope:[memcpy]  from memcpy::@1
  [132] *memcpy::dst#2 = *memcpy::src#2
  [133] memcpy::dst#1 = ++ memcpy::dst#2
  [134] memcpy::src#1 = ++ memcpy::src#2
  to:memcpy::@1

void * memset(void *str , char c , unsigned int num)
memset: scope:[memset]  from cscroll::@3 cscroll::@4
  [135] memset::c#4 = phi( cscroll::@3/' ', cscroll::@4/LIGHT_BLUE )
  [135] memset::str#3 = phi( cscroll::@3/(void *)DEFAULT_SCREEN+(unsigned int)$19*$28-$28, cscroll::@4/(void *)COLORRAM+(unsigned int)$19*$28-$28 )
  to:memset::@1
memset::@1: scope:[memset]  from memset
  [136] memset::end#0 = (char *)memset::str#3 + $28
  [137] memset::dst#4 = (char *)memset::str#3
  to:memset::@2
memset::@2: scope:[memset]  from memset::@1 memset::@3
  [138] memset::dst#2 = phi( memset::@1/memset::dst#4, memset::@3/memset::dst#1 )
  [139] if(memset::dst#2!=memset::end#0) goto memset::@3
  to:memset::@return
memset::@return: scope:[memset]  from memset::@2
  [140] return 
  to:@return
memset::@3: scope:[memset]  from memset::@2
  [141] *memset::dst#2 = memset::c#4
  [142] memset::dst#1 = ++ memset::dst#2
  to:memset::@2
