Fixing struct type size struct printf_buffer_number to 12 Fixing struct type size struct printf_buffer_number to 12 Fixing struct type size struct printf_buffer_number to 12 Fixing struct type SIZE_OF struct printf_buffer_number to 12 Fixing struct type SIZE_OF struct printf_buffer_number to 12 Setting inferred volatile on symbol affected by address-of: l in asm { jsr$ffde stal stxm } Setting inferred volatile on symbol affected by address-of: m in asm { jsr$ffde stal stxm } Inlined call vicSelectGfxBank::$0 = call toDd00(vicSelectGfxBank::gfx) Inlined call call __init Eliminating unused variable with no statement memcpy::$0 Eliminating unused variable with no statement memset::$2 Eliminating unused variable with no statement gotoxy::$4 Eliminating unused variable with no statement printf_buffer Eliminating unused variable with no statement __snprintf_capacity Eliminating unused variable with no statement __snprintf_size Eliminating unused variable with no statement div16u8u::$1 Eliminating unused variable with no statement div16u8u::$3 Eliminating unused variable with no statement div16u8u::$4 CONTROL FLOW GRAPH SSA void * memcpy(void *destination , void *source , unsigned int num) memcpy: scope:[memcpy] from cscroll::@3 cscroll::@4 memcpy::num#2 = phi( cscroll::@3/memcpy::num#0, cscroll::@4/memcpy::num#1 ) memcpy::destination#2 = phi( cscroll::@3/memcpy::destination#0, cscroll::@4/memcpy::destination#1 ) memcpy::source#2 = phi( cscroll::@3/memcpy::source#0, cscroll::@4/memcpy::source#1 ) memcpy::src#0 = ((char *)) memcpy::source#2 memcpy::dst#0 = ((char *)) memcpy::destination#2 memcpy::$2 = (char *)memcpy::source#2 memcpy::src_end#0 = memcpy::$2 + memcpy::num#2 to:memcpy::@1 memcpy::@1: scope:[memcpy] from memcpy memcpy::@2 memcpy::destination#4 = phi( memcpy/memcpy::destination#2, memcpy::@2/memcpy::destination#5 ) memcpy::dst#3 = phi( memcpy/memcpy::dst#0, memcpy::@2/memcpy::dst#1 ) memcpy::src_end#1 = phi( memcpy/memcpy::src_end#0, memcpy::@2/memcpy::src_end#2 ) memcpy::src#2 = phi( memcpy/memcpy::src#0, memcpy::@2/memcpy::src#1 ) memcpy::$1 = memcpy::src#2 != memcpy::src_end#1 if(memcpy::$1) goto memcpy::@2 to:memcpy::@3 memcpy::@2: scope:[memcpy] from memcpy::@1 memcpy::destination#5 = phi( memcpy::@1/memcpy::destination#4 ) memcpy::src_end#2 = phi( memcpy::@1/memcpy::src_end#1 ) memcpy::dst#2 = phi( memcpy::@1/memcpy::dst#3 ) memcpy::src#3 = phi( memcpy::@1/memcpy::src#2 ) *memcpy::dst#2 = *memcpy::src#3 memcpy::dst#1 = ++ memcpy::dst#2 memcpy::src#1 = ++ memcpy::src#3 to:memcpy::@1 memcpy::@3: scope:[memcpy] from memcpy::@1 memcpy::destination#3 = phi( memcpy::@1/memcpy::destination#4 ) memcpy::return#0 = memcpy::destination#3 to:memcpy::@return memcpy::@return: scope:[memcpy] from memcpy::@3 memcpy::return#4 = phi( memcpy::@3/memcpy::return#0 ) memcpy::return#1 = memcpy::return#4 return to:@return void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from cscroll::@5 cscroll::@6 memset::c#5 = phi( cscroll::@5/memset::c#0, cscroll::@6/memset::c#1 ) memset::str#4 = phi( cscroll::@5/memset::str#0, cscroll::@6/memset::str#1 ) memset::num#2 = phi( cscroll::@5/memset::num#0, cscroll::@6/memset::num#1 ) memset::$0 = memset::num#2 > 0 memset::$1 = ! memset::$0 if(memset::$1) goto memset::@1 to:memset::@2 memset::@1: scope:[memset] from memset memset::@3 memset::str#2 = phi( memset/memset::str#4, memset::@3/memset::str#5 ) memset::return#0 = memset::str#2 to:memset::@return memset::@2: scope:[memset] from memset memset::c#4 = phi( memset/memset::c#5 ) memset::num#3 = phi( memset/memset::num#2 ) memset::str#3 = phi( memset/memset::str#4 ) memset::$4 = (char *)memset::str#3 memset::end#0 = memset::$4 + memset::num#3 memset::dst#0 = ((char *)) memset::str#3 to:memset::@3 memset::@3: scope:[memset] from memset::@2 memset::@4 memset::c#3 = phi( memset::@2/memset::c#4, memset::@4/memset::c#2 ) memset::str#5 = phi( memset::@2/memset::str#3, memset::@4/memset::str#6 ) memset::end#1 = phi( memset::@2/memset::end#0, memset::@4/memset::end#2 ) memset::dst#2 = phi( memset::@2/memset::dst#0, memset::@4/memset::dst#1 ) memset::$3 = memset::dst#2 != memset::end#1 if(memset::$3) goto memset::@4 to:memset::@1 memset::@4: scope:[memset] from memset::@3 memset::str#6 = phi( memset::@3/memset::str#5 ) memset::end#2 = phi( memset::@3/memset::end#1 ) memset::dst#3 = phi( memset::@3/memset::dst#2 ) memset::c#2 = phi( memset::@3/memset::c#3 ) *memset::dst#3 = memset::c#2 memset::dst#1 = ++ memset::dst#3 to:memset::@3 memset::@return: scope:[memset] from memset::@1 memset::return#4 = phi( memset::@1/memset::return#0 ) memset::return#1 = memset::return#4 return to:@return void utoa(unsigned int value , char *buffer , char radix) utoa: scope:[utoa] from main::@48 write_score::@8 utoa::buffer#22 = phi( main::@48/utoa::buffer#6, write_score::@8/utoa::buffer#5 ) utoa::value#13 = phi( main::@48/utoa::value#2, write_score::@8/utoa::value#1 ) utoa::radix#2 = phi( main::@48/utoa::radix#1, write_score::@8/utoa::radix#0 ) utoa::max_digits#0 = 0 utoa::digit_values#0 = (unsigned int *) 0 utoa::$0 = utoa::radix#2 == DECIMAL if(utoa::$0) goto utoa::@1 to:utoa::@6 utoa::@1: scope:[utoa] from utoa utoa::buffer#18 = phi( utoa/utoa::buffer#22 ) utoa::value#9 = phi( utoa/utoa::value#13 ) utoa::max_digits#1 = 5 utoa::digit_values#1 = RADIX_DECIMAL_VALUES to:utoa::@5 utoa::@6: scope:[utoa] from utoa utoa::value#14 = phi( utoa/utoa::value#13 ) utoa::buffer#17 = phi( utoa/utoa::buffer#22 ) utoa::radix#3 = phi( utoa/utoa::radix#2 ) utoa::$1 = utoa::radix#3 == HEXADECIMAL if(utoa::$1) goto utoa::@2 to:utoa::@7 utoa::@2: scope:[utoa] from utoa::@6 utoa::buffer#19 = phi( utoa::@6/utoa::buffer#17 ) utoa::value#10 = phi( utoa::@6/utoa::value#14 ) utoa::max_digits#2 = 4 utoa::digit_values#2 = RADIX_HEXADECIMAL_VALUES to:utoa::@5 utoa::@7: scope:[utoa] from utoa::@6 utoa::value#15 = phi( utoa::@6/utoa::value#14 ) utoa::buffer#14 = phi( utoa::@6/utoa::buffer#17 ) utoa::radix#4 = phi( utoa::@6/utoa::radix#3 ) utoa::$2 = utoa::radix#4 == OCTAL if(utoa::$2) goto utoa::@3 to:utoa::@8 utoa::@3: scope:[utoa] from utoa::@7 utoa::buffer#20 = phi( utoa::@7/utoa::buffer#14 ) utoa::value#11 = phi( utoa::@7/utoa::value#15 ) utoa::max_digits#3 = 6 utoa::digit_values#3 = RADIX_OCTAL_VALUES to:utoa::@5 utoa::@8: scope:[utoa] from utoa::@7 utoa::value#16 = phi( utoa::@7/utoa::value#15 ) utoa::buffer#11 = phi( utoa::@7/utoa::buffer#14 ) utoa::radix#5 = phi( utoa::@7/utoa::radix#4 ) utoa::$3 = utoa::radix#5 == BINARY if(utoa::$3) goto utoa::@4 to:utoa::@9 utoa::@4: scope:[utoa] from utoa::@8 utoa::buffer#21 = phi( utoa::@8/utoa::buffer#11 ) utoa::value#12 = phi( utoa::@8/utoa::value#16 ) utoa::max_digits#4 = $10 utoa::digit_values#4 = RADIX_BINARY_VALUES to:utoa::@5 utoa::@9: scope:[utoa] from utoa::@8 utoa::buffer#7 = phi( utoa::@8/utoa::buffer#11 ) *utoa::buffer#7 = 'e' utoa::buffer#0 = ++ utoa::buffer#7 *utoa::buffer#0 = 'r' utoa::buffer#1 = ++ utoa::buffer#0 *utoa::buffer#1 = 'r' utoa::buffer#2 = ++ utoa::buffer#1 *utoa::buffer#2 = 0 to:utoa::@return utoa::@return: scope:[utoa] from utoa::@12 utoa::@9 return to:@return utoa::@5: scope:[utoa] from utoa::@1 utoa::@2 utoa::@3 utoa::@4 utoa::buffer#16 = phi( utoa::@1/utoa::buffer#18, utoa::@2/utoa::buffer#19, utoa::@3/utoa::buffer#20, utoa::@4/utoa::buffer#21 ) utoa::value#8 = phi( utoa::@1/utoa::value#9, utoa::@2/utoa::value#10, utoa::@3/utoa::value#11, utoa::@4/utoa::value#12 ) utoa::digit_values#8 = phi( utoa::@1/utoa::digit_values#1, utoa::@2/utoa::digit_values#2, utoa::@3/utoa::digit_values#3, utoa::@4/utoa::digit_values#4 ) utoa::max_digits#7 = phi( utoa::@1/utoa::max_digits#1, utoa::@2/utoa::max_digits#2, utoa::@3/utoa::max_digits#3, utoa::@4/utoa::max_digits#4 ) utoa::started#0 = 0 utoa::digit#0 = 0 to:utoa::@10 utoa::@10: scope:[utoa] from utoa::@13 utoa::@5 utoa::buffer#12 = phi( utoa::@13/utoa::buffer#15, utoa::@5/utoa::buffer#16 ) utoa::started#3 = phi( utoa::@13/utoa::started#4, utoa::@5/utoa::started#0 ) utoa::value#6 = phi( utoa::@13/utoa::value#7, utoa::@5/utoa::value#8 ) utoa::digit_values#6 = phi( utoa::@13/utoa::digit_values#7, utoa::@5/utoa::digit_values#8 ) utoa::digit#2 = phi( utoa::@13/utoa::digit#1, utoa::@5/utoa::digit#0 ) utoa::max_digits#5 = phi( utoa::@13/utoa::max_digits#6, utoa::@5/utoa::max_digits#7 ) utoa::$4 = utoa::max_digits#5 - 1 utoa::$5 = utoa::digit#2 < utoa::$4 if(utoa::$5) goto utoa::@11 to:utoa::@12 utoa::@11: scope:[utoa] from utoa::@10 utoa::max_digits#8 = phi( utoa::@10/utoa::max_digits#5 ) utoa::buffer#13 = phi( utoa::@10/utoa::buffer#12 ) utoa::started#2 = phi( utoa::@10/utoa::started#3 ) utoa::value#3 = phi( utoa::@10/utoa::value#6 ) utoa::digit_values#5 = phi( utoa::@10/utoa::digit_values#6 ) utoa::digit#3 = phi( utoa::@10/utoa::digit#2 ) utoa::$10 = utoa::digit#3 * SIZEOF_UNSIGNED_INT utoa::digit_value#0 = utoa::digit_values#5[utoa::$10] utoa::$6 = utoa::value#3 >= utoa::digit_value#0 utoa::$7 = utoa::started#2 || utoa::$6 utoa::$8 = ! utoa::$7 if(utoa::$8) goto utoa::@13 to:utoa::@14 utoa::@12: scope:[utoa] from utoa::@10 utoa::buffer#8 = phi( utoa::@10/utoa::buffer#12 ) utoa::value#4 = phi( utoa::@10/utoa::value#6 ) utoa::$11 = (char)utoa::value#4 *utoa::buffer#8 = DIGITS[utoa::$11] utoa::buffer#3 = ++ utoa::buffer#8 *utoa::buffer#3 = 0 to:utoa::@return utoa::@13: scope:[utoa] from utoa::@11 utoa::@15 utoa::buffer#15 = phi( utoa::@11/utoa::buffer#13, utoa::@15/utoa::buffer#4 ) utoa::started#4 = phi( utoa::@11/utoa::started#2, utoa::@15/utoa::started#1 ) utoa::value#7 = phi( utoa::@11/utoa::value#3, utoa::@15/utoa::value#0 ) utoa::digit_values#7 = phi( utoa::@11/utoa::digit_values#5, utoa::@15/utoa::digit_values#9 ) utoa::max_digits#6 = phi( utoa::@11/utoa::max_digits#8, utoa::@15/utoa::max_digits#9 ) utoa::digit#4 = phi( utoa::@11/utoa::digit#3, utoa::@15/utoa::digit#5 ) utoa::digit#1 = ++ utoa::digit#4 to:utoa::@10 utoa::@14: scope:[utoa] from utoa::@11 utoa::digit_values#10 = phi( utoa::@11/utoa::digit_values#5 ) utoa::max_digits#10 = phi( utoa::@11/utoa::max_digits#8 ) utoa::digit#6 = phi( utoa::@11/utoa::digit#3 ) utoa::digit_value#1 = phi( utoa::@11/utoa::digit_value#0 ) utoa::value#5 = phi( utoa::@11/utoa::value#3 ) utoa::buffer#9 = phi( utoa::@11/utoa::buffer#13 ) utoa_append::buffer#0 = utoa::buffer#9 utoa_append::value#0 = utoa::value#5 utoa_append::sub#0 = utoa::digit_value#1 call utoa_append utoa_append::return#0 = utoa_append::return#2 to:utoa::@15 utoa::@15: scope:[utoa] from utoa::@14 utoa::digit_values#9 = phi( utoa::@14/utoa::digit_values#10 ) utoa::max_digits#9 = phi( utoa::@14/utoa::max_digits#10 ) utoa::digit#5 = phi( utoa::@14/utoa::digit#6 ) utoa::buffer#10 = phi( utoa::@14/utoa::buffer#9 ) utoa_append::return#3 = phi( utoa::@14/utoa_append::return#0 ) utoa::$9 = utoa_append::return#3 utoa::value#0 = utoa::$9 utoa::buffer#4 = ++ utoa::buffer#10 utoa::started#1 = 1 to:utoa::@13 unsigned int utoa_append(char *buffer , unsigned int value , unsigned int sub) utoa_append: scope:[utoa_append] from utoa::@14 utoa_append::buffer#3 = phi( utoa::@14/utoa_append::buffer#0 ) utoa_append::sub#3 = phi( utoa::@14/utoa_append::sub#0 ) utoa_append::value#5 = phi( utoa::@14/utoa_append::value#0 ) utoa_append::digit#0 = 0 to:utoa_append::@1 utoa_append::@1: scope:[utoa_append] from utoa_append utoa_append::@2 utoa_append::buffer#2 = phi( utoa_append/utoa_append::buffer#3, utoa_append::@2/utoa_append::buffer#4 ) utoa_append::digit#4 = phi( utoa_append/utoa_append::digit#0, utoa_append::@2/utoa_append::digit#1 ) utoa_append::sub#1 = phi( utoa_append/utoa_append::sub#3, utoa_append::@2/utoa_append::sub#2 ) utoa_append::value#2 = phi( utoa_append/utoa_append::value#5, utoa_append::@2/utoa_append::value#1 ) utoa_append::$0 = utoa_append::value#2 >= utoa_append::sub#1 if(utoa_append::$0) goto utoa_append::@2 to:utoa_append::@3 utoa_append::@2: scope:[utoa_append] from utoa_append::@1 utoa_append::buffer#4 = phi( utoa_append::@1/utoa_append::buffer#2 ) utoa_append::sub#2 = phi( utoa_append::@1/utoa_append::sub#1 ) utoa_append::value#3 = phi( utoa_append::@1/utoa_append::value#2 ) utoa_append::digit#2 = phi( utoa_append::@1/utoa_append::digit#4 ) utoa_append::digit#1 = ++ utoa_append::digit#2 utoa_append::value#1 = utoa_append::value#3 - utoa_append::sub#2 to:utoa_append::@1 utoa_append::@3: scope:[utoa_append] from utoa_append::@1 utoa_append::value#4 = phi( utoa_append::@1/utoa_append::value#2 ) utoa_append::buffer#1 = phi( utoa_append::@1/utoa_append::buffer#2 ) utoa_append::digit#3 = phi( utoa_append::@1/utoa_append::digit#4 ) *utoa_append::buffer#1 = DIGITS[utoa_append::digit#3] utoa_append::return#1 = utoa_append::value#4 to:utoa_append::@return utoa_append::@return: scope:[utoa_append] from utoa_append::@3 utoa_append::return#4 = phi( utoa_append::@3/utoa_append::return#1 ) utoa_append::return#2 = utoa_append::return#4 return to:@return void gotoxy(char x , char y) gotoxy: scope:[gotoxy] from clear_screen::@3 conio_c64_init::@1 cscroll::@2 gotoxy::x#6 = phi( clear_screen::@3/gotoxy::x#3, conio_c64_init::@1/gotoxy::x#2, cscroll::@2/gotoxy::x#1 ) gotoxy::y#4 = phi( clear_screen::@3/gotoxy::y#3, conio_c64_init::@1/gotoxy::y#2, cscroll::@2/gotoxy::y#1 ) gotoxy::$0 = gotoxy::y#4 > $19 gotoxy::$1 = ! gotoxy::$0 if(gotoxy::$1) goto gotoxy::@1 to:gotoxy::@3 gotoxy::@1: scope:[gotoxy] from gotoxy gotoxy::@3 gotoxy::y#6 = phi( gotoxy/gotoxy::y#4, gotoxy::@3/gotoxy::y#0 ) gotoxy::x#4 = phi( gotoxy/gotoxy::x#6, gotoxy::@3/gotoxy::x#7 ) gotoxy::$2 = gotoxy::x#4 >= $28 gotoxy::$3 = ! gotoxy::$2 if(gotoxy::$3) goto gotoxy::@2 to:gotoxy::@4 gotoxy::@3: scope:[gotoxy] from gotoxy gotoxy::x#7 = phi( gotoxy/gotoxy::x#6 ) gotoxy::y#0 = 0 to:gotoxy::@1 gotoxy::@2: scope:[gotoxy] from gotoxy::@1 gotoxy::@4 gotoxy::y#5 = phi( gotoxy::@1/gotoxy::y#6, gotoxy::@4/gotoxy::y#7 ) gotoxy::x#5 = phi( gotoxy::@1/gotoxy::x#4, gotoxy::@4/gotoxy::x#0 ) conio_cursor_x = gotoxy::x#5 conio_cursor_y = gotoxy::y#5 gotoxy::$7 = (unsigned int)gotoxy::y#5 gotoxy::line_offset#0 = gotoxy::$7 * $28 gotoxy::$5 = DEFAULT_SCREEN + gotoxy::line_offset#0 conio_line_text = gotoxy::$5 gotoxy::$6 = COLORRAM + gotoxy::line_offset#0 conio_line_color = gotoxy::$6 to:gotoxy::@return gotoxy::@4: scope:[gotoxy] from gotoxy::@1 gotoxy::y#7 = phi( gotoxy::@1/gotoxy::y#6 ) gotoxy::x#0 = 0 to:gotoxy::@2 gotoxy::@return: scope:[gotoxy] from gotoxy::@2 return to:@return void cputc(char c) cputc: scope:[cputc] from cputs::@2 cputc::c#1 = phi( cputs::@2/cputc::c#0 ) cputc::$0 = cputc::c#1 == ' ' if(cputc::$0) goto cputc::@1 to:cputc::@2 cputc::@1: scope:[cputc] from cputc call cputln to:cputc::@4 cputc::@4: scope:[cputc] from cputc::@1 to:cputc::@return cputc::@2: scope:[cputc] from cputc cputc::c#2 = phi( cputc/cputc::c#1 ) conio_line_text[conio_cursor_x] = cputc::c#2 conio_line_color[conio_cursor_x] = conio_textcolor conio_cursor_x = ++ conio_cursor_x cputc::$1 = conio_cursor_x == $28 cputc::$2 = ! cputc::$1 if(cputc::$2) goto cputc::@return to:cputc::@3 cputc::@3: scope:[cputc] from cputc::@2 call cputln to:cputc::@5 cputc::@5: scope:[cputc] from cputc::@3 to:cputc::@return cputc::@return: scope:[cputc] from cputc::@2 cputc::@4 cputc::@5 return to:@return void cputln() cputln: scope:[cputln] from cputc::@1 cputc::@3 conio_line_text = conio_line_text + $28 conio_line_color = conio_line_color + $28 conio_cursor_x = 0 conio_cursor_y = ++ conio_cursor_y call cscroll to:cputln::@1 cputln::@1: scope:[cputln] from cputln to:cputln::@return cputln::@return: scope:[cputln] from cputln::@1 return to:@return void cputs(const char *s) cputs: scope:[cputs] from main::@103 main::@105 main::@106 main::@108 main::@110 main::@112 main::@55 main::@57 main::@59 cputs::s#11 = phi( main::@103/cputs::s#4, main::@105/cputs::s#5, main::@106/cputs::s#6, main::@108/cputs::s#7, main::@110/cputs::s#8, main::@112/cputs::s#9, main::@55/cputs::s#1, main::@57/cputs::s#2, main::@59/cputs::s#3 ) cputs::c#0 = 0 to:cputs::@1 cputs::@1: scope:[cputs] from cputs cputs::@3 cputs::s#10 = phi( cputs/cputs::s#11, cputs::@3/cputs::s#12 ) cputs::c#1 = *cputs::s#10 cputs::$0 = cputs::c#1 cputs::s#0 = ++ cputs::s#10 cputs::$2 = 0 != cputs::$0 if(cputs::$2) goto cputs::@2 to:cputs::@return cputs::@2: scope:[cputs] from cputs::@1 cputs::s#13 = phi( cputs::@1/cputs::s#0 ) cputs::c#2 = phi( cputs::@1/cputs::c#1 ) cputc::c#0 = cputs::c#2 call cputc to:cputs::@3 cputs::@3: scope:[cputs] from cputs::@2 cputs::s#12 = phi( cputs::@2/cputs::s#13 ) to:cputs::@1 cputs::@return: scope:[cputs] from cputs::@1 return to:@return char textcolor(char color) textcolor: scope:[textcolor] from main::@102 main::@104 main::@107 main::@111 main::@54 main::@56 main::@58 textcolor::color#7 = phi( main::@102/textcolor::color#3, main::@104/textcolor::color#4, main::@107/textcolor::color#5, main::@111/textcolor::color#6, main::@54/textcolor::color#0, main::@56/textcolor::color#1, main::@58/textcolor::color#2 ) textcolor::old#0 = conio_textcolor conio_textcolor = textcolor::color#7 textcolor::return#0 = textcolor::old#0 to:textcolor::@return textcolor::@return: scope:[textcolor] from textcolor textcolor::return#9 = phi( textcolor/textcolor::return#0 ) textcolor::return#1 = textcolor::return#9 return to:@return void cscroll() cscroll: scope:[cscroll] from cputln cscroll::$0 = conio_cursor_y == $19 cscroll::$1 = ! cscroll::$0 if(cscroll::$1) goto cscroll::@return to:cscroll::@1 cscroll::@1: scope:[cscroll] from cscroll cscroll::$7 = 0 != conio_scroll_enable if(cscroll::$7) goto cscroll::@3 to:cscroll::@2 cscroll::@3: scope:[cscroll] from cscroll::@1 memcpy::destination#0 = (void *)DEFAULT_SCREEN memcpy::source#0 = (void *)DEFAULT_SCREEN+$28 memcpy::num#0 = $19*$28-$28 call memcpy memcpy::return#2 = memcpy::return#1 to:cscroll::@4 cscroll::@4: scope:[cscroll] from cscroll::@3 memcpy::destination#1 = (void *)COLORRAM memcpy::source#1 = (void *)COLORRAM+$28 memcpy::num#1 = $19*$28-$28 call memcpy memcpy::return#3 = memcpy::return#1 to:cscroll::@5 cscroll::@5: scope:[cscroll] from cscroll::@4 memset::str#0 = (void *)DEFAULT_SCREEN+$19*$28-$28 memset::c#0 = ' ' memset::num#0 = $28 call memset memset::return#2 = memset::return#1 to:cscroll::@6 cscroll::@6: scope:[cscroll] from cscroll::@5 memset::str#1 = (void *)COLORRAM+$19*$28-$28 memset::c#1 = conio_textcolor memset::num#1 = $28 call memset memset::return#3 = memset::return#1 to:cscroll::@7 cscroll::@7: scope:[cscroll] from cscroll::@6 conio_line_text = conio_line_text - $28 conio_line_color = conio_line_color - $28 conio_cursor_y = -- conio_cursor_y to:cscroll::@return cscroll::@2: scope:[cscroll] from cscroll::@1 gotoxy::x#1 = 0 gotoxy::y#1 = 0 call gotoxy to:cscroll::@8 cscroll::@8: scope:[cscroll] from cscroll::@2 to:cscroll::@return cscroll::@return: scope:[cscroll] from cscroll cscroll::@7 cscroll::@8 return to:@return void conio_c64_init() conio_c64_init: scope:[conio_c64_init] from __start::__init1 conio_c64_init::line#0 = *conio_c64_init::BASIC_CURSOR_LINE conio_c64_init::$0 = conio_c64_init::line#0 >= $19 conio_c64_init::$1 = ! conio_c64_init::$0 if(conio_c64_init::$1) goto conio_c64_init::@1 to:conio_c64_init::@2 conio_c64_init::@1: scope:[conio_c64_init] from conio_c64_init conio_c64_init::@2 conio_c64_init::line#2 = phi( conio_c64_init/conio_c64_init::line#0, conio_c64_init::@2/conio_c64_init::line#1 ) gotoxy::x#2 = 0 gotoxy::y#2 = conio_c64_init::line#2 call gotoxy to:conio_c64_init::@3 conio_c64_init::@3: scope:[conio_c64_init] from conio_c64_init::@1 to:conio_c64_init::@return conio_c64_init::@2: scope:[conio_c64_init] from conio_c64_init conio_c64_init::line#1 = $19-1 to:conio_c64_init::@1 conio_c64_init::@return: scope:[conio_c64_init] from conio_c64_init::@3 return to:@return char divr8u(char dividend , char divisor , char rem) divr8u: scope:[divr8u] from div16u8u div16u8u::@1 divr8u::divisor#6 = phi( div16u8u/divr8u::divisor#0, div16u8u::@1/divr8u::divisor#1 ) divr8u::dividend#5 = phi( div16u8u/divr8u::dividend#1, div16u8u::@1/divr8u::dividend#2 ) divr8u::rem#10 = phi( div16u8u/divr8u::rem#3, div16u8u::@1/divr8u::rem#4 ) divr8u::quotient#0 = 0 divr8u::i#0 = 0 to:divr8u::@1 divr8u::@1: scope:[divr8u] from divr8u divr8u::@3 divr8u::i#5 = phi( divr8u/divr8u::i#0, divr8u::@3/divr8u::i#1 ) divr8u::divisor#4 = phi( divr8u/divr8u::divisor#6, divr8u::@3/divr8u::divisor#7 ) divr8u::quotient#6 = phi( divr8u/divr8u::quotient#0, divr8u::@3/divr8u::quotient#8 ) divr8u::dividend#3 = phi( divr8u/divr8u::dividend#5, divr8u::@3/divr8u::dividend#6 ) divr8u::rem#5 = phi( divr8u/divr8u::rem#10, divr8u::@3/divr8u::rem#11 ) divr8u::$0 = divr8u::rem#5 << 1 divr8u::rem#0 = divr8u::$0 divr8u::$1 = divr8u::dividend#3 & $80 divr8u::$2 = divr8u::$1 != 0 divr8u::$3 = ! divr8u::$2 if(divr8u::$3) goto divr8u::@2 to:divr8u::@4 divr8u::@2: scope:[divr8u] from divr8u::@1 divr8u::@4 divr8u::i#3 = phi( divr8u::@1/divr8u::i#5, divr8u::@4/divr8u::i#6 ) divr8u::divisor#2 = phi( divr8u::@1/divr8u::divisor#4, divr8u::@4/divr8u::divisor#5 ) divr8u::rem#6 = phi( divr8u::@1/divr8u::rem#0, divr8u::@4/divr8u::rem#1 ) divr8u::quotient#3 = phi( divr8u::@1/divr8u::quotient#6, divr8u::@4/divr8u::quotient#7 ) divr8u::dividend#4 = phi( divr8u::@1/divr8u::dividend#3, divr8u::@4/divr8u::dividend#7 ) divr8u::$5 = divr8u::dividend#4 << 1 divr8u::dividend#0 = divr8u::$5 divr8u::$6 = divr8u::quotient#3 << 1 divr8u::quotient#1 = divr8u::$6 divr8u::$7 = divr8u::rem#6 >= divr8u::divisor#2 divr8u::$8 = ! divr8u::$7 if(divr8u::$8) goto divr8u::@3 to:divr8u::@5 divr8u::@4: scope:[divr8u] from divr8u::@1 divr8u::i#6 = phi( divr8u::@1/divr8u::i#5 ) divr8u::divisor#5 = phi( divr8u::@1/divr8u::divisor#4 ) divr8u::quotient#7 = phi( divr8u::@1/divr8u::quotient#6 ) divr8u::dividend#7 = phi( divr8u::@1/divr8u::dividend#3 ) divr8u::rem#7 = phi( divr8u::@1/divr8u::rem#0 ) divr8u::$4 = divr8u::rem#7 | 1 divr8u::rem#1 = divr8u::$4 to:divr8u::@2 divr8u::@3: scope:[divr8u] from divr8u::@2 divr8u::@5 divr8u::divisor#7 = phi( divr8u::@2/divr8u::divisor#2, divr8u::@5/divr8u::divisor#3 ) divr8u::quotient#8 = phi( divr8u::@2/divr8u::quotient#1, divr8u::@5/divr8u::quotient#2 ) divr8u::dividend#6 = phi( divr8u::@2/divr8u::dividend#0, divr8u::@5/divr8u::dividend#8 ) divr8u::rem#11 = phi( divr8u::@2/divr8u::rem#6, divr8u::@5/divr8u::rem#2 ) divr8u::i#2 = phi( divr8u::@2/divr8u::i#3, divr8u::@5/divr8u::i#4 ) divr8u::i#1 = divr8u::i#2 + rangenext(0,7) divr8u::$10 = divr8u::i#1 != rangelast(0,7) if(divr8u::$10) goto divr8u::@1 to:divr8u::@6 divr8u::@5: scope:[divr8u] from divr8u::@2 divr8u::dividend#8 = phi( divr8u::@2/divr8u::dividend#0 ) divr8u::i#4 = phi( divr8u::@2/divr8u::i#3 ) divr8u::divisor#3 = phi( divr8u::@2/divr8u::divisor#2 ) divr8u::rem#8 = phi( divr8u::@2/divr8u::rem#6 ) divr8u::quotient#4 = phi( divr8u::@2/divr8u::quotient#1 ) divr8u::quotient#2 = ++ divr8u::quotient#4 divr8u::$9 = divr8u::rem#8 - divr8u::divisor#3 divr8u::rem#2 = divr8u::$9 to:divr8u::@3 divr8u::@6: scope:[divr8u] from divr8u::@3 divr8u::quotient#5 = phi( divr8u::@3/divr8u::quotient#8 ) divr8u::rem#9 = phi( divr8u::@3/divr8u::rem#11 ) rem8u#0 = divr8u::rem#9 divr8u::return#0 = divr8u::quotient#5 to:divr8u::@return divr8u::@return: scope:[divr8u] from divr8u::@6 rem8u#12 = phi( divr8u::@6/rem8u#0 ) divr8u::return#4 = phi( divr8u::@6/divr8u::return#0 ) divr8u::return#1 = divr8u::return#4 rem8u#1 = rem8u#12 return to:@return unsigned int div16u8u(unsigned int dividend , char divisor) div16u8u: scope:[div16u8u] from read_chrono rem8u#22 = phi( read_chrono/rem8u#23 ) div16u8u::divisor#1 = phi( read_chrono/div16u8u::divisor#0 ) div16u8u::dividend#1 = phi( read_chrono/div16u8u::dividend#0 ) div16u8u::$0 = byte1 div16u8u::dividend#1 divr8u::dividend#1 = div16u8u::$0 divr8u::divisor#0 = div16u8u::divisor#1 divr8u::rem#3 = 0 call divr8u divr8u::return#2 = divr8u::return#1 to:div16u8u::@1 div16u8u::@1: scope:[div16u8u] from div16u8u div16u8u::divisor#2 = phi( div16u8u/div16u8u::divisor#1 ) div16u8u::dividend#2 = phi( div16u8u/div16u8u::dividend#1 ) rem8u#13 = phi( div16u8u/rem8u#1 ) divr8u::return#5 = phi( div16u8u/divr8u::return#2 ) div16u8u::quotient_hi#0 = divr8u::return#5 rem8u#2 = rem8u#13 div16u8u::$2 = byte0 div16u8u::dividend#2 divr8u::dividend#2 = div16u8u::$2 divr8u::divisor#1 = div16u8u::divisor#2 divr8u::rem#4 = rem8u#2 call divr8u divr8u::return#3 = divr8u::return#1 to:div16u8u::@2 div16u8u::@2: scope:[div16u8u] from div16u8u::@1 div16u8u::quotient_hi#1 = phi( div16u8u::@1/div16u8u::quotient_hi#0 ) rem8u#14 = phi( div16u8u::@1/rem8u#1 ) divr8u::return#6 = phi( div16u8u::@1/divr8u::return#3 ) div16u8u::quotient_lo#0 = divr8u::return#6 rem8u#3 = rem8u#14 div16u8u::quotient#0 = div16u8u::quotient_hi#1 w= div16u8u::quotient_lo#0 div16u8u::return#0 = div16u8u::quotient#0 to:div16u8u::@return div16u8u::@return: scope:[div16u8u] from div16u8u::@2 rem8u#15 = phi( div16u8u::@2/rem8u#3 ) div16u8u::return#3 = phi( div16u8u::@2/div16u8u::return#0 ) div16u8u::return#1 = div16u8u::return#3 rem8u#4 = rem8u#15 return to:@return void clear_screen(char n , char m) clear_screen: scope:[clear_screen] from main::@3 main::@45 main::@5 clear_screen::n#5 = phi( main::@3/clear_screen::n#0, main::@45/clear_screen::n#2, main::@5/clear_screen::n#1 ) clear_screen::m#5 = phi( main::@3/clear_screen::m#0, main::@45/clear_screen::m#2, main::@5/clear_screen::m#1 ) z#0 = 0 to:clear_screen::@1 clear_screen::@1: scope:[clear_screen] from clear_screen clear_screen::@2 clear_screen::n#4 = phi( clear_screen/clear_screen::n#5, clear_screen::@2/clear_screen::n#3 ) clear_screen::m#4 = phi( clear_screen/clear_screen::m#5, clear_screen::@2/clear_screen::m#3 ) z#20 = phi( clear_screen/z#0, clear_screen::@2/z#1 ) clear_screen::$2 = z#20 < $1fa if(clear_screen::$2) goto clear_screen::@2 to:clear_screen::@3 clear_screen::@2: scope:[clear_screen] from clear_screen::@1 clear_screen::n#3 = phi( clear_screen::@1/clear_screen::n#4 ) clear_screen::m#3 = phi( clear_screen::@1/clear_screen::m#4 ) z#21 = phi( clear_screen::@1/z#20 ) clear_screen::$3 = $1e00 + z#21 clear_screen::$4 = clear_screen::$3 + c *((char *)clear_screen::$4) = clear_screen::m#3 clear_screen::$5 = $1e00 + z#21 *((char *)clear_screen::$5) = clear_screen::n#3 z#1 = ++ z#21 to:clear_screen::@1 clear_screen::@3: scope:[clear_screen] from clear_screen::@1 z#65 = phi( clear_screen::@1/z#20 ) gotoxy::x#3 = 0 gotoxy::y#3 = 0 call gotoxy to:clear_screen::@4 clear_screen::@4: scope:[clear_screen] from clear_screen::@3 z#52 = phi( clear_screen::@3/z#65 ) chrout::petscii = home call chrout to:clear_screen::@5 clear_screen::@5: scope:[clear_screen] from clear_screen::@4 z#39 = phi( clear_screen::@4/z#52 ) to:clear_screen::@return clear_screen::@return: scope:[clear_screen] from clear_screen::@5 z#22 = phi( clear_screen::@5/z#39 ) z#2 = z#22 return to:@return void random(char k , char n) random: scope:[random] from main::@13 main::@25 main::@90 random::n#4 = phi( main::@13/random::n#0, main::@25/random::n#1, main::@90/random::n#2 ) random::k#4 = phi( main::@13/random::k#0, main::@25/random::k#1, main::@90/random::k#2 ) to:random::@1 random::@1: scope:[random] from random random::@1 random::n#3 = phi( random/random::n#4, random::@1/random::n#3 ) random::k#3 = phi( random/random::k#4, random::@1/random::k#3 ) m = *((char *)$9114) random::$0 = m < random::k#3 random::$1 = m > random::n#3 random::$2 = random::$0 || random::$1 if(random::$2) goto random::@1 to:random::@return random::@return: scope:[random] from random::@1 return to:@return void chrout(volatile char petscii) chrout: scope:[chrout] from clear_screen::@4 main main::@10 main::@101 main::@11 main::@12 main::@16 main::@17 main::@19 main::@22 main::@23 main::@24 main::@47 main::@52 main::@61 main::@62 main::@63 main::@66 main::@7 main::@70 main::@71 main::@72 main::@73 main::@74 main::@8 main::@80 main::@81 main::@84 main::@85 main::@88 write_score::@11 write_score::@13 write_score::@3 asm { ldapetscii jsr$ffd2 } to:chrout::@return chrout::@return: scope:[chrout] from chrout return to:@return void write_score() write_score: scope:[write_score] from main::@20 main::@29 main::@35 score#13 = phi( main::@20/score#29, main::@29/score#4, main::@35/score#6 ) write_score::$0 = score#13 > $fde8 write_score::$1 = ! write_score::$0 if(write_score::$1) goto write_score::@1 to:write_score::@4 write_score::@1: scope:[write_score] from write_score write_score::@4 score#38 = phi( write_score/score#13, write_score::@4/score#0 ) m = 0 to:write_score::@6 write_score::@4: scope:[write_score] from write_score score#0 = 0 to:write_score::@1 write_score::@6: scope:[write_score] from write_score::@1 write_score::@7 score#30 = phi( write_score::@1/score#38, write_score::@7/score#39 ) write_score::$9 = m < 4 if(write_score::$9) goto write_score::@7 to:write_score::@8 write_score::@7: scope:[write_score] from write_score::@6 score#39 = phi( write_score::@6/score#30 ) points[m] = '0' m = ++ m to:write_score::@6 write_score::@8: scope:[write_score] from write_score::@6 score#14 = phi( write_score::@6/score#30 ) utoa::value#1 = score#14 utoa::buffer#5 = buffer utoa::radix#0 = $a call utoa to:write_score::@12 write_score::@12: scope:[write_score] from write_score::@8 score#15 = phi( write_score::@8/score#14 ) write_score::$3 = score#15 > 9 write_score::$4 = ! write_score::$3 if(write_score::$4) goto write_score::@2 to:write_score::@9 write_score::@2: scope:[write_score] from write_score::@12 write_score::@9 score#16 = phi( write_score::@12/score#15, write_score::@9/score#31 ) write_score::$5 = score#16 > $63 write_score::$6 = ! write_score::$5 if(write_score::$6) goto write_score::@3 to:write_score::@5 write_score::@9: scope:[write_score] from write_score::@12 score#31 = phi( write_score::@12/score#15 ) points[2] = buffer[0] points[3] = buffer[1] to:write_score::@2 write_score::@3: scope:[write_score] from write_score::@2 write_score::@5 score#59 = phi( write_score::@2/score#16, write_score::@5/score#68 ) chrout::petscii = yellow call chrout to:write_score::@13 write_score::@13: scope:[write_score] from write_score::@3 score#49 = phi( write_score::@3/score#59 ) chrout::petscii = home call chrout to:write_score::@14 write_score::@14: scope:[write_score] from write_score::@13 score#40 = phi( write_score::@13/score#49 ) *((char *)$d3) = 4 m = 0 to:write_score::@10 write_score::@5: scope:[write_score] from write_score::@2 score#68 = phi( write_score::@2/score#16 ) points[1] = buffer[0] points[2] = buffer[1] points[3] = buffer[2] to:write_score::@3 write_score::@10: scope:[write_score] from write_score::@14 write_score::@15 score#32 = phi( write_score::@14/score#40, write_score::@15/score#41 ) write_score::$10 = m < 4 if(write_score::$10) goto write_score::@11 to:write_score::@return write_score::@11: scope:[write_score] from write_score::@10 score#50 = phi( write_score::@10/score#32 ) chrout::petscii = points[m] call chrout to:write_score::@15 write_score::@15: scope:[write_score] from write_score::@11 score#41 = phi( write_score::@11/score#50 ) m = ++ m to:write_score::@10 write_score::@return: scope:[write_score] from write_score::@10 score#17 = phi( write_score::@10/score#32 ) score#1 = score#17 return to:@return void wait(char n) wait: scope:[wait] from main::@37 main::@43 main::@94 main::@96 main::@99 z#53 = phi( main::@37/z#48, main::@43/z#47, main::@94/z#45, main::@96/z#46, main::@99/z#13 ) wait::n#6 = phi( main::@37/wait::n#3, main::@43/wait::n#2, main::@94/wait::n#0, main::@96/wait::n#1, main::@99/wait::n#4 ) m = 0 to:wait::@1 wait::@1: scope:[wait] from wait wait::@5 z#40 = phi( wait/z#53, wait::@5/z#54 ) wait::n#5 = phi( wait/wait::n#6, wait::@5/wait::n#7 ) wait::$0 = m < wait::n#5 if(wait::$0) goto wait::@2 to:wait::@return wait::@2: scope:[wait] from wait::@1 wait::n#9 = phi( wait::@1/wait::n#5 ) z#3 = 0 to:wait::@3 wait::@3: scope:[wait] from wait::@2 wait::@4 wait::n#8 = phi( wait::@2/wait::n#9, wait::@4/wait::n#10 ) z#23 = phi( wait::@2/z#3, wait::@4/z#4 ) wait::$1 = z#23 < $21c if(wait::$1) goto wait::@4 to:wait::@5 wait::@4: scope:[wait] from wait::@3 wait::n#10 = phi( wait::@3/wait::n#8 ) z#24 = phi( wait::@3/z#23 ) z#4 = ++ z#24 to:wait::@3 wait::@5: scope:[wait] from wait::@3 z#54 = phi( wait::@3/z#23 ) wait::n#7 = phi( wait::@3/wait::n#8 ) m = ++ m to:wait::@1 wait::@return: scope:[wait] from wait::@1 z#25 = phi( wait::@1/z#40 ) z#5 = z#25 return to:@return void chrono_restart() chrono_restart: scope:[chrono_restart] from main::@26 asm { lda#0 ldy#0 ldx#0 jsr$ffdb } to:chrono_restart::@return chrono_restart::@return: scope:[chrono_restart] from chrono_restart return to:@return void read_chrono() read_chrono: scope:[read_chrono] from main::@28 rem8u#23 = phi( main::@28/rem8u#25 ) asm { jsr$ffde stal stxm } read_chrono::$0 = m * $100 read_chrono::$1 = read_chrono::$0 + l div16u8u::dividend#0 = read_chrono::$1 div16u8u::divisor#0 = $3c call div16u8u div16u8u::return#2 = div16u8u::return#1 to:read_chrono::@2 read_chrono::@2: scope:[read_chrono] from read_chrono rem8u#16 = phi( read_chrono/rem8u#4 ) div16u8u::return#4 = phi( read_chrono/div16u8u::return#2 ) read_chrono::$2 = div16u8u::return#4 rem8u#5 = rem8u#16 time#0 = read_chrono::$2 *((char *)$1e15+c) = 7 *((char *)$1e15) = $b9 read_chrono::$3 = time#0 < $a read_chrono::$4 = ! read_chrono::$3 if(read_chrono::$4) goto read_chrono::@return to:read_chrono::@1 read_chrono::@1: scope:[read_chrono] from read_chrono::@2 rem8u#24 = phi( read_chrono::@2/rem8u#5 ) time#9 = phi( read_chrono::@2/time#0 ) read_chrono::$5 = $b9 - time#9 *((char *)$1e15) = read_chrono::$5 to:read_chrono::@return read_chrono::@return: scope:[read_chrono] from read_chrono::@1 read_chrono::@2 time#10 = phi( read_chrono::@1/time#9, read_chrono::@2/time#0 ) rem8u#17 = phi( read_chrono::@1/rem8u#24, read_chrono::@2/rem8u#5 ) rem8u#6 = rem8u#17 time#1 = time#10 return to:@return void main() main: scope:[main] from __start::@1 n#121 = phi( __start::@1/n#16 ) hiscore#122 = phi( __start::@1/hiscore#12 ) y#126 = phi( __start::@1/y#25 ) rem8u#139 = phi( __start::@1/rem8u#27 ) z#82 = phi( __start::@1/z#51 ) *((char *)$900f) = 8 chrout::petscii = lock call chrout to:main::@52 main::@52: scope:[main] from main n#120 = phi( main/n#121 ) hiscore#121 = phi( main/hiscore#122 ) y#125 = phi( main/y#126 ) rem8u#138 = phi( main/rem8u#139 ) z#75 = phi( main/z#82 ) chrout::petscii = lower call chrout to:main::@53 main::@53: scope:[main] from main::@52 n#119 = phi( main::@52/n#120 ) hiscore#120 = phi( main::@52/hiscore#121 ) y#124 = phi( main::@52/y#125 ) rem8u#137 = phi( main::@52/rem8u#138 ) z#67 = phi( main::@52/z#75 ) m = 0 to:main::@1 main::@1: scope:[main] from main::@2 main::@53 n#117 = phi( main::@2/n#118, main::@53/n#119 ) hiscore#118 = phi( main::@2/hiscore#119, main::@53/hiscore#120 ) y#122 = phi( main::@2/y#123, main::@53/y#124 ) rem8u#135 = phi( main::@2/rem8u#136, main::@53/rem8u#137 ) z#55 = phi( main::@2/z#66, main::@53/z#67 ) main::$2 = m < $28 if(main::$2) goto main::@2 to:main::@3 main::@2: scope:[main] from main::@1 n#118 = phi( main::@1/n#117 ) hiscore#119 = phi( main::@1/hiscore#118 ) y#123 = phi( main::@1/y#122 ) rem8u#136 = phi( main::@1/rem8u#135 ) z#66 = phi( main::@1/z#55 ) main::$3 = $1c00 + m *((char *)main::$3) = duck_udg[m] m = ++ m to:main::@1 main::@3: scope:[main] from main::@1 main::@50 n#116 = phi( main::@1/n#117, main::@50/n#17 ) hiscore#117 = phi( main::@1/hiscore#118, main::@50/hiscore#14 ) y#121 = phi( main::@1/y#122, main::@50/y#29 ) rem8u#134 = phi( main::@1/rem8u#135, main::@50/rem8u#29 ) z#41 = phi( main::@1/z#55, main::@50/z#56 ) clear_screen::n#0 = $20 clear_screen::m#0 = 0 call clear_screen to:main::@54 main::@54: scope:[main] from main::@3 n#115 = phi( main::@3/n#116 ) hiscore#116 = phi( main::@3/hiscore#117 ) y#120 = phi( main::@3/y#121 ) rem8u#133 = phi( main::@3/rem8u#134 ) z#26 = phi( main::@3/z#2 ) z#6 = z#26 textcolor::color#0 = 7 call textcolor textcolor::return#2 = textcolor::return#1 to:main::@55 main::@55: scope:[main] from main::@54 n#114 = phi( main::@54/n#115 ) hiscore#115 = phi( main::@54/hiscore#116 ) y#119 = phi( main::@54/y#120 ) rem8u#132 = phi( main::@54/rem8u#133 ) z#98 = phi( main::@54/z#6 ) cputs::s#1 = intro call cputs to:main::@56 main::@56: scope:[main] from main::@55 n#113 = phi( main::@55/n#114 ) hiscore#114 = phi( main::@55/hiscore#115 ) y#118 = phi( main::@55/y#119 ) rem8u#131 = phi( main::@55/rem8u#132 ) z#93 = phi( main::@55/z#98 ) textcolor::color#1 = 1 call textcolor textcolor::return#3 = textcolor::return#1 to:main::@57 main::@57: scope:[main] from main::@56 n#112 = phi( main::@56/n#113 ) hiscore#113 = phi( main::@56/hiscore#114 ) y#117 = phi( main::@56/y#118 ) rem8u#130 = phi( main::@56/rem8u#131 ) z#88 = phi( main::@56/z#93 ) cputs::s#2 = levels call cputs to:main::@58 main::@58: scope:[main] from main::@57 n#111 = phi( main::@57/n#112 ) hiscore#112 = phi( main::@57/hiscore#113 ) y#116 = phi( main::@57/y#117 ) rem8u#129 = phi( main::@57/rem8u#130 ) z#83 = phi( main::@57/z#88 ) textcolor::color#2 = 2 call textcolor textcolor::return#4 = textcolor::return#1 to:main::@59 main::@59: scope:[main] from main::@58 n#110 = phi( main::@58/n#111 ) hiscore#111 = phi( main::@58/hiscore#112 ) y#115 = phi( main::@58/y#116 ) rem8u#128 = phi( main::@58/rem8u#129 ) z#76 = phi( main::@58/z#83 ) cputs::s#3 = foot call cputs to:main::@60 main::@60: scope:[main] from main::@59 n#109 = phi( main::@59/n#110 ) hiscore#110 = phi( main::@59/hiscore#111 ) y#114 = phi( main::@59/y#115 ) rem8u#127 = phi( main::@59/rem8u#128 ) z#68 = phi( main::@59/z#76 ) to:main::@4 main::@4: scope:[main] from main::@4 main::@60 n#108 = phi( main::@4/n#108, main::@60/n#109 ) hiscore#109 = phi( main::@4/hiscore#109, main::@60/hiscore#110 ) y#113 = phi( main::@4/y#113, main::@60/y#114 ) rem8u#126 = phi( main::@4/rem8u#126, main::@60/rem8u#127 ) z#57 = phi( main::@4/z#57, main::@60/z#68 ) l = *((char *)$c5) l = ++ l main::$11 = l > 5 if(main::$11) goto main::@4 to:main::@5 main::@5: scope:[main] from main::@4 n#107 = phi( main::@4/n#108 ) hiscore#106 = phi( main::@4/hiscore#109 ) y#110 = phi( main::@4/y#113 ) rem8u#123 = phi( main::@4/rem8u#126 ) z#42 = phi( main::@4/z#57 ) clear_screen::n#1 = 4 clear_screen::m#1 = 0 call clear_screen to:main::@61 main::@61: scope:[main] from main::@5 n#106 = phi( main::@5/n#107 ) hiscore#103 = phi( main::@5/hiscore#106 ) y#107 = phi( main::@5/y#110 ) rem8u#120 = phi( main::@5/rem8u#123 ) z#27 = phi( main::@5/z#2 ) z#7 = z#27 *((char *)$9005) = $ff chrout::petscii = reverse_on call chrout to:main::@62 main::@62: scope:[main] from main::@61 n#105 = phi( main::@61/n#106 ) hiscore#101 = phi( main::@61/hiscore#103 ) y#105 = phi( main::@61/y#107 ) rem8u#118 = phi( main::@61/rem8u#120 ) chrout::petscii = red call chrout to:main::@63 main::@63: scope:[main] from main::@62 n#103 = phi( main::@62/n#105 ) hiscore#99 = phi( main::@62/hiscore#101 ) y#103 = phi( main::@62/y#105 ) rem8u#116 = phi( main::@62/rem8u#118 ) chrout::petscii = down call chrout to:main::@64 main::@64: scope:[main] from main::@63 n#100 = phi( main::@63/n#103 ) hiscore#96 = phi( main::@63/hiscore#99 ) y#100 = phi( main::@63/y#103 ) rem8u#113 = phi( main::@63/rem8u#116 ) k#0 = 1 to:main::@6 main::@6: scope:[main] from main::@64 main::@69 n#97 = phi( main::@64/n#100, main::@69/n#101 ) hiscore#93 = phi( main::@64/hiscore#96, main::@69/hiscore#97 ) y#97 = phi( main::@64/y#100, main::@69/y#101 ) rem8u#110 = phi( main::@64/rem8u#113, main::@69/rem8u#114 ) k#6 = phi( main::@64/k#0, main::@69/k#1 ) main::$16 = k#6 < $16 if(main::$16) goto main::@7 to:main::@8 main::@7: scope:[main] from main::@6 hiscore#107 = phi( main::@6/hiscore#93 ) y#111 = phi( main::@6/y#97 ) rem8u#124 = phi( main::@6/rem8u#110 ) k#20 = phi( main::@6/k#6 ) chrout::petscii = brick call chrout to:main::@65 main::@65: scope:[main] from main::@7 hiscore#104 = phi( main::@7/hiscore#107 ) y#108 = phi( main::@7/y#111 ) rem8u#121 = phi( main::@7/rem8u#124 ) k#17 = phi( main::@7/k#20 ) n#0 = 2 to:main::@9 main::@8: scope:[main] from main::@6 n#95 = phi( main::@6/n#97 ) k#101 = phi( main::@6/k#6 ) hiscore#91 = phi( main::@6/hiscore#93 ) y#95 = phi( main::@6/y#97 ) rem8u#108 = phi( main::@6/rem8u#110 ) chrout::petscii = brick call chrout to:main::@66 main::@66: scope:[main] from main::@8 n#92 = phi( main::@8/n#95 ) k#98 = phi( main::@8/k#101 ) hiscore#88 = phi( main::@8/hiscore#91 ) y#92 = phi( main::@8/y#95 ) rem8u#105 = phi( main::@8/rem8u#108 ) *((char *)$1ff9) = brick *((char *)$1ff9+c) = 2 chrout::petscii = home call chrout to:main::@67 main::@67: scope:[main] from main::@66 n#89 = phi( main::@66/n#92 ) k#95 = phi( main::@66/k#98 ) hiscore#85 = phi( main::@66/hiscore#88 ) y#89 = phi( main::@66/y#92 ) rem8u#102 = phi( main::@66/rem8u#105 ) z#8 = 1 main::$23 = l > 1 main::$24 = ! main::$23 if(main::$24) goto main::@12 to:main::@13 main::@9: scope:[main] from main::@65 main::@68 hiscore#102 = phi( main::@65/hiscore#104, main::@68/hiscore#105 ) y#106 = phi( main::@65/y#108, main::@68/y#109 ) rem8u#119 = phi( main::@65/rem8u#121, main::@68/rem8u#122 ) k#14 = phi( main::@65/k#17, main::@68/k#18 ) n#7 = phi( main::@65/n#0, main::@68/n#1 ) main::$18 = n#7 < $16 if(main::$18) goto main::@10 to:main::@11 main::@10: scope:[main] from main::@9 hiscore#108 = phi( main::@9/hiscore#102 ) y#112 = phi( main::@9/y#106 ) rem8u#125 = phi( main::@9/rem8u#119 ) k#21 = phi( main::@9/k#14 ) n#13 = phi( main::@9/n#7 ) chrout::petscii = right call chrout to:main::@68 main::@68: scope:[main] from main::@10 hiscore#105 = phi( main::@10/hiscore#108 ) y#109 = phi( main::@10/y#112 ) rem8u#122 = phi( main::@10/rem8u#125 ) k#18 = phi( main::@10/k#21 ) n#8 = phi( main::@10/n#13 ) n#1 = ++ n#8 to:main::@9 main::@11: scope:[main] from main::@9 n#104 = phi( main::@9/n#7 ) hiscore#100 = phi( main::@9/hiscore#102 ) y#104 = phi( main::@9/y#106 ) rem8u#117 = phi( main::@9/rem8u#119 ) k#11 = phi( main::@9/k#14 ) chrout::petscii = brick call chrout to:main::@69 main::@69: scope:[main] from main::@11 n#101 = phi( main::@11/n#104 ) hiscore#97 = phi( main::@11/hiscore#100 ) y#101 = phi( main::@11/y#104 ) rem8u#114 = phi( main::@11/rem8u#117 ) k#7 = phi( main::@11/k#11 ) k#1 = ++ k#7 to:main::@6 main::@12: scope:[main] from main::@67 main::@76 main::@78 n#88 = phi( main::@67/n#89, main::@76/n#90, main::@78/n#91 ) k#94 = phi( main::@67/k#95, main::@76/k#96, main::@78/k#97 ) hiscore#84 = phi( main::@67/hiscore#85, main::@76/hiscore#86, main::@78/hiscore#87 ) z#136 = phi( main::@67/z#8, main::@76/z#28, main::@78/z#9 ) y#88 = phi( main::@67/y#89, main::@76/y#90, main::@78/y#91 ) rem8u#101 = phi( main::@67/rem8u#102, main::@76/rem8u#103, main::@78/rem8u#104 ) peephole#0 = $1f1f *((char *)$900e) = $f score#2 = 0 tu#0 = 1 chrout::petscii = home call chrout to:main::@70 main::@70: scope:[main] from main::@12 n#87 = phi( main::@12/n#88 ) k#93 = phi( main::@12/k#94 ) hiscore#83 = phi( main::@12/hiscore#84 ) peephole#85 = phi( main::@12/peephole#0 ) z#135 = phi( main::@12/z#136 ) y#87 = phi( main::@12/y#88 ) rem8u#100 = phi( main::@12/rem8u#101 ) tu#81 = phi( main::@12/tu#0 ) score#92 = phi( main::@12/score#2 ) chrout::petscii = yellow call chrout to:main::@71 main::@71: scope:[main] from main::@70 n#86 = phi( main::@70/n#87 ) k#92 = phi( main::@70/k#93 ) hiscore#82 = phi( main::@70/hiscore#83 ) peephole#84 = phi( main::@70/peephole#85 ) z#134 = phi( main::@70/z#135 ) y#86 = phi( main::@70/y#87 ) rem8u#99 = phi( main::@70/rem8u#100 ) tu#79 = phi( main::@70/tu#81 ) score#84 = phi( main::@70/score#92 ) chrout::petscii = $50 call chrout to:main::@72 main::@72: scope:[main] from main::@71 n#85 = phi( main::@71/n#86 ) k#91 = phi( main::@71/k#92 ) hiscore#81 = phi( main::@71/hiscore#82 ) peephole#83 = phi( main::@71/peephole#84 ) z#133 = phi( main::@71/z#134 ) y#85 = phi( main::@71/y#86 ) rem8u#98 = phi( main::@71/rem8u#99 ) tu#77 = phi( main::@71/tu#79 ) score#77 = phi( main::@71/score#84 ) chrout::petscii = $54 call chrout to:main::@73 main::@73: scope:[main] from main::@72 n#84 = phi( main::@72/n#85 ) k#90 = phi( main::@72/k#91 ) hiscore#80 = phi( main::@72/hiscore#81 ) peephole#82 = phi( main::@72/peephole#83 ) z#132 = phi( main::@72/z#133 ) y#84 = phi( main::@72/y#85 ) rem8u#97 = phi( main::@72/rem8u#98 ) tu#75 = phi( main::@72/tu#77 ) score#69 = phi( main::@72/score#77 ) chrout::petscii = $53 call chrout to:main::@74 main::@74: scope:[main] from main::@73 n#82 = phi( main::@73/n#84 ) k#88 = phi( main::@73/k#90 ) hiscore#78 = phi( main::@73/hiscore#80 ) peephole#80 = phi( main::@73/peephole#82 ) z#130 = phi( main::@73/z#132 ) y#82 = phi( main::@73/y#84 ) rem8u#95 = phi( main::@73/rem8u#97 ) tu#71 = phi( main::@73/tu#75 ) score#60 = phi( main::@73/score#69 ) chrout::petscii = $3a call chrout to:main::@75 main::@75: scope:[main] from main::@74 n#80 = phi( main::@74/n#82 ) k#86 = phi( main::@74/k#88 ) hiscore#76 = phi( main::@74/hiscore#78 ) peephole#78 = phi( main::@74/peephole#80 ) z#128 = phi( main::@74/z#130 ) y#80 = phi( main::@74/y#82 ) rem8u#93 = phi( main::@74/rem8u#95 ) tu#66 = phi( main::@74/tu#71 ) score#51 = phi( main::@74/score#60 ) *((char *)$d3) = $12 j#0 = 0 to:main::@18 main::@13: scope:[main] from main::@67 main::@78 n#93 = phi( main::@67/n#89, main::@78/n#91 ) k#99 = phi( main::@67/k#95, main::@78/k#97 ) hiscore#89 = phi( main::@67/hiscore#85, main::@78/hiscore#87 ) y#93 = phi( main::@67/y#89, main::@78/y#91 ) rem8u#106 = phi( main::@67/rem8u#102, main::@78/rem8u#104 ) z#43 = phi( main::@67/z#8, main::@78/z#9 ) main::$25 = 7 - l main::$26 = 3 * l main::$27 = $1a - main::$26 random::k#0 = main::$25 random::n#0 = main::$27 call random to:main::@76 main::@76: scope:[main] from main::@13 n#90 = phi( main::@13/n#93 ) k#96 = phi( main::@13/k#99 ) hiscore#86 = phi( main::@13/hiscore#89 ) y#90 = phi( main::@13/y#93 ) rem8u#103 = phi( main::@13/rem8u#106 ) z#28 = phi( main::@13/z#43 ) main::$29 = z#28 + m main::$30 = main::$29 > $1f9 main::$31 = ! main::$30 if(main::$31) goto main::@14 to:main::@12 main::@14: scope:[main] from main::@76 n#98 = phi( main::@76/n#90 ) k#103 = phi( main::@76/k#96 ) hiscore#94 = phi( main::@76/hiscore#86 ) y#98 = phi( main::@76/y#90 ) rem8u#111 = phi( main::@76/rem8u#103 ) z#69 = phi( main::@76/z#28 ) j#1 = 1 to:main::@15 main::@15: scope:[main] from main::@14 main::@77 n#96 = phi( main::@14/n#98, main::@77/n#99 ) k#102 = phi( main::@14/k#103, main::@77/k#104 ) hiscore#92 = phi( main::@14/hiscore#94, main::@77/hiscore#95 ) y#96 = phi( main::@14/y#98, main::@77/y#99 ) rem8u#109 = phi( main::@14/rem8u#111, main::@77/rem8u#112 ) z#58 = phi( main::@14/z#69, main::@77/z#70 ) j#11 = phi( main::@14/j#1, main::@77/j#2 ) main::$32 = j#11 <= m if(main::$32) goto main::@16 to:main::@17 main::@16: scope:[main] from main::@15 n#102 = phi( main::@15/n#96 ) k#105 = phi( main::@15/k#102 ) hiscore#98 = phi( main::@15/hiscore#92 ) y#102 = phi( main::@15/y#96 ) rem8u#115 = phi( main::@15/rem8u#109 ) z#77 = phi( main::@15/z#58 ) j#23 = phi( main::@15/j#11 ) chrout::petscii = right call chrout to:main::@77 main::@77: scope:[main] from main::@16 n#99 = phi( main::@16/n#102 ) k#104 = phi( main::@16/k#105 ) hiscore#95 = phi( main::@16/hiscore#98 ) y#99 = phi( main::@16/y#102 ) rem8u#112 = phi( main::@16/rem8u#115 ) z#70 = phi( main::@16/z#77 ) j#12 = phi( main::@16/j#23 ) j#2 = ++ j#12 to:main::@15 main::@17: scope:[main] from main::@15 n#94 = phi( main::@15/n#96 ) k#100 = phi( main::@15/k#102 ) hiscore#90 = phi( main::@15/hiscore#92 ) y#94 = phi( main::@15/y#96 ) rem8u#107 = phi( main::@15/rem8u#109 ) z#44 = phi( main::@15/z#58 ) chrout::petscii = brick call chrout to:main::@78 main::@78: scope:[main] from main::@17 n#91 = phi( main::@17/n#94 ) k#97 = phi( main::@17/k#100 ) hiscore#87 = phi( main::@17/hiscore#90 ) y#91 = phi( main::@17/y#94 ) rem8u#104 = phi( main::@17/rem8u#107 ) z#29 = phi( main::@17/z#44 ) main::$35 = z#29 + m main::$36 = main::$35 + 1 z#9 = main::$36 main::$37 = z#9 < $1fa if(main::$37) goto main::@13 to:main::@12 main::@18: scope:[main] from main::@75 main::@79 n#79 = phi( main::@75/n#80, main::@79/n#81 ) k#85 = phi( main::@75/k#86, main::@79/k#87 ) hiscore#75 = phi( main::@75/hiscore#76, main::@79/hiscore#77 ) peephole#77 = phi( main::@75/peephole#78, main::@79/peephole#79 ) z#127 = phi( main::@75/z#128, main::@79/z#129 ) y#79 = phi( main::@75/y#80, main::@79/y#81 ) rem8u#92 = phi( main::@75/rem8u#93, main::@79/rem8u#94 ) tu#58 = phi( main::@75/tu#66, main::@79/tu#67 ) score#42 = phi( main::@75/score#51, main::@79/score#52 ) j#13 = phi( main::@75/j#0, main::@79/j#3 ) main::$44 = j#13 < 4 if(main::$44) goto main::@19 to:main::@20 main::@19: scope:[main] from main::@18 n#83 = phi( main::@18/n#79 ) k#89 = phi( main::@18/k#85 ) hiscore#79 = phi( main::@18/hiscore#75 ) peephole#81 = phi( main::@18/peephole#77 ) z#131 = phi( main::@18/z#127 ) y#83 = phi( main::@18/y#79 ) rem8u#96 = phi( main::@18/rem8u#92 ) tu#72 = phi( main::@18/tu#58 ) score#61 = phi( main::@18/score#42 ) j#14 = phi( main::@18/j#13 ) chrout::petscii = chrono[j#14] call chrout to:main::@79 main::@79: scope:[main] from main::@19 n#81 = phi( main::@19/n#83 ) k#87 = phi( main::@19/k#89 ) hiscore#77 = phi( main::@19/hiscore#79 ) peephole#79 = phi( main::@19/peephole#81 ) z#129 = phi( main::@19/z#131 ) y#81 = phi( main::@19/y#83 ) rem8u#94 = phi( main::@19/rem8u#96 ) tu#67 = phi( main::@19/tu#72 ) score#52 = phi( main::@19/score#61 ) j#15 = phi( main::@19/j#14 ) j#3 = ++ j#15 to:main::@18 main::@20: scope:[main] from main::@18 n#78 = phi( main::@18/n#79 ) k#84 = phi( main::@18/k#85 ) hiscore#74 = phi( main::@18/hiscore#75 ) peephole#76 = phi( main::@18/peephole#77 ) z#126 = phi( main::@18/z#127 ) y#78 = phi( main::@18/y#79 ) rem8u#90 = phi( main::@18/rem8u#92 ) tu#51 = phi( main::@18/tu#58 ) score#29 = phi( main::@18/score#42 ) call write_score to:main::@80 main::@80: scope:[main] from main::@20 n#77 = phi( main::@20/n#78 ) k#83 = phi( main::@20/k#84 ) hiscore#73 = phi( main::@20/hiscore#74 ) peephole#75 = phi( main::@20/peephole#76 ) z#125 = phi( main::@20/z#126 ) y#76 = phi( main::@20/y#78 ) rem8u#88 = phi( main::@20/rem8u#90 ) tu#43 = phi( main::@20/tu#51 ) score#18 = phi( main::@20/score#1 ) score#3 = score#18 chrout::petscii = home call chrout to:main::@81 main::@81: scope:[main] from main::@80 n#75 = phi( main::@80/n#77 ) k#81 = phi( main::@80/k#83 ) hiscore#71 = phi( main::@80/hiscore#73 ) peephole#72 = phi( main::@80/peephole#75 ) z#123 = phi( main::@80/z#125 ) y#72 = phi( main::@80/y#76 ) rem8u#84 = phi( main::@80/rem8u#88 ) score#107 = phi( main::@80/score#3 ) tu#37 = phi( main::@80/tu#43 ) chrout::petscii = green call chrout to:main::@82 main::@82: scope:[main] from main::@81 n#73 = phi( main::@81/n#75 ) k#79 = phi( main::@81/k#81 ) hiscore#69 = phi( main::@81/hiscore#71 ) peephole#69 = phi( main::@81/peephole#72 ) z#120 = phi( main::@81/z#123 ) y#68 = phi( main::@81/y#72 ) rem8u#80 = phi( main::@81/rem8u#84 ) score#105 = phi( main::@81/score#107 ) tu#31 = phi( main::@81/tu#37 ) *((char *)$d3) = $a j#4 = 0 to:main::@21 main::@21: scope:[main] from main::@82 main::@83 n#72 = phi( main::@82/n#73, main::@83/n#74 ) k#78 = phi( main::@82/k#79, main::@83/k#80 ) hiscore#68 = phi( main::@82/hiscore#69, main::@83/hiscore#70 ) peephole#67 = phi( main::@82/peephole#69, main::@83/peephole#70 ) z#118 = phi( main::@82/z#120, main::@83/z#121 ) y#65 = phi( main::@82/y#68, main::@83/y#69 ) rem8u#77 = phi( main::@82/rem8u#80, main::@83/rem8u#81 ) score#104 = phi( main::@82/score#105, main::@83/score#106 ) tu#27 = phi( main::@82/tu#31, main::@83/tu#32 ) j#16 = phi( main::@82/j#4, main::@83/j#5 ) main::$49 = j#16 < 5 if(main::$49) goto main::@22 to:main::@23 main::@22: scope:[main] from main::@21 n#76 = phi( main::@21/n#72 ) k#82 = phi( main::@21/k#78 ) hiscore#72 = phi( main::@21/hiscore#68 ) peephole#73 = phi( main::@21/peephole#67 ) z#124 = phi( main::@21/z#118 ) y#73 = phi( main::@21/y#65 ) rem8u#85 = phi( main::@21/rem8u#77 ) score#108 = phi( main::@21/score#104 ) tu#38 = phi( main::@21/tu#27 ) j#17 = phi( main::@21/j#16 ) chrout::petscii = ducknumber[j#17] call chrout to:main::@83 main::@83: scope:[main] from main::@22 n#74 = phi( main::@22/n#76 ) k#80 = phi( main::@22/k#82 ) hiscore#70 = phi( main::@22/hiscore#72 ) peephole#70 = phi( main::@22/peephole#73 ) z#121 = phi( main::@22/z#124 ) y#69 = phi( main::@22/y#73 ) rem8u#81 = phi( main::@22/rem8u#85 ) score#106 = phi( main::@22/score#108 ) tu#32 = phi( main::@22/tu#38 ) j#18 = phi( main::@22/j#17 ) j#5 = ++ j#18 to:main::@21 main::@23: scope:[main] from main::@21 main::@95 n#71 = phi( main::@21/n#72, main::@95/n#36 ) k#77 = phi( main::@21/k#78, main::@95/k#38 ) hiscore#67 = phi( main::@21/hiscore#68, main::@95/hiscore#28 ) peephole#65 = phi( main::@21/peephole#67, main::@95/peephole#68 ) z#116 = phi( main::@21/z#118, main::@95/z#10 ) y#63 = phi( main::@21/y#65, main::@95/y#66 ) rem8u#75 = phi( main::@21/rem8u#77, main::@95/rem8u#78 ) score#103 = phi( main::@21/score#104, main::@95/score#101 ) tu#23 = phi( main::@21/tu#27, main::@95/tu#9 ) chrout::petscii = home call chrout to:main::@84 main::@84: scope:[main] from main::@23 n#70 = phi( main::@23/n#71 ) k#75 = phi( main::@23/k#77 ) hiscore#65 = phi( main::@23/hiscore#67 ) peephole#63 = phi( main::@23/peephole#65 ) z#114 = phi( main::@23/z#116 ) y#61 = phi( main::@23/y#63 ) rem8u#73 = phi( main::@23/rem8u#75 ) score#102 = phi( main::@23/score#103 ) tu#18 = phi( main::@23/tu#23 ) chrout::petscii = green call chrout to:main::@85 main::@85: scope:[main] from main::@84 n#69 = phi( main::@84/n#70 ) k#72 = phi( main::@84/k#75 ) hiscore#62 = phi( main::@84/hiscore#65 ) peephole#61 = phi( main::@84/peephole#63 ) z#112 = phi( main::@84/z#114 ) y#59 = phi( main::@84/y#61 ) rem8u#70 = phi( main::@84/rem8u#73 ) score#100 = phi( main::@84/score#102 ) tu#13 = phi( main::@84/tu#18 ) chrout::petscii = reverse_on call chrout to:main::@86 main::@86: scope:[main] from main::@85 n#64 = phi( main::@85/n#69 ) k#66 = phi( main::@85/k#72 ) hiscore#56 = phi( main::@85/hiscore#62 ) peephole#58 = phi( main::@85/peephole#61 ) z#109 = phi( main::@85/z#112 ) y#56 = phi( main::@85/y#59 ) rem8u#63 = phi( main::@85/rem8u#70 ) score#97 = phi( main::@85/score#100 ) tu#6 = phi( main::@85/tu#13 ) *((char *)$d3) = $f main::$54 = tu#6 < $a if(main::$54) goto main::@24 to:main::@47 main::@24: scope:[main] from main::@86 n#58 = phi( main::@86/n#64 ) k#60 = phi( main::@86/k#66 ) hiscore#50 = phi( main::@86/hiscore#56 ) peephole#55 = phi( main::@86/peephole#58 ) z#106 = phi( main::@86/z#109 ) y#53 = phi( main::@86/y#56 ) rem8u#55 = phi( main::@86/rem8u#63 ) score#93 = phi( main::@86/score#97 ) tu#7 = phi( main::@86/tu#6 ) main::$57 = $30 + tu#7 chrout::petscii = main::$57 call chrout to:main::@87 main::@87: scope:[main] from main::@24 n#52 = phi( main::@24/n#58 ) k#54 = phi( main::@24/k#60 ) hiscore#44 = phi( main::@24/hiscore#50 ) peephole#52 = phi( main::@24/peephole#55 ) z#102 = phi( main::@24/z#106 ) y#49 = phi( main::@24/y#53 ) rem8u#48 = phi( main::@24/rem8u#55 ) score#85 = phi( main::@24/score#93 ) tu#44 = phi( main::@24/tu#7 ) to:main::@25 main::@47: scope:[main] from main::@86 n#65 = phi( main::@86/n#64 ) k#67 = phi( main::@86/k#66 ) hiscore#57 = phi( main::@86/hiscore#56 ) peephole#59 = phi( main::@86/peephole#58 ) z#110 = phi( main::@86/z#109 ) y#57 = phi( main::@86/y#56 ) rem8u#64 = phi( main::@86/rem8u#63 ) score#98 = phi( main::@86/score#97 ) tu#59 = phi( main::@86/tu#6 ) chrout::petscii = $31 call chrout to:main::@88 main::@88: scope:[main] from main::@47 n#59 = phi( main::@47/n#65 ) k#61 = phi( main::@47/k#67 ) hiscore#51 = phi( main::@47/hiscore#57 ) peephole#56 = phi( main::@47/peephole#59 ) z#107 = phi( main::@47/z#110 ) y#54 = phi( main::@47/y#57 ) rem8u#56 = phi( main::@47/rem8u#64 ) score#94 = phi( main::@47/score#98 ) tu#52 = phi( main::@47/tu#59 ) chrout::petscii = $30 call chrout to:main::@89 main::@89: scope:[main] from main::@88 n#53 = phi( main::@88/n#59 ) k#55 = phi( main::@88/k#61 ) hiscore#45 = phi( main::@88/hiscore#51 ) peephole#53 = phi( main::@88/peephole#56 ) z#103 = phi( main::@88/z#107 ) y#50 = phi( main::@88/y#54 ) rem8u#49 = phi( main::@88/rem8u#56 ) score#86 = phi( main::@88/score#94 ) tu#45 = phi( main::@88/tu#52 ) to:main::@25 main::@25: scope:[main] from main::@87 main::@89 main::@91 n#49 = phi( main::@87/n#52, main::@89/n#53, main::@91/n#44 ) k#51 = phi( main::@87/k#54, main::@89/k#55, main::@91/k#46 ) hiscore#41 = phi( main::@87/hiscore#44, main::@89/hiscore#45, main::@91/hiscore#36 ) peephole#50 = phi( main::@87/peephole#52, main::@89/peephole#53, main::@91/peephole#46 ) z#99 = phi( main::@87/z#102, main::@89/z#103, main::@91/z#89 ) y#47 = phi( main::@87/y#49, main::@89/y#50, main::@91/y#43 ) rem8u#44 = phi( main::@87/rem8u#48, main::@89/rem8u#49, main::@91/rem8u#37 ) score#78 = phi( main::@87/score#85, main::@89/score#86, main::@91/score#62 ) tu#39 = phi( main::@87/tu#44, main::@89/tu#45, main::@91/tu#28 ) random::k#1 = 0 random::n#1 = $ff call random to:main::@90 main::@90: scope:[main] from main::@25 n#46 = phi( main::@25/n#49 ) k#48 = phi( main::@25/k#51 ) hiscore#38 = phi( main::@25/hiscore#41 ) peephole#48 = phi( main::@25/peephole#50 ) z#94 = phi( main::@25/z#99 ) y#45 = phi( main::@25/y#47 ) rem8u#40 = phi( main::@25/rem8u#44 ) score#70 = phi( main::@25/score#78 ) tu#33 = phi( main::@25/tu#39 ) duck#0 = m random::k#2 = 0 random::n#2 = $ff call random to:main::@91 main::@91: scope:[main] from main::@90 n#44 = phi( main::@90/n#46 ) k#46 = phi( main::@90/k#48 ) hiscore#36 = phi( main::@90/hiscore#38 ) peephole#46 = phi( main::@90/peephole#48 ) z#89 = phi( main::@90/z#94 ) y#43 = phi( main::@90/y#45 ) rem8u#37 = phi( main::@90/rem8u#40 ) score#62 = phi( main::@90/score#70 ) tu#28 = phi( main::@90/tu#33 ) duck#6 = phi( main::@90/duck#0 ) main::$61 = m + $1e15 main::$62 = main::$61 + duck#6 duck#1 = main::$62 main::$63 = duck#1 > $1fe3 main::$64 = *((char *)duck#1) == brick main::$65 = main::$63 || main::$64 main::$66 = duck#1 + 1 main::$67 = *((char *)main::$66) == brick main::$68 = main::$65 || main::$67 main::$69 = duck#1 + $16 main::$70 = *((char *)main::$69) == brick main::$71 = main::$68 || main::$70 main::$72 = duck#1 + $17 main::$73 = *((char *)main::$72) == brick main::$74 = main::$71 || main::$73 if(main::$74) goto main::@25 to:main::@26 main::@26: scope:[main] from main::@91 n#42 = phi( main::@91/n#44 ) k#44 = phi( main::@91/k#46 ) hiscore#34 = phi( main::@91/hiscore#36 ) peephole#42 = phi( main::@91/peephole#46 ) duck#37 = phi( main::@91/duck#1 ) z#84 = phi( main::@91/z#89 ) y#40 = phi( main::@91/y#43 ) rem8u#34 = phi( main::@91/rem8u#37 ) score#53 = phi( main::@91/score#62 ) tu#24 = phi( main::@91/tu#28 ) time#2 = 0 call chrono_restart to:main::@92 main::@92: scope:[main] from main::@26 n#41 = phi( main::@26/n#42 ) k#43 = phi( main::@26/k#44 ) hiscore#33 = phi( main::@26/hiscore#34 ) peephole#40 = phi( main::@26/peephole#42 ) duck#31 = phi( main::@26/duck#37 ) z#78 = phi( main::@26/z#84 ) y#36 = phi( main::@26/y#40 ) rem8u#32 = phi( main::@26/rem8u#34 ) score#44 = phi( main::@26/score#53 ) tu#20 = phi( main::@26/tu#24 ) time#18 = phi( main::@26/time#2 ) to:main::@27 main::@27: scope:[main] from main::@100 main::@92 n#39 = phi( main::@100/n#40, main::@92/n#41 ) k#41 = phi( main::@100/k#42, main::@92/k#43 ) hiscore#31 = phi( main::@100/hiscore#32, main::@92/hiscore#33 ) peephole#37 = phi( main::@100/peephole#39, main::@92/peephole#40 ) duck#25 = phi( main::@100/duck#30, main::@92/duck#31 ) z#71 = phi( main::@100/z#14, main::@92/z#78 ) y#31 = phi( main::@100/y#35, main::@92/y#36 ) rem8u#28 = phi( main::@100/rem8u#31, main::@92/rem8u#32 ) score#33 = phi( main::@100/score#43, main::@92/score#44 ) tu#14 = phi( main::@100/tu#19, main::@92/tu#20 ) time#11 = phi( main::@100/time#17, main::@92/time#18 ) main::$76 = time#11 < $a if(main::$76) goto main::@28 to:main::@29 main::@28: scope:[main] from main::@27 k#76 = phi( main::@27/k#41 ) hiscore#66 = phi( main::@27/hiscore#31 ) tu#73 = phi( main::@27/tu#14 ) z#100 = phi( main::@27/z#71 ) score#87 = phi( main::@27/score#33 ) duck#43 = phi( main::@27/duck#25 ) peephole#35 = phi( main::@27/peephole#37 ) y#26 = phi( main::@27/y#31 ) time#19 = phi( main::@27/time#11 ) rem8u#25 = phi( main::@27/rem8u#28 ) call read_chrono to:main::@93 main::@93: scope:[main] from main::@28 k#74 = phi( main::@28/k#76 ) hiscore#64 = phi( main::@28/hiscore#66 ) tu#69 = phi( main::@28/tu#73 ) z#96 = phi( main::@28/z#100 ) score#80 = phi( main::@28/score#87 ) duck#39 = phi( main::@28/duck#43 ) peephole#32 = phi( main::@28/peephole#35 ) y#18 = phi( main::@28/y#26 ) time#12 = phi( main::@28/time#1 ) rem8u#18 = phi( main::@28/rem8u#6 ) rem8u#7 = rem8u#18 time#3 = time#12 m = *((char *)$911f) *((char *)$9122) = $7f n#2 = *((char *)$9120) *((char *)$9122) = $ff main::$78 = $10 & m main::$79 = main::$78 == 0 main::$80 = ! main::$79 if(main::$80) goto main::@30 to:main::@38 main::@29: scope:[main] from main::@27 time#60 = phi( main::@27/time#11 ) n#38 = phi( main::@27/n#39 ) k#40 = phi( main::@27/k#41 ) peephole#74 = phi( main::@27/peephole#37 ) y#74 = phi( main::@27/y#31 ) rem8u#86 = phi( main::@27/rem8u#28 ) hiscore#30 = phi( main::@27/hiscore#31 ) duck#18 = phi( main::@27/duck#25 ) z#59 = phi( main::@27/z#71 ) score#19 = phi( main::@27/score#33 ) tu#8 = phi( main::@27/tu#14 ) tu#1 = ++ tu#8 main::$147 = score#19 - $a score#4 = main::$147 call write_score to:main::@94 main::@94: scope:[main] from main::@29 time#59 = phi( main::@29/time#60 ) n#37 = phi( main::@29/n#38 ) k#39 = phi( main::@29/k#40 ) peephole#71 = phi( main::@29/peephole#74 ) y#70 = phi( main::@29/y#74 ) rem8u#82 = phi( main::@29/rem8u#86 ) hiscore#29 = phi( main::@29/hiscore#30 ) tu#15 = phi( main::@29/tu#1 ) duck#13 = phi( main::@29/duck#18 ) z#45 = phi( main::@29/z#59 ) score#20 = phi( main::@29/score#1 ) score#5 = score#20 *((char *)$900d) = $82 wait::n#0 = $14 call wait to:main::@95 main::@95: scope:[main] from main::@94 time#58 = phi( main::@94/time#59 ) n#36 = phi( main::@94/n#37 ) k#38 = phi( main::@94/k#39 ) peephole#68 = phi( main::@94/peephole#71 ) y#66 = phi( main::@94/y#70 ) rem8u#78 = phi( main::@94/rem8u#82 ) hiscore#28 = phi( main::@94/hiscore#29 ) score#101 = phi( main::@94/score#5 ) tu#9 = phi( main::@94/tu#15 ) duck#7 = phi( main::@94/duck#13 ) z#30 = phi( main::@94/z#5 ) z#10 = z#30 *((char *)$900d) = 0 main::$150 = duck#7 + c *((char *)main::$150) = 0 main::$151 = duck#7 + 1 main::$152 = main::$151 + c *((char *)main::$152) = 0 main::$153 = duck#7 + $16 main::$154 = main::$153 + c *((char *)main::$154) = 0 main::$155 = duck#7 + $17 main::$156 = main::$155 + c *((char *)main::$156) = 0 main::$157 = tu#9 < $b if(main::$157) goto main::@23 to:main::@45 main::@30: scope:[main] from main::@38 main::@93 k#68 = phi( main::@38/k#73, main::@93/k#74 ) hiscore#58 = phi( main::@38/hiscore#63, main::@93/hiscore#64 ) rem8u#65 = phi( main::@38/rem8u#71, main::@93/rem8u#7 ) tu#60 = phi( main::@38/tu#68, main::@93/tu#69 ) z#90 = phi( main::@38/z#95, main::@93/z#96 ) time#36 = phi( main::@38/time#40, main::@93/time#3 ) score#71 = phi( main::@38/score#79, main::@93/score#80 ) duck#32 = phi( main::@38/duck#38, main::@93/duck#39 ) peephole#26 = phi( main::@38/peephole#31, main::@93/peephole#32 ) y#19 = phi( main::@38/y#0, main::@93/y#18 ) n#9 = phi( main::@38/n#14, main::@93/n#2 ) main::$81 = $80 & n#9 main::$82 = main::$81 == 0 main::$83 = ! main::$82 if(main::$83) goto main::@31 to:main::@39 main::@38: scope:[main] from main::@93 k#73 = phi( main::@93/k#74 ) hiscore#63 = phi( main::@93/hiscore#64 ) rem8u#71 = phi( main::@93/rem8u#7 ) tu#68 = phi( main::@93/tu#69 ) z#95 = phi( main::@93/z#96 ) time#40 = phi( main::@93/time#3 ) score#79 = phi( main::@93/score#80 ) duck#38 = phi( main::@93/duck#39 ) peephole#31 = phi( main::@93/peephole#32 ) n#14 = phi( main::@93/n#2 ) y#9 = phi( main::@93/y#18 ) y#0 = -- y#9 to:main::@30 main::@31: scope:[main] from main::@30 main::@39 n#60 = phi( main::@30/n#9, main::@39/n#66 ) k#62 = phi( main::@30/k#68, main::@39/k#69 ) hiscore#52 = phi( main::@30/hiscore#58, main::@39/hiscore#59 ) rem8u#57 = phi( main::@30/rem8u#65, main::@39/rem8u#66 ) tu#53 = phi( main::@30/tu#60, main::@39/tu#61 ) z#85 = phi( main::@30/z#90, main::@39/z#91 ) time#31 = phi( main::@30/time#36, main::@39/time#37 ) score#63 = phi( main::@30/score#71, main::@39/score#72 ) duck#26 = phi( main::@30/duck#32, main::@39/duck#33 ) peephole#21 = phi( main::@30/peephole#26, main::@39/peephole#27 ) y#20 = phi( main::@30/y#19, main::@39/y#1 ) main::$84 = 4 & m main::$85 = main::$84 == 0 main::$86 = ! main::$85 if(main::$86) goto main::@32 to:main::@40 main::@39: scope:[main] from main::@30 n#66 = phi( main::@30/n#9 ) k#69 = phi( main::@30/k#68 ) hiscore#59 = phi( main::@30/hiscore#58 ) rem8u#66 = phi( main::@30/rem8u#65 ) tu#61 = phi( main::@30/tu#60 ) z#91 = phi( main::@30/z#90 ) time#37 = phi( main::@30/time#36 ) score#72 = phi( main::@30/score#71 ) duck#33 = phi( main::@30/duck#32 ) peephole#27 = phi( main::@30/peephole#26 ) y#10 = phi( main::@30/y#19 ) y#1 = ++ y#10 to:main::@31 main::@32: scope:[main] from main::@31 main::@40 n#54 = phi( main::@31/n#60, main::@40/n#61 ) k#56 = phi( main::@31/k#62, main::@40/k#63 ) hiscore#46 = phi( main::@31/hiscore#52, main::@40/hiscore#53 ) rem8u#50 = phi( main::@31/rem8u#57, main::@40/rem8u#58 ) tu#46 = phi( main::@31/tu#53, main::@40/tu#54 ) z#79 = phi( main::@31/z#85, main::@40/z#86 ) time#27 = phi( main::@31/time#31, main::@40/time#32 ) score#54 = phi( main::@31/score#63, main::@40/score#64 ) duck#19 = phi( main::@31/duck#26, main::@40/duck#27 ) peephole#16 = phi( main::@31/peephole#21, main::@40/peephole#22 ) y#21 = phi( main::@31/y#20, main::@40/y#2 ) main::$88 = 8 & m main::$89 = main::$88 == 0 main::$90 = ! main::$89 if(main::$90) goto main::@33 to:main::@41 main::@40: scope:[main] from main::@31 n#61 = phi( main::@31/n#60 ) k#63 = phi( main::@31/k#62 ) hiscore#53 = phi( main::@31/hiscore#52 ) rem8u#58 = phi( main::@31/rem8u#57 ) tu#54 = phi( main::@31/tu#53 ) z#86 = phi( main::@31/z#85 ) time#32 = phi( main::@31/time#31 ) score#64 = phi( main::@31/score#63 ) duck#27 = phi( main::@31/duck#26 ) peephole#22 = phi( main::@31/peephole#21 ) y#11 = phi( main::@31/y#20 ) main::$87 = y#11 - $16 y#2 = main::$87 to:main::@32 main::@33: scope:[main] from main::@32 main::@41 n#50 = phi( main::@32/n#54, main::@41/n#55 ) k#52 = phi( main::@32/k#56, main::@41/k#57 ) hiscore#42 = phi( main::@32/hiscore#46, main::@41/hiscore#47 ) rem8u#45 = phi( main::@32/rem8u#50, main::@41/rem8u#51 ) tu#40 = phi( main::@32/tu#46, main::@41/tu#47 ) z#72 = phi( main::@32/z#79, main::@41/z#80 ) time#23 = phi( main::@32/time#27, main::@41/time#28 ) score#45 = phi( main::@32/score#54, main::@41/score#55 ) duck#14 = phi( main::@32/duck#19, main::@41/duck#20 ) peephole#12 = phi( main::@32/peephole#16, main::@41/peephole#17 ) y#22 = phi( main::@32/y#21, main::@41/y#3 ) main::$92 = $20 & m main::$93 = main::$92 == 0 main::$94 = ! main::$93 if(main::$94) goto main::@34 to:main::@42 main::@41: scope:[main] from main::@32 n#55 = phi( main::@32/n#54 ) k#57 = phi( main::@32/k#56 ) hiscore#47 = phi( main::@32/hiscore#46 ) rem8u#51 = phi( main::@32/rem8u#50 ) tu#47 = phi( main::@32/tu#46 ) z#80 = phi( main::@32/z#79 ) time#28 = phi( main::@32/time#27 ) score#55 = phi( main::@32/score#54 ) duck#20 = phi( main::@32/duck#19 ) peephole#17 = phi( main::@32/peephole#16 ) y#12 = phi( main::@32/y#21 ) main::$91 = y#12 + $16 y#3 = main::$91 to:main::@33 main::@34: scope:[main] from main::@33 main::@36 n#47 = phi( main::@33/n#50, main::@36/n#51 ) k#49 = phi( main::@33/k#52, main::@36/k#53 ) hiscore#39 = phi( main::@33/hiscore#42, main::@36/hiscore#43 ) rem8u#41 = phi( main::@33/rem8u#45, main::@36/rem8u#46 ) score#73 = phi( main::@33/score#45, main::@36/score#81 ) tu#34 = phi( main::@33/tu#40, main::@36/tu#41 ) time#33 = phi( main::@33/time#23, main::@36/time#38 ) duck#21 = phi( main::@33/duck#14, main::@36/duck#28 ) z#62 = phi( main::@33/z#72, main::@36/z#73 ) peephole#13 = phi( main::@33/peephole#12, main::@36/peephole#18 ) y#13 = phi( main::@33/y#22, main::@36/y#23 ) main::$103 = *((char *)y#13) != brick main::$104 = y#13 + 1 main::$105 = *((char *)main::$104) != brick main::$106 = main::$103 && main::$105 main::$107 = y#13 + $16 main::$108 = *((char *)main::$107) != brick main::$109 = main::$106 && main::$108 main::$110 = y#13 + $17 main::$111 = *((char *)main::$110) != brick main::$112 = main::$109 && main::$111 main::$113 = y#13 > $1e16 main::$114 = main::$112 && main::$113 main::$115 = y#13 < $1fe3 main::$116 = main::$114 && main::$115 main::$117 = ! main::$116 if(main::$117) goto main::@37 to:main::@44 main::@42: scope:[main] from main::@33 n#68 = phi( main::@33/n#50 ) k#71 = phi( main::@33/k#52 ) hiscore#61 = phi( main::@33/hiscore#42 ) rem8u#68 = phi( main::@33/rem8u#45 ) tu#63 = phi( main::@33/tu#40 ) y#38 = phi( main::@33/y#22 ) z#61 = phi( main::@33/z#72 ) time#20 = phi( main::@33/time#23 ) score#34 = phi( main::@33/score#45 ) duck#8 = phi( main::@33/duck#14 ) peephole#6 = phi( main::@33/peephole#12 ) *((char *)$900d) = $82 main::$95 = peephole#6 != duck#8 if(main::$95) goto main::@35 to:main::@43 main::@35: scope:[main] from main::@42 n#67 = phi( main::@42/n#68 ) k#70 = phi( main::@42/k#71 ) hiscore#60 = phi( main::@42/hiscore#61 ) rem8u#67 = phi( main::@42/rem8u#68 ) tu#62 = phi( main::@42/tu#63 ) time#45 = phi( main::@42/time#20 ) duck#44 = phi( main::@42/duck#8 ) peephole#33 = phi( main::@42/peephole#6 ) y#37 = phi( main::@42/y#38 ) z#60 = phi( main::@42/z#61 ) score#21 = phi( main::@42/score#34 ) main::$100 = score#21 - $a score#6 = main::$100 call write_score to:main::@96 main::@96: scope:[main] from main::@35 n#62 = phi( main::@35/n#67 ) k#64 = phi( main::@35/k#70 ) hiscore#54 = phi( main::@35/hiscore#60 ) rem8u#59 = phi( main::@35/rem8u#67 ) tu#55 = phi( main::@35/tu#62 ) time#43 = phi( main::@35/time#45 ) duck#40 = phi( main::@35/duck#44 ) peephole#28 = phi( main::@35/peephole#33 ) y#32 = phi( main::@35/y#37 ) z#46 = phi( main::@35/z#60 ) score#22 = phi( main::@35/score#1 ) score#7 = score#22 wait::n#1 = $a call wait to:main::@97 main::@97: scope:[main] from main::@96 n#56 = phi( main::@96/n#62 ) k#58 = phi( main::@96/k#64 ) hiscore#48 = phi( main::@96/hiscore#54 ) rem8u#52 = phi( main::@96/rem8u#59 ) score#88 = phi( main::@96/score#7 ) tu#48 = phi( main::@96/tu#55 ) time#41 = phi( main::@96/time#43 ) duck#34 = phi( main::@96/duck#40 ) peephole#23 = phi( main::@96/peephole#28 ) y#27 = phi( main::@96/y#32 ) z#31 = phi( main::@96/z#5 ) z#11 = z#31 to:main::@36 main::@43: scope:[main] from main::@42 n#63 = phi( main::@42/n#68 ) k#65 = phi( main::@42/k#71 ) hiscore#55 = phi( main::@42/hiscore#61 ) rem8u#60 = phi( main::@42/rem8u#68 ) tu#56 = phi( main::@42/tu#63 ) duck#41 = phi( main::@42/duck#8 ) peephole#29 = phi( main::@42/peephole#6 ) y#33 = phi( main::@42/y#38 ) z#47 = phi( main::@42/z#61 ) score#23 = phi( main::@42/score#34 ) time#13 = phi( main::@42/time#20 ) main::$96 = $c - time#13 main::$97 = main::$96 * $a main::$98 = score#23 + main::$97 score#8 = main::$98 wait::n#2 = $a call wait to:main::@98 main::@98: scope:[main] from main::@43 n#57 = phi( main::@43/n#63 ) k#59 = phi( main::@43/k#65 ) hiscore#49 = phi( main::@43/hiscore#55 ) rem8u#53 = phi( main::@43/rem8u#60 ) score#89 = phi( main::@43/score#8 ) tu#49 = phi( main::@43/tu#56 ) duck#35 = phi( main::@43/duck#41 ) peephole#24 = phi( main::@43/peephole#29 ) y#28 = phi( main::@43/y#33 ) z#32 = phi( main::@43/z#5 ) z#12 = z#32 time#4 = $a to:main::@36 main::@36: scope:[main] from main::@97 main::@98 n#51 = phi( main::@97/n#56, main::@98/n#57 ) k#53 = phi( main::@97/k#58, main::@98/k#59 ) hiscore#43 = phi( main::@97/hiscore#48, main::@98/hiscore#49 ) rem8u#46 = phi( main::@97/rem8u#52, main::@98/rem8u#53 ) score#81 = phi( main::@97/score#88, main::@98/score#89 ) tu#41 = phi( main::@97/tu#48, main::@98/tu#49 ) time#38 = phi( main::@97/time#41, main::@98/time#4 ) duck#28 = phi( main::@97/duck#34, main::@98/duck#35 ) z#73 = phi( main::@97/z#11, main::@98/z#12 ) peephole#18 = phi( main::@97/peephole#23, main::@98/peephole#24 ) y#23 = phi( main::@97/y#27, main::@98/y#28 ) *((char *)$900d) = 0 to:main::@34 main::@37: scope:[main] from main::@34 main::@44 n#45 = phi( main::@34/n#47, main::@44/n#48 ) k#47 = phi( main::@34/k#49, main::@44/k#50 ) hiscore#37 = phi( main::@34/hiscore#39, main::@44/hiscore#40 ) rem8u#38 = phi( main::@34/rem8u#41, main::@44/rem8u#42 ) score#65 = phi( main::@34/score#73, main::@44/score#74 ) tu#29 = phi( main::@34/tu#34, main::@44/tu#35 ) time#29 = phi( main::@34/time#33, main::@44/time#34 ) duck#15 = phi( main::@34/duck#21, main::@44/duck#22 ) z#48 = phi( main::@34/z#62, main::@44/z#63 ) peephole#7 = phi( main::@34/peephole#13, main::@44/peephole#1 ) y#4 = peephole#7 *((char *)peephole#7) = $fd main::$125 = peephole#7 + c *((char *)main::$125) = 1 main::$126 = peephole#7 + 1 *((char *)main::$126) = $ed main::$127 = peephole#7 + 1 main::$128 = main::$127 + c *((char *)main::$128) = 1 main::$129 = peephole#7 + $16 *((char *)main::$129) = $ee main::$130 = peephole#7 + $16 main::$131 = main::$130 + c *((char *)main::$131) = 1 main::$132 = peephole#7 + $17 *((char *)main::$132) = $f0 main::$133 = peephole#7 + $17 main::$134 = main::$133 + c *((char *)main::$134) = 1 wait::n#3 = 5 call wait to:main::@99 main::@99: scope:[main] from main::@37 n#43 = phi( main::@37/n#45 ) k#45 = phi( main::@37/k#47 ) hiscore#35 = phi( main::@37/hiscore#37 ) peephole#43 = phi( main::@37/peephole#7 ) y#41 = phi( main::@37/y#4 ) rem8u#35 = phi( main::@37/rem8u#38 ) score#56 = phi( main::@37/score#65 ) tu#25 = phi( main::@37/tu#29 ) time#24 = phi( main::@37/time#29 ) duck#9 = phi( main::@37/duck#15 ) z#33 = phi( main::@37/z#5 ) z#13 = z#33 *((char *)duck#9) = 0 main::$136 = duck#9 + c *((char *)main::$136) = 7 main::$137 = duck#9 + 1 *((char *)main::$137) = 1 main::$138 = duck#9 + 1 main::$139 = main::$138 + c *((char *)main::$139) = 7 main::$140 = duck#9 + $16 *((char *)main::$140) = 2 main::$141 = duck#9 + $16 main::$142 = main::$141 + c *((char *)main::$142) = 7 main::$143 = duck#9 + $17 *((char *)main::$143) = 3 main::$144 = duck#9 + $17 main::$145 = main::$144 + c *((char *)main::$145) = 7 wait::n#4 = 5 call wait to:main::@100 main::@100: scope:[main] from main::@99 n#40 = phi( main::@99/n#43 ) k#42 = phi( main::@99/k#45 ) hiscore#32 = phi( main::@99/hiscore#35 ) peephole#39 = phi( main::@99/peephole#43 ) duck#30 = phi( main::@99/duck#9 ) y#35 = phi( main::@99/y#41 ) rem8u#31 = phi( main::@99/rem8u#35 ) score#43 = phi( main::@99/score#56 ) tu#19 = phi( main::@99/tu#25 ) time#17 = phi( main::@99/time#24 ) z#34 = phi( main::@99/z#5 ) z#14 = z#34 to:main::@27 main::@44: scope:[main] from main::@34 n#48 = phi( main::@34/n#47 ) k#50 = phi( main::@34/k#49 ) hiscore#40 = phi( main::@34/hiscore#39 ) rem8u#42 = phi( main::@34/rem8u#41 ) score#74 = phi( main::@34/score#73 ) tu#35 = phi( main::@34/tu#34 ) time#34 = phi( main::@34/time#33 ) duck#22 = phi( main::@34/duck#21 ) z#63 = phi( main::@34/z#62 ) y#14 = phi( main::@34/y#13 ) peephole#8 = phi( main::@34/peephole#13 ) main::$118 = peephole#8 + c *((char *)main::$118) = 0 main::$119 = peephole#8 + c main::$120 = main::$119 + 1 *((char *)main::$120) = 0 main::$121 = peephole#8 + c main::$122 = main::$121 + $16 *((char *)main::$122) = 0 main::$123 = peephole#8 + c main::$124 = main::$123 + $17 *((char *)main::$124) = 0 peephole#1 = y#14 to:main::@37 main::@45: scope:[main] from main::@95 y#77 = phi( main::@95/y#66 ) rem8u#91 = phi( main::@95/rem8u#78 ) time#57 = phi( main::@95/time#58 ) duck#58 = phi( main::@95/duck#7 ) tu#85 = phi( main::@95/tu#9 ) peephole#66 = phi( main::@95/peephole#68 ) n#35 = phi( main::@95/n#36 ) k#37 = phi( main::@95/k#38 ) hiscore#27 = phi( main::@95/hiscore#28 ) score#99 = phi( main::@95/score#101 ) z#49 = phi( main::@95/z#10 ) clear_screen::n#2 = 4 clear_screen::m#2 = 0 call clear_screen to:main::@101 main::@101: scope:[main] from main::@45 y#75 = phi( main::@45/y#77 ) rem8u#89 = phi( main::@45/rem8u#91 ) time#56 = phi( main::@45/time#57 ) duck#57 = phi( main::@45/duck#58 ) tu#84 = phi( main::@45/tu#85 ) peephole#64 = phi( main::@45/peephole#66 ) n#34 = phi( main::@45/n#35 ) k#36 = phi( main::@45/k#37 ) hiscore#26 = phi( main::@45/hiscore#27 ) score#95 = phi( main::@45/score#99 ) z#35 = phi( main::@45/z#2 ) z#15 = z#35 *((char *)$9005) = $f0 chrout::petscii = lower call chrout to:main::@102 main::@102: scope:[main] from main::@101 y#71 = phi( main::@101/y#75 ) rem8u#87 = phi( main::@101/rem8u#89 ) time#55 = phi( main::@101/time#56 ) duck#56 = phi( main::@101/duck#57 ) tu#83 = phi( main::@101/tu#84 ) peephole#62 = phi( main::@101/peephole#64 ) n#33 = phi( main::@101/n#34 ) k#35 = phi( main::@101/k#36 ) z#122 = phi( main::@101/z#15 ) hiscore#24 = phi( main::@101/hiscore#26 ) score#90 = phi( main::@101/score#95 ) textcolor::color#3 = 7 call textcolor textcolor::return#5 = textcolor::return#1 to:main::@103 main::@103: scope:[main] from main::@102 y#67 = phi( main::@102/y#71 ) rem8u#83 = phi( main::@102/rem8u#87 ) time#54 = phi( main::@102/time#55 ) duck#55 = phi( main::@102/duck#56 ) tu#82 = phi( main::@102/tu#83 ) peephole#60 = phi( main::@102/peephole#62 ) n#32 = phi( main::@102/n#33 ) k#34 = phi( main::@102/k#35 ) z#119 = phi( main::@102/z#122 ) hiscore#22 = phi( main::@102/hiscore#24 ) score#82 = phi( main::@102/score#90 ) cputs::s#4 = game_over call cputs to:main::@104 main::@104: scope:[main] from main::@103 y#64 = phi( main::@103/y#67 ) rem8u#79 = phi( main::@103/rem8u#83 ) time#53 = phi( main::@103/time#54 ) duck#54 = phi( main::@103/duck#55 ) tu#80 = phi( main::@103/tu#82 ) peephole#57 = phi( main::@103/peephole#60 ) n#31 = phi( main::@103/n#32 ) k#33 = phi( main::@103/k#34 ) z#117 = phi( main::@103/z#119 ) hiscore#20 = phi( main::@103/hiscore#22 ) score#75 = phi( main::@103/score#82 ) textcolor::color#4 = 2 call textcolor textcolor::return#6 = textcolor::return#1 to:main::@105 main::@105: scope:[main] from main::@104 y#62 = phi( main::@104/y#64 ) rem8u#76 = phi( main::@104/rem8u#79 ) time#52 = phi( main::@104/time#53 ) duck#53 = phi( main::@104/duck#54 ) tu#78 = phi( main::@104/tu#80 ) peephole#54 = phi( main::@104/peephole#57 ) n#30 = phi( main::@104/n#31 ) k#32 = phi( main::@104/k#33 ) z#115 = phi( main::@104/z#117 ) hiscore#18 = phi( main::@104/hiscore#20 ) score#66 = phi( main::@104/score#75 ) cputs::s#5 = your_score call cputs to:main::@106 main::@106: scope:[main] from main::@105 y#60 = phi( main::@105/y#62 ) rem8u#74 = phi( main::@105/rem8u#76 ) time#51 = phi( main::@105/time#52 ) duck#52 = phi( main::@105/duck#53 ) tu#76 = phi( main::@105/tu#78 ) peephole#51 = phi( main::@105/peephole#54 ) n#29 = phi( main::@105/n#30 ) k#31 = phi( main::@105/k#32 ) z#113 = phi( main::@105/z#115 ) hiscore#16 = phi( main::@105/hiscore#18 ) score#57 = phi( main::@105/score#66 ) cputs::s#6 = buffer call cputs to:main::@107 main::@107: scope:[main] from main::@106 y#58 = phi( main::@106/y#60 ) rem8u#72 = phi( main::@106/rem8u#74 ) time#50 = phi( main::@106/time#51 ) duck#51 = phi( main::@106/duck#52 ) tu#74 = phi( main::@106/tu#76 ) peephole#49 = phi( main::@106/peephole#51 ) n#28 = phi( main::@106/n#29 ) k#30 = phi( main::@106/k#31 ) z#111 = phi( main::@106/z#113 ) hiscore#13 = phi( main::@106/hiscore#16 ) score#46 = phi( main::@106/score#57 ) textcolor::color#5 = 3 call textcolor textcolor::return#7 = textcolor::return#1 to:main::@108 main::@108: scope:[main] from main::@107 y#55 = phi( main::@107/y#58 ) rem8u#69 = phi( main::@107/rem8u#72 ) time#49 = phi( main::@107/time#50 ) duck#50 = phi( main::@107/duck#51 ) tu#70 = phi( main::@107/tu#74 ) peephole#47 = phi( main::@107/peephole#49 ) n#27 = phi( main::@107/n#28 ) k#29 = phi( main::@107/k#30 ) z#108 = phi( main::@107/z#111 ) hiscore#10 = phi( main::@107/hiscore#13 ) score#35 = phi( main::@107/score#46 ) cputs::s#7 = high_score call cputs to:main::@109 main::@109: scope:[main] from main::@108 y#51 = phi( main::@108/y#55 ) rem8u#61 = phi( main::@108/rem8u#69 ) time#47 = phi( main::@108/time#49 ) duck#48 = phi( main::@108/duck#50 ) tu#64 = phi( main::@108/tu#70 ) peephole#44 = phi( main::@108/peephole#47 ) n#25 = phi( main::@108/n#27 ) k#27 = phi( main::@108/k#29 ) z#104 = phi( main::@108/z#108 ) hiscore#5 = phi( main::@108/hiscore#10 ) score#24 = phi( main::@108/score#35 ) main::$167 = score#24 > hiscore#5 main::$168 = ! main::$167 if(main::$168) goto main::@48 to:main::@46 main::@48: scope:[main] from main::@109 main::@46 y#48 = phi( main::@109/y#51, main::@46/y#52 ) rem8u#54 = phi( main::@109/rem8u#61, main::@46/rem8u#62 ) time#46 = phi( main::@109/time#47, main::@46/time#48 ) duck#47 = phi( main::@109/duck#48, main::@46/duck#49 ) tu#57 = phi( main::@109/tu#64, main::@46/tu#65 ) score#96 = phi( main::@109/score#24, main::@46/score#25 ) peephole#41 = phi( main::@109/peephole#44, main::@46/peephole#45 ) n#24 = phi( main::@109/n#25, main::@46/n#26 ) k#26 = phi( main::@109/k#27, main::@46/k#28 ) z#101 = phi( main::@109/z#104, main::@46/z#105 ) hiscore#6 = phi( main::@109/hiscore#5, main::@46/hiscore#0 ) utoa::value#2 = hiscore#6 utoa::buffer#6 = buffer utoa::radix#1 = $a call utoa to:main::@110 main::@110: scope:[main] from main::@48 hiscore#25 = phi( main::@48/hiscore#6 ) y#46 = phi( main::@48/y#48 ) rem8u#47 = phi( main::@48/rem8u#54 ) time#44 = phi( main::@48/time#46 ) duck#46 = phi( main::@48/duck#47 ) tu#50 = phi( main::@48/tu#57 ) score#91 = phi( main::@48/score#96 ) peephole#38 = phi( main::@48/peephole#41 ) n#23 = phi( main::@48/n#24 ) k#25 = phi( main::@48/k#26 ) z#97 = phi( main::@48/z#101 ) cputs::s#8 = buffer call cputs to:main::@111 main::@111: scope:[main] from main::@110 hiscore#23 = phi( main::@110/hiscore#25 ) y#44 = phi( main::@110/y#46 ) rem8u#43 = phi( main::@110/rem8u#47 ) time#42 = phi( main::@110/time#44 ) duck#45 = phi( main::@110/duck#46 ) tu#42 = phi( main::@110/tu#50 ) score#83 = phi( main::@110/score#91 ) peephole#36 = phi( main::@110/peephole#38 ) n#22 = phi( main::@110/n#23 ) k#24 = phi( main::@110/k#25 ) z#92 = phi( main::@110/z#97 ) textcolor::color#6 = 1 call textcolor textcolor::return#8 = textcolor::return#1 to:main::@112 main::@112: scope:[main] from main::@111 hiscore#21 = phi( main::@111/hiscore#23 ) y#42 = phi( main::@111/y#44 ) rem8u#39 = phi( main::@111/rem8u#43 ) time#39 = phi( main::@111/time#42 ) duck#42 = phi( main::@111/duck#45 ) tu#36 = phi( main::@111/tu#42 ) score#76 = phi( main::@111/score#83 ) peephole#34 = phi( main::@111/peephole#36 ) n#21 = phi( main::@111/n#22 ) k#23 = phi( main::@111/k#24 ) z#87 = phi( main::@111/z#92 ) cputs::s#9 = play_again call cputs to:main::@113 main::@113: scope:[main] from main::@112 hiscore#19 = phi( main::@112/hiscore#21 ) y#39 = phi( main::@112/y#42 ) rem8u#36 = phi( main::@112/rem8u#39 ) time#35 = phi( main::@112/time#39 ) duck#36 = phi( main::@112/duck#42 ) tu#30 = phi( main::@112/tu#36 ) score#67 = phi( main::@112/score#76 ) peephole#30 = phi( main::@112/peephole#34 ) n#20 = phi( main::@112/n#21 ) k#22 = phi( main::@112/k#23 ) z#81 = phi( main::@112/z#87 ) to:main::@49 main::@46: scope:[main] from main::@109 y#52 = phi( main::@109/y#51 ) rem8u#62 = phi( main::@109/rem8u#61 ) time#48 = phi( main::@109/time#47 ) duck#49 = phi( main::@109/duck#48 ) tu#65 = phi( main::@109/tu#64 ) peephole#45 = phi( main::@109/peephole#44 ) n#26 = phi( main::@109/n#25 ) k#28 = phi( main::@109/k#27 ) z#105 = phi( main::@109/z#104 ) score#25 = phi( main::@109/score#24 ) hiscore#0 = score#25 to:main::@48 main::@49: scope:[main] from main::@113 main::@49 hiscore#17 = phi( main::@113/hiscore#19, main::@49/hiscore#17 ) y#34 = phi( main::@113/y#39, main::@49/y#34 ) rem8u#33 = phi( main::@113/rem8u#36, main::@49/rem8u#33 ) time#30 = phi( main::@113/time#35, main::@49/time#30 ) duck#29 = phi( main::@113/duck#36, main::@49/duck#29 ) tu#26 = phi( main::@113/tu#30, main::@49/tu#26 ) score#58 = phi( main::@113/score#67, main::@49/score#58 ) peephole#25 = phi( main::@113/peephole#30, main::@49/peephole#25 ) n#19 = phi( main::@113/n#20, main::@49/n#19 ) k#19 = phi( main::@113/k#22, main::@49/k#19 ) z#74 = phi( main::@113/z#81, main::@49/z#74 ) j#6 = *((char *)$c5) main::$173 = j#6 != $b main::$174 = j#6 != $1c main::$175 = main::$173 && main::$174 if(main::$175) goto main::@49 to:main::@50 main::@50: scope:[main] from main::@49 hiscore#14 = phi( main::@49/hiscore#17 ) y#29 = phi( main::@49/y#34 ) rem8u#29 = phi( main::@49/rem8u#33 ) time#25 = phi( main::@49/time#30 ) duck#23 = phi( main::@49/duck#29 ) tu#21 = phi( main::@49/tu#26 ) score#47 = phi( main::@49/score#58 ) peephole#19 = phi( main::@49/peephole#25 ) n#17 = phi( main::@49/n#19 ) k#15 = phi( main::@49/k#19 ) z#56 = phi( main::@49/z#74 ) j#19 = phi( main::@49/j#6 ) main::$176 = j#19 == $b if(main::$176) goto main::@3 to:main::@51 main::@51: scope:[main] from main::@50 hiscore#11 = phi( main::@50/hiscore#14 ) y#24 = phi( main::@50/y#29 ) rem8u#26 = phi( main::@50/rem8u#29 ) time#21 = phi( main::@50/time#25 ) duck#16 = phi( main::@50/duck#23 ) j#24 = phi( main::@50/j#19 ) tu#16 = phi( main::@50/tu#21 ) score#36 = phi( main::@50/score#47 ) peephole#14 = phi( main::@50/peephole#19 ) n#15 = phi( main::@50/n#17 ) k#12 = phi( main::@50/k#15 ) z#50 = phi( main::@50/z#56 ) asm { jsr$FD22 } to:main::@return main::@return: scope:[main] from main::@51 hiscore#7 = phi( main::@51/hiscore#11 ) y#15 = phi( main::@51/y#24 ) rem8u#19 = phi( main::@51/rem8u#26 ) time#14 = phi( main::@51/time#21 ) duck#10 = phi( main::@51/duck#16 ) j#20 = phi( main::@51/j#24 ) tu#10 = phi( main::@51/tu#16 ) score#26 = phi( main::@51/score#36 ) peephole#9 = phi( main::@51/peephole#14 ) n#10 = phi( main::@51/n#15 ) k#8 = phi( main::@51/k#12 ) z#36 = phi( main::@51/z#50 ) z#16 = z#36 k#2 = k#8 n#3 = n#10 peephole#2 = peephole#9 score#9 = score#26 tu#2 = tu#10 j#7 = j#20 duck#2 = duck#10 time#5 = time#14 rem8u#8 = rem8u#19 y#5 = y#15 hiscore#1 = hiscore#7 return to:@return void __start() __start: scope:[__start] from to:__start::__init1 __start::__init1: scope:[__start] from __start conio_cursor_x = 0 conio_cursor_y = 0 conio_line_text = DEFAULT_SCREEN conio_line_color = COLORRAM conio_textcolor = LIGHT_BLUE conio_scroll_enable = 1 rem8u#9 = 0 j#8 = 0 k#3 = 0 l = 0 m = 0 n#4 = 0 tu#3 = 0 duck#3 = 0 peephole#3 = 0 y#6 = 0 z#17 = 0 time#6 = 0 score#10 = 0 hiscore#2 = 0 call conio_c64_init to:__start::@2 __start::@2: scope:[__start] from __start::__init1 hiscore#15 = phi( __start::__init1/hiscore#2 ) y#30 = phi( __start::__init1/y#6 ) rem8u#30 = phi( __start::__init1/rem8u#9 ) time#26 = phi( __start::__init1/time#6 ) duck#24 = phi( __start::__init1/duck#3 ) j#26 = phi( __start::__init1/j#8 ) tu#22 = phi( __start::__init1/tu#3 ) score#48 = phi( __start::__init1/score#10 ) peephole#20 = phi( __start::__init1/peephole#3 ) n#18 = phi( __start::__init1/n#4 ) k#16 = phi( __start::__init1/k#3 ) z#64 = phi( __start::__init1/z#17 ) to:__start::@1 __start::@1: scope:[__start] from __start::@2 hiscore#12 = phi( __start::@2/hiscore#15 ) y#25 = phi( __start::@2/y#30 ) rem8u#27 = phi( __start::@2/rem8u#30 ) time#22 = phi( __start::@2/time#26 ) duck#17 = phi( __start::@2/duck#24 ) j#25 = phi( __start::@2/j#26 ) tu#17 = phi( __start::@2/tu#22 ) score#37 = phi( __start::@2/score#48 ) peephole#15 = phi( __start::@2/peephole#20 ) n#16 = phi( __start::@2/n#18 ) k#13 = phi( __start::@2/k#16 ) z#51 = phi( __start::@2/z#64 ) call main to:__start::@3 __start::@3: scope:[__start] from __start::@1 hiscore#8 = phi( __start::@1/hiscore#1 ) y#16 = phi( __start::@1/y#5 ) rem8u#20 = phi( __start::@1/rem8u#8 ) time#15 = phi( __start::@1/time#5 ) duck#11 = phi( __start::@1/duck#2 ) j#21 = phi( __start::@1/j#7 ) tu#11 = phi( __start::@1/tu#2 ) score#27 = phi( __start::@1/score#9 ) peephole#10 = phi( __start::@1/peephole#2 ) n#11 = phi( __start::@1/n#3 ) k#9 = phi( __start::@1/k#2 ) z#37 = phi( __start::@1/z#16 ) z#18 = z#37 k#4 = k#9 n#5 = n#11 peephole#4 = peephole#10 score#11 = score#27 tu#4 = tu#11 j#9 = j#21 duck#4 = duck#11 time#7 = time#15 rem8u#10 = rem8u#20 y#7 = y#16 hiscore#3 = hiscore#8 to:__start::@return __start::@return: scope:[__start] from __start::@3 hiscore#9 = phi( __start::@3/hiscore#3 ) score#28 = phi( __start::@3/score#11 ) time#16 = phi( __start::@3/time#7 ) z#38 = phi( __start::@3/z#18 ) y#17 = phi( __start::@3/y#7 ) peephole#11 = phi( __start::@3/peephole#4 ) duck#12 = phi( __start::@3/duck#4 ) tu#12 = phi( __start::@3/tu#4 ) n#12 = phi( __start::@3/n#5 ) k#10 = phi( __start::@3/k#4 ) j#22 = phi( __start::@3/j#9 ) rem8u#21 = phi( __start::@3/rem8u#10 ) rem8u#11 = rem8u#21 j#10 = j#22 k#5 = k#10 n#6 = n#12 tu#5 = tu#12 duck#5 = duck#12 peephole#5 = peephole#11 y#8 = y#17 z#19 = z#38 time#8 = time#16 score#12 = score#28 hiscore#4 = hiscore#9 return to:@return SYMBOL TABLE SSA __constant char BINARY = 2 __constant char * const COLORRAM = (char *)$d800 __constant char DECIMAL = $a __constant char * const DEFAULT_SCREEN = (char *)$400 __constant char DIGITS[] = "0123456789abcdef"z __constant char HEXADECIMAL = $10 __constant const char LIGHT_BLUE = $e __constant char OCTAL = 8 __constant char RADIX::BINARY = 2 __constant char RADIX::DECIMAL = $a __constant char RADIX::HEXADECIMAL = $10 __constant char RADIX::OCTAL = 8 __constant unsigned int RADIX_BINARY_VALUES[] = { $8000, $4000, $2000, $1000, $800, $400, $200, $100, $80, $40, $20, $10, 8, 4, 2 } __constant unsigned int RADIX_DECIMAL_VALUES[] = { $2710, $3e8, $64, $a } __constant unsigned int RADIX_HEXADECIMAL_VALUES[] = { $1000, $100, $10 } __constant unsigned int RADIX_OCTAL_VALUES[] = { $8000, $1000, $200, $40, 8 } __constant char SIZEOF_UNSIGNED_INT = 2 void __start() __constant const char brick = $e6 __constant char buffer[] = { 0, 0, 0, 0 } __constant const unsigned int c = $7800 __constant const char chrono[] = { $54, $4d, $3a, $39 } void chrono_restart() void chrout(volatile char petscii) __loadstore volatile char chrout::petscii void clear_screen(char n , char m) bool clear_screen::$2 number clear_screen::$3 number clear_screen::$4 number clear_screen::$5 char clear_screen::m char clear_screen::m#0 char clear_screen::m#1 char clear_screen::m#2 char clear_screen::m#3 char clear_screen::m#4 char clear_screen::m#5 char clear_screen::n char clear_screen::n#0 char clear_screen::n#1 char clear_screen::n#2 char clear_screen::n#3 char clear_screen::n#4 char clear_screen::n#5 void conio_c64_init() bool conio_c64_init::$0 bool conio_c64_init::$1 __constant char * const conio_c64_init::BASIC_CURSOR_LINE = (char *)$d6 char conio_c64_init::line char conio_c64_init::line#0 char conio_c64_init::line#1 char conio_c64_init::line#2 __loadstore char conio_cursor_x __loadstore char conio_cursor_y __loadstore char *conio_line_color __loadstore char *conio_line_text __loadstore char conio_scroll_enable __loadstore char conio_textcolor void cputc(char c) bool cputc::$0 bool cputc::$1 bool cputc::$2 char cputc::c char cputc::c#0 char cputc::c#1 char cputc::c#2 void cputln() void cputs(const char *s) char cputs::$0 bool cputs::$2 char cputs::c char cputs::c#0 char cputs::c#1 char cputs::c#2 const char *cputs::s const char *cputs::s#0 const char *cputs::s#1 const char *cputs::s#10 const char *cputs::s#11 const char *cputs::s#12 const char *cputs::s#13 const char *cputs::s#2 const char *cputs::s#3 const char *cputs::s#4 const char *cputs::s#5 const char *cputs::s#6 const char *cputs::s#7 const char *cputs::s#8 const char *cputs::s#9 void cscroll() bool cscroll::$0 bool cscroll::$1 bool cscroll::$7 unsigned int div16u8u(unsigned int dividend , char divisor) char div16u8u::$0 char div16u8u::$2 unsigned int div16u8u::dividend unsigned int div16u8u::dividend#0 unsigned int div16u8u::dividend#1 unsigned int div16u8u::dividend#2 char div16u8u::divisor char div16u8u::divisor#0 char div16u8u::divisor#1 char div16u8u::divisor#2 unsigned int div16u8u::quotient unsigned int div16u8u::quotient#0 char div16u8u::quotient_hi char div16u8u::quotient_hi#0 char div16u8u::quotient_hi#1 char div16u8u::quotient_lo char div16u8u::quotient_lo#0 unsigned int div16u8u::return unsigned int div16u8u::return#0 unsigned int div16u8u::return#1 unsigned int div16u8u::return#2 unsigned int div16u8u::return#3 unsigned int div16u8u::return#4 char divr8u(char dividend , char divisor , char rem) char divr8u::$0 number divr8u::$1 bool divr8u::$10 bool divr8u::$2 bool divr8u::$3 number divr8u::$4 char divr8u::$5 char divr8u::$6 bool divr8u::$7 bool divr8u::$8 char divr8u::$9 char divr8u::dividend char divr8u::dividend#0 char divr8u::dividend#1 char divr8u::dividend#2 char divr8u::dividend#3 char divr8u::dividend#4 char divr8u::dividend#5 char divr8u::dividend#6 char divr8u::dividend#7 char divr8u::dividend#8 char divr8u::divisor char divr8u::divisor#0 char divr8u::divisor#1 char divr8u::divisor#2 char divr8u::divisor#3 char divr8u::divisor#4 char divr8u::divisor#5 char divr8u::divisor#6 char divr8u::divisor#7 char divr8u::i char divr8u::i#0 char divr8u::i#1 char divr8u::i#2 char divr8u::i#3 char divr8u::i#4 char divr8u::i#5 char divr8u::i#6 char divr8u::quotient char divr8u::quotient#0 char divr8u::quotient#1 char divr8u::quotient#2 char divr8u::quotient#3 char divr8u::quotient#4 char divr8u::quotient#5 char divr8u::quotient#6 char divr8u::quotient#7 char divr8u::quotient#8 char divr8u::rem char divr8u::rem#0 char divr8u::rem#1 char divr8u::rem#10 char divr8u::rem#11 char divr8u::rem#2 char divr8u::rem#3 char divr8u::rem#4 char divr8u::rem#5 char divr8u::rem#6 char divr8u::rem#7 char divr8u::rem#8 char divr8u::rem#9 char divr8u::return char divr8u::return#0 char divr8u::return#1 char divr8u::return#2 char divr8u::return#3 char divr8u::return#4 char divr8u::return#5 char divr8u::return#6 __constant const char down = $11 unsigned int duck unsigned int duck#0 unsigned int duck#1 unsigned int duck#10 unsigned int duck#11 unsigned int duck#12 unsigned int duck#13 unsigned int duck#14 unsigned int duck#15 unsigned int duck#16 unsigned int duck#17 unsigned int duck#18 unsigned int duck#19 unsigned int duck#2 unsigned int duck#20 unsigned int duck#21 unsigned int duck#22 unsigned int duck#23 unsigned int duck#24 unsigned int duck#25 unsigned int duck#26 unsigned int duck#27 unsigned int duck#28 unsigned int duck#29 unsigned int duck#3 unsigned int duck#30 unsigned int duck#31 unsigned int duck#32 unsigned int duck#33 unsigned int duck#34 unsigned int duck#35 unsigned int duck#36 unsigned int duck#37 unsigned int duck#38 unsigned int duck#39 unsigned int duck#4 unsigned int duck#40 unsigned int duck#41 unsigned int duck#42 unsigned int duck#43 unsigned int duck#44 unsigned int duck#45 unsigned int duck#46 unsigned int duck#47 unsigned int duck#48 unsigned int duck#49 unsigned int duck#5 unsigned int duck#50 unsigned int duck#51 unsigned int duck#52 unsigned int duck#53 unsigned int duck#54 unsigned int duck#55 unsigned int duck#56 unsigned int duck#57 unsigned int duck#58 unsigned int duck#6 unsigned int duck#7 unsigned int duck#8 unsigned int duck#9 __constant const char duck_udg[] = { $e, $1b, $3f, $1f, $f, 7, $f, $1f, 0, 0, 0, 0, 0, $c0, $70, $bc, $1f, $1d, $1e, $f, 3, 1, 1, 3, $ce, $1e, $7c, $f8, $e0, $40, $40, $e0, 0, 0, 0, 0, 0, 0, 0, 0 } __constant const char ducknumber[] = { $44, $55, $43, $4b, $3a } __constant const char foot[] = "PRESS: 1,3,5,7 or 9 " __constant const char game_over[] = " GAME OVER" void gotoxy(char x , char y) bool gotoxy::$0 bool gotoxy::$1 bool gotoxy::$2 bool gotoxy::$3 char *gotoxy::$5 char *gotoxy::$6 unsigned int gotoxy::$7 unsigned int gotoxy::line_offset unsigned int gotoxy::line_offset#0 char gotoxy::x char gotoxy::x#0 char gotoxy::x#1 char gotoxy::x#2 char gotoxy::x#3 char gotoxy::x#4 char gotoxy::x#5 char gotoxy::x#6 char gotoxy::x#7 char gotoxy::y char gotoxy::y#0 char gotoxy::y#1 char gotoxy::y#2 char gotoxy::y#3 char gotoxy::y#4 char gotoxy::y#5 char gotoxy::y#6 char gotoxy::y#7 __constant const char green = $1e __constant const char high_score[] = " Hi-Score: " unsigned int hiscore unsigned int hiscore#0 unsigned int hiscore#1 unsigned int hiscore#10 unsigned int hiscore#100 unsigned int hiscore#101 unsigned int hiscore#102 unsigned int hiscore#103 unsigned int hiscore#104 unsigned int hiscore#105 unsigned int hiscore#106 unsigned int hiscore#107 unsigned int hiscore#108 unsigned int hiscore#109 unsigned int hiscore#11 unsigned int hiscore#110 unsigned int hiscore#111 unsigned int hiscore#112 unsigned int hiscore#113 unsigned int hiscore#114 unsigned int hiscore#115 unsigned int hiscore#116 unsigned int hiscore#117 unsigned int hiscore#118 unsigned int hiscore#119 unsigned int hiscore#12 unsigned int hiscore#120 unsigned int hiscore#121 unsigned int hiscore#122 unsigned int hiscore#13 unsigned int hiscore#14 unsigned int hiscore#15 unsigned int hiscore#16 unsigned int hiscore#17 unsigned int hiscore#18 unsigned int hiscore#19 unsigned int hiscore#2 unsigned int hiscore#20 unsigned int hiscore#21 unsigned int hiscore#22 unsigned int hiscore#23 unsigned int hiscore#24 unsigned int hiscore#25 unsigned int hiscore#26 unsigned int hiscore#27 unsigned int hiscore#28 unsigned int hiscore#29 unsigned int hiscore#3 unsigned int hiscore#30 unsigned int hiscore#31 unsigned int hiscore#32 unsigned int hiscore#33 unsigned int hiscore#34 unsigned int hiscore#35 unsigned int hiscore#36 unsigned int hiscore#37 unsigned int hiscore#38 unsigned int hiscore#39 unsigned int hiscore#4 unsigned int hiscore#40 unsigned int hiscore#41 unsigned int hiscore#42 unsigned int hiscore#43 unsigned int hiscore#44 unsigned int hiscore#45 unsigned int hiscore#46 unsigned int hiscore#47 unsigned int hiscore#48 unsigned int hiscore#49 unsigned int hiscore#5 unsigned int hiscore#50 unsigned int hiscore#51 unsigned int hiscore#52 unsigned int hiscore#53 unsigned int hiscore#54 unsigned int hiscore#55 unsigned int hiscore#56 unsigned int hiscore#57 unsigned int hiscore#58 unsigned int hiscore#59 unsigned int hiscore#6 unsigned int hiscore#60 unsigned int hiscore#61 unsigned int hiscore#62 unsigned int hiscore#63 unsigned int hiscore#64 unsigned int hiscore#65 unsigned int hiscore#66 unsigned int hiscore#67 unsigned int hiscore#68 unsigned int hiscore#69 unsigned int hiscore#7 unsigned int hiscore#70 unsigned int hiscore#71 unsigned int hiscore#72 unsigned int hiscore#73 unsigned int hiscore#74 unsigned int hiscore#75 unsigned int hiscore#76 unsigned int hiscore#77 unsigned int hiscore#78 unsigned int hiscore#79 unsigned int hiscore#8 unsigned int hiscore#80 unsigned int hiscore#81 unsigned int hiscore#82 unsigned int hiscore#83 unsigned int hiscore#84 unsigned int hiscore#85 unsigned int hiscore#86 unsigned int hiscore#87 unsigned int hiscore#88 unsigned int hiscore#89 unsigned int hiscore#9 unsigned int hiscore#90 unsigned int hiscore#91 unsigned int hiscore#92 unsigned int hiscore#93 unsigned int hiscore#94 unsigned int hiscore#95 unsigned int hiscore#96 unsigned int hiscore#97 unsigned int hiscore#98 unsigned int hiscore#99 __constant const char home = $13 __constant const char intro[] = " DIFFICULTY ---------- " char j char j#0 char j#1 char j#10 char j#11 char j#12 char j#13 char j#14 char j#15 char j#16 char j#17 char j#18 char j#19 char j#2 char j#20 char j#21 char j#22 char j#23 char j#24 char j#25 char j#26 char j#3 char j#4 char j#5 char j#6 char j#7 char j#8 char j#9 char k char k#0 char k#1 char k#10 char k#100 char k#101 char k#102 char k#103 char k#104 char k#105 char k#11 char k#12 char k#13 char k#14 char k#15 char k#16 char k#17 char k#18 char k#19 char k#2 char k#20 char k#21 char k#22 char k#23 char k#24 char k#25 char k#26 char k#27 char k#28 char k#29 char k#3 char k#30 char k#31 char k#32 char k#33 char k#34 char k#35 char k#36 char k#37 char k#38 char k#39 char k#4 char k#40 char k#41 char k#42 char k#43 char k#44 char k#45 char k#46 char k#47 char k#48 char k#49 char k#5 char k#50 char k#51 char k#52 char k#53 char k#54 char k#55 char k#56 char k#57 char k#58 char k#59 char k#6 char k#60 char k#61 char k#62 char k#63 char k#64 char k#65 char k#66 char k#67 char k#68 char k#69 char k#7 char k#70 char k#71 char k#72 char k#73 char k#74 char k#75 char k#76 char k#77 char k#78 char k#79 char k#8 char k#80 char k#81 char k#82 char k#83 char k#84 char k#85 char k#86 char k#87 char k#88 char k#89 char k#9 char k#90 char k#91 char k#92 char k#93 char k#94 char k#95 char k#96 char k#97 char k#98 char k#99 __loadstore volatile char l __constant const char levels[] = "1.EASIEST 3.EASY 5.MEDIUM 7.HARD 9.EXPERT " __constant const char lock = 8 __constant const char lower = $e __loadstore volatile char m void main() number main::$100 bool main::$103 number main::$104 bool main::$105 bool main::$106 number main::$107 bool main::$108 bool main::$109 bool main::$11 number main::$110 bool main::$111 bool main::$112 bool main::$113 bool main::$114 bool main::$115 bool main::$116 bool main::$117 unsigned int main::$118 unsigned int main::$119 number main::$120 unsigned int main::$121 number main::$122 unsigned int main::$123 number main::$124 unsigned int main::$125 number main::$126 number main::$127 number main::$128 number main::$129 number main::$130 number main::$131 number main::$132 number main::$133 number main::$134 unsigned int main::$136 number main::$137 number main::$138 number main::$139 number main::$140 number main::$141 number main::$142 number main::$143 number main::$144 number main::$145 number main::$147 unsigned int main::$150 number main::$151 number main::$152 number main::$153 number main::$154 number main::$155 number main::$156 bool main::$157 bool main::$16 bool main::$167 bool main::$168 bool main::$173 bool main::$174 bool main::$175 bool main::$176 bool main::$18 bool main::$2 bool main::$23 bool main::$24 number main::$25 number main::$26 number main::$27 unsigned int main::$29 number main::$3 bool main::$30 bool main::$31 bool main::$32 unsigned int main::$35 number main::$36 bool main::$37 bool main::$44 bool main::$49 bool main::$54 number main::$57 number main::$61 number main::$62 bool main::$63 bool main::$64 bool main::$65 number main::$66 bool main::$67 bool main::$68 number main::$69 bool main::$70 bool main::$71 number main::$72 bool main::$73 bool main::$74 bool main::$76 number main::$78 bool main::$79 bool main::$80 number main::$81 bool main::$82 bool main::$83 number main::$84 bool main::$85 bool main::$86 number main::$87 number main::$88 bool main::$89 bool main::$90 number main::$91 number main::$92 bool main::$93 bool main::$94 bool main::$95 number main::$96 number main::$97 number main::$98 void * memcpy(void *destination , void *source , unsigned int num) bool memcpy::$1 char *memcpy::$2 void *memcpy::destination void *memcpy::destination#0 void *memcpy::destination#1 void *memcpy::destination#2 void *memcpy::destination#3 void *memcpy::destination#4 void *memcpy::destination#5 char *memcpy::dst char *memcpy::dst#0 char *memcpy::dst#1 char *memcpy::dst#2 char *memcpy::dst#3 unsigned int memcpy::num unsigned int memcpy::num#0 unsigned int memcpy::num#1 unsigned int memcpy::num#2 void *memcpy::return void *memcpy::return#0 void *memcpy::return#1 void *memcpy::return#2 void *memcpy::return#3 void *memcpy::return#4 void *memcpy::source void *memcpy::source#0 void *memcpy::source#1 void *memcpy::source#2 char *memcpy::src char *memcpy::src#0 char *memcpy::src#1 char *memcpy::src#2 char *memcpy::src#3 char *memcpy::src_end char *memcpy::src_end#0 char *memcpy::src_end#1 char *memcpy::src_end#2 void * memset(void *str , char c , unsigned int num) bool memset::$0 bool memset::$1 bool memset::$3 char *memset::$4 char memset::c char memset::c#0 char memset::c#1 char memset::c#2 char memset::c#3 char memset::c#4 char memset::c#5 char *memset::dst char *memset::dst#0 char *memset::dst#1 char *memset::dst#2 char *memset::dst#3 char *memset::end char *memset::end#0 char *memset::end#1 char *memset::end#2 unsigned int memset::num unsigned int memset::num#0 unsigned int memset::num#1 unsigned int memset::num#2 unsigned int memset::num#3 void *memset::return void *memset::return#0 void *memset::return#1 void *memset::return#2 void *memset::return#3 void *memset::return#4 void *memset::str void *memset::str#0 void *memset::str#1 void *memset::str#2 void *memset::str#3 void *memset::str#4 void *memset::str#5 void *memset::str#6 char n char n#0 char n#1 char n#10 char n#100 char n#101 char n#102 char n#103 char n#104 char n#105 char n#106 char n#107 char n#108 char n#109 char n#11 char n#110 char n#111 char n#112 char n#113 char n#114 char n#115 char n#116 char n#117 char n#118 char n#119 char n#12 char n#120 char n#121 char n#13 char n#14 char n#15 char n#16 char n#17 char n#18 char n#19 char n#2 char n#20 char n#21 char n#22 char n#23 char n#24 char n#25 char n#26 char n#27 char n#28 char n#29 char n#3 char n#30 char n#31 char n#32 char n#33 char n#34 char n#35 char n#36 char n#37 char n#38 char n#39 char n#4 char n#40 char n#41 char n#42 char n#43 char n#44 char n#45 char n#46 char n#47 char n#48 char n#49 char n#5 char n#50 char n#51 char n#52 char n#53 char n#54 char n#55 char n#56 char n#57 char n#58 char n#59 char n#6 char n#60 char n#61 char n#62 char n#63 char n#64 char n#65 char n#66 char n#67 char n#68 char n#69 char n#7 char n#70 char n#71 char n#72 char n#73 char n#74 char n#75 char n#76 char n#77 char n#78 char n#79 char n#8 char n#80 char n#81 char n#82 char n#83 char n#84 char n#85 char n#86 char n#87 char n#88 char n#89 char n#9 char n#90 char n#91 char n#92 char n#93 char n#94 char n#95 char n#96 char n#97 char n#98 char n#99 unsigned int peephole unsigned int peephole#0 unsigned int peephole#1 unsigned int peephole#10 unsigned int peephole#11 unsigned int peephole#12 unsigned int peephole#13 unsigned int peephole#14 unsigned int peephole#15 unsigned int peephole#16 unsigned int peephole#17 unsigned int peephole#18 unsigned int peephole#19 unsigned int peephole#2 unsigned int peephole#20 unsigned int peephole#21 unsigned int peephole#22 unsigned int peephole#23 unsigned int peephole#24 unsigned int peephole#25 unsigned int peephole#26 unsigned int peephole#27 unsigned int peephole#28 unsigned int peephole#29 unsigned int peephole#3 unsigned int peephole#30 unsigned int peephole#31 unsigned int peephole#32 unsigned int peephole#33 unsigned int peephole#34 unsigned int peephole#35 unsigned int peephole#36 unsigned int peephole#37 unsigned int peephole#38 unsigned int peephole#39 unsigned int peephole#4 unsigned int peephole#40 unsigned int peephole#41 unsigned int peephole#42 unsigned int peephole#43 unsigned int peephole#44 unsigned int peephole#45 unsigned int peephole#46 unsigned int peephole#47 unsigned int peephole#48 unsigned int peephole#49 unsigned int peephole#5 unsigned int peephole#50 unsigned int peephole#51 unsigned int peephole#52 unsigned int peephole#53 unsigned int peephole#54 unsigned int peephole#55 unsigned int peephole#56 unsigned int peephole#57 unsigned int peephole#58 unsigned int peephole#59 unsigned int peephole#6 unsigned int peephole#60 unsigned int peephole#61 unsigned int peephole#62 unsigned int peephole#63 unsigned int peephole#64 unsigned int peephole#65 unsigned int peephole#66 unsigned int peephole#67 unsigned int peephole#68 unsigned int peephole#69 unsigned int peephole#7 unsigned int peephole#70 unsigned int peephole#71 unsigned int peephole#72 unsigned int peephole#73 unsigned int peephole#74 unsigned int peephole#75 unsigned int peephole#76 unsigned int peephole#77 unsigned int peephole#78 unsigned int peephole#79 unsigned int peephole#8 unsigned int peephole#80 unsigned int peephole#81 unsigned int peephole#82 unsigned int peephole#83 unsigned int peephole#84 unsigned int peephole#85 unsigned int peephole#9 __constant const char play_again[] = " Play Again (Y/N)?" __constant char points[] = { 0, 0, 0, 0 } void random(char k , char n) bool random::$0 bool random::$1 bool random::$2 char random::k char random::k#0 char random::k#1 char random::k#2 char random::k#3 char random::k#4 char random::n char random::n#0 char random::n#1 char random::n#2 char random::n#3 char random::n#4 void read_chrono() number read_chrono::$0 number read_chrono::$1 unsigned int read_chrono::$2 bool read_chrono::$3 bool read_chrono::$4 number read_chrono::$5 __constant const char red = $1c char rem8u char rem8u#0 char rem8u#1 char rem8u#10 char rem8u#100 char rem8u#101 char rem8u#102 char rem8u#103 char rem8u#104 char rem8u#105 char rem8u#106 char rem8u#107 char rem8u#108 char rem8u#109 char rem8u#11 char rem8u#110 char rem8u#111 char rem8u#112 char rem8u#113 char rem8u#114 char rem8u#115 char rem8u#116 char rem8u#117 char rem8u#118 char rem8u#119 char rem8u#12 char rem8u#120 char rem8u#121 char rem8u#122 char rem8u#123 char rem8u#124 char rem8u#125 char rem8u#126 char rem8u#127 char rem8u#128 char rem8u#129 char rem8u#13 char rem8u#130 char rem8u#131 char rem8u#132 char rem8u#133 char rem8u#134 char rem8u#135 char rem8u#136 char rem8u#137 char rem8u#138 char rem8u#139 char rem8u#14 char rem8u#15 char rem8u#16 char rem8u#17 char rem8u#18 char rem8u#19 char rem8u#2 char rem8u#20 char rem8u#21 char rem8u#22 char rem8u#23 char rem8u#24 char rem8u#25 char rem8u#26 char rem8u#27 char rem8u#28 char rem8u#29 char rem8u#3 char rem8u#30 char rem8u#31 char rem8u#32 char rem8u#33 char rem8u#34 char rem8u#35 char rem8u#36 char rem8u#37 char rem8u#38 char rem8u#39 char rem8u#4 char rem8u#40 char rem8u#41 char rem8u#42 char rem8u#43 char rem8u#44 char rem8u#45 char rem8u#46 char rem8u#47 char rem8u#48 char rem8u#49 char rem8u#5 char rem8u#50 char rem8u#51 char rem8u#52 char rem8u#53 char rem8u#54 char rem8u#55 char rem8u#56 char rem8u#57 char rem8u#58 char rem8u#59 char rem8u#6 char rem8u#60 char rem8u#61 char rem8u#62 char rem8u#63 char rem8u#64 char rem8u#65 char rem8u#66 char rem8u#67 char rem8u#68 char rem8u#69 char rem8u#7 char rem8u#70 char rem8u#71 char rem8u#72 char rem8u#73 char rem8u#74 char rem8u#75 char rem8u#76 char rem8u#77 char rem8u#78 char rem8u#79 char rem8u#8 char rem8u#80 char rem8u#81 char rem8u#82 char rem8u#83 char rem8u#84 char rem8u#85 char rem8u#86 char rem8u#87 char rem8u#88 char rem8u#89 char rem8u#9 char rem8u#90 char rem8u#91 char rem8u#92 char rem8u#93 char rem8u#94 char rem8u#95 char rem8u#96 char rem8u#97 char rem8u#98 char rem8u#99 __constant const char reverse_on = $12 __constant const char right = $1d unsigned int score unsigned int score#0 unsigned int score#1 unsigned int score#10 unsigned int score#100 unsigned int score#101 unsigned int score#102 unsigned int score#103 unsigned int score#104 unsigned int score#105 unsigned int score#106 unsigned int score#107 unsigned int score#108 unsigned int score#11 unsigned int score#12 unsigned int score#13 unsigned int score#14 unsigned int score#15 unsigned int score#16 unsigned int score#17 unsigned int score#18 unsigned int score#19 unsigned int score#2 unsigned int score#20 unsigned int score#21 unsigned int score#22 unsigned int score#23 unsigned int score#24 unsigned int score#25 unsigned int score#26 unsigned int score#27 unsigned int score#28 unsigned int score#29 unsigned int score#3 unsigned int score#30 unsigned int score#31 unsigned int score#32 unsigned int score#33 unsigned int score#34 unsigned int score#35 unsigned int score#36 unsigned int score#37 unsigned int score#38 unsigned int score#39 unsigned int score#4 unsigned int score#40 unsigned int score#41 unsigned int score#42 unsigned int score#43 unsigned int score#44 unsigned int score#45 unsigned int score#46 unsigned int score#47 unsigned int score#48 unsigned int score#49 unsigned int score#5 unsigned int score#50 unsigned int score#51 unsigned int score#52 unsigned int score#53 unsigned int score#54 unsigned int score#55 unsigned int score#56 unsigned int score#57 unsigned int score#58 unsigned int score#59 unsigned int score#6 unsigned int score#60 unsigned int score#61 unsigned int score#62 unsigned int score#63 unsigned int score#64 unsigned int score#65 unsigned int score#66 unsigned int score#67 unsigned int score#68 unsigned int score#69 unsigned int score#7 unsigned int score#70 unsigned int score#71 unsigned int score#72 unsigned int score#73 unsigned int score#74 unsigned int score#75 unsigned int score#76 unsigned int score#77 unsigned int score#78 unsigned int score#79 unsigned int score#8 unsigned int score#80 unsigned int score#81 unsigned int score#82 unsigned int score#83 unsigned int score#84 unsigned int score#85 unsigned int score#86 unsigned int score#87 unsigned int score#88 unsigned int score#89 unsigned int score#9 unsigned int score#90 unsigned int score#91 unsigned int score#92 unsigned int score#93 unsigned int score#94 unsigned int score#95 unsigned int score#96 unsigned int score#97 unsigned int score#98 unsigned int score#99 char textcolor(char color) char textcolor::color char textcolor::color#0 char textcolor::color#1 char textcolor::color#2 char textcolor::color#3 char textcolor::color#4 char textcolor::color#5 char textcolor::color#6 char textcolor::color#7 char textcolor::old char textcolor::old#0 char textcolor::return char textcolor::return#0 char textcolor::return#1 char textcolor::return#2 char textcolor::return#3 char textcolor::return#4 char textcolor::return#5 char textcolor::return#6 char textcolor::return#7 char textcolor::return#8 char textcolor::return#9 unsigned int time unsigned int time#0 unsigned int time#1 unsigned int time#10 unsigned int time#11 unsigned int time#12 unsigned int time#13 unsigned int time#14 unsigned int time#15 unsigned int time#16 unsigned int time#17 unsigned int time#18 unsigned int time#19 unsigned int time#2 unsigned int time#20 unsigned int time#21 unsigned int time#22 unsigned int time#23 unsigned int time#24 unsigned int time#25 unsigned int time#26 unsigned int time#27 unsigned int time#28 unsigned int time#29 unsigned int time#3 unsigned int time#30 unsigned int time#31 unsigned int time#32 unsigned int time#33 unsigned int time#34 unsigned int time#35 unsigned int time#36 unsigned int time#37 unsigned int time#38 unsigned int time#39 unsigned int time#4 unsigned int time#40 unsigned int time#41 unsigned int time#42 unsigned int time#43 unsigned int time#44 unsigned int time#45 unsigned int time#46 unsigned int time#47 unsigned int time#48 unsigned int time#49 unsigned int time#5 unsigned int time#50 unsigned int time#51 unsigned int time#52 unsigned int time#53 unsigned int time#54 unsigned int time#55 unsigned int time#56 unsigned int time#57 unsigned int time#58 unsigned int time#59 unsigned int time#6 unsigned int time#60 unsigned int time#7 unsigned int time#8 unsigned int time#9 unsigned int tu unsigned int tu#0 unsigned int tu#1 unsigned int tu#10 unsigned int tu#11 unsigned int tu#12 unsigned int tu#13 unsigned int tu#14 unsigned int tu#15 unsigned int tu#16 unsigned int tu#17 unsigned int tu#18 unsigned int tu#19 unsigned int tu#2 unsigned int tu#20 unsigned int tu#21 unsigned int tu#22 unsigned int tu#23 unsigned int tu#24 unsigned int tu#25 unsigned int tu#26 unsigned int tu#27 unsigned int tu#28 unsigned int tu#29 unsigned int tu#3 unsigned int tu#30 unsigned int tu#31 unsigned int tu#32 unsigned int tu#33 unsigned int tu#34 unsigned int tu#35 unsigned int tu#36 unsigned int tu#37 unsigned int tu#38 unsigned int tu#39 unsigned int tu#4 unsigned int tu#40 unsigned int tu#41 unsigned int tu#42 unsigned int tu#43 unsigned int tu#44 unsigned int tu#45 unsigned int tu#46 unsigned int tu#47 unsigned int tu#48 unsigned int tu#49 unsigned int tu#5 unsigned int tu#50 unsigned int tu#51 unsigned int tu#52 unsigned int tu#53 unsigned int tu#54 unsigned int tu#55 unsigned int tu#56 unsigned int tu#57 unsigned int tu#58 unsigned int tu#59 unsigned int tu#6 unsigned int tu#60 unsigned int tu#61 unsigned int tu#62 unsigned int tu#63 unsigned int tu#64 unsigned int tu#65 unsigned int tu#66 unsigned int tu#67 unsigned int tu#68 unsigned int tu#69 unsigned int tu#7 unsigned int tu#70 unsigned int tu#71 unsigned int tu#72 unsigned int tu#73 unsigned int tu#74 unsigned int tu#75 unsigned int tu#76 unsigned int tu#77 unsigned int tu#78 unsigned int tu#79 unsigned int tu#8 unsigned int tu#80 unsigned int tu#81 unsigned int tu#82 unsigned int tu#83 unsigned int tu#84 unsigned int tu#85 unsigned int tu#9 void utoa(unsigned int value , char *buffer , char radix) bool utoa::$0 bool utoa::$1 char utoa::$10 char utoa::$11 bool utoa::$2 bool utoa::$3 number utoa::$4 bool utoa::$5 bool utoa::$6 bool utoa::$7 bool utoa::$8 unsigned int utoa::$9 char *utoa::buffer char *utoa::buffer#0 char *utoa::buffer#1 char *utoa::buffer#10 char *utoa::buffer#11 char *utoa::buffer#12 char *utoa::buffer#13 char *utoa::buffer#14 char *utoa::buffer#15 char *utoa::buffer#16 char *utoa::buffer#17 char *utoa::buffer#18 char *utoa::buffer#19 char *utoa::buffer#2 char *utoa::buffer#20 char *utoa::buffer#21 char *utoa::buffer#22 char *utoa::buffer#3 char *utoa::buffer#4 char *utoa::buffer#5 char *utoa::buffer#6 char *utoa::buffer#7 char *utoa::buffer#8 char *utoa::buffer#9 char utoa::digit char utoa::digit#0 char utoa::digit#1 char utoa::digit#2 char utoa::digit#3 char utoa::digit#4 char utoa::digit#5 char utoa::digit#6 unsigned int utoa::digit_value unsigned int utoa::digit_value#0 unsigned int utoa::digit_value#1 unsigned int *utoa::digit_values unsigned int *utoa::digit_values#0 unsigned int *utoa::digit_values#1 unsigned int *utoa::digit_values#10 unsigned int *utoa::digit_values#2 unsigned int *utoa::digit_values#3 unsigned int *utoa::digit_values#4 unsigned int *utoa::digit_values#5 unsigned int *utoa::digit_values#6 unsigned int *utoa::digit_values#7 unsigned int *utoa::digit_values#8 unsigned int *utoa::digit_values#9 char utoa::max_digits char utoa::max_digits#0 char utoa::max_digits#1 char utoa::max_digits#10 char utoa::max_digits#2 char utoa::max_digits#3 char utoa::max_digits#4 char utoa::max_digits#5 char utoa::max_digits#6 char utoa::max_digits#7 char utoa::max_digits#8 char utoa::max_digits#9 char utoa::radix char utoa::radix#0 char utoa::radix#1 char utoa::radix#2 char utoa::radix#3 char utoa::radix#4 char utoa::radix#5 char utoa::started char utoa::started#0 char utoa::started#1 char utoa::started#2 char utoa::started#3 char utoa::started#4 unsigned int utoa::value unsigned int utoa::value#0 unsigned int utoa::value#1 unsigned int utoa::value#10 unsigned int utoa::value#11 unsigned int utoa::value#12 unsigned int utoa::value#13 unsigned int utoa::value#14 unsigned int utoa::value#15 unsigned int utoa::value#16 unsigned int utoa::value#2 unsigned int utoa::value#3 unsigned int utoa::value#4 unsigned int utoa::value#5 unsigned int utoa::value#6 unsigned int utoa::value#7 unsigned int utoa::value#8 unsigned int utoa::value#9 unsigned int utoa_append(char *buffer , unsigned int value , unsigned int sub) bool utoa_append::$0 char *utoa_append::buffer char *utoa_append::buffer#0 char *utoa_append::buffer#1 char *utoa_append::buffer#2 char *utoa_append::buffer#3 char *utoa_append::buffer#4 char utoa_append::digit char utoa_append::digit#0 char utoa_append::digit#1 char utoa_append::digit#2 char utoa_append::digit#3 char utoa_append::digit#4 unsigned int utoa_append::return unsigned int utoa_append::return#0 unsigned int utoa_append::return#1 unsigned int utoa_append::return#2 unsigned int utoa_append::return#3 unsigned int utoa_append::return#4 unsigned int utoa_append::sub unsigned int utoa_append::sub#0 unsigned int utoa_append::sub#1 unsigned int utoa_append::sub#2 unsigned int utoa_append::sub#3 unsigned int utoa_append::value unsigned int utoa_append::value#0 unsigned int utoa_append::value#1 unsigned int utoa_append::value#2 unsigned int utoa_append::value#3 unsigned int utoa_append::value#4 unsigned int utoa_append::value#5 void wait(char n) bool wait::$0 bool wait::$1 char wait::n char wait::n#0 char wait::n#1 char wait::n#10 char wait::n#2 char wait::n#3 char wait::n#4 char wait::n#5 char wait::n#6 char wait::n#7 char wait::n#8 char wait::n#9 void write_score() bool write_score::$0 bool write_score::$1 bool write_score::$10 bool write_score::$3 bool write_score::$4 bool write_score::$5 bool write_score::$6 bool write_score::$9 unsigned int y unsigned int y#0 unsigned int y#1 unsigned int y#10 unsigned int y#100 unsigned int y#101 unsigned int y#102 unsigned int y#103 unsigned int y#104 unsigned int y#105 unsigned int y#106 unsigned int y#107 unsigned int y#108 unsigned int y#109 unsigned int y#11 unsigned int y#110 unsigned int y#111 unsigned int y#112 unsigned int y#113 unsigned int y#114 unsigned int y#115 unsigned int y#116 unsigned int y#117 unsigned int y#118 unsigned int y#119 unsigned int y#12 unsigned int y#120 unsigned int y#121 unsigned int y#122 unsigned int y#123 unsigned int y#124 unsigned int y#125 unsigned int y#126 unsigned int y#13 unsigned int y#14 unsigned int y#15 unsigned int y#16 unsigned int y#17 unsigned int y#18 unsigned int y#19 unsigned int y#2 unsigned int y#20 unsigned int y#21 unsigned int y#22 unsigned int y#23 unsigned int y#24 unsigned int y#25 unsigned int y#26 unsigned int y#27 unsigned int y#28 unsigned int y#29 unsigned int y#3 unsigned int y#30 unsigned int y#31 unsigned int y#32 unsigned int y#33 unsigned int y#34 unsigned int y#35 unsigned int y#36 unsigned int y#37 unsigned int y#38 unsigned int y#39 unsigned int y#4 unsigned int y#40 unsigned int y#41 unsigned int y#42 unsigned int y#43 unsigned int y#44 unsigned int y#45 unsigned int y#46 unsigned int y#47 unsigned int y#48 unsigned int y#49 unsigned int y#5 unsigned int y#50 unsigned int y#51 unsigned int y#52 unsigned int y#53 unsigned int y#54 unsigned int y#55 unsigned int y#56 unsigned int y#57 unsigned int y#58 unsigned int y#59 unsigned int y#6 unsigned int y#60 unsigned int y#61 unsigned int y#62 unsigned int y#63 unsigned int y#64 unsigned int y#65 unsigned int y#66 unsigned int y#67 unsigned int y#68 unsigned int y#69 unsigned int y#7 unsigned int y#70 unsigned int y#71 unsigned int y#72 unsigned int y#73 unsigned int y#74 unsigned int y#75 unsigned int y#76 unsigned int y#77 unsigned int y#78 unsigned int y#79 unsigned int y#8 unsigned int y#80 unsigned int y#81 unsigned int y#82 unsigned int y#83 unsigned int y#84 unsigned int y#85 unsigned int y#86 unsigned int y#87 unsigned int y#88 unsigned int y#89 unsigned int y#9 unsigned int y#90 unsigned int y#91 unsigned int y#92 unsigned int y#93 unsigned int y#94 unsigned int y#95 unsigned int y#96 unsigned int y#97 unsigned int y#98 unsigned int y#99 __constant const char yellow = $9e __constant const char your_score[] = " Your Score: " unsigned int z unsigned int z#0 unsigned int z#1 unsigned int z#10 unsigned int z#100 unsigned int z#101 unsigned int z#102 unsigned int z#103 unsigned int z#104 unsigned int z#105 unsigned int z#106 unsigned int z#107 unsigned int z#108 unsigned int z#109 unsigned int z#11 unsigned int z#110 unsigned int z#111 unsigned int z#112 unsigned int z#113 unsigned int z#114 unsigned int z#115 unsigned int z#116 unsigned int z#117 unsigned int z#118 unsigned int z#119 unsigned int z#12 unsigned int z#120 unsigned int z#121 unsigned int z#122 unsigned int z#123 unsigned int z#124 unsigned int z#125 unsigned int z#126 unsigned int z#127 unsigned int z#128 unsigned int z#129 unsigned int z#13 unsigned int z#130 unsigned int z#131 unsigned int z#132 unsigned int z#133 unsigned int z#134 unsigned int z#135 unsigned int z#136 unsigned int z#14 unsigned int z#15 unsigned int z#16 unsigned int z#17 unsigned int z#18 unsigned int z#19 unsigned int z#2 unsigned int z#20 unsigned int z#21 unsigned int z#22 unsigned int z#23 unsigned int z#24 unsigned int z#25 unsigned int z#26 unsigned int z#27 unsigned int z#28 unsigned int z#29 unsigned int z#3 unsigned int z#30 unsigned int z#31 unsigned int z#32 unsigned int z#33 unsigned int z#34 unsigned int z#35 unsigned int z#36 unsigned int z#37 unsigned int z#38 unsigned int z#39 unsigned int z#4 unsigned int z#40 unsigned int z#41 unsigned int z#42 unsigned int z#43 unsigned int z#44 unsigned int z#45 unsigned int z#46 unsigned int z#47 unsigned int z#48 unsigned int z#49 unsigned int z#5 unsigned int z#50 unsigned int z#51 unsigned int z#52 unsigned int z#53 unsigned int z#54 unsigned int z#55 unsigned int z#56 unsigned int z#57 unsigned int z#58 unsigned int z#59 unsigned int z#6 unsigned int z#60 unsigned int z#61 unsigned int z#62 unsigned int z#63 unsigned int z#64 unsigned int z#65 unsigned int z#66 unsigned int z#67 unsigned int z#68 unsigned int z#69 unsigned int z#7 unsigned int z#70 unsigned int z#71 unsigned int z#72 unsigned int z#73 unsigned int z#74 unsigned int z#75 unsigned int z#76 unsigned int z#77 unsigned int z#78 unsigned int z#79 unsigned int z#8 unsigned int z#80 unsigned int z#81 unsigned int z#82 unsigned int z#83 unsigned int z#84 unsigned int z#85 unsigned int z#86 unsigned int z#87 unsigned int z#88 unsigned int z#89 unsigned int z#9 unsigned int z#90 unsigned int z#91 unsigned int z#92 unsigned int z#93 unsigned int z#94 unsigned int z#95 unsigned int z#96 unsigned int z#97 unsigned int z#98 unsigned int z#99 Adding number conversion cast (unumber) 0 in memset::$0 = memset::num#2 > 0 Adding number conversion cast (unumber) 5 in utoa::max_digits#1 = 5 Adding number conversion cast (unumber) 4 in utoa::max_digits#2 = 4 Adding number conversion cast (unumber) 6 in utoa::max_digits#3 = 6 Adding number conversion cast (unumber) $10 in utoa::max_digits#4 = $10 Adding number conversion cast (unumber) 0 in *utoa::buffer#2 = 0 Adding number conversion cast (unumber) 1 in utoa::$4 = utoa::max_digits#5 - 1 Adding number conversion cast (unumber) utoa::$4 in utoa::$4 = utoa::max_digits#5 - (unumber)1 Adding number conversion cast (unumber) 0 in *utoa::buffer#3 = 0 Adding number conversion cast (unumber) 1 in utoa::started#1 = 1 Adding number conversion cast (unumber) $19 in gotoxy::$0 = gotoxy::y#4 > $19 Adding number conversion cast (unumber) $28 in gotoxy::$2 = gotoxy::x#4 >= $28 Adding number conversion cast (unumber) 0 in gotoxy::y#0 = 0 Adding number conversion cast (unumber) $28 in gotoxy::line_offset#0 = gotoxy::$7 * $28 Adding number conversion cast (unumber) 0 in gotoxy::x#0 = 0 Adding number conversion cast (unumber) $28 in cputc::$1 = conio_cursor_x == $28 Adding number conversion cast (unumber) $28 in conio_line_text = conio_line_text + $28 Adding number conversion cast (unumber) $28 in conio_line_color = conio_line_color + $28 Adding number conversion cast (unumber) 0 in conio_cursor_x = 0 Adding number conversion cast (unumber) 0 in cputs::$2 = 0 != cputs::$0 Adding number conversion cast (unumber) $19 in cscroll::$0 = conio_cursor_y == $19 Adding number conversion cast (unumber) 0 in cscroll::$7 = 0 != conio_scroll_enable Adding number conversion cast (unumber) $28 in memcpy::source#0 = (void *)DEFAULT_SCREEN+$28 Adding number conversion cast (unumber) $19*$28-$28 in memcpy::num#0 = $19*$28-$28 Adding number conversion cast (unumber) $28 in memcpy::source#1 = (void *)COLORRAM+$28 Adding number conversion cast (unumber) $19*$28-$28 in memcpy::num#1 = $19*$28-$28 Adding number conversion cast (unumber) $28 in memset::str#0 = (void *)DEFAULT_SCREEN+$19*$28-$28 Adding number conversion cast (unumber) $19*$28 in memset::str#0 = (void *)DEFAULT_SCREEN+$19*$28-(unumber)$28 Adding number conversion cast (unumber) $28 in memset::num#0 = $28 Adding number conversion cast (unumber) $28 in memset::str#1 = (void *)COLORRAM+$19*$28-$28 Adding number conversion cast (unumber) $19*$28 in memset::str#1 = (void *)COLORRAM+$19*$28-(unumber)$28 Adding number conversion cast (unumber) $28 in memset::num#1 = $28 Adding number conversion cast (unumber) $28 in conio_line_text = conio_line_text - $28 Adding number conversion cast (unumber) $28 in conio_line_color = conio_line_color - $28 Adding number conversion cast (unumber) 0 in gotoxy::x#1 = 0 Adding number conversion cast (unumber) 0 in gotoxy::y#1 = 0 Adding number conversion cast (unumber) $19 in conio_c64_init::$0 = conio_c64_init::line#0 >= $19 Adding number conversion cast (unumber) 0 in gotoxy::x#2 = 0 Adding number conversion cast (unumber) $19-1 in conio_c64_init::line#1 = $19-1 Adding number conversion cast (unumber) 1 in divr8u::$0 = divr8u::rem#5 << 1 Adding number conversion cast (unumber) $80 in divr8u::$1 = divr8u::dividend#3 & $80 Adding number conversion cast (unumber) divr8u::$1 in divr8u::$1 = divr8u::dividend#3 & (unumber)$80 Adding number conversion cast (unumber) 0 in divr8u::$2 = divr8u::$1 != 0 Adding number conversion cast (unumber) 1 in divr8u::$5 = divr8u::dividend#4 << 1 Adding number conversion cast (unumber) 1 in divr8u::$6 = divr8u::quotient#3 << 1 Adding number conversion cast (unumber) 1 in divr8u::$4 = divr8u::rem#7 | 1 Adding number conversion cast (unumber) divr8u::$4 in divr8u::$4 = divr8u::rem#7 | (unumber)1 Adding number conversion cast (unumber) 0 in divr8u::rem#3 = 0 Adding number conversion cast (unumber) 0 in z#0 = 0 Adding number conversion cast (unumber) $1fa in clear_screen::$2 = z#20 < $1fa Adding number conversion cast (unumber) $1e00 in clear_screen::$3 = $1e00 + z#21 Adding number conversion cast (unumber) clear_screen::$3 in clear_screen::$3 = (unumber)$1e00 + z#21 Adding number conversion cast (unumber) clear_screen::$4 in clear_screen::$4 = clear_screen::$3 + c Adding number conversion cast (unumber) $1e00 in clear_screen::$5 = $1e00 + z#21 Adding number conversion cast (unumber) clear_screen::$5 in clear_screen::$5 = (unumber)$1e00 + z#21 Adding number conversion cast (unumber) 0 in gotoxy::x#3 = 0 Adding number conversion cast (unumber) 0 in gotoxy::y#3 = 0 Adding number conversion cast (unumber) $fde8 in write_score::$0 = score#13 > $fde8 Adding number conversion cast (unumber) 0 in m = 0 Adding number conversion cast (unumber) 0 in score#0 = 0 Adding number conversion cast (unumber) 4 in write_score::$9 = m < 4 Adding number conversion cast (unumber) $a in utoa::radix#0 = $a Adding number conversion cast (unumber) 9 in write_score::$3 = score#15 > 9 Adding number conversion cast (unumber) $63 in write_score::$5 = score#16 > $63 Adding number conversion cast (unumber) 0 in points[2] = buffer[0] Adding number conversion cast (unumber) 2 in points[2] = buffer[(unumber)0] Adding number conversion cast (unumber) 1 in points[3] = buffer[1] Adding number conversion cast (unumber) 3 in points[3] = buffer[(unumber)1] Adding number conversion cast (unumber) 4 in *((char *)$d3) = 4 Adding number conversion cast (unumber) 0 in m = 0 Adding number conversion cast (unumber) 0 in points[1] = buffer[0] Adding number conversion cast (unumber) 1 in points[1] = buffer[(unumber)0] Adding number conversion cast (unumber) 1 in points[2] = buffer[1] Adding number conversion cast (unumber) 2 in points[2] = buffer[(unumber)1] Adding number conversion cast (unumber) 2 in points[3] = buffer[2] Adding number conversion cast (unumber) 3 in points[3] = buffer[(unumber)2] Adding number conversion cast (unumber) 4 in write_score::$10 = m < 4 Adding number conversion cast (unumber) 0 in m = 0 Adding number conversion cast (unumber) 0 in z#3 = 0 Adding number conversion cast (unumber) $21c in wait::$1 = z#23 < $21c Adding number conversion cast (unumber) $100 in read_chrono::$0 = m * $100 Adding number conversion cast (unumber) read_chrono::$0 in read_chrono::$0 = m * (unumber)$100 Adding number conversion cast (unumber) read_chrono::$1 in read_chrono::$1 = read_chrono::$0 + l Adding number conversion cast (unumber) $3c in div16u8u::divisor#0 = $3c Adding number conversion cast (unumber) 7 in *((char *)$1e15+c) = 7 Adding number conversion cast (unumber) $1e15 in *((char *)$1e15+c) = ((unumber)) 7 Adding number conversion cast (unumber) $b9 in *((char *)$1e15) = $b9 Adding number conversion cast (unumber) $a in read_chrono::$3 = time#0 < $a Adding number conversion cast (unumber) $b9 in read_chrono::$5 = $b9 - time#9 Adding number conversion cast (unumber) read_chrono::$5 in read_chrono::$5 = (unumber)$b9 - time#9 Adding number conversion cast (unumber) 8 in *((char *)$900f) = 8 Adding number conversion cast (unumber) 0 in m = 0 Adding number conversion cast (unumber) $28 in main::$2 = m < $28 Adding number conversion cast (unumber) $1c00 in main::$3 = $1c00 + m Adding number conversion cast (unumber) main::$3 in main::$3 = (unumber)$1c00 + m Adding number conversion cast (unumber) $20 in clear_screen::n#0 = $20 Adding number conversion cast (unumber) 0 in clear_screen::m#0 = 0 Adding number conversion cast (unumber) 7 in textcolor::color#0 = 7 Adding number conversion cast (unumber) 1 in textcolor::color#1 = 1 Adding number conversion cast (unumber) 2 in textcolor::color#2 = 2 Adding number conversion cast (unumber) 5 in main::$11 = l > 5 Adding number conversion cast (unumber) 4 in clear_screen::n#1 = 4 Adding number conversion cast (unumber) 0 in clear_screen::m#1 = 0 Adding number conversion cast (unumber) $ff in *((char *)$9005) = $ff Adding number conversion cast (unumber) 1 in k#0 = 1 Adding number conversion cast (unumber) $16 in main::$16 = k#6 < $16 Adding number conversion cast (unumber) 2 in n#0 = 2 Adding number conversion cast (unumber) 2 in *((char *)$1ff9+c) = 2 Adding number conversion cast (unumber) $1ff9 in *((char *)$1ff9+c) = ((unumber)) 2 Adding number conversion cast (unumber) 1 in z#8 = 1 Adding number conversion cast (unumber) 1 in main::$23 = l > 1 Adding number conversion cast (unumber) $16 in main::$18 = n#7 < $16 Adding number conversion cast (unumber) $1f1f in peephole#0 = $1f1f Adding number conversion cast (unumber) $f in *((char *)$900e) = $f Adding number conversion cast (unumber) 0 in score#2 = 0 Adding number conversion cast (unumber) 1 in tu#0 = 1 Adding number conversion cast (unumber) $50 in chrout::petscii = $50 Adding number conversion cast (unumber) $54 in chrout::petscii = $54 Adding number conversion cast (unumber) $53 in chrout::petscii = $53 Adding number conversion cast (unumber) $3a in chrout::petscii = $3a Adding number conversion cast (unumber) $12 in *((char *)$d3) = $12 Adding number conversion cast (unumber) 0 in j#0 = 0 Adding number conversion cast (unumber) 7 in main::$25 = 7 - l Adding number conversion cast (unumber) main::$25 in main::$25 = (unumber)7 - l Adding number conversion cast (unumber) 3 in main::$26 = 3 * l Adding number conversion cast (unumber) main::$26 in main::$26 = (unumber)3 * l Adding number conversion cast (unumber) $1a in main::$27 = $1a - main::$26 Adding number conversion cast (unumber) main::$27 in main::$27 = (unumber)$1a - main::$26 Adding number conversion cast (unumber) $1f9 in main::$30 = main::$29 > $1f9 Adding number conversion cast (unumber) 1 in j#1 = 1 Adding number conversion cast (unumber) 1 in main::$36 = main::$35 + 1 Adding number conversion cast (unumber) main::$36 in main::$36 = main::$35 + (unumber)1 Adding number conversion cast (unumber) $1fa in main::$37 = z#9 < $1fa Adding number conversion cast (unumber) 4 in main::$44 = j#13 < 4 Adding number conversion cast (unumber) $a in *((char *)$d3) = $a Adding number conversion cast (unumber) 0 in j#4 = 0 Adding number conversion cast (unumber) 5 in main::$49 = j#16 < 5 Adding number conversion cast (unumber) $f in *((char *)$d3) = $f Adding number conversion cast (unumber) $a in main::$54 = tu#6 < $a Adding number conversion cast (unumber) $30 in main::$57 = $30 + tu#7 Adding number conversion cast (unumber) main::$57 in main::$57 = (unumber)$30 + tu#7 Adding number conversion cast (unumber) $31 in chrout::petscii = $31 Adding number conversion cast (unumber) $30 in chrout::petscii = $30 Adding number conversion cast (unumber) 0 in random::k#1 = 0 Adding number conversion cast (unumber) $ff in random::n#1 = $ff Adding number conversion cast (unumber) 0 in random::k#2 = 0 Adding number conversion cast (unumber) $ff in random::n#2 = $ff Adding number conversion cast (unumber) $1e15 in main::$61 = m + $1e15 Adding number conversion cast (unumber) main::$61 in main::$61 = m + (unumber)$1e15 Adding number conversion cast (unumber) main::$62 in main::$62 = main::$61 + duck#6 Adding number conversion cast (unumber) $1fe3 in main::$63 = duck#1 > $1fe3 Adding number conversion cast (unumber) 1 in main::$66 = duck#1 + 1 Adding number conversion cast (unumber) main::$66 in main::$66 = duck#1 + (unumber)1 Adding number conversion cast (unumber) $16 in main::$69 = duck#1 + $16 Adding number conversion cast (unumber) main::$69 in main::$69 = duck#1 + (unumber)$16 Adding number conversion cast (unumber) $17 in main::$72 = duck#1 + $17 Adding number conversion cast (unumber) main::$72 in main::$72 = duck#1 + (unumber)$17 Adding number conversion cast (unumber) 0 in time#2 = 0 Adding number conversion cast (unumber) $a in main::$76 = time#11 < $a Adding number conversion cast (unumber) $7f in *((char *)$9122) = $7f Adding number conversion cast (unumber) $ff in *((char *)$9122) = $ff Adding number conversion cast (unumber) $10 in main::$78 = $10 & m Adding number conversion cast (unumber) main::$78 in main::$78 = (unumber)$10 & m Adding number conversion cast (unumber) 0 in main::$79 = main::$78 == 0 Adding number conversion cast (unumber) $a in main::$147 = score#19 - $a Adding number conversion cast (unumber) main::$147 in main::$147 = score#19 - (unumber)$a Adding number conversion cast (unumber) $82 in *((char *)$900d) = $82 Adding number conversion cast (unumber) $14 in wait::n#0 = $14 Adding number conversion cast (unumber) 0 in *((char *)$900d) = 0 Adding number conversion cast (unumber) 0 in *((char *)main::$150) = 0 Adding number conversion cast (unumber) 1 in main::$151 = duck#7 + 1 Adding number conversion cast (unumber) main::$151 in main::$151 = duck#7 + (unumber)1 Adding number conversion cast (unumber) main::$152 in main::$152 = main::$151 + c Adding number conversion cast (unumber) 0 in *((char *)main::$152) = 0 Adding number conversion cast (unumber) $16 in main::$153 = duck#7 + $16 Adding number conversion cast (unumber) main::$153 in main::$153 = duck#7 + (unumber)$16 Adding number conversion cast (unumber) main::$154 in main::$154 = main::$153 + c Adding number conversion cast (unumber) 0 in *((char *)main::$154) = 0 Adding number conversion cast (unumber) $17 in main::$155 = duck#7 + $17 Adding number conversion cast (unumber) main::$155 in main::$155 = duck#7 + (unumber)$17 Adding number conversion cast (unumber) main::$156 in main::$156 = main::$155 + c Adding number conversion cast (unumber) 0 in *((char *)main::$156) = 0 Adding number conversion cast (unumber) $b in main::$157 = tu#9 < $b Adding number conversion cast (unumber) $80 in main::$81 = $80 & n#9 Adding number conversion cast (unumber) main::$81 in main::$81 = (unumber)$80 & n#9 Adding number conversion cast (unumber) 0 in main::$82 = main::$81 == 0 Adding number conversion cast (unumber) 4 in main::$84 = 4 & m Adding number conversion cast (unumber) main::$84 in main::$84 = (unumber)4 & m Adding number conversion cast (unumber) 0 in main::$85 = main::$84 == 0 Adding number conversion cast (unumber) 8 in main::$88 = 8 & m Adding number conversion cast (unumber) main::$88 in main::$88 = (unumber)8 & m Adding number conversion cast (unumber) 0 in main::$89 = main::$88 == 0 Adding number conversion cast (unumber) $16 in main::$87 = y#11 - $16 Adding number conversion cast (unumber) main::$87 in main::$87 = y#11 - (unumber)$16 Adding number conversion cast (unumber) $20 in main::$92 = $20 & m Adding number conversion cast (unumber) main::$92 in main::$92 = (unumber)$20 & m Adding number conversion cast (unumber) 0 in main::$93 = main::$92 == 0 Adding number conversion cast (unumber) $16 in main::$91 = y#12 + $16 Adding number conversion cast (unumber) main::$91 in main::$91 = y#12 + (unumber)$16 Adding number conversion cast (unumber) 1 in main::$104 = y#13 + 1 Adding number conversion cast (unumber) main::$104 in main::$104 = y#13 + (unumber)1 Adding number conversion cast (unumber) $16 in main::$107 = y#13 + $16 Adding number conversion cast (unumber) main::$107 in main::$107 = y#13 + (unumber)$16 Adding number conversion cast (unumber) $17 in main::$110 = y#13 + $17 Adding number conversion cast (unumber) main::$110 in main::$110 = y#13 + (unumber)$17 Adding number conversion cast (unumber) $1e16 in main::$113 = y#13 > $1e16 Adding number conversion cast (unumber) $1fe3 in main::$115 = y#13 < $1fe3 Adding number conversion cast (unumber) $82 in *((char *)$900d) = $82 Adding number conversion cast (unumber) $a in main::$100 = score#21 - $a Adding number conversion cast (unumber) main::$100 in main::$100 = score#21 - (unumber)$a Adding number conversion cast (unumber) $a in wait::n#1 = $a Adding number conversion cast (unumber) $c in main::$96 = $c - time#13 Adding number conversion cast (unumber) main::$96 in main::$96 = (unumber)$c - time#13 Adding number conversion cast (unumber) $a in main::$97 = main::$96 * $a Adding number conversion cast (unumber) main::$97 in main::$97 = main::$96 * (unumber)$a Adding number conversion cast (unumber) main::$98 in main::$98 = score#23 + main::$97 Adding number conversion cast (unumber) $a in wait::n#2 = $a Adding number conversion cast (unumber) $a in time#4 = $a Adding number conversion cast (unumber) 0 in *((char *)$900d) = 0 Adding number conversion cast (unumber) $fd in *((char *)peephole#7) = $fd Adding number conversion cast (unumber) 1 in *((char *)main::$125) = 1 Adding number conversion cast (unumber) 1 in main::$126 = peephole#7 + 1 Adding number conversion cast (unumber) main::$126 in main::$126 = peephole#7 + (unumber)1 Adding number conversion cast (unumber) $ed in *((char *)main::$126) = $ed Adding number conversion cast (unumber) 1 in main::$127 = peephole#7 + 1 Adding number conversion cast (unumber) main::$127 in main::$127 = peephole#7 + (unumber)1 Adding number conversion cast (unumber) main::$128 in main::$128 = main::$127 + c Adding number conversion cast (unumber) 1 in *((char *)main::$128) = 1 Adding number conversion cast (unumber) $16 in main::$129 = peephole#7 + $16 Adding number conversion cast (unumber) main::$129 in main::$129 = peephole#7 + (unumber)$16 Adding number conversion cast (unumber) $ee in *((char *)main::$129) = $ee Adding number conversion cast (unumber) $16 in main::$130 = peephole#7 + $16 Adding number conversion cast (unumber) main::$130 in main::$130 = peephole#7 + (unumber)$16 Adding number conversion cast (unumber) main::$131 in main::$131 = main::$130 + c Adding number conversion cast (unumber) 1 in *((char *)main::$131) = 1 Adding number conversion cast (unumber) $17 in main::$132 = peephole#7 + $17 Adding number conversion cast (unumber) main::$132 in main::$132 = peephole#7 + (unumber)$17 Adding number conversion cast (unumber) $f0 in *((char *)main::$132) = $f0 Adding number conversion cast (unumber) $17 in main::$133 = peephole#7 + $17 Adding number conversion cast (unumber) main::$133 in main::$133 = peephole#7 + (unumber)$17 Adding number conversion cast (unumber) main::$134 in main::$134 = main::$133 + c Adding number conversion cast (unumber) 1 in *((char *)main::$134) = 1 Adding number conversion cast (unumber) 5 in wait::n#3 = 5 Adding number conversion cast (unumber) 0 in *((char *)duck#9) = 0 Adding number conversion cast (unumber) 7 in *((char *)main::$136) = 7 Adding number conversion cast (unumber) 1 in main::$137 = duck#9 + 1 Adding number conversion cast (unumber) main::$137 in main::$137 = duck#9 + (unumber)1 Adding number conversion cast (unumber) 1 in *((char *)main::$137) = 1 Adding number conversion cast (unumber) 1 in main::$138 = duck#9 + 1 Adding number conversion cast (unumber) main::$138 in main::$138 = duck#9 + (unumber)1 Adding number conversion cast (unumber) main::$139 in main::$139 = main::$138 + c Adding number conversion cast (unumber) 7 in *((char *)main::$139) = 7 Adding number conversion cast (unumber) $16 in main::$140 = duck#9 + $16 Adding number conversion cast (unumber) main::$140 in main::$140 = duck#9 + (unumber)$16 Adding number conversion cast (unumber) 2 in *((char *)main::$140) = 2 Adding number conversion cast (unumber) $16 in main::$141 = duck#9 + $16 Adding number conversion cast (unumber) main::$141 in main::$141 = duck#9 + (unumber)$16 Adding number conversion cast (unumber) main::$142 in main::$142 = main::$141 + c Adding number conversion cast (unumber) 7 in *((char *)main::$142) = 7 Adding number conversion cast (unumber) $17 in main::$143 = duck#9 + $17 Adding number conversion cast (unumber) main::$143 in main::$143 = duck#9 + (unumber)$17 Adding number conversion cast (unumber) 3 in *((char *)main::$143) = 3 Adding number conversion cast (unumber) $17 in main::$144 = duck#9 + $17 Adding number conversion cast (unumber) main::$144 in main::$144 = duck#9 + (unumber)$17 Adding number conversion cast (unumber) main::$145 in main::$145 = main::$144 + c Adding number conversion cast (unumber) 7 in *((char *)main::$145) = 7 Adding number conversion cast (unumber) 5 in wait::n#4 = 5 Adding number conversion cast (unumber) 0 in *((char *)main::$118) = 0 Adding number conversion cast (unumber) 1 in main::$120 = main::$119 + 1 Adding number conversion cast (unumber) main::$120 in main::$120 = main::$119 + (unumber)1 Adding number conversion cast (unumber) 0 in *((char *)main::$120) = 0 Adding number conversion cast (unumber) $16 in main::$122 = main::$121 + $16 Adding number conversion cast (unumber) main::$122 in main::$122 = main::$121 + (unumber)$16 Adding number conversion cast (unumber) 0 in *((char *)main::$122) = 0 Adding number conversion cast (unumber) $17 in main::$124 = main::$123 + $17 Adding number conversion cast (unumber) main::$124 in main::$124 = main::$123 + (unumber)$17 Adding number conversion cast (unumber) 0 in *((char *)main::$124) = 0 Adding number conversion cast (unumber) 4 in clear_screen::n#2 = 4 Adding number conversion cast (unumber) 0 in clear_screen::m#2 = 0 Adding number conversion cast (unumber) $f0 in *((char *)$9005) = $f0 Adding number conversion cast (unumber) 7 in textcolor::color#3 = 7 Adding number conversion cast (unumber) 2 in textcolor::color#4 = 2 Adding number conversion cast (unumber) 3 in textcolor::color#5 = 3 Adding number conversion cast (unumber) $a in utoa::radix#1 = $a Adding number conversion cast (unumber) 1 in textcolor::color#6 = 1 Adding number conversion cast (unumber) $b in main::$173 = j#6 != $b Adding number conversion cast (unumber) $1c in main::$174 = j#6 != $1c Adding number conversion cast (unumber) $b in main::$176 = j#19 == $b Successful SSA optimization PassNAddNumberTypeConversions Inlining cast memcpy::src#0 = (char *)memcpy::source#2 Inlining cast memcpy::dst#0 = (char *)memcpy::destination#2 Inlining cast memset::dst#0 = (char *)memset::str#3 Inlining cast utoa::max_digits#1 = (unumber)5 Inlining cast utoa::max_digits#2 = (unumber)4 Inlining cast utoa::max_digits#3 = (unumber)6 Inlining cast utoa::max_digits#4 = (unumber)$10 Inlining cast *utoa::buffer#2 = (unumber)0 Inlining cast *utoa::buffer#3 = (unumber)0 Inlining cast utoa::started#1 = (unumber)1 Inlining cast gotoxy::y#0 = (unumber)0 Inlining cast gotoxy::x#0 = (unumber)0 Inlining cast conio_cursor_x = (unumber)0 Inlining cast memcpy::num#0 = (unumber)$19*$28-$28 Inlining cast memcpy::num#1 = (unumber)$19*$28-$28 Inlining cast memset::num#0 = (unumber)$28 Inlining cast memset::num#1 = (unumber)$28 Inlining cast gotoxy::x#1 = (unumber)0 Inlining cast gotoxy::y#1 = (unumber)0 Inlining cast gotoxy::x#2 = (unumber)0 Inlining cast conio_c64_init::line#1 = (unumber)$19-1 Inlining cast divr8u::rem#3 = (unumber)0 Inlining cast z#0 = (unumber)0 Inlining cast gotoxy::x#3 = (unumber)0 Inlining cast gotoxy::y#3 = (unumber)0 Inlining cast m = (unumber)0 Inlining cast score#0 = (unumber)0 Inlining cast utoa::radix#0 = (unumber)$a Inlining cast *((char *)$d3) = (unumber)4 Inlining cast m = (unumber)0 Inlining cast m = (unumber)0 Inlining cast z#3 = (unumber)0 Inlining cast div16u8u::divisor#0 = (unumber)$3c Inlining cast *((char *)(unumber)$1e15+c) = (unumber)7 Inlining cast *((char *)$1e15) = (unumber)$b9 Inlining cast *((char *)$900f) = (unumber)8 Inlining cast m = (unumber)0 Inlining cast clear_screen::n#0 = (unumber)$20 Inlining cast clear_screen::m#0 = (unumber)0 Inlining cast textcolor::color#0 = (unumber)7 Inlining cast textcolor::color#1 = (unumber)1 Inlining cast textcolor::color#2 = (unumber)2 Inlining cast clear_screen::n#1 = (unumber)4 Inlining cast clear_screen::m#1 = (unumber)0 Inlining cast *((char *)$9005) = (unumber)$ff Inlining cast k#0 = (unumber)1 Inlining cast n#0 = (unumber)2 Inlining cast *((char *)(unumber)$1ff9+c) = (unumber)2 Inlining cast z#8 = (unumber)1 Inlining cast peephole#0 = (unumber)$1f1f Inlining cast *((char *)$900e) = (unumber)$f Inlining cast score#2 = (unumber)0 Inlining cast tu#0 = (unumber)1 Inlining cast chrout::petscii = (unumber)$50 Inlining cast chrout::petscii = (unumber)$54 Inlining cast chrout::petscii = (unumber)$53 Inlining cast chrout::petscii = (unumber)$3a Inlining cast *((char *)$d3) = (unumber)$12 Inlining cast j#0 = (unumber)0 Inlining cast j#1 = (unumber)1 Inlining cast *((char *)$d3) = (unumber)$a Inlining cast j#4 = (unumber)0 Inlining cast *((char *)$d3) = (unumber)$f Inlining cast chrout::petscii = (unumber)$31 Inlining cast chrout::petscii = (unumber)$30 Inlining cast random::k#1 = (unumber)0 Inlining cast random::n#1 = (unumber)$ff Inlining cast random::k#2 = (unumber)0 Inlining cast random::n#2 = (unumber)$ff Inlining cast time#2 = (unumber)0 Inlining cast *((char *)$9122) = (unumber)$7f Inlining cast *((char *)$9122) = (unumber)$ff Inlining cast *((char *)$900d) = (unumber)$82 Inlining cast wait::n#0 = (unumber)$14 Inlining cast *((char *)$900d) = (unumber)0 Inlining cast *((char *)main::$150) = (unumber)0 Inlining cast *((char *)main::$152) = (unumber)0 Inlining cast *((char *)main::$154) = (unumber)0 Inlining cast *((char *)main::$156) = (unumber)0 Inlining cast *((char *)$900d) = (unumber)$82 Inlining cast wait::n#1 = (unumber)$a Inlining cast wait::n#2 = (unumber)$a Inlining cast time#4 = (unumber)$a Inlining cast *((char *)$900d) = (unumber)0 Inlining cast *((char *)peephole#7) = (unumber)$fd Inlining cast *((char *)main::$125) = (unumber)1 Inlining cast *((char *)main::$126) = (unumber)$ed Inlining cast *((char *)main::$128) = (unumber)1 Inlining cast *((char *)main::$129) = (unumber)$ee Inlining cast *((char *)main::$131) = (unumber)1 Inlining cast *((char *)main::$132) = (unumber)$f0 Inlining cast *((char *)main::$134) = (unumber)1 Inlining cast wait::n#3 = (unumber)5 Inlining cast *((char *)duck#9) = (unumber)0 Inlining cast *((char *)main::$136) = (unumber)7 Inlining cast *((char *)main::$137) = (unumber)1 Inlining cast *((char *)main::$139) = (unumber)7 Inlining cast *((char *)main::$140) = (unumber)2 Inlining cast *((char *)main::$142) = (unumber)7 Inlining cast *((char *)main::$143) = (unumber)3 Inlining cast *((char *)main::$145) = (unumber)7 Inlining cast wait::n#4 = (unumber)5 Inlining cast *((char *)main::$118) = (unumber)0 Inlining cast *((char *)main::$120) = (unumber)0 Inlining cast *((char *)main::$122) = (unumber)0 Inlining cast *((char *)main::$124) = (unumber)0 Inlining cast clear_screen::n#2 = (unumber)4 Inlining cast clear_screen::m#2 = (unumber)0 Inlining cast *((char *)$9005) = (unumber)$f0 Inlining cast textcolor::color#3 = (unumber)7 Inlining cast textcolor::color#4 = (unumber)2 Inlining cast textcolor::color#5 = (unumber)3 Inlining cast utoa::radix#1 = (unumber)$a Inlining cast textcolor::color#6 = (unumber)1 Successful SSA optimization Pass2InlineCast Simplifying constant pointer cast (char *) 55296 Simplifying constant pointer cast (char *) 1024 Simplifying constant pointer cast (char *) 214 Simplifying constant integer cast 0 Simplifying constant integer cast 5 Simplifying constant integer cast 4 Simplifying constant integer cast 6 Simplifying constant integer cast $10 Simplifying constant integer cast 0 Simplifying constant integer cast 1 Simplifying constant integer cast 0 Simplifying constant integer cast 1 Simplifying constant integer cast $19 Simplifying constant integer cast $28 Simplifying constant integer cast 0 Simplifying constant integer cast $28 Simplifying constant integer cast 0 Simplifying constant integer cast $28 Simplifying constant integer cast $28 Simplifying constant integer cast $28 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Simplifying constant integer cast $19 Simplifying constant integer cast 0 Simplifying constant integer cast $28 Simplifying constant integer cast $28 Simplifying constant integer cast $28 Simplifying constant integer cast $28 Simplifying constant integer cast $28 Simplifying constant integer cast $28 Simplifying constant integer cast $28 Simplifying constant integer cast $28 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Simplifying constant integer cast $19 Simplifying constant integer cast 0 Simplifying constant integer cast 1 Simplifying constant integer cast $80 Simplifying constant integer cast 0 Simplifying constant integer cast 1 Simplifying constant integer cast 1 Simplifying constant integer cast 1 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Simplifying constant integer cast $1fa Simplifying constant integer cast $1e00 Simplifying constant integer cast $1e00 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Simplifying constant pointer cast (char *) 37140 Simplifying constant integer cast $fde8 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Simplifying constant integer cast 4 Simplifying constant integer cast $a Simplifying constant integer cast 9 Simplifying constant integer cast $63 Simplifying constant integer cast 0 Simplifying constant integer cast 2 Simplifying constant integer cast 1 Simplifying constant integer cast 3 Simplifying constant integer cast 4 Simplifying constant pointer cast (char *) 211 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Simplifying constant integer cast 1 Simplifying constant integer cast 1 Simplifying constant integer cast 2 Simplifying constant integer cast 2 Simplifying constant integer cast 3 Simplifying constant integer cast 4 Simplifying constant integer cast 0 Simplifying constant integer cast 0 Simplifying constant integer cast $21c Simplifying constant integer cast $100 Simplifying constant integer cast $3c Simplifying constant integer cast 7 Simplifying constant integer cast $1e15 Simplifying constant integer cast $b9 Simplifying constant pointer cast (char *) 7701 Simplifying constant integer cast $a Simplifying constant integer cast $b9 Simplifying constant pointer cast (char *) 7701 Simplifying constant integer cast 8 Simplifying constant pointer cast (char *) 36879 Simplifying constant integer cast 0 Simplifying constant integer cast $28 Simplifying constant integer cast $1c00 Simplifying constant integer cast $20 Simplifying constant integer cast 0 Simplifying constant integer cast 7 Simplifying constant integer cast 1 Simplifying constant integer cast 2 Simplifying constant pointer cast (char *) 197 Simplifying constant integer cast 5 Simplifying constant integer cast 4 Simplifying constant integer cast 0 Simplifying constant integer cast $ff Simplifying constant pointer cast (char *) 36869 Simplifying constant integer cast 1 Simplifying constant integer cast $16 Simplifying constant integer cast 2 Simplifying constant pointer cast (char *) 8185 Simplifying constant integer cast 2 Simplifying constant integer cast $1ff9 Simplifying constant integer cast 1 Simplifying constant integer cast 1 Simplifying constant integer cast $16 Simplifying constant integer cast $1f1f Simplifying constant integer cast $f Simplifying constant pointer cast (char *) 36878 Simplifying constant integer cast 0 Simplifying constant integer cast 1 Simplifying constant integer cast $50 Simplifying constant integer cast $54 Simplifying constant integer cast $53 Simplifying constant integer cast $3a Simplifying constant integer cast $12 Simplifying constant pointer cast (char *) 211 Simplifying constant integer cast 0 Simplifying constant integer cast 7 Simplifying constant integer cast 3 Simplifying constant integer cast $1a Simplifying constant integer cast $1f9 Simplifying constant integer cast 1 Simplifying constant integer cast 1 Simplifying constant integer cast $1fa Simplifying constant integer cast 4 Simplifying constant integer cast $a Simplifying constant pointer cast (char *) 211 Simplifying constant integer cast 0 Simplifying constant integer cast 5 Simplifying constant integer cast $f Simplifying constant pointer cast (char *) 211 Simplifying constant integer cast $a Simplifying constant integer cast $30 Simplifying constant integer cast $31 Simplifying constant integer cast $30 Simplifying constant integer cast 0 Simplifying constant integer cast $ff Simplifying constant integer cast 0 Simplifying constant integer cast $ff Simplifying constant integer cast $1e15 Simplifying constant integer cast $1fe3 Simplifying constant integer cast 1 Simplifying constant integer cast $16 Simplifying constant integer cast $17 Simplifying constant integer cast 0 Simplifying constant integer cast $a Simplifying constant pointer cast (char *) 37151 Simplifying constant integer cast $7f Simplifying constant pointer cast (char *) 37154 Simplifying constant pointer cast (char *) 37152 Simplifying constant integer cast $ff Simplifying constant pointer cast (char *) 37154 Simplifying constant integer cast $10 Simplifying constant integer cast 0 Simplifying constant integer cast $a Simplifying constant integer cast $82 Simplifying constant pointer cast (char *) 36877 Simplifying constant integer cast $14 Simplifying constant integer cast 0 Simplifying constant pointer cast (char *) 36877 Simplifying constant integer cast 0 Simplifying constant integer cast 1 Simplifying constant integer cast 0 Simplifying constant integer cast $16 Simplifying constant integer cast 0 Simplifying constant integer cast $17 Simplifying constant integer cast 0 Simplifying constant integer cast $b Simplifying constant integer cast $80 Simplifying constant integer cast 0 Simplifying constant integer cast 4 Simplifying constant integer cast 0 Simplifying constant integer cast 8 Simplifying constant integer cast 0 Simplifying constant integer cast $16 Simplifying constant integer cast $20 Simplifying constant integer cast 0 Simplifying constant integer cast $16 Simplifying constant integer cast 1 Simplifying constant integer cast $16 Simplifying constant integer cast $17 Simplifying constant integer cast $1e16 Simplifying constant integer cast $1fe3 Simplifying constant integer cast $82 Simplifying constant pointer cast (char *) 36877 Simplifying constant integer cast $a Simplifying constant integer cast $a Simplifying constant integer cast $c Simplifying constant integer cast $a Simplifying constant integer cast $a Simplifying constant integer cast $a Simplifying constant integer cast 0 Simplifying constant pointer cast (char *) 36877 Simplifying constant integer cast $fd Simplifying constant integer cast 1 Simplifying constant integer cast 1 Simplifying constant integer cast $ed Simplifying constant integer cast 1 Simplifying constant integer cast 1 Simplifying constant integer cast $16 Simplifying constant integer cast $ee Simplifying constant integer cast $16 Simplifying constant integer cast 1 Simplifying constant integer cast $17 Simplifying constant integer cast $f0 Simplifying constant integer cast $17 Simplifying constant integer cast 1 Simplifying constant integer cast 5 Simplifying constant integer cast 0 Simplifying constant integer cast 7 Simplifying constant integer cast 1 Simplifying constant integer cast 1 Simplifying constant integer cast 1 Simplifying constant integer cast 7 Simplifying constant integer cast $16 Simplifying constant integer cast 2 Simplifying constant integer cast $16 Simplifying constant integer cast 7 Simplifying constant integer cast $17 Simplifying constant integer cast 3 Simplifying constant integer cast $17 Simplifying constant integer cast 7 Simplifying constant integer cast 5 Simplifying constant integer cast 0 Simplifying constant integer cast 1 Simplifying constant integer cast 0 Simplifying constant integer cast $16 Simplifying constant integer cast 0 Simplifying constant integer cast $17 Simplifying constant integer cast 0 Simplifying constant integer cast 4 Simplifying constant integer cast 0 Simplifying constant integer cast $f0 Simplifying constant pointer cast (char *) 36869 Simplifying constant integer cast 7 Simplifying constant integer cast 2 Simplifying constant integer cast 3 Simplifying constant integer cast $a Simplifying constant integer cast 1 Simplifying constant pointer cast (char *) 197 Simplifying constant integer cast $b Simplifying constant integer cast $1c Simplifying constant integer cast $b Successful SSA optimization PassNCastSimplification Finalized unsigned number type (char) 0 Finalized unsigned number type (char) 5 Finalized unsigned number type (char) 4 Finalized unsigned number type (char) 6 Finalized unsigned number type (char) $10 Finalized unsigned number type (char) 0 Finalized unsigned number type (char) 1 Finalized unsigned number type (char) 0 Finalized unsigned number type (char) 1 Finalized unsigned number type (char) $19 Finalized unsigned number type (char) $28 Finalized unsigned number type (char) 0 Finalized unsigned number type (char) $28 Finalized unsigned number type (char) 0 Finalized unsigned number type (char) $28 Finalized unsigned number type (char) $28 Finalized unsigned number type (char) $28 Finalized unsigned number type (char) 0 Finalized unsigned number type (char) 0 Finalized unsigned number type (char) $19 Finalized unsigned number type (char) 0 Finalized unsigned number type (char) $28 Finalized unsigned number type (char) $28 Finalized unsigned number type (char) $28 Finalized unsigned number type (char) $28 Finalized unsigned number type (char) $28 Finalized unsigned number type (char) $28 Finalized unsigned number type (char) $28 Finalized unsigned number type (char) $28 Finalized unsigned number type (char) 0 Finalized unsigned number type (char) 0 Finalized unsigned number type (char) $19 Finalized unsigned number type (char) 0 Finalized unsigned number type (char) 1 Finalized unsigned number type (char) $80 Finalized unsigned number type (char) 0 Finalized unsigned number type (char) 1 Finalized unsigned number type (char) 1 Finalized unsigned number type (char) 1 Finalized unsigned number type (char) 0 Finalized unsigned number type (char) 0 Finalized unsigned number type (unsigned int) $1fa Finalized unsigned number type (unsigned int) $1e00 Finalized unsigned number type (unsigned int) $1e00 Finalized unsigned number type (char) 0 Finalized unsigned number type (char) 0 Finalized unsigned number type (unsigned int) $fde8 Finalized unsigned number type (char) 0 Finalized unsigned number type (char) 0 Finalized unsigned number type (char) 4 Finalized unsigned number type (char) $a Finalized unsigned number type (char) 9 Finalized unsigned number type (char) $63 Finalized unsigned number type (char) 0 Finalized unsigned number type (char) 2 Finalized unsigned number type (char) 1 Finalized unsigned number type (char) 3 Finalized unsigned number type (char) 4 Finalized unsigned number type (char) 0 Finalized unsigned number type (char) 0 Finalized unsigned number type (char) 1 Finalized unsigned number type (char) 1 Finalized unsigned number type (char) 2 Finalized unsigned number type (char) 2 Finalized unsigned number type (char) 3 Finalized unsigned number type (char) 4 Finalized unsigned number type (char) 0 Finalized unsigned number type (char) 0 Finalized unsigned number type (unsigned int) $21c Finalized unsigned number type (unsigned int) $100 Finalized unsigned number type (char) $3c Finalized unsigned number type (char) 7 Finalized unsigned number type (unsigned int) $1e15 Finalized unsigned number type (char) $b9 Finalized unsigned number type (char) $a Finalized unsigned number type (char) $b9 Finalized unsigned number type (char) 8 Finalized unsigned number type (char) 0 Finalized unsigned number type (char) $28 Finalized unsigned number type (unsigned int) $1c00 Finalized unsigned number type (char) $20 Finalized unsigned number type (char) 0 Finalized unsigned number type (char) 7 Finalized unsigned number type (char) 1 Finalized unsigned number type (char) 2 Finalized unsigned number type (char) 5 Finalized unsigned number type (char) 4 Finalized unsigned number type (char) 0 Finalized unsigned number type (char) $ff Finalized unsigned number type (char) 1 Finalized unsigned number type (char) $16 Finalized unsigned number type (char) 2 Finalized unsigned number type (char) 2 Finalized unsigned number type (unsigned int) $1ff9 Finalized unsigned number type (char) 1 Finalized unsigned number type (char) 1 Finalized unsigned number type (char) $16 Finalized unsigned number type (unsigned int) $1f1f Finalized unsigned number type (char) $f Finalized unsigned number type (char) 0 Finalized unsigned number type (char) 1 Finalized unsigned number type (char) $50 Finalized unsigned number type (char) $54 Finalized unsigned number type (char) $53 Finalized unsigned number type (char) $3a Finalized unsigned number type (char) $12 Finalized unsigned number type (char) 0 Finalized unsigned number type (char) 7 Finalized unsigned number type (char) 3 Finalized unsigned number type (char) $1a Finalized unsigned number type (unsigned int) $1f9 Finalized unsigned number type (char) 1 Finalized unsigned number type (char) 1 Finalized unsigned number type (unsigned int) $1fa Finalized unsigned number type (char) 4 Finalized unsigned number type (char) $a Finalized unsigned number type (char) 0 Finalized unsigned number type (char) 5 Finalized unsigned number type (char) $f Finalized unsigned number type (char) $a Finalized unsigned number type (char) $30 Finalized unsigned number type (char) $31 Finalized unsigned number type (char) $30 Finalized unsigned number type (char) 0 Finalized unsigned number type (char) $ff Finalized unsigned number type (char) 0 Finalized unsigned number type (char) $ff Finalized unsigned number type (unsigned int) $1e15 Finalized unsigned number type (unsigned int) $1fe3 Finalized unsigned number type (char) 1 Finalized unsigned number type (char) $16 Finalized unsigned number type (char) $17 Finalized unsigned number type (char) 0 Finalized unsigned number type (char) $a Finalized unsigned number type (char) $7f Finalized unsigned number type (char) $ff Finalized unsigned number type (char) $10 Finalized unsigned number type (char) 0 Finalized unsigned number type (char) $a Finalized unsigned number type (char) $82 Finalized unsigned number type (char) $14 Finalized unsigned number type (char) 0 Finalized unsigned number type (char) 0 Finalized unsigned number type (char) 1 Finalized unsigned number type (char) 0 Finalized unsigned number type (char) $16 Finalized unsigned number type (char) 0 Finalized unsigned number type (char) $17 Finalized unsigned number type (char) 0 Finalized unsigned number type (char) $b Finalized unsigned number type (char) $80 Finalized unsigned number type (char) 0 Finalized unsigned number type (char) 4 Finalized unsigned number type (char) 0 Finalized unsigned number type (char) 8 Finalized unsigned number type (char) 0 Finalized unsigned number type (char) $16 Finalized unsigned number type (char) $20 Finalized unsigned number type (char) 0 Finalized unsigned number type (char) $16 Finalized unsigned number type (char) 1 Finalized unsigned number type (char) $16 Finalized unsigned number type (char) $17 Finalized unsigned number type (unsigned int) $1e16 Finalized unsigned number type (unsigned int) $1fe3 Finalized unsigned number type (char) $82 Finalized unsigned number type (char) $a Finalized unsigned number type (char) $a Finalized unsigned number type (char) $c Finalized unsigned number type (char) $a Finalized unsigned number type (char) $a Finalized unsigned number type (char) $a Finalized unsigned number type (char) 0 Finalized unsigned number type (char) $fd Finalized unsigned number type (char) 1 Finalized unsigned number type (char) 1 Finalized unsigned number type (char) $ed Finalized unsigned number type (char) 1 Finalized unsigned number type (char) 1 Finalized unsigned number type (char) $16 Finalized unsigned number type (char) $ee Finalized unsigned number type (char) $16 Finalized unsigned number type (char) 1 Finalized unsigned number type (char) $17 Finalized unsigned number type (char) $f0 Finalized unsigned number type (char) $17 Finalized unsigned number type (char) 1 Finalized unsigned number type (char) 5 Finalized unsigned number type (char) 0 Finalized unsigned number type (char) 7 Finalized unsigned number type (char) 1 Finalized unsigned number type (char) 1 Finalized unsigned number type (char) 1 Finalized unsigned number type (char) 7 Finalized unsigned number type (char) $16 Finalized unsigned number type (char) 2 Finalized unsigned number type (char) $16 Finalized unsigned number type (char) 7 Finalized unsigned number type (char) $17 Finalized unsigned number type (char) 3 Finalized unsigned number type (char) $17 Finalized unsigned number type (char) 7 Finalized unsigned number type (char) 5 Finalized unsigned number type (char) 0 Finalized unsigned number type (char) 1 Finalized unsigned number type (char) 0 Finalized unsigned number type (char) $16 Finalized unsigned number type (char) 0 Finalized unsigned number type (char) $17 Finalized unsigned number type (char) 0 Finalized unsigned number type (char) 4 Finalized unsigned number type (char) 0 Finalized unsigned number type (char) $f0 Finalized unsigned number type (char) 7 Finalized unsigned number type (char) 2 Finalized unsigned number type (char) 3 Finalized unsigned number type (char) $a Finalized unsigned number type (char) 1 Finalized unsigned number type (char) $b Finalized unsigned number type (char) $1c Finalized unsigned number type (char) $b Successful SSA optimization PassNFinalizeNumberTypeConversions Inferred type updated to char in utoa::$4 = utoa::max_digits#5 - 1 Inferred type updated to char in divr8u::$1 = divr8u::dividend#3 & $80 Inferred type updated to char in divr8u::$4 = divr8u::rem#7 | 1 Inferred type updated to unsigned int in clear_screen::$3 = $1e00 + z#21 Inferred type updated to unsigned int in clear_screen::$4 = clear_screen::$3 + c Inferred type updated to unsigned int in clear_screen::$5 = $1e00 + z#21 Inferred type updated to unsigned int in read_chrono::$0 = m * $100 Inferred type updated to unsigned int in read_chrono::$1 = read_chrono::$0 + l Inferred type updated to unsigned int in read_chrono::$5 = $b9 - time#9 Inferred type updated to unsigned int in main::$3 = $1c00 + m Inferred type updated to char in main::$25 = 7 - l Inferred type updated to char in main::$26 = 3 * l Inferred type updated to char in main::$27 = $1a - main::$26 Inferred type updated to unsigned int in main::$36 = main::$35 + 1 Inferred type updated to unsigned int in main::$57 = $30 + tu#7 Inferred type updated to unsigned int in main::$61 = m + $1e15 Inferred type updated to unsigned int in main::$62 = main::$61 + duck#6 Inferred type updated to unsigned int in main::$66 = duck#1 + 1 Inferred type updated to unsigned int in main::$69 = duck#1 + $16 Inferred type updated to unsigned int in main::$72 = duck#1 + $17 Inferred type updated to char in main::$78 = $10 & m Inferred type updated to unsigned int in main::$147 = score#19 - $a Inferred type updated to unsigned int in main::$151 = duck#7 + 1 Inferred type updated to unsigned int in main::$152 = main::$151 + c Inferred type updated to unsigned int in main::$153 = duck#7 + $16 Inferred type updated to unsigned int in main::$154 = main::$153 + c Inferred type updated to unsigned int in main::$155 = duck#7 + $17 Inferred type updated to unsigned int in main::$156 = main::$155 + c Inferred type updated to char in main::$81 = $80 & n#9 Inferred type updated to char in main::$84 = 4 & m Inferred type updated to char in main::$88 = 8 & m Inferred type updated to unsigned int in main::$87 = y#11 - $16 Inferred type updated to char in main::$92 = $20 & m Inferred type updated to unsigned int in main::$91 = y#12 + $16 Inferred type updated to unsigned int in main::$104 = y#13 + 1 Inferred type updated to unsigned int in main::$107 = y#13 + $16 Inferred type updated to unsigned int in main::$110 = y#13 + $17 Inferred type updated to unsigned int in main::$100 = score#21 - $a Inferred type updated to unsigned int in main::$96 = $c - time#13 Inferred type updated to unsigned int in main::$97 = main::$96 * $a Inferred type updated to unsigned int in main::$98 = score#23 + main::$97 Inferred type updated to unsigned int in main::$126 = peephole#7 + 1 Inferred type updated to unsigned int in main::$127 = peephole#7 + 1 Inferred type updated to unsigned int in main::$128 = main::$127 + c Inferred type updated to unsigned int in main::$129 = peephole#7 + $16 Inferred type updated to unsigned int in main::$130 = peephole#7 + $16 Inferred type updated to unsigned int in main::$131 = main::$130 + c Inferred type updated to unsigned int in main::$132 = peephole#7 + $17 Inferred type updated to unsigned int in main::$133 = peephole#7 + $17 Inferred type updated to unsigned int in main::$134 = main::$133 + c Inferred type updated to unsigned int in main::$137 = duck#9 + 1 Inferred type updated to unsigned int in main::$138 = duck#9 + 1 Inferred type updated to unsigned int in main::$139 = main::$138 + c Inferred type updated to unsigned int in main::$140 = duck#9 + $16 Inferred type updated to unsigned int in main::$141 = duck#9 + $16 Inferred type updated to unsigned int in main::$142 = main::$141 + c Inferred type updated to unsigned int in main::$143 = duck#9 + $17 Inferred type updated to unsigned int in main::$144 = duck#9 + $17 Inferred type updated to unsigned int in main::$145 = main::$144 + c Inferred type updated to unsigned int in main::$120 = main::$119 + 1 Inferred type updated to unsigned int in main::$122 = main::$121 + $16 Inferred type updated to unsigned int in main::$124 = main::$123 + $17 Inversing boolean not [19] memset::$1 = memset::num#2 <= 0 from [18] memset::$0 = memset::num#2 > 0 Inversing boolean not [119] gotoxy::$1 = gotoxy::y#4 <= $19 from [118] gotoxy::$0 = gotoxy::y#4 > $19 Inversing boolean not [123] gotoxy::$3 = gotoxy::x#4 < $28 from [122] gotoxy::$2 = gotoxy::x#4 >= $28 Inversing boolean not [148] cputc::$2 = conio_cursor_x != $28 from [147] cputc::$1 = conio_cursor_x == $28 Inversing boolean not [179] cscroll::$1 = conio_cursor_y != $19 from [178] cscroll::$0 = conio_cursor_y == $19 Inversing boolean not [212] conio_c64_init::$1 = conio_c64_init::line#0 < $19 from [211] conio_c64_init::$0 = conio_c64_init::line#0 >= $19 Inversing boolean not [228] divr8u::$3 = divr8u::$1 == 0 from [227] divr8u::$2 = divr8u::$1 != 0 Inversing boolean not [236] divr8u::$8 = divr8u::rem#6 < divr8u::divisor#2 from [235] divr8u::$7 = divr8u::rem#6 >= divr8u::divisor#2 Inversing boolean not [316] write_score::$1 = score#13 <= $fde8 from [315] write_score::$0 = score#13 > $fde8 Inversing boolean not [334] write_score::$4 = score#15 <= 9 from [333] write_score::$3 = score#15 > 9 Inversing boolean not [338] write_score::$6 = score#16 <= $63 from [337] write_score::$5 = score#16 > $63 Inversing boolean not [401] read_chrono::$4 = time#0 >= $a from [400] read_chrono::$3 = time#0 < $a Inversing boolean not [494] main::$24 = l <= 1 from [493] main::$23 = l > 1 Inversing boolean not [544] main::$31 = main::$29 <= $1f9 from [543] main::$30 = main::$29 > $1f9 Inversing boolean not [662] main::$80 = main::$78 != 0 from [661] main::$79 = main::$78 == 0 Inversing boolean not [693] main::$83 = main::$81 != 0 from [692] main::$82 = main::$81 == 0 Inversing boolean not [700] main::$86 = main::$84 != 0 from [699] main::$85 = main::$84 == 0 Inversing boolean not [707] main::$90 = main::$88 != 0 from [706] main::$89 = main::$88 == 0 Inversing boolean not [715] main::$94 = main::$92 != 0 from [714] main::$93 = main::$92 == 0 Inversing boolean not [857] main::$168 = score#24 <= hiscore#5 from [856] main::$167 = score#24 > hiscore#5 Successful SSA optimization Pass2UnaryNotSimplification Alias candidate removed (volatile)conio_line_text = gotoxy::$5 Alias candidate removed (volatile)conio_line_color = gotoxy::$6 Alias candidate removed (volatile)chrout::petscii = main::$57 Alias memcpy::src#2 = memcpy::src#3 Alias memcpy::dst#2 = memcpy::dst#3 Alias memcpy::src_end#1 = memcpy::src_end#2 Alias memcpy::destination#3 = memcpy::destination#5 memcpy::destination#4 memcpy::return#0 memcpy::return#4 memcpy::return#1 Alias memset::return#0 = memset::str#2 memset::return#4 memset::return#1 Alias memset::str#3 = memset::str#4 Alias memset::num#2 = memset::num#3 Alias memset::c#4 = memset::c#5 Alias memset::c#2 = memset::c#3 Alias memset::dst#2 = memset::dst#3 Alias memset::end#1 = memset::end#2 Alias memset::str#5 = memset::str#6 Alias utoa::value#10 = utoa::value#9 utoa::value#13 utoa::value#14 utoa::value#15 utoa::value#11 utoa::value#16 utoa::value#12 Alias utoa::buffer#11 = utoa::buffer#18 utoa::buffer#22 utoa::buffer#17 utoa::buffer#19 utoa::buffer#14 utoa::buffer#20 utoa::buffer#21 utoa::buffer#7 Alias utoa::radix#2 = utoa::radix#3 utoa::radix#4 utoa::radix#5 Alias utoa::digit#2 = utoa::digit#3 utoa::digit#6 utoa::digit#5 Alias utoa::digit_values#10 = utoa::digit_values#5 utoa::digit_values#6 utoa::digit_values#9 Alias utoa::value#3 = utoa::value#6 utoa::value#4 utoa::value#5 Alias utoa::started#2 = utoa::started#3 Alias utoa::buffer#10 = utoa::buffer#13 utoa::buffer#12 utoa::buffer#8 utoa::buffer#9 Alias utoa::max_digits#10 = utoa::max_digits#8 utoa::max_digits#5 utoa::max_digits#9 Alias utoa::digit_value#0 = utoa::digit_value#1 Alias utoa_append::return#0 = utoa_append::return#3 Alias utoa::value#0 = utoa::$9 Alias utoa_append::digit#2 = utoa_append::digit#4 utoa_append::digit#3 Alias utoa_append::value#2 = utoa_append::value#3 utoa_append::value#4 utoa_append::return#1 utoa_append::return#4 utoa_append::return#2 Alias utoa_append::sub#1 = utoa_append::sub#2 Alias utoa_append::buffer#1 = utoa_append::buffer#4 utoa_append::buffer#2 Alias gotoxy::x#6 = gotoxy::x#7 Alias gotoxy::y#6 = gotoxy::y#7 Alias cputc::c#1 = cputc::c#2 Alias cputs::c#1 = cputs::$0 cputs::c#2 Alias cputs::s#0 = cputs::s#13 cputs::s#12 Alias textcolor::return#0 = textcolor::old#0 textcolor::return#9 textcolor::return#1 Alias divr8u::rem#0 = divr8u::$0 divr8u::rem#7 Alias divr8u::dividend#0 = divr8u::$5 divr8u::dividend#8 Alias divr8u::quotient#1 = divr8u::$6 divr8u::quotient#4 Alias divr8u::dividend#3 = divr8u::dividend#7 Alias divr8u::quotient#6 = divr8u::quotient#7 Alias divr8u::divisor#4 = divr8u::divisor#5 Alias divr8u::i#5 = divr8u::i#6 Alias divr8u::rem#1 = divr8u::$4 Alias divr8u::rem#6 = divr8u::rem#8 Alias divr8u::divisor#2 = divr8u::divisor#3 Alias divr8u::i#3 = divr8u::i#4 Alias divr8u::rem#2 = divr8u::$9 Alias divr8u::rem#11 = divr8u::rem#9 Alias divr8u::return#0 = divr8u::quotient#5 divr8u::quotient#8 divr8u::return#4 divr8u::return#1 Alias rem8u#0 = rem8u#12 rem8u#1 Alias divr8u::dividend#1 = div16u8u::$0 Alias divr8u::return#2 = divr8u::return#5 Alias div16u8u::dividend#1 = div16u8u::dividend#2 Alias div16u8u::divisor#1 = div16u8u::divisor#2 Alias rem8u#13 = rem8u#2 Alias divr8u::dividend#2 = div16u8u::$2 Alias divr8u::return#3 = divr8u::return#6 Alias div16u8u::quotient_hi#0 = div16u8u::quotient_hi#1 Alias rem8u#14 = rem8u#3 rem8u#15 rem8u#4 Alias div16u8u::return#0 = div16u8u::quotient#0 div16u8u::return#3 div16u8u::return#1 Alias z#2 = z#21 z#20 z#65 z#52 z#39 z#22 Alias clear_screen::m#3 = clear_screen::m#4 Alias clear_screen::n#3 = clear_screen::n#4 Alias score#14 = score#39 score#30 score#15 score#31 Alias score#40 = score#49 score#59 Alias score#16 = score#68 Alias score#1 = score#50 score#32 score#41 score#17 Alias wait::n#5 = wait::n#9 Alias z#23 = z#24 z#54 Alias wait::n#10 = wait::n#8 wait::n#7 Alias z#25 = z#40 z#5 Alias div16u8u::dividend#0 = read_chrono::$1 Alias div16u8u::return#2 = div16u8u::return#4 Alias rem8u#16 = rem8u#5 rem8u#24 Alias time#0 = read_chrono::$2 time#9 Alias rem8u#17 = rem8u#6 Alias time#1 = time#10 Alias z#67 = z#75 z#82 Alias rem8u#137 = rem8u#138 rem8u#139 Alias y#124 = y#125 y#126 Alias hiscore#120 = hiscore#121 hiscore#122 Alias n#119 = n#120 n#121 Alias z#55 = z#66 Alias rem8u#135 = rem8u#136 Alias y#122 = y#123 Alias hiscore#118 = hiscore#119 Alias n#117 = n#118 Alias rem8u#127 = rem8u#133 rem8u#134 rem8u#132 rem8u#131 rem8u#130 rem8u#129 rem8u#128 Alias y#114 = y#120 y#121 y#119 y#118 y#117 y#116 y#115 Alias hiscore#110 = hiscore#116 hiscore#117 hiscore#115 hiscore#114 hiscore#113 hiscore#112 hiscore#111 Alias n#109 = n#115 n#116 n#114 n#113 n#112 n#111 n#110 Alias z#26 = z#6 z#98 z#93 z#88 z#83 z#76 z#68 Alias z#42 = z#57 Alias rem8u#113 = rem8u#123 rem8u#126 rem8u#120 rem8u#118 rem8u#116 Alias y#100 = y#110 y#113 y#107 y#105 y#103 Alias hiscore#101 = hiscore#106 hiscore#109 hiscore#103 hiscore#99 hiscore#96 Alias n#100 = n#107 n#108 n#106 n#105 n#103 Alias z#27 = z#7 Alias k#101 = k#20 k#6 k#17 k#98 k#95 Alias rem8u#102 = rem8u#124 rem8u#110 rem8u#121 rem8u#108 rem8u#105 Alias y#108 = y#111 y#97 y#95 y#92 y#89 Alias hiscore#104 = hiscore#107 hiscore#93 hiscore#91 hiscore#88 hiscore#85 Alias n#89 = n#95 n#97 n#92 Alias n#101 = n#13 n#7 n#8 n#104 Alias k#11 = k#21 k#14 k#18 k#7 Alias rem8u#114 = rem8u#125 rem8u#119 rem8u#122 rem8u#117 Alias y#101 = y#112 y#106 y#109 y#104 Alias hiscore#100 = hiscore#108 hiscore#102 hiscore#105 hiscore#97 Alias score#2 = score#92 score#84 score#77 score#69 score#60 score#51 Alias tu#0 = tu#81 tu#79 tu#77 tu#75 tu#71 tu#66 Alias rem8u#100 = rem8u#101 rem8u#99 rem8u#98 rem8u#97 rem8u#95 rem8u#93 Alias y#80 = y#87 y#88 y#86 y#85 y#84 y#82 Alias z#128 = z#135 z#136 z#134 z#133 z#132 z#130 Alias peephole#0 = peephole#85 peephole#84 peephole#83 peephole#82 peephole#80 peephole#78 Alias hiscore#76 = hiscore#83 hiscore#84 hiscore#82 hiscore#81 hiscore#80 hiscore#78 Alias k#86 = k#93 k#94 k#92 k#91 k#90 k#88 Alias n#80 = n#87 n#88 n#86 n#85 n#84 n#82 Alias random::k#0 = main::$25 Alias random::n#0 = main::$27 Alias z#28 = z#43 z#69 Alias rem8u#103 = rem8u#106 rem8u#111 Alias y#90 = y#93 y#98 Alias hiscore#86 = hiscore#89 hiscore#94 Alias k#103 = k#96 k#99 Alias n#90 = n#93 n#98 Alias j#11 = j#23 j#12 Alias z#29 = z#77 z#58 z#70 z#44 Alias rem8u#104 = rem8u#115 rem8u#109 rem8u#112 rem8u#107 Alias y#102 = y#96 y#99 y#94 y#91 Alias hiscore#87 = hiscore#98 hiscore#92 hiscore#95 hiscore#90 Alias k#100 = k#105 k#102 k#104 k#97 Alias n#102 = n#96 n#99 n#94 n#91 Alias z#9 = main::$36 Alias j#13 = j#14 j#15 Alias score#29 = score#61 score#42 score#52 Alias tu#31 = tu#72 tu#58 tu#67 tu#51 tu#43 tu#37 Alias rem8u#80 = rem8u#96 rem8u#92 rem8u#94 rem8u#90 rem8u#88 rem8u#84 Alias y#68 = y#83 y#79 y#81 y#78 y#76 y#72 Alias z#120 = z#131 z#127 z#129 z#126 z#125 z#123 Alias peephole#69 = peephole#81 peephole#77 peephole#79 peephole#76 peephole#75 peephole#72 Alias hiscore#69 = hiscore#79 hiscore#75 hiscore#77 hiscore#74 hiscore#73 hiscore#71 Alias k#79 = k#89 k#85 k#87 k#84 k#83 k#81 Alias n#73 = n#83 n#79 n#81 n#78 n#77 n#75 Alias score#105 = score#3 score#18 score#107 Alias j#16 = j#17 j#18 Alias tu#27 = tu#38 tu#32 Alias score#104 = score#108 score#106 Alias rem8u#77 = rem8u#85 rem8u#81 Alias y#65 = y#73 y#69 Alias z#118 = z#124 z#121 Alias peephole#67 = peephole#73 peephole#70 Alias hiscore#68 = hiscore#72 hiscore#70 Alias k#78 = k#82 k#80 Alias n#72 = n#76 n#74 Alias tu#13 = tu#18 tu#23 tu#6 tu#7 tu#44 tu#59 tu#52 tu#45 Alias score#100 = score#102 score#103 score#97 score#93 score#85 score#98 score#94 score#86 Alias rem8u#48 = rem8u#73 rem8u#75 rem8u#70 rem8u#63 rem8u#55 rem8u#64 rem8u#56 rem8u#49 Alias y#49 = y#61 y#63 y#59 y#56 y#53 y#57 y#54 y#50 Alias z#102 = z#114 z#116 z#112 z#109 z#106 z#110 z#107 z#103 Alias peephole#52 = peephole#63 peephole#65 peephole#61 peephole#58 peephole#55 peephole#59 peephole#56 peephole#53 Alias hiscore#44 = hiscore#65 hiscore#67 hiscore#62 hiscore#56 hiscore#50 hiscore#57 hiscore#51 hiscore#45 Alias k#54 = k#75 k#77 k#72 k#66 k#60 k#67 k#61 k#55 Alias n#52 = n#70 n#71 n#69 n#64 n#58 n#65 n#59 n#53 Alias tu#20 = tu#33 tu#39 tu#28 tu#24 Alias score#44 = score#70 score#78 score#62 score#53 Alias rem8u#32 = rem8u#40 rem8u#44 rem8u#37 rem8u#34 Alias y#36 = y#45 y#47 y#43 y#40 Alias z#78 = z#94 z#99 z#89 z#84 Alias peephole#40 = peephole#48 peephole#50 peephole#46 peephole#42 Alias hiscore#33 = hiscore#38 hiscore#41 hiscore#36 hiscore#34 Alias k#43 = k#48 k#51 k#46 k#44 Alias n#41 = n#46 n#49 n#44 n#42 Alias duck#0 = duck#6 Alias duck#1 = main::$62 duck#37 duck#31 Alias time#18 = time#2 Alias rem8u#25 = rem8u#28 rem8u#86 rem8u#82 rem8u#78 rem8u#91 rem8u#89 rem8u#87 rem8u#83 rem8u#79 rem8u#76 rem8u#74 rem8u#72 rem8u#69 rem8u#61 rem8u#62 Alias time#11 = time#19 time#60 time#59 time#58 time#57 time#56 time#55 time#54 time#53 time#52 time#51 time#50 time#49 time#47 time#48 Alias y#18 = y#26 y#31 y#74 y#70 y#66 y#9 y#77 y#75 y#71 y#67 y#64 y#62 y#60 y#58 y#55 y#51 y#52 Alias peephole#31 = peephole#35 peephole#37 peephole#32 peephole#74 peephole#71 peephole#68 peephole#66 peephole#64 peephole#62 peephole#60 peephole#57 peephole#54 peephole#51 peephole#49 peephole#47 peephole#44 peephole#45 Alias duck#13 = duck#43 duck#25 duck#39 duck#18 duck#7 duck#38 duck#58 duck#57 duck#56 duck#55 duck#54 duck#53 duck#52 duck#51 duck#50 duck#48 duck#49 Alias score#19 = score#87 score#33 score#80 score#79 Alias z#100 = z#71 z#96 z#59 z#45 z#95 Alias tu#14 = tu#73 tu#69 tu#8 tu#68 Alias hiscore#10 = hiscore#66 hiscore#31 hiscore#64 hiscore#30 hiscore#29 hiscore#28 hiscore#63 hiscore#27 hiscore#26 hiscore#24 hiscore#22 hiscore#20 hiscore#18 hiscore#16 hiscore#13 hiscore#5 Alias k#27 = k#76 k#41 k#74 k#40 k#39 k#38 k#73 k#37 k#36 k#35 k#34 k#33 k#32 k#31 k#30 k#29 k#28 Alias rem8u#18 = rem8u#7 rem8u#71 Alias time#12 = time#3 time#40 Alias n#25 = n#38 n#39 n#37 n#36 n#35 n#34 n#33 n#32 n#31 n#30 n#29 n#28 n#27 n#26 Alias score#4 = main::$147 Alias tu#1 = tu#15 tu#9 tu#85 tu#84 tu#83 tu#82 tu#80 tu#78 tu#76 tu#74 tu#70 tu#64 tu#65 Alias score#101 = score#5 score#20 score#99 score#95 score#90 score#82 score#75 score#66 score#57 score#46 score#35 score#24 score#25 hiscore#0 Alias z#10 = z#30 z#49 Alias n#14 = n#2 Alias y#10 = y#19 Alias peephole#26 = peephole#27 Alias duck#32 = duck#33 Alias score#71 = score#72 Alias time#36 = time#37 Alias z#90 = z#91 Alias tu#60 = tu#61 Alias rem8u#65 = rem8u#66 Alias hiscore#58 = hiscore#59 Alias k#68 = k#69 Alias n#66 = n#9 Alias y#11 = y#20 Alias peephole#21 = peephole#22 Alias duck#26 = duck#27 Alias score#63 = score#64 Alias time#31 = time#32 Alias z#85 = z#86 Alias tu#53 = tu#54 Alias rem8u#57 = rem8u#58 Alias hiscore#52 = hiscore#53 Alias k#62 = k#63 Alias n#60 = n#61 Alias y#2 = main::$87 Alias y#12 = y#21 Alias peephole#16 = peephole#17 Alias duck#19 = duck#20 Alias score#54 = score#55 Alias time#27 = time#28 Alias z#79 = z#80 Alias tu#46 = tu#47 Alias rem8u#50 = rem8u#51 Alias hiscore#46 = hiscore#47 Alias k#56 = k#57 Alias n#54 = n#55 Alias y#3 = main::$91 Alias peephole#12 = peephole#6 peephole#33 peephole#28 peephole#23 peephole#29 peephole#24 Alias duck#14 = duck#8 duck#44 duck#40 duck#34 duck#41 duck#35 Alias score#21 = score#34 score#45 score#23 Alias time#13 = time#20 time#23 time#45 time#43 time#41 Alias z#46 = z#61 z#72 z#60 z#47 Alias y#22 = y#38 y#37 y#32 y#27 y#33 y#28 Alias tu#40 = tu#63 tu#62 tu#55 tu#48 tu#56 tu#49 Alias rem8u#45 = rem8u#68 rem8u#67 rem8u#59 rem8u#52 rem8u#60 rem8u#53 Alias hiscore#42 = hiscore#61 hiscore#60 hiscore#54 hiscore#48 hiscore#55 hiscore#49 Alias k#52 = k#71 k#70 k#64 k#58 k#65 k#59 Alias n#50 = n#68 n#67 n#62 n#56 n#63 n#57 Alias score#6 = main::$100 Alias score#22 = score#7 score#88 Alias z#11 = z#31 Alias score#8 = main::$98 score#89 Alias z#12 = z#32 Alias y#35 = y#4 peephole#7 y#41 peephole#43 peephole#39 Alias duck#15 = duck#9 duck#30 Alias time#17 = time#24 time#29 Alias tu#19 = tu#25 tu#29 Alias score#43 = score#56 score#65 Alias rem8u#31 = rem8u#35 rem8u#38 Alias hiscore#32 = hiscore#35 hiscore#37 Alias k#42 = k#45 k#47 Alias n#40 = n#43 n#45 Alias z#13 = z#33 Alias z#14 = z#34 Alias peephole#13 = peephole#8 Alias y#13 = y#14 peephole#1 Alias z#62 = z#63 Alias duck#21 = duck#22 Alias time#33 = time#34 Alias tu#34 = tu#35 Alias score#73 = score#74 Alias rem8u#41 = rem8u#42 Alias hiscore#39 = hiscore#40 Alias k#49 = k#50 Alias n#47 = n#48 Alias z#104 = z#15 z#35 z#122 z#119 z#117 z#115 z#113 z#111 z#108 z#105 Alias z#101 = z#97 z#92 z#87 z#81 Alias k#22 = k#25 k#26 k#24 k#23 Alias n#20 = n#23 n#24 n#22 n#21 Alias peephole#30 = peephole#38 peephole#41 peephole#36 peephole#34 Alias score#67 = score#91 score#96 score#83 score#76 Alias tu#30 = tu#50 tu#57 tu#42 tu#36 Alias duck#36 = duck#46 duck#47 duck#45 duck#42 Alias time#35 = time#44 time#46 time#42 time#39 Alias rem8u#36 = rem8u#47 rem8u#54 rem8u#43 rem8u#39 Alias y#39 = y#46 y#48 y#44 y#42 Alias hiscore#19 = hiscore#25 hiscore#6 hiscore#23 hiscore#21 Alias j#19 = j#6 j#24 j#20 j#7 Alias z#16 = z#56 z#74 z#50 z#36 Alias k#12 = k#15 k#19 k#8 k#2 Alias n#10 = n#17 n#19 n#15 n#3 Alias peephole#14 = peephole#19 peephole#25 peephole#9 peephole#2 Alias score#26 = score#47 score#58 score#36 score#9 Alias tu#10 = tu#21 tu#26 tu#16 tu#2 Alias duck#10 = duck#23 duck#29 duck#16 duck#2 Alias time#14 = time#25 time#30 time#21 time#5 Alias rem8u#19 = rem8u#29 rem8u#33 rem8u#26 rem8u#8 Alias y#15 = y#29 y#34 y#24 y#5 Alias hiscore#1 = hiscore#14 hiscore#17 hiscore#11 hiscore#7 Alias z#17 = z#64 z#51 Alias k#13 = k#16 k#3 Alias n#16 = n#18 n#4 Alias peephole#15 = peephole#20 peephole#3 Alias score#10 = score#48 score#37 Alias tu#17 = tu#22 tu#3 Alias j#25 = j#26 j#8 Alias duck#17 = duck#24 duck#3 Alias time#22 = time#26 time#6 Alias rem8u#27 = rem8u#30 rem8u#9 Alias y#25 = y#30 y#6 Alias hiscore#12 = hiscore#15 hiscore#2 Alias z#18 = z#37 z#38 z#19 Alias k#10 = k#4 k#9 k#5 Alias n#11 = n#5 n#12 n#6 Alias peephole#10 = peephole#4 peephole#11 peephole#5 Alias score#11 = score#27 score#28 score#12 Alias tu#11 = tu#4 tu#12 tu#5 Alias j#10 = j#9 j#21 j#22 Alias duck#11 = duck#4 duck#12 duck#5 Alias time#15 = time#7 time#16 time#8 Alias rem8u#10 = rem8u#20 rem8u#21 rem8u#11 Alias y#16 = y#7 y#17 y#8 Alias hiscore#3 = hiscore#8 hiscore#9 hiscore#4 Successful SSA optimization Pass2AliasElimination Alias candidate removed (volatile)conio_line_text = gotoxy::$5 Alias candidate removed (volatile)conio_line_color = gotoxy::$6 Alias candidate removed (volatile)chrout::petscii = main::$57 Alias utoa::value#10 = utoa::value#8 Alias utoa::buffer#11 = utoa::buffer#16 Alias utoa::digit#2 = utoa::digit#4 Alias utoa::max_digits#10 = utoa::max_digits#6 Alias utoa::digit_values#10 = utoa::digit_values#7 Alias gotoxy::x#4 = gotoxy::x#6 Alias gotoxy::y#5 = gotoxy::y#6 Alias divr8u::dividend#3 = divr8u::dividend#4 Alias divr8u::quotient#3 = divr8u::quotient#6 Alias divr8u::divisor#2 = divr8u::divisor#4 divr8u::divisor#7 Alias divr8u::i#2 = divr8u::i#3 divr8u::i#5 Alias divr8u::dividend#0 = divr8u::dividend#6 Alias score#14 = score#16 score#40 Alias rem8u#16 = rem8u#17 Alias time#0 = time#1 Alias n#14 = n#66 n#60 n#54 n#50 n#51 Alias peephole#12 = peephole#26 peephole#31 peephole#21 peephole#16 peephole#18 peephole#30 Alias duck#13 = duck#32 duck#26 duck#19 duck#14 duck#28 duck#36 Alias score#19 = score#71 score#63 score#54 score#21 Alias time#12 = time#36 time#31 time#27 time#13 Alias z#100 = z#90 z#85 z#79 z#46 Alias tu#14 = tu#60 tu#53 tu#46 tu#40 tu#41 Alias rem8u#18 = rem8u#65 rem8u#57 rem8u#50 rem8u#45 rem8u#46 Alias hiscore#10 = hiscore#58 hiscore#52 hiscore#46 hiscore#42 hiscore#43 Alias k#22 = k#68 k#27 k#62 k#56 k#52 k#53 Alias y#22 = y#23 Alias z#48 = z#62 Alias duck#15 = duck#21 Alias time#17 = time#33 Alias tu#19 = tu#34 Alias score#43 = score#73 Alias rem8u#31 = rem8u#41 Alias hiscore#32 = hiscore#39 Alias k#42 = k#49 Alias n#40 = n#47 Alias z#101 = z#104 Alias n#20 = n#25 Alias score#101 = score#67 Alias tu#1 = tu#30 Alias time#11 = time#35 Alias rem8u#25 = rem8u#36 Alias y#18 = y#39 Successful SSA optimization Pass2AliasElimination Alias candidate removed (volatile)conio_line_text = gotoxy::$5 Alias candidate removed (volatile)conio_line_color = gotoxy::$6 Alias candidate removed (volatile)chrout::petscii = main::$57 Alias y#13 = y#22 Alias peephole#12 = peephole#13 Alias duck#13 = duck#15 Alias tu#14 = tu#19 Alias rem8u#18 = rem8u#31 Alias hiscore#10 = hiscore#32 Alias k#22 = k#42 Alias n#14 = n#40 Successful SSA optimization Pass2AliasElimination Alias candidate removed (volatile)conio_line_text = gotoxy::$5 Alias candidate removed (volatile)conio_line_color = gotoxy::$6 Alias candidate removed (volatile)chrout::petscii = main::$57 Identical Phi Values memcpy::src_end#1 memcpy::src_end#0 Identical Phi Values memcpy::destination#3 memcpy::destination#2 Identical Phi Values memset::end#1 memset::end#0 Identical Phi Values memset::str#5 memset::str#3 Identical Phi Values memset::c#2 memset::c#4 Identical Phi Values utoa::max_digits#10 utoa::max_digits#7 Identical Phi Values utoa::digit_values#10 utoa::digit_values#8 Identical Phi Values utoa_append::value#5 utoa_append::value#0 Identical Phi Values utoa_append::sub#3 utoa_append::sub#0 Identical Phi Values utoa_append::buffer#3 utoa_append::buffer#0 Identical Phi Values utoa_append::sub#1 utoa_append::sub#3 Identical Phi Values utoa_append::buffer#1 utoa_append::buffer#3 Identical Phi Values cputc::c#1 cputc::c#0 Identical Phi Values divr8u::divisor#2 divr8u::divisor#6 Identical Phi Values div16u8u::dividend#1 div16u8u::dividend#0 Identical Phi Values div16u8u::divisor#1 div16u8u::divisor#0 Identical Phi Values rem8u#22 rem8u#23 Identical Phi Values rem8u#13 rem8u#0 Identical Phi Values rem8u#14 rem8u#0 Identical Phi Values clear_screen::m#3 clear_screen::m#5 Identical Phi Values clear_screen::n#3 clear_screen::n#5 Identical Phi Values random::k#3 random::k#4 Identical Phi Values random::n#3 random::n#4 Identical Phi Values score#14 score#38 Identical Phi Values score#1 score#14 Identical Phi Values wait::n#10 wait::n#5 Identical Phi Values rem8u#23 rem8u#25 Identical Phi Values rem8u#16 rem8u#14 Identical Phi Values z#67 z#17 Identical Phi Values rem8u#137 rem8u#27 Identical Phi Values y#124 y#25 Identical Phi Values hiscore#120 hiscore#12 Identical Phi Values n#119 n#16 Identical Phi Values z#55 z#67 Identical Phi Values rem8u#135 rem8u#137 Identical Phi Values y#122 y#124 Identical Phi Values hiscore#118 hiscore#120 Identical Phi Values n#117 n#119 Identical Phi Values z#26 z#2 Identical Phi Values z#42 z#26 Identical Phi Values rem8u#113 rem8u#127 Identical Phi Values y#100 y#114 Identical Phi Values hiscore#101 hiscore#110 Identical Phi Values n#100 n#109 Identical Phi Values z#27 z#2 Identical Phi Values k#11 k#101 Identical Phi Values rem8u#114 rem8u#102 Identical Phi Values y#101 y#108 Identical Phi Values hiscore#100 hiscore#104 Identical Phi Values z#29 z#28 Identical Phi Values rem8u#104 rem8u#103 Identical Phi Values y#102 y#90 Identical Phi Values hiscore#87 hiscore#86 Identical Phi Values k#100 k#103 Identical Phi Values n#102 n#90 Identical Phi Values score#29 score#2 Identical Phi Values tu#31 tu#0 Identical Phi Values rem8u#80 rem8u#100 Identical Phi Values y#68 y#80 Identical Phi Values z#120 z#128 Identical Phi Values peephole#69 peephole#0 Identical Phi Values hiscore#69 hiscore#76 Identical Phi Values k#79 k#86 Identical Phi Values n#73 n#80 Identical Phi Values score#105 score#1 Identical Phi Values tu#27 tu#31 Identical Phi Values score#104 score#105 Identical Phi Values rem8u#77 rem8u#80 Identical Phi Values y#65 y#68 Identical Phi Values z#118 z#120 Identical Phi Values peephole#67 peephole#69 Identical Phi Values hiscore#68 hiscore#69 Identical Phi Values k#78 k#79 Identical Phi Values n#72 n#73 Identical Phi Values tu#20 tu#13 Identical Phi Values score#44 score#100 Identical Phi Values rem8u#32 rem8u#48 Identical Phi Values y#36 y#49 Identical Phi Values z#78 z#102 Identical Phi Values peephole#40 peephole#52 Identical Phi Values hiscore#33 hiscore#44 Identical Phi Values k#43 k#54 Identical Phi Values n#41 n#52 Identical Phi Values tu#14 tu#20 Identical Phi Values duck#13 duck#1 Identical Phi Values hiscore#10 hiscore#33 Identical Phi Values k#22 k#43 Identical Phi Values rem8u#18 rem8u#16 Identical Phi Values time#12 time#0 Identical Phi Values score#101 score#1 Identical Phi Values z#10 z#25 Identical Phi Values score#22 score#1 Identical Phi Values z#11 z#25 Identical Phi Values z#12 z#25 Identical Phi Values z#13 z#25 Identical Phi Values z#14 z#25 Identical Phi Values z#101 z#2 Identical Phi Values z#16 z#101 Identical Phi Values k#12 k#22 Identical Phi Values n#10 n#20 Identical Phi Values peephole#14 peephole#12 Identical Phi Values score#26 score#101 Identical Phi Values tu#10 tu#1 Identical Phi Values duck#10 duck#13 Identical Phi Values time#14 time#11 Identical Phi Values rem8u#19 rem8u#25 Identical Phi Values y#15 y#18 Identical Phi Values hiscore#1 hiscore#19 Identical Phi Values z#18 z#16 Identical Phi Values k#10 k#12 Identical Phi Values n#11 n#10 Identical Phi Values peephole#10 peephole#14 Identical Phi Values score#11 score#26 Identical Phi Values tu#11 tu#10 Identical Phi Values j#10 j#19 Identical Phi Values duck#11 duck#10 Identical Phi Values time#15 time#14 Identical Phi Values rem8u#10 rem8u#19 Identical Phi Values y#16 y#15 Identical Phi Values hiscore#3 hiscore#1 Successful SSA optimization Pass2IdenticalPhiElimination Identical Phi Values memset::return#0 memset::str#3 Identical Phi Values wait::n#5 wait::n#6 Identical Phi Values rem8u#102 rem8u#127 Identical Phi Values y#108 y#114 Identical Phi Values hiscore#104 hiscore#110 Identical Phi Values rem8u#103 rem8u#102 Identical Phi Values y#90 y#108 Identical Phi Values hiscore#86 hiscore#104 Identical Phi Values k#103 k#101 Identical Phi Values n#90 n#89 Identical Phi Values score#100 score#38 Identical Phi Values hiscore#44 hiscore#76 Identical Phi Values k#54 k#86 Identical Phi Values z#73 z#25 Successful SSA optimization Pass2IdenticalPhiElimination Identical Phi Values rem8u#100 rem8u#127 Identical Phi Values y#80 y#114 Identical Phi Values hiscore#76 hiscore#110 Identical Phi Values k#86 k#101 Identical Phi Values n#80 n#89 Successful SSA optimization Pass2IdenticalPhiElimination Identified duplicate assignment right side [290] clear_screen::$5 = $1e00 + z#2 Identified duplicate assignment right side [770] main::$127 = y#35 + 1 Identified duplicate assignment right side [775] main::$130 = y#35 + $16 Identified duplicate assignment right side [780] main::$133 = y#35 + $17 Identified duplicate assignment right side [792] main::$138 = duck#1 + 1 Identified duplicate assignment right side [797] main::$141 = duck#1 + $16 Identified duplicate assignment right side [802] main::$144 = duck#1 + $17 Identified duplicate assignment right side [812] main::$119 = peephole#12 + c Identified duplicate assignment right side [815] main::$121 = peephole#12 + c Identified duplicate assignment right side [818] main::$123 = peephole#12 + c Successful SSA optimization Pass2DuplicateRValueIdentification Simple Condition memcpy::$1 [7] if(memcpy::src#2!=memcpy::src_end#0) goto memcpy::@2 Simple Condition memset::$1 [14] if(memset::num#2<=0) goto memset::@1 Simple Condition memset::$3 [21] if(memset::dst#2!=memset::end#0) goto memset::@4 Simple Condition utoa::$0 [29] if(utoa::radix#2==DECIMAL) goto utoa::@1 Simple Condition utoa::$1 [33] if(utoa::radix#2==HEXADECIMAL) goto utoa::@2 Simple Condition utoa::$2 [37] if(utoa::radix#2==OCTAL) goto utoa::@3 Simple Condition utoa::$3 [41] if(utoa::radix#2==BINARY) goto utoa::@4 Simple Condition utoa::$5 [58] if(utoa::digit#2=utoa_append::sub#0) goto utoa_append::@2 Simple Condition gotoxy::$1 [90] if(gotoxy::y#4<=$19) goto gotoxy::@1 Simple Condition gotoxy::$3 [93] if(gotoxy::x#4<$28) goto gotoxy::@2 Simple Condition cputc::$0 [108] if(cputc::c#0==' ') goto cputc::@1 Simple Condition cputc::$2 [114] if(conio_cursor_x!=$28) goto cputc::@return Simple Condition cputs::$2 [129] if(0!=cputs::c#1) goto cputs::@2 Simple Condition cscroll::$1 [138] if(conio_cursor_y!=$19) goto cscroll::@return Simple Condition cscroll::$7 [140] if(0!=conio_scroll_enable) goto cscroll::@3 Simple Condition conio_c64_init::$1 [170] if(conio_c64_init::line#0<$19) goto conio_c64_init::@1 Simple Condition divr8u::$3 [184] if(divr8u::$1==0) goto divr8u::@2 Simple Condition divr8u::$8 [189] if(divr8u::rem#6=$a) goto read_chrono::@return Simple Condition main::$2 [319] if(m<$28) goto main::@2 Simple Condition main::$11 [347] if(l>5) goto main::@4 Simple Condition main::$16 [362] if(k#101<$16) goto main::@7 Simple Condition main::$24 [374] if(l<=1) goto main::@12 Simple Condition main::$18 [377] if(n#101<$16) goto main::@10 Simple Condition main::$31 [410] if(main::$29<=$1f9) goto main::@14 Simple Condition main::$32 [414] if(j#11<=m) goto main::@16 Simple Condition main::$37 [423] if(z#9<$1fa) goto main::@13 Simple Condition main::$44 [426] if(j#13<4) goto main::@19 Simple Condition main::$49 [440] if(j#16<5) goto main::@22 Simple Condition main::$54 [453] if(tu#13<$a) goto main::@24 Simple Condition main::$76 [488] if(time#11<$a) goto main::@28 Simple Condition main::$80 [497] if(main::$78!=0) goto main::@30 Simple Condition main::$157 [519] if(tu#1<$b) goto main::@23 Simple Condition main::$83 [523] if(main::$81!=0) goto main::@31 Simple Condition main::$86 [528] if(main::$84!=0) goto main::@32 Simple Condition main::$90 [533] if(main::$88!=0) goto main::@33 Simple Condition main::$94 [538] if(main::$92!=0) goto main::@34 Simple Condition main::$95 [559] if(peephole#12!=duck#1) goto main::@35 Simple Condition main::$168 [654] if(score#38<=hiscore#110) goto main::@48 Simple Condition main::$176 [674] if(j#19==$b) goto main::@3 Successful SSA optimization Pass2ConditionalJumpSimplification Rewriting ! if()-condition to reversed if() [63] utoa::$8 = ! utoa::$7 Rewriting || if()-condition to two if()s [62] utoa::$7 = utoa::started#2 || utoa::$6 Rewriting || if()-condition to two if()s [238] random::$2 = random::$0 || random::$1 Rewriting || if()-condition to two if()s [482] main::$74 = main::$71 || main::$73 Rewriting || if()-condition to two if()s [479] main::$71 = main::$68 || main::$70 Rewriting || if()-condition to two if()s [476] main::$68 = main::$65 || main::$67 Rewriting || if()-condition to two if()s [473] main::$65 = main::$63 || main::$64 Rewriting ! if()-condition to reversed if() [555] main::$117 = ! main::$116 Rewriting && if()-condition to two if()s [554] main::$116 = main::$114 && main::$115 Rewriting && if()-condition to two if()s [552] main::$114 = main::$112 && main::$113 Rewriting && if()-condition to two if()s [550] main::$112 = main::$109 && main::$111 Rewriting && if()-condition to two if()s [547] main::$109 = main::$106 && main::$108 Rewriting && if()-condition to two if()s [544] main::$106 = main::$103 && main::$105 Rewriting && if()-condition to two if()s [671] main::$175 = main::$173 && main::$174 Successful SSA optimization Pass2ConditionalAndOrRewriting Warning! Adding boolean cast to non-boolean condition utoa::started#2 Constant right-side identified [143] memcpy::num#0 = (unumber)$19*$28-$28 Constant right-side identified [148] memcpy::num#1 = (unumber)$19*$28-$28 Constant right-side identified [175] conio_c64_init::line#1 = (unumber)$19-1 Successful SSA optimization Pass2ConstantRValueConsolidation Constant utoa::max_digits#0 = 0 Constant utoa::digit_values#0 = (unsigned int *) 0 Constant utoa::max_digits#1 = 5 Constant utoa::digit_values#1 = RADIX_DECIMAL_VALUES Constant utoa::max_digits#2 = 4 Constant utoa::digit_values#2 = RADIX_HEXADECIMAL_VALUES Constant utoa::max_digits#3 = 6 Constant utoa::digit_values#3 = RADIX_OCTAL_VALUES Constant utoa::max_digits#4 = $10 Constant utoa::digit_values#4 = RADIX_BINARY_VALUES Constant utoa::started#0 = 0 Constant utoa::digit#0 = 0 Constant utoa::started#1 = 1 Constant utoa_append::digit#0 = 0 Constant gotoxy::y#0 = 0 Constant gotoxy::x#0 = 0 Constant cputs::c#0 = 0 Constant memcpy::destination#0 = (void *)DEFAULT_SCREEN Constant memcpy::source#0 = (void *)DEFAULT_SCREEN+$28 Constant memcpy::num#0 = (unumber)$19*$28-$28 Constant memcpy::destination#1 = (void *)COLORRAM Constant memcpy::source#1 = (void *)COLORRAM+$28 Constant memcpy::num#1 = (unumber)$19*$28-$28 Constant memset::str#0 = (void *)DEFAULT_SCREEN+(unsigned int)$19*$28-$28 Constant memset::c#0 = ' ' Constant memset::num#0 = $28 Constant memset::str#1 = (void *)COLORRAM+(unsigned int)$19*$28-$28 Constant memset::num#1 = $28 Constant gotoxy::x#1 = 0 Constant gotoxy::y#1 = 0 Constant gotoxy::x#2 = 0 Constant conio_c64_init::line#1 = (unumber)$19-1 Constant divr8u::quotient#0 = 0 Constant divr8u::i#0 = 0 Constant divr8u::rem#3 = 0 Constant z#0 = 0 Constant gotoxy::x#3 = 0 Constant gotoxy::y#3 = 0 Constant score#0 = 0 Constant utoa::buffer#5 = buffer Constant utoa::radix#0 = $a Constant z#3 = 0 Constant div16u8u::divisor#0 = $3c Constant clear_screen::n#0 = $20 Constant clear_screen::m#0 = 0 Constant textcolor::color#0 = 7 Constant cputs::s#1 = intro Constant textcolor::color#1 = 1 Constant cputs::s#2 = levels Constant textcolor::color#2 = 2 Constant cputs::s#3 = foot Constant clear_screen::n#1 = 4 Constant clear_screen::m#1 = 0 Constant k#0 = 1 Constant n#0 = 2 Constant z#8 = 1 Constant peephole#0 = $1f1f Constant score#2 = 0 Constant tu#0 = 1 Constant j#0 = 0 Constant j#1 = 1 Constant j#4 = 0 Constant random::k#1 = 0 Constant random::n#1 = $ff Constant random::k#2 = 0 Constant random::n#2 = $ff Constant time#18 = 0 Constant wait::n#0 = $14 Constant wait::n#1 = $a Constant wait::n#2 = $a Constant time#4 = $a Constant wait::n#3 = 5 Constant wait::n#4 = 5 Constant clear_screen::n#2 = 4 Constant clear_screen::m#2 = 0 Constant textcolor::color#3 = 7 Constant cputs::s#4 = game_over Constant textcolor::color#4 = 2 Constant cputs::s#5 = your_score Constant cputs::s#6 = buffer Constant textcolor::color#5 = 3 Constant cputs::s#7 = high_score Constant utoa::buffer#6 = buffer Constant utoa::radix#1 = $a Constant cputs::s#8 = buffer Constant textcolor::color#6 = 1 Constant cputs::s#9 = play_again Constant rem8u#27 = 0 Constant j#25 = 0 Constant k#13 = 0 Constant n#16 = 0 Constant tu#17 = 0 Constant duck#17 = 0 Constant peephole#15 = 0 Constant y#25 = 0 Constant z#17 = 0 Constant time#22 = 0 Constant score#10 = 0 Constant hiscore#12 = 0 Constant conio_scroll_enable = 1 Successful SSA optimization Pass2ConstantIdentification Constant divr8u::divisor#0 = div16u8u::divisor#0 Constant divr8u::divisor#1 = div16u8u::divisor#0 Successful SSA optimization Pass2ConstantIdentification if() condition always true - replacing block destination [140] if(0!=conio_scroll_enable) goto cscroll::@3 Successful SSA optimization Pass2ConstantIfs Resolved ranged next value [192] divr8u::i#1 = ++ divr8u::i#2 to ++ Resolved ranged comparison value [194] if(divr8u::i#1!=rangelast(0,7)) goto divr8u::@1 to 8 Rewriting conditional comparison [90] if(gotoxy::y#4<=$19) goto gotoxy::@1 Rewriting conditional comparison [259] if(score#38<=9) goto write_score::@2 Rewriting conditional comparison [261] if(score#38<=$63) goto write_score::@3 Rewriting conditional comparison [347] if(l>5) goto main::@4 Rewriting conditional comparison [374] if(l<=1) goto main::@12 Simplifying expression containing zero buffer in [262] points[2] = buffer[0] Simplifying expression containing zero buffer in [270] points[1] = buffer[0] Successful SSA optimization PassNSimplifyExpressionWithZero Removing PHI-reference to removed block (cscroll::@2) in block gotoxy Removing PHI-reference to removed block (cscroll::@2) in block gotoxy Removing unused block cscroll::@2 Removing unused block cscroll::@8 Successful SSA optimization Pass2EliminateUnusedBlocks Eliminating unused variable memcpy::return#2 and assignment [105] memcpy::return#2 = memcpy::destination#2 Eliminating unused variable memcpy::return#3 and assignment [107] memcpy::return#3 = memcpy::destination#2 Eliminating unused variable memset::return#2 and assignment [109] memset::return#2 = memset::str#3 Eliminating unused variable memset::return#3 and assignment [112] memset::return#3 = memset::str#3 Eliminating unused variable - keeping the phi block z#41 Eliminating unused variable textcolor::return#2 and assignment [236] textcolor::return#2 = textcolor::return#0 Eliminating unused variable textcolor::return#3 and assignment [239] textcolor::return#3 = textcolor::return#0 Eliminating unused variable textcolor::return#4 and assignment [242] textcolor::return#4 = textcolor::return#0 Eliminating unused variable textcolor::return#5 and assignment [473] textcolor::return#5 = textcolor::return#0 Eliminating unused variable textcolor::return#6 and assignment [476] textcolor::return#6 = textcolor::return#0 Eliminating unused variable textcolor::return#7 and assignment [480] textcolor::return#7 = textcolor::return#0 Eliminating unused variable textcolor::return#8 and assignment [488] textcolor::return#8 = textcolor::return#0 Eliminating unused constant utoa::max_digits#0 Eliminating unused constant utoa::digit_values#0 Eliminating unused constant gotoxy::x#1 Eliminating unused constant gotoxy::y#1 Eliminating unused constant cputs::c#0 Eliminating unused constant j#25 Eliminating unused constant k#13 Eliminating unused constant tu#17 Eliminating unused constant duck#17 Eliminating unused constant peephole#15 Eliminating unused constant time#22 Eliminating unused constant score#10 Eliminating unused constant conio_scroll_enable Successful SSA optimization PassNEliminateUnusedVars Eliminating unused variable textcolor::return#0 and assignment [100] textcolor::return#0 = conio_textcolor Eliminating unused constant z#17 Successful SSA optimization PassNEliminateUnusedVars Adding number conversion cast (unumber) 0 in utoa::$12 = 0 != utoa::started#2 Adding number conversion cast (unumber) $19+1 in if(gotoxy::y#4<$19+1) goto gotoxy::@1 Adding number conversion cast (unumber) 1 in if(gotoxy::y#4<(unumber)$19+1) goto gotoxy::@1 Adding number conversion cast (unumber) 8 in if(divr8u::i#1!=8) goto divr8u::@1 Adding number conversion cast (unumber) 9+1 in if(score#38<9+1) goto write_score::@2 Adding number conversion cast (unumber) 1 in if(score#38<(unumber)9+1) goto write_score::@2 Adding number conversion cast (unumber) $63+1 in if(score#38<$63+1) goto write_score::@3 Adding number conversion cast (unumber) 1 in if(score#38<(unumber)$63+1) goto write_score::@3 Adding number conversion cast (unumber) 5+1 in if(l>=5+1) goto main::@4 Adding number conversion cast (unumber) 1 in if(l>=(unumber)5+1) goto main::@4 Adding number conversion cast (unumber) 1+1 in if(l<1+1) goto main::@12 Adding number conversion cast (unumber) 1 in if(l<(unumber)1+1) goto main::@12 Successful SSA optimization PassNAddNumberTypeConversions Simplifying constant integer cast 0 Simplifying constant integer cast $19+(unumber)1 Simplifying constant integer cast 1 Simplifying constant integer cast 8 Simplifying constant integer cast 9+(unumber)1 Simplifying constant integer cast 1 Simplifying constant integer cast $63+(unumber)1 Simplifying constant integer cast 1 Simplifying constant integer cast 5+(unumber)1 Simplifying constant integer cast 1 Simplifying constant integer cast 1+(unumber)1 Simplifying constant integer cast 1 Successful SSA optimization PassNCastSimplification Finalized unsigned number type (char) 0 Finalized unsigned number type (char) 1 Finalized unsigned number type (char) 8 Finalized unsigned number type (char) 1 Finalized unsigned number type (char) 1 Finalized unsigned number type (char) 1 Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias candidate removed (volatile)conio_line_text = gotoxy::$5 Alias candidate removed (volatile)conio_line_color = gotoxy::$6 Alias candidate removed (volatile)chrout::petscii = main::$57 Alias clear_screen::$5 = clear_screen::$3 Alias main::$127 = main::$126 Alias main::$130 = main::$129 Alias main::$133 = main::$132 Alias main::$138 = main::$137 Alias main::$141 = main::$140 Alias main::$144 = main::$143 Alias main::$119 = main::$118 main::$121 main::$123 Successful SSA optimization Pass2AliasElimination Alias candidate removed (volatile)conio_line_text = gotoxy::$5 Alias candidate removed (volatile)conio_line_color = gotoxy::$6 Alias candidate removed (volatile)chrout::petscii = main::$57 Simple Condition utoa::$12 [42] if(0!=utoa::started#2) goto utoa::@14 Simple Condition utoa::$6 [56] if(utoa::value#3>=utoa::digit_value#0) goto utoa::@14 Simple Condition random::$0 [162] if(mrandom::n#4) goto random::@1 Simple Condition main::$63 [342] if(duck#1>$1fe3) goto main::@25 Simple Condition main::$103 [397] if(*((char *)y#13)!=brick) goto main::@122 Simple Condition main::$173 [471] if(j#19!=$b) goto main::@123 Simple Condition main::$73 [475] if(*((char *)main::$72)==brick) goto main::@25 Simple Condition main::$70 [476] if(*((char *)main::$69)==brick) goto main::@25 Simple Condition main::$67 [477] if(*((char *)main::$66)==brick) goto main::@25 Simple Condition main::$64 [478] if(*((char *)duck#1)==brick) goto main::@25 Simple Condition main::$115 [479] if(y#13<$1fe3) goto main::@44 Simple Condition main::$113 [480] if(y#13>$1e16) goto main::@118 Simple Condition main::$111 [481] if(*((char *)main::$110)!=brick) goto main::@119 Simple Condition main::$108 [482] if(*((char *)main::$107)!=brick) goto main::@120 Simple Condition main::$105 [483] if(*((char *)main::$104)!=brick) goto main::@121 Simple Condition main::$174 [484] if(j#19!=$1c) goto main::@49 Successful SSA optimization Pass2ConditionalJumpSimplification Negating conditional jump and destination [397] if(*((char *)y#13)==brick) goto main::@37 Negating conditional jump and destination [471] if(j#19==$b) goto main::@50 Negating conditional jump and destination [479] if(y#13>=$1fe3) goto main::@37 Negating conditional jump and destination [481] if(*((char *)main::$110)==brick) goto main::@37 Negating conditional jump and destination [483] if(*((char *)main::$104)==brick) goto main::@37 Successful SSA optimization Pass2ConditionalJumpSequenceImprovement Alias candidate removed (volatile)conio_line_text = gotoxy::$5 Alias candidate removed (volatile)conio_line_color = gotoxy::$6 Alias candidate removed (volatile)chrout::petscii = main::$57 Inlining Noop Cast [1] memcpy::src#0 = (char *)memcpy::source#2 keeping memcpy::source#2 Inlining Noop Cast [2] memcpy::dst#0 = (char *)memcpy::destination#2 keeping memcpy::destination#2 Inlining Noop Cast [3] memcpy::$2 = (char *)memcpy::source#2 keeping memcpy::source#2 Inlining Noop Cast [13] memset::$4 = (char *)memset::str#3 keeping memset::str#3 Inlining Noop Cast [15] memset::dst#0 = (char *)memset::str#3 keeping memset::str#3 Successful SSA optimization Pass2NopCastInlining Rewriting multiplication to use shift [38] utoa::$10 = utoa::digit#2 * SIZEOF_UNSIGNED_INT Rewriting multiplication to use shift and addition[69] gotoxy::line_offset#0 = gotoxy::$7 * $28 Rewriting multiplication to use shift [203] read_chrono::$0 = m * $100 Rewriting multiplication to use shift and addition[279] main::$26 = 3 * l Rewriting multiplication to use shift and addition[390] main::$97 = main::$96 * $a Successful SSA optimization Pass2MultiplyToShiftRewriting Inlining constant with var siblings memcpy::destination#0 Inlining constant with var siblings memcpy::source#0 Inlining constant with var siblings memcpy::num#0 Inlining constant with var siblings memcpy::destination#1 Inlining constant with var siblings memcpy::source#1 Inlining constant with var siblings memcpy::num#1 Inlining constant with var siblings memset::str#0 Inlining constant with var siblings memset::c#0 Inlining constant with var siblings memset::num#0 Inlining constant with var siblings memset::str#1 Inlining constant with var siblings memset::num#1 Inlining constant with var siblings utoa::max_digits#1 Inlining constant with var siblings utoa::digit_values#1 Inlining constant with var siblings utoa::max_digits#2 Inlining constant with var siblings utoa::digit_values#2 Inlining constant with var siblings utoa::max_digits#3 Inlining constant with var siblings utoa::digit_values#3 Inlining constant with var siblings utoa::max_digits#4 Inlining constant with var siblings utoa::digit_values#4 Inlining constant with var siblings utoa::started#0 Inlining constant with var siblings utoa::digit#0 Inlining constant with var siblings utoa::started#1 Inlining constant with var siblings utoa::buffer#5 Inlining constant with var siblings utoa::radix#0 Inlining constant with var siblings utoa::buffer#6 Inlining constant with var siblings utoa::radix#1 Inlining constant with var siblings utoa_append::digit#0 Inlining constant with var siblings gotoxy::y#0 Inlining constant with var siblings gotoxy::x#0 Inlining constant with var siblings gotoxy::x#2 Inlining constant with var siblings gotoxy::x#3 Inlining constant with var siblings gotoxy::y#3 Inlining constant with var siblings cputs::s#1 Inlining constant with var siblings cputs::s#2 Inlining constant with var siblings cputs::s#3 Inlining constant with var siblings cputs::s#4 Inlining constant with var siblings cputs::s#5 Inlining constant with var siblings cputs::s#6 Inlining constant with var siblings cputs::s#7 Inlining constant with var siblings cputs::s#8 Inlining constant with var siblings cputs::s#9 Inlining constant with var siblings textcolor::color#0 Inlining constant with var siblings textcolor::color#1 Inlining constant with var siblings textcolor::color#2 Inlining constant with var siblings textcolor::color#3 Inlining constant with var siblings textcolor::color#4 Inlining constant with var siblings textcolor::color#5 Inlining constant with var siblings textcolor::color#6 Inlining constant with var siblings conio_c64_init::line#1 Inlining constant with var siblings divr8u::quotient#0 Inlining constant with var siblings divr8u::i#0 Inlining constant with var siblings divr8u::rem#3 Inlining constant with var siblings divr8u::divisor#0 Inlining constant with var siblings divr8u::divisor#1 Inlining constant with var siblings clear_screen::n#0 Inlining constant with var siblings clear_screen::m#0 Inlining constant with var siblings clear_screen::n#1 Inlining constant with var siblings clear_screen::m#1 Inlining constant with var siblings clear_screen::n#2 Inlining constant with var siblings clear_screen::m#2 Inlining constant with var siblings random::k#1 Inlining constant with var siblings random::n#1 Inlining constant with var siblings random::k#2 Inlining constant with var siblings random::n#2 Inlining constant with var siblings wait::n#0 Inlining constant with var siblings wait::n#1 Inlining constant with var siblings wait::n#2 Inlining constant with var siblings wait::n#3 Inlining constant with var siblings wait::n#4 Inlining constant with var siblings z#0 Inlining constant with var siblings score#0 Inlining constant with var siblings z#3 Inlining constant with var siblings k#0 Inlining constant with var siblings n#0 Inlining constant with var siblings z#8 Inlining constant with var siblings peephole#0 Inlining constant with var siblings score#2 Inlining constant with var siblings tu#0 Inlining constant with var siblings j#0 Inlining constant with var siblings j#1 Inlining constant with var siblings j#4 Inlining constant with var siblings time#18 Inlining constant with var siblings time#4 Inlining constant with var siblings rem8u#27 Inlining constant with var siblings n#16 Inlining constant with var siblings y#25 Inlining constant with var siblings hiscore#12 Constant inlined cputs::s#5 = your_score Constant inlined utoa::digit_values#1 = RADIX_DECIMAL_VALUES Constant inlined cputs::s#6 = buffer Constant inlined cputs::s#3 = foot Constant inlined utoa::radix#0 = $a Constant inlined cputs::s#4 = game_over Constant inlined utoa::radix#1 = $a Constant inlined utoa::digit_values#4 = RADIX_BINARY_VALUES Constant inlined cputs::s#1 = intro Constant inlined cputs::s#2 = levels Constant inlined wait::n#4 = 5 Constant inlined utoa::digit_values#2 = RADIX_HEXADECIMAL_VALUES Constant inlined wait::n#3 = 5 Constant inlined utoa::digit_values#3 = RADIX_OCTAL_VALUES Constant inlined wait::n#2 = $a Constant inlined wait::n#1 = $a Constant inlined wait::n#0 = $14 Constant inlined memset::num#1 = $28 Constant inlined memset::num#0 = $28 Constant inlined divr8u::i#0 = 0 Constant inlined random::n#1 = $ff Constant inlined time#4 = $a Constant inlined random::n#2 = $ff Constant inlined rem8u#27 = 0 Constant inlined clear_screen::m#0 = 0 Constant inlined tu#0 = 1 Constant inlined clear_screen::m#1 = 0 Constant inlined k#0 = 1 Constant inlined clear_screen::m#2 = 0 Constant inlined divr8u::rem#3 = 0 Constant inlined memcpy::source#0 = (void *)DEFAULT_SCREEN+$28 Constant inlined score#2 = 0 Constant inlined textcolor::color#6 = 1 Constant inlined gotoxy::x#3 = 0 Constant inlined utoa::buffer#6 = buffer Constant inlined time#18 = 0 Constant inlined utoa::buffer#5 = buffer Constant inlined gotoxy::x#0 = 0 Constant inlined gotoxy::x#2 = 0 Constant inlined utoa::max_digits#1 = 5 Constant inlined utoa::max_digits#2 = 4 Constant inlined utoa::max_digits#3 = 6 Constant inlined y#25 = 0 Constant inlined memset::c#0 = ' ' Constant inlined utoa::max_digits#4 = $10 Constant inlined cputs::s#9 = play_again Constant inlined cputs::s#7 = high_score Constant inlined cputs::s#8 = buffer Constant inlined utoa_append::digit#0 = 0 Constant inlined divr8u::divisor#1 = div16u8u::divisor#0 Constant inlined divr8u::divisor#0 = div16u8u::divisor#0 Constant inlined hiscore#12 = 0 Constant inlined memcpy::destination#0 = (void *)DEFAULT_SCREEN Constant inlined memcpy::destination#1 = (void *)COLORRAM Constant inlined textcolor::color#3 = 7 Constant inlined textcolor::color#2 = 2 Constant inlined textcolor::color#5 = 3 Constant inlined conio_c64_init::line#1 = (char)$19-1 Constant inlined score#0 = 0 Constant inlined memcpy::source#1 = (void *)COLORRAM+$28 Constant inlined textcolor::color#4 = 2 Constant inlined utoa::digit#0 = 0 Constant inlined textcolor::color#1 = 1 Constant inlined j#0 = 0 Constant inlined textcolor::color#0 = 7 Constant inlined clear_screen::n#0 = $20 Constant inlined j#1 = 1 Constant inlined clear_screen::n#1 = 4 Constant inlined n#0 = 2 Constant inlined j#4 = 0 Constant inlined clear_screen::n#2 = 4 Constant inlined random::k#2 = 0 Constant inlined random::k#1 = 0 Constant inlined memset::str#1 = (void *)COLORRAM+(unsigned int)$19*$28-$28 Constant inlined memset::str#0 = (void *)DEFAULT_SCREEN+(unsigned int)$19*$28-$28 Constant inlined z#0 = 0 Constant inlined n#16 = 0 Constant inlined utoa::started#1 = 1 Constant inlined utoa::started#0 = 0 Constant inlined z#3 = 0 Constant inlined z#8 = 1 Constant inlined memcpy::num#1 = (unsigned int)$19*$28-$28 Constant inlined divr8u::quotient#0 = 0 Constant inlined memcpy::num#0 = (unsigned int)$19*$28-$28 Constant inlined gotoxy::y#3 = 0 Constant inlined peephole#0 = $1f1f Constant inlined gotoxy::y#0 = 0 Successful SSA optimization Pass2ConstantInlining Consolidated array index constant in *(points+2) Consolidated array index constant in *(buffer+1) Consolidated array index constant in *(points+3) Consolidated array index constant in *(points+1) Consolidated array index constant in *(buffer+1) Consolidated array index constant in *(points+2) Consolidated array index constant in *(buffer+2) Consolidated array index constant in *(points+3) Consolidated constant in assignment main::$152 Consolidated constant in assignment main::$154 Consolidated constant in assignment main::$156 Successful SSA optimization Pass2ConstantAdditionElimination Alias candidate removed (volatile)conio_line_text = gotoxy::$5 Alias candidate removed (volatile)conio_line_color = gotoxy::$6 Alias candidate removed (volatile)chrout::petscii = main::$57 Alias gotoxy::line_offset#0 = gotoxy::$10 Alias main::$26 = main::$178 Alias main::$97 = main::$181 Successful SSA optimization Pass2AliasElimination Alias candidate removed (volatile)conio_line_text = gotoxy::$5 Alias candidate removed (volatile)conio_line_color = gotoxy::$6 Alias candidate removed (volatile)chrout::petscii = main::$57 Identical Phi Values memcpy::num#2 (unsigned int)$19*$28-$28 Identical Phi Values memset::num#2 $28 Identical Phi Values utoa::radix#2 $a Identical Phi Values utoa::buffer#11 buffer Identical Phi Values gotoxy::x#4 0 Identical Phi Values divr8u::divisor#6 div16u8u::divisor#0 Identical Phi Values clear_screen::m#5 0 Successful SSA optimization Pass2IdenticalPhiElimination Identical Phi Values gotoxy::x#5 0 Successful SSA optimization Pass2IdenticalPhiElimination Constant right-side identified [22] utoa::buffer#0 = ++ buffer Successful SSA optimization Pass2ConstantRValueConsolidation Constant utoa::buffer#0 = ++buffer Successful SSA optimization Pass2ConstantIdentification if() condition always false - eliminating [9] if($28<=0) goto memset::@1 if() condition always true - replacing block destination [17] if($a==DECIMAL) goto utoa::@1 if() condition always false - eliminating [18] if($a==HEXADECIMAL) goto utoa::@2 if() condition always false - eliminating [19] if($a==OCTAL) goto utoa::@3 if() condition always false - eliminating [20] if($a==BINARY) goto utoa::@4 if() condition always true - replacing block destination [59] if(0<$28) goto gotoxy::@2 Successful SSA optimization Pass2ConstantIfs Eliminating variable utoa::buffer#1 from unused block utoa::@9 Eliminating variable utoa::buffer#2 from unused block utoa::@9 Removing unused block utoa::@6 Removing PHI-reference to removed block (utoa::@2) in block utoa::@5 Removing PHI-reference to removed block (utoa::@2) in block utoa::@5 Removing unused block utoa::@2 Removing unused block utoa::@7 Removing PHI-reference to removed block (utoa::@3) in block utoa::@5 Removing PHI-reference to removed block (utoa::@3) in block utoa::@5 Removing unused block utoa::@3 Removing unused block utoa::@8 Removing PHI-reference to removed block (utoa::@4) in block utoa::@5 Removing PHI-reference to removed block (utoa::@4) in block utoa::@5 Removing unused block utoa::@4 Removing unused block utoa::@9 Removing unused block gotoxy::@4 Successful SSA optimization Pass2EliminateUnusedBlocks Eliminating unused constant BINARY Eliminating unused constant OCTAL Eliminating unused constant DECIMAL Eliminating unused constant HEXADECIMAL Eliminating unused constant utoa::buffer#0 Eliminating unused constant RADIX_BINARY_VALUES Eliminating unused constant RADIX_OCTAL_VALUES Eliminating unused constant RADIX_HEXADECIMAL_VALUES Eliminating unused constant SIZEOF_UNSIGNED_INT Successful SSA optimization PassNEliminateUnusedVars Alias candidate removed (volatile)conio_line_text = gotoxy::$5 Alias candidate removed (volatile)conio_line_color = gotoxy::$6 Alias candidate removed (volatile)chrout::petscii = main::$57 Identical Phi Values utoa::max_digits#7 5 Identical Phi Values utoa::digit_values#8 RADIX_DECIMAL_VALUES Successful SSA optimization Pass2IdenticalPhiElimination Constant right-side identified [19] utoa::$4 = 5 - 1 Successful SSA optimization Pass2ConstantRValueConsolidation Constant utoa::$4 = 5-1 Successful SSA optimization Pass2ConstantIdentification Constant inlined utoa::$4 = 5-1 Successful SSA optimization Pass2ConstantInlining Alias candidate removed (volatile)conio_line_text = gotoxy::$5 Alias candidate removed (volatile)conio_line_color = gotoxy::$6 Alias candidate removed (volatile)chrout::petscii = main::$57 Alias candidate removed (volatile)conio_line_text = gotoxy::$5 Alias candidate removed (volatile)conio_line_color = gotoxy::$6 Alias candidate removed (volatile)chrout::petscii = main::$57 Finalized unsigned number type (char) 2 Finalized unsigned number type (char) 8 Finalized unsigned number type (char) $a Finalized unsigned number type (char) $10 Finalized unsigned number type (char) $b Finalized unsigned number type (char) $b Finalized unsigned number type (char) $19 Finalized unsigned number type (char) $28 Finalized unsigned number type (char) $28 Finalized unsigned number type (char) $19 Finalized unsigned number type (char) $28 Finalized unsigned number type (char) $19 Finalized unsigned number type (char) $28 Finalized unsigned number type (char) $19 Finalized unsigned number type (char) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Simplifying constant integer cast $19-1 Successful SSA optimization PassNCastSimplification Alias candidate removed (volatile)conio_line_text = gotoxy::$5 Alias candidate removed (volatile)conio_line_color = gotoxy::$6 Alias candidate removed (volatile)chrout::petscii = main::$57 Alias candidate removed (volatile)conio_line_text = gotoxy::$5 Alias candidate removed (volatile)conio_line_color = gotoxy::$6 Alias candidate removed (volatile)chrout::petscii = main::$57 Added new block during phi lifting utoa::@17(between utoa::@16 and utoa::@13) Added new block during phi lifting gotoxy::@5(between gotoxy and gotoxy::@1) Added new block during phi lifting conio_c64_init::@4(between conio_c64_init and conio_c64_init::@1) Added new block during phi lifting divr8u::@7(between divr8u::@3 and divr8u::@1) Added new block during phi lifting divr8u::@8(between divr8u::@1 and divr8u::@2) Added new block during phi lifting divr8u::@9(between divr8u::@2 and divr8u::@3) Added new block during phi lifting write_score::@16(between write_score and write_score::@1) Added new block during phi lifting main::@124(between main::@50 and main::@3) Added new block during phi lifting main::@125(between main::@76 and main::@12) Added new block during phi lifting main::@126(between main::@78 and main::@12) Added new block during phi lifting main::@127(between main::@78 and main::@13) Added new block during phi lifting main::@128(between main::@95 and main::@23) Added new block during phi lifting main::@129(between main::@21 and main::@23) Fixing phi predecessor for tu#13 to new block ( main::@21 -> main::@129 ) during phi lifting. Fixing phi predecessor for peephole#52 to new block ( main::@21 -> main::@129 ) during phi lifting. Added new block during phi lifting main::@130(between main::@93 and main::@30) Added new block during phi lifting main::@131(between main::@30 and main::@31) Added new block during phi lifting main::@132(between main::@31 and main::@32) Added new block during phi lifting main::@133(between main::@32 and main::@33) Added new block during phi lifting main::@134(between main::@33 and main::@34) Added new block during phi lifting main::@135(between main::@34 and main::@37) Added new block during phi lifting main::@136(between main::@109 and main::@48) Adding NOP phi() at start of __start Adding NOP phi() at start of __start::@2 Adding NOP phi() at start of __start::@1 Adding NOP phi() at start of __start::@3 Adding NOP phi() at start of conio_c64_init::@2 Adding NOP phi() at start of conio_c64_init::@3 Adding NOP phi() at start of main::@54 Adding NOP phi() at start of main::@55 Adding NOP phi() at start of main::@56 Adding NOP phi() at start of main::@57 Adding NOP phi() at start of main::@58 Adding NOP phi() at start of main::@59 Adding NOP phi() at start of main::@60 Adding NOP phi() at start of main::@5 Adding NOP phi() at start of main::@20 Adding NOP phi() at start of main::@89 Adding NOP phi() at start of main::@25 Adding NOP phi() at start of main::@26 Adding NOP phi() at start of main::@45 Adding NOP phi() at start of main::@102 Adding NOP phi() at start of main::@103 Adding NOP phi() at start of main::@104 Adding NOP phi() at start of main::@105 Adding NOP phi() at start of main::@106 Adding NOP phi() at start of main::@107 Adding NOP phi() at start of main::@108 Adding NOP phi() at start of main::@110 Adding NOP phi() at start of main::@111 Adding NOP phi() at start of main::@112 Adding NOP phi() at start of main::@113 Adding NOP phi() at start of main::@28 Adding NOP phi() at start of main::@87 Adding NOP phi() at start of main::@14 Adding NOP phi() at start of main::@65 Adding NOP phi() at start of gotoxy::@3 Adding NOP phi() at start of clear_screen::@3 Adding NOP phi() at start of clear_screen::@5 Adding NOP phi() at start of write_score::@4 Adding NOP phi() at start of wait::@2 Adding NOP phi() at start of utoa::@1 Adding NOP phi() at start of cputc::@3 Adding NOP phi() at start of cputc::@5 Adding NOP phi() at start of cputc::@1 Adding NOP phi() at start of cputc::@4 Adding NOP phi() at start of cputln::@1 Adding NOP phi() at start of cscroll::@1 Adding NOP phi() at start of cscroll::@3 Adding NOP phi() at start of cscroll::@4 Adding NOP phi() at start of cscroll::@5 Adding NOP phi() at start of memcpy::@3 Adding NOP phi() at start of memset::@1 CALL GRAPH Calls in [__start] to conio_c64_init:8 main:11 Calls in [conio_c64_init] to gotoxy:20 Calls in [main] to chrout:26 chrout:28 clear_screen:32 textcolor:34 cputs:36 textcolor:38 cputs:40 textcolor:42 cputs:44 clear_screen:50 chrout:53 chrout:55 chrout:57 chrout:62 chrout:66 random:75 chrout:82 chrout:84 chrout:86 chrout:88 chrout:90 chrout:92 write_score:97 chrout:99 chrout:101 chrout:111 chrout:113 chrout:115 chrout:119 chrout:121 random:124 random:126 chrono_restart:138 write_score:150 wait:153 clear_screen:168 chrout:171 textcolor:173 cputs:175 textcolor:177 cputs:179 cputs:181 textcolor:183 cputs:185 utoa:191 cputs:193 textcolor:195 cputs:197 read_chrono:217 wait:252 wait:283 wait:300 write_score:323 wait:325 chrout:337 chrout:340 chrout:344 chrout:351 chrout:358 chrout:362 chrout:367 chrout:372 Calls in [clear_screen] to gotoxy:400 chrout:402 Calls in [cputs] to cputc:422 Calls in [write_score] to utoa:438 chrout:447 chrout:449 chrout:455 Calls in [utoa] to utoa_append:501 Calls in [read_chrono] to div16u8u:510 Calls in [cputc] to cputln:525 cputln:529 Calls in [div16u8u] to divr8u:542 divr8u:549 Calls in [cputln] to cscroll:558 Calls in [cscroll] to memcpy:593 memcpy:595 memset:597 memset:600 Created 78 initial phi equivalence classes Coalesced [19] gotoxy::y#8 = gotoxy::y#2 Coalesced [23] conio_c64_init::line#3 = conio_c64_init::line#0 Coalesced [58] n#123 = n#109 Coalesced [73] random::k#5 = random::k#0 Coalesced [74] random::n#5 = random::n#0 Coalesced [78] z#146 = z#28 Coalesced [105] rem8u#141 = rem8u#127 Coalesced [106] y#128 = y#114 Coalesced [107] z#149 = z#128 Coalesced [108] n#126 = n#89 Coalesced [139] score#113 = score#38 Coalesced [140] rem8u#144 = rem8u#48 Coalesced [141] y#131 = y#49 Coalesced [142] z#152 = z#102 Coalesced [143] peephole#88 = peephole#52 Coalesced [144] n#129 = n#52 Coalesced [149] score#109 = score#4 Coalesced [152] z#140 = z#100 Coalesced [187] hiscore#125 = score#38 Coalesced [190] utoa::value#17 = utoa::value#2 Coalesced (already) [205] rem8u#140 = rem8u#25 Coalesced (already) [206] y#127 = y#18 Not coalescing [207] hiscore#123 = hiscore#19 Coalesced (already) [208] n#122 = n#20 Not coalescing [209] hiscore#124 = hiscore#110 Coalesced [210] tu#86 = tu#1 Coalesced (already) [211] rem8u#142 = rem8u#25 Coalesced (already) [212] y#129 = y#18 Coalesced [213] z#150 = z#25 Coalesced (already) [214] peephole#86 = peephole#12 Coalesced (already) [215] n#127 = n#20 Coalesced [225] y#132 = y#0 Coalesced [230] y#135 = y#1 Coalesced [235] y#137 = y#2 Coalesced [240] y#139 = y#3 Coalesced (already) [251] z#139 = z#100 Coalesced [253] score#117 = score#8 Coalesced [256] z#154 = z#25 Coalesced [257] time#63 = time#38 Coalesced [258] score#115 = score#81 Coalesced (already) [282] z#138 = z#48 Coalesced (already) [299] z#142 = z#25 Coalesced [301] time#61 = time#17 Coalesced [302] score#112 = score#43 Coalesced [303] rem8u#143 = rem8u#0 Not coalescing [304] y#130 = y#35 Coalesced (already) [305] z#151 = z#25 Coalesced [306] peephole#87 = y#35 Coalesced [307] n#128 = n#14 Not coalescing [319] y#141 = y#13 Coalesced (already) [320] y#140 = peephole#12 Coalesced [322] score#110 = score#6 Coalesced (already) [324] z#141 = z#100 Coalesced [326] time#64 = time#0 Coalesced (already) [327] score#116 = score#38 Coalesced (already) [328] z#153 = z#100 Coalesced (already) [329] time#62 = time#0 Coalesced (already) [330] score#114 = score#19 Coalesced [331] y#138 = y#12 Coalesced [332] y#136 = y#11 Coalesced [333] y#134 = y#10 Coalesced [334] y#133 = y#18 Coalesced [342] j#29 = j#5 Coalesced [346] j#28 = j#3 Coalesced [355] z#147 = z#9 Coalesced (already) [356] z#148 = z#9 Coalesced [360] j#27 = j#2 Coalesced [369] k#106 = k#1 Coalesced [370] n#124 = n#101 Coalesced [374] n#125 = n#1 Coalesced [393] gotoxy::y#9 = gotoxy::y#4 Coalesced [410] z#137 = z#1 Coalesced [415] cputs::s#14 = cputs::s#11 Coalesced [423] cputs::s#15 = cputs::s#0 Coalesced [437] utoa::value#18 = utoa::value#1 Coalesced [459] score#111 = score#13 Coalesced (already) [464] z#143 = z#53 Coalesced [472] z#144 = z#23 Coalesced [474] z#145 = z#4 Coalesced [477] utoa::value#20 = utoa::value#10 Coalesced [489] utoa::value#21 = utoa::value#3 Coalesced [490] utoa::started#6 = utoa::started#2 Coalesced [491] utoa::buffer#24 = utoa::buffer#10 Coalesced [494] utoa::digit#7 = utoa::digit#1 Coalesced (already) [495] utoa::value#19 = utoa::value#7 Coalesced (already) [496] utoa::started#5 = utoa::started#4 Coalesced (already) [497] utoa::buffer#23 = utoa::buffer#15 Coalesced [505] utoa::value#22 = utoa::value#0 Coalesced [506] utoa::buffer#25 = utoa::buffer#4 Coalesced [512] time#0 = div16u8u::return#2 Coalesced [531] utoa_append::value#6 = utoa_append::value#0 Coalesced [538] utoa_append::value#7 = utoa_append::value#1 Coalesced [539] utoa_append::digit#5 = utoa_append::digit#1 Coalesced [541] divr8u::dividend#9 = divr8u::dividend#1 Coalesced [547] divr8u::rem#12 = divr8u::rem#4 Coalesced [548] divr8u::dividend#10 = divr8u::dividend#2 Coalesced [562] divr8u::rem#13 = divr8u::rem#10 Coalesced [563] divr8u::dividend#11 = divr8u::dividend#5 Coalesced [569] divr8u::rem#16 = divr8u::rem#1 Coalesced [576] divr8u::rem#18 = divr8u::rem#2 Coalesced [577] divr8u::return#8 = divr8u::quotient#2 Coalesced [581] rem8u#0 = divr8u::rem#11 Coalesced [583] divr8u::rem#14 = divr8u::rem#11 Coalesced [584] divr8u::dividend#12 = divr8u::dividend#0 Coalesced [585] divr8u::quotient#9 = divr8u::return#0 Coalesced [586] divr8u::i#7 = divr8u::i#1 Coalesced [587] divr8u::rem#17 = divr8u::rem#6 Coalesced [588] divr8u::return#7 = divr8u::quotient#1 Coalesced [589] divr8u::rem#15 = divr8u::rem#0 Coalesced [599] memset::c#6 = memset::c#1 Coalesced [616] memcpy::src#5 = memcpy::src#1 Coalesced [617] memcpy::dst#5 = memcpy::dst#1 Coalesced [627] memset::dst#5 = memset::dst#1 Coalesced down to 38 phi equivalence classes Culled Empty Block label __start::@2 Culled Empty Block label __start::@3 Culled Empty Block label conio_c64_init::@2 Culled Empty Block label conio_c64_init::@3 Culled Empty Block label main::@60 Culled Empty Block label main::@64 Culled Empty Block label main::@125 Culled Empty Block label main::@129 Culled Empty Block label main::@89 Culled Empty Block label main::@92 Culled Empty Block label main::@46 Culled Empty Block label main::@113 Culled Empty Block label main::@128 Culled Empty Block label main::@98 Culled Empty Block label main::@135 Culled Empty Block label main::@97 Culled Empty Block label main::@134 Culled Empty Block label main::@133 Culled Empty Block label main::@132 Culled Empty Block label main::@131 Culled Empty Block label main::@130 Culled Empty Block label main::@87 Culled Empty Block label main::@14 Culled Empty Block label main::@126 Culled Empty Block label main::@127 Culled Empty Block label main::@65 Culled Empty Block label gotoxy::@3 Culled Empty Block label clear_screen::@5 Culled Empty Block label cputs::@3 Culled Empty Block label write_score::@4 Culled Empty Block label wait::@2 Culled Empty Block label utoa::@1 Culled Empty Block label utoa::@5 Culled Empty Block label utoa::@17 Culled Empty Block label cputc::@5 Culled Empty Block label cputc::@4 Culled Empty Block label cputln::@1 Culled Empty Block label divr8u::@6 Culled Empty Block label divr8u::@7 Culled Empty Block label divr8u::@9 Culled Empty Block label divr8u::@8 Culled Empty Block label cscroll::@1 Culled Empty Block label memcpy::@3 Culled Empty Block label memset::@1 Renumbering block memset::@2 to memset::@1 Renumbering block memset::@3 to memset::@2 Renumbering block memset::@4 to memset::@3 Renumbering block utoa::@10 to utoa::@1 Renumbering block utoa::@11 to utoa::@2 Renumbering block utoa::@12 to utoa::@3 Renumbering block utoa::@13 to utoa::@4 Renumbering block utoa::@14 to utoa::@5 Renumbering block utoa::@15 to utoa::@6 Renumbering block utoa::@16 to utoa::@7 Renumbering block gotoxy::@5 to gotoxy::@3 Renumbering block cscroll::@3 to cscroll::@1 Renumbering block cscroll::@4 to cscroll::@2 Renumbering block cscroll::@5 to cscroll::@3 Renumbering block cscroll::@6 to cscroll::@4 Renumbering block cscroll::@7 to cscroll::@5 Renumbering block conio_c64_init::@4 to conio_c64_init::@2 Renumbering block write_score::@5 to write_score::@4 Renumbering block write_score::@6 to write_score::@5 Renumbering block write_score::@7 to write_score::@6 Renumbering block write_score::@8 to write_score::@7 Renumbering block write_score::@9 to write_score::@8 Renumbering block write_score::@10 to write_score::@9 Renumbering block write_score::@11 to write_score::@10 Renumbering block write_score::@12 to write_score::@11 Renumbering block write_score::@13 to write_score::@12 Renumbering block write_score::@14 to write_score::@13 Renumbering block write_score::@15 to write_score::@14 Renumbering block write_score::@16 to write_score::@15 Renumbering block wait::@3 to wait::@2 Renumbering block wait::@4 to wait::@3 Renumbering block wait::@5 to wait::@4 Renumbering block main::@15 to main::@14 Renumbering block main::@16 to main::@15 Renumbering block main::@17 to main::@16 Renumbering block main::@18 to main::@17 Renumbering block main::@19 to main::@18 Renumbering block main::@20 to main::@19 Renumbering block main::@21 to main::@20 Renumbering block main::@22 to main::@21 Renumbering block main::@23 to main::@22 Renumbering block main::@24 to main::@23 Renumbering block main::@25 to main::@24 Renumbering block main::@26 to main::@25 Renumbering block main::@27 to main::@26 Renumbering block main::@28 to main::@27 Renumbering block main::@29 to main::@28 Renumbering block main::@30 to main::@29 Renumbering block main::@31 to main::@30 Renumbering block main::@32 to main::@31 Renumbering block main::@33 to main::@32 Renumbering block main::@34 to main::@33 Renumbering block main::@35 to main::@34 Renumbering block main::@36 to main::@35 Renumbering block main::@37 to main::@36 Renumbering block main::@38 to main::@37 Renumbering block main::@39 to main::@38 Renumbering block main::@40 to main::@39 Renumbering block main::@41 to main::@40 Renumbering block main::@42 to main::@41 Renumbering block main::@43 to main::@42 Renumbering block main::@44 to main::@43 Renumbering block main::@45 to main::@44 Renumbering block main::@47 to main::@45 Renumbering block main::@48 to main::@46 Renumbering block main::@49 to main::@47 Renumbering block main::@50 to main::@48 Renumbering block main::@51 to main::@49 Renumbering block main::@52 to main::@50 Renumbering block main::@53 to main::@51 Renumbering block main::@54 to main::@52 Renumbering block main::@55 to main::@53 Renumbering block main::@56 to main::@54 Renumbering block main::@57 to main::@55 Renumbering block main::@58 to main::@56 Renumbering block main::@59 to main::@57 Renumbering block main::@61 to main::@58 Renumbering block main::@62 to main::@59 Renumbering block main::@63 to main::@60 Renumbering block main::@66 to main::@61 Renumbering block main::@67 to main::@62 Renumbering block main::@68 to main::@63 Renumbering block main::@69 to main::@64 Renumbering block main::@70 to main::@65 Renumbering block main::@71 to main::@66 Renumbering block main::@72 to main::@67 Renumbering block main::@73 to main::@68 Renumbering block main::@74 to main::@69 Renumbering block main::@75 to main::@70 Renumbering block main::@76 to main::@71 Renumbering block main::@77 to main::@72 Renumbering block main::@78 to main::@73 Renumbering block main::@79 to main::@74 Renumbering block main::@80 to main::@75 Renumbering block main::@81 to main::@76 Renumbering block main::@82 to main::@77 Renumbering block main::@83 to main::@78 Renumbering block main::@84 to main::@79 Renumbering block main::@85 to main::@80 Renumbering block main::@86 to main::@81 Renumbering block main::@88 to main::@82 Renumbering block main::@90 to main::@83 Renumbering block main::@91 to main::@84 Renumbering block main::@93 to main::@85 Renumbering block main::@94 to main::@86 Renumbering block main::@95 to main::@87 Renumbering block main::@96 to main::@88 Renumbering block main::@99 to main::@89 Renumbering block main::@100 to main::@90 Renumbering block main::@101 to main::@91 Renumbering block main::@102 to main::@92 Renumbering block main::@103 to main::@93 Renumbering block main::@104 to main::@94 Renumbering block main::@105 to main::@95 Renumbering block main::@106 to main::@96 Renumbering block main::@107 to main::@97 Renumbering block main::@108 to main::@98 Renumbering block main::@109 to main::@99 Renumbering block main::@110 to main::@100 Renumbering block main::@111 to main::@101 Renumbering block main::@112 to main::@102 Renumbering block main::@114 to main::@103 Renumbering block main::@115 to main::@104 Renumbering block main::@116 to main::@105 Renumbering block main::@117 to main::@106 Renumbering block main::@118 to main::@107 Renumbering block main::@119 to main::@108 Renumbering block main::@120 to main::@109 Renumbering block main::@121 to main::@110 Renumbering block main::@122 to main::@111 Renumbering block main::@123 to main::@112 Renumbering block main::@124 to main::@113 Renumbering block main::@136 to main::@114 Adding NOP phi() at start of __start Adding NOP phi() at start of __start::@1 Adding NOP phi() at start of conio_c64_init::@2 Adding NOP phi() at start of main::@52 Adding NOP phi() at start of main::@53 Adding NOP phi() at start of main::@54 Adding NOP phi() at start of main::@55 Adding NOP phi() at start of main::@56 Adding NOP phi() at start of main::@57 Adding NOP phi() at start of main::@5 Adding NOP phi() at start of main::@19 Adding NOP phi() at start of main::@24 Adding NOP phi() at start of main::@25 Adding NOP phi() at start of main::@44 Adding NOP phi() at start of main::@92 Adding NOP phi() at start of main::@93 Adding NOP phi() at start of main::@94 Adding NOP phi() at start of main::@95 Adding NOP phi() at start of main::@96 Adding NOP phi() at start of main::@97 Adding NOP phi() at start of main::@98 Adding NOP phi() at start of main::@100 Adding NOP phi() at start of main::@101 Adding NOP phi() at start of main::@102 Adding NOP phi() at start of main::@27 Adding NOP phi() at start of main::@88 Adding NOP phi() at start of gotoxy::@3 Adding NOP phi() at start of clear_screen::@3 Adding NOP phi() at start of write_score::@15 Adding NOP phi() at start of cputc::@3 Adding NOP phi() at start of cputc::@1 Adding NOP phi() at start of utoa_append Adding NOP phi() at start of cscroll::@1 Adding NOP phi() at start of cscroll::@2 Adding NOP phi() at start of cscroll::@3 FINAL CONTROL FLOW GRAPH 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] conio_textcolor = LIGHT_BLUE [6] l = 0 [7] m = 0 [8] call conio_c64_init to:__start::@1 __start::@1: scope:[__start] from __start::__init1 [9] phi() [10] call main to:__start::@return __start::@return: scope:[__start] from __start::@1 [11] return to:@return void conio_c64_init() conio_c64_init: scope:[conio_c64_init] from __start::__init1 [12] conio_c64_init::line#0 = *conio_c64_init::BASIC_CURSOR_LINE [13] 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 [14] phi() to:conio_c64_init::@1 conio_c64_init::@1: scope:[conio_c64_init] from conio_c64_init conio_c64_init::@2 [15] conio_c64_init::line#2 = phi( conio_c64_init::@2/conio_c64_init::line#0, conio_c64_init/$19-1 ) [16] gotoxy::y#2 = conio_c64_init::line#2 [17] call gotoxy to:conio_c64_init::@return conio_c64_init::@return: scope:[conio_c64_init] from conio_c64_init::@1 [18] return to:@return void main() main: scope:[main] from __start::@1 [19] *((char *) 36879) = 8 [20] chrout::petscii = lock [21] call chrout to:main::@50 main::@50: scope:[main] from main [22] chrout::petscii = lower [23] call chrout to:main::@51 main::@51: scope:[main] from main::@50 [24] m = 0 to:main::@1 main::@1: scope:[main] from main::@2 main::@51 [25] if(m<$28) goto main::@2 to:main::@3 main::@3: scope:[main] from main::@1 main::@113 [26] n#109 = phi( main::@1/0, main::@113/n#20 ) [26] hiscore#110 = phi( main::@1/0, main::@113/hiscore#123 ) [26] y#114 = phi( main::@1/0, main::@113/y#18 ) [26] rem8u#127 = phi( main::@1/0, main::@113/rem8u#25 ) [27] call clear_screen to:main::@52 main::@52: scope:[main] from main::@3 [28] phi() [29] call textcolor to:main::@53 main::@53: scope:[main] from main::@52 [30] phi() [31] call cputs to:main::@54 main::@54: scope:[main] from main::@53 [32] phi() [33] call textcolor to:main::@55 main::@55: scope:[main] from main::@54 [34] phi() [35] call cputs to:main::@56 main::@56: scope:[main] from main::@55 [36] phi() [37] call textcolor to:main::@57 main::@57: scope:[main] from main::@56 [38] phi() [39] call cputs to:main::@4 main::@4: scope:[main] from main::@4 main::@57 [40] l = *((char *) 197) [41] l = ++ l [42] if(l>=5+1) goto main::@4 to:main::@5 main::@5: scope:[main] from main::@4 [43] phi() [44] call clear_screen to:main::@58 main::@58: scope:[main] from main::@5 [45] *((char *) 36869) = $ff [46] chrout::petscii = reverse_on [47] call chrout to:main::@59 main::@59: scope:[main] from main::@58 [48] chrout::petscii = red [49] call chrout to:main::@60 main::@60: scope:[main] from main::@59 [50] chrout::petscii = down [51] call chrout to:main::@6 main::@6: scope:[main] from main::@60 main::@64 [52] n#89 = phi( main::@60/n#109, main::@64/n#101 ) [52] k#101 = phi( main::@60/1, main::@64/k#1 ) [53] if(k#101<$16) goto main::@7 to:main::@8 main::@8: scope:[main] from main::@6 [54] chrout::petscii = brick [55] call chrout to:main::@61 main::@61: scope:[main] from main::@8 [56] *((char *) 8185) = brick [57] *((char *)$1ff9+c) = 2 [58] chrout::petscii = home [59] call chrout to:main::@62 main::@62: scope:[main] from main::@61 [60] if(l<1+1) goto main::@12 to:main::@13 main::@13: scope:[main] from main::@62 main::@73 [61] z#28 = phi( main::@62/1, main::@73/z#9 ) [62] random::k#0 = 7 - l [63] main::$177 = l << 1 [64] main::$26 = main::$177 + l [65] random::n#0 = $1a - main::$26 [66] call random to:main::@71 main::@71: scope:[main] from main::@13 [67] main::$29 = z#28 + m [68] if(main::$29<=$1f9) goto main::@14 to:main::@12 main::@12: scope:[main] from main::@62 main::@71 main::@73 [69] z#128 = phi( main::@62/1, main::@71/z#28, main::@73/z#9 ) [70] *((char *) 36878) = $f [71] chrout::petscii = home [72] call chrout to:main::@65 main::@65: scope:[main] from main::@12 [73] chrout::petscii = yellow [74] call chrout to:main::@66 main::@66: scope:[main] from main::@65 [75] chrout::petscii = $50 [76] call chrout to:main::@67 main::@67: scope:[main] from main::@66 [77] chrout::petscii = $54 [78] call chrout to:main::@68 main::@68: scope:[main] from main::@67 [79] chrout::petscii = $53 [80] call chrout to:main::@69 main::@69: scope:[main] from main::@68 [81] chrout::petscii = $3a [82] call chrout to:main::@70 main::@70: scope:[main] from main::@69 [83] *((char *) 211) = $12 to:main::@17 main::@17: scope:[main] from main::@70 main::@74 [84] j#13 = phi( main::@70/0, main::@74/j#3 ) [85] if(j#13<4) goto main::@18 to:main::@19 main::@19: scope:[main] from main::@17 [86] phi() [87] call write_score to:main::@75 main::@75: scope:[main] from main::@19 [88] chrout::petscii = home [89] call chrout to:main::@76 main::@76: scope:[main] from main::@75 [90] chrout::petscii = green [91] call chrout to:main::@77 main::@77: scope:[main] from main::@76 [92] *((char *) 211) = $a to:main::@20 main::@20: scope:[main] from main::@77 main::@78 [93] j#16 = phi( main::@77/0, main::@78/j#5 ) [94] if(j#16<5) goto main::@21 to:main::@22 main::@22: scope:[main] from main::@20 main::@87 [95] n#52 = phi( main::@20/n#89, main::@87/n#20 ) [95] peephole#52 = phi( main::@20/$1f1f, main::@87/peephole#12 ) [95] z#102 = phi( main::@20/z#128, main::@87/z#25 ) [95] y#49 = phi( main::@20/y#114, main::@87/y#18 ) [95] rem8u#48 = phi( main::@20/rem8u#127, main::@87/rem8u#25 ) [95] tu#13 = phi( main::@20/1, main::@87/tu#1 ) [96] chrout::petscii = home [97] call chrout to:main::@79 main::@79: scope:[main] from main::@22 [98] chrout::petscii = green [99] call chrout to:main::@80 main::@80: scope:[main] from main::@79 [100] chrout::petscii = reverse_on [101] call chrout to:main::@81 main::@81: scope:[main] from main::@80 [102] *((char *) 211) = $f [103] if(tu#13<$a) goto main::@23 to:main::@45 main::@45: scope:[main] from main::@81 [104] chrout::petscii = $31 [105] call chrout to:main::@82 main::@82: scope:[main] from main::@45 [106] chrout::petscii = $30 [107] call chrout to:main::@24 main::@24: scope:[main] from main::@103 main::@104 main::@105 main::@106 main::@23 main::@82 main::@84 [108] phi() [109] call random to:main::@83 main::@83: scope:[main] from main::@24 [110] duck#0 = m [111] call random to:main::@84 main::@84: scope:[main] from main::@83 [112] main::$61 = m + $1e15 [113] duck#1 = main::$61 + duck#0 [114] main::$66 = duck#1 + 1 [115] main::$69 = duck#1 + $16 [116] main::$72 = duck#1 + $17 [117] if(duck#1>$1fe3) goto main::@24 to:main::@106 main::@106: scope:[main] from main::@84 [118] if(*((char *)duck#1)==brick) goto main::@24 to:main::@105 main::@105: scope:[main] from main::@106 [119] if(*((char *)main::$66)==brick) goto main::@24 to:main::@104 main::@104: scope:[main] from main::@105 [120] if(*((char *)main::$69)==brick) goto main::@24 to:main::@103 main::@103: scope:[main] from main::@104 [121] if(*((char *)main::$72)==brick) goto main::@24 to:main::@25 main::@25: scope:[main] from main::@103 [122] phi() [123] call chrono_restart to:main::@26 main::@26: scope:[main] from main::@25 main::@90 [124] n#20 = phi( main::@90/n#14, main::@25/n#52 ) [124] peephole#12 = phi( main::@90/y#35, main::@25/peephole#52 ) [124] z#100 = phi( main::@90/z#25, main::@25/z#102 ) [124] y#18 = phi( main::@90/y#130, main::@25/y#49 ) [124] rem8u#25 = phi( main::@90/divr8u::rem#11, main::@25/rem8u#48 ) [124] score#19 = phi( main::@90/score#43, main::@25/score#38 ) [124] time#11 = phi( main::@90/time#17, main::@25/0 ) [125] if(time#11<$a) goto main::@27 to:main::@28 main::@28: scope:[main] from main::@26 [126] tu#1 = ++ tu#13 [127] score#4 = score#19 - $a [128] call write_score to:main::@86 main::@86: scope:[main] from main::@28 [129] *((char *) 36877) = $82 [130] call wait to:main::@87 main::@87: scope:[main] from main::@86 [131] *((char *) 36877) = 0 [132] main::$150 = duck#1 + c [133] *((char *)main::$150) = 0 [134] main::$151 = duck#1 [135] main::$152 = main::$151 + 1+c [136] *((char *)main::$152) = 0 [137] main::$153 = duck#1 [138] main::$154 = main::$153 + $16+c [139] *((char *)main::$154) = 0 [140] main::$155 = duck#1 [141] main::$156 = main::$155 + $17+c [142] *((char *)main::$156) = 0 [143] if(tu#1<$b) goto main::@22 to:main::@44 main::@44: scope:[main] from main::@87 [144] phi() [145] call clear_screen to:main::@91 main::@91: scope:[main] from main::@44 [146] *((char *) 36869) = $f0 [147] chrout::petscii = lower [148] call chrout to:main::@92 main::@92: scope:[main] from main::@91 [149] phi() [150] call textcolor to:main::@93 main::@93: scope:[main] from main::@92 [151] phi() [152] call cputs to:main::@94 main::@94: scope:[main] from main::@93 [153] phi() [154] call textcolor to:main::@95 main::@95: scope:[main] from main::@94 [155] phi() [156] call cputs to:main::@96 main::@96: scope:[main] from main::@95 [157] phi() [158] call cputs to:main::@97 main::@97: scope:[main] from main::@96 [159] phi() [160] call textcolor to:main::@98 main::@98: scope:[main] from main::@97 [161] phi() [162] call cputs to:main::@99 main::@99: scope:[main] from main::@98 [163] if(score#38<=hiscore#110) goto main::@114 to:main::@46 main::@114: scope:[main] from main::@99 [164] hiscore#124 = hiscore#110 to:main::@46 main::@46: scope:[main] from main::@114 main::@99 [165] hiscore#19 = phi( main::@114/hiscore#124, main::@99/score#38 ) [166] utoa::value#2 = hiscore#19 [167] call utoa to:main::@100 main::@100: scope:[main] from main::@46 [168] phi() [169] call cputs to:main::@101 main::@101: scope:[main] from main::@100 [170] phi() [171] call textcolor to:main::@102 main::@102: scope:[main] from main::@101 [172] phi() [173] call cputs to:main::@47 main::@47: scope:[main] from main::@102 main::@112 [174] j#19 = *((char *) 197) [175] if(j#19==$b) goto main::@48 to:main::@112 main::@112: scope:[main] from main::@47 [176] if(j#19!=$1c) goto main::@47 to:main::@48 main::@48: scope:[main] from main::@112 main::@47 [177] if(j#19==$b) goto main::@113 to:main::@49 main::@49: scope:[main] from main::@48 asm { jsr$FD22 } to:main::@return main::@return: scope:[main] from main::@49 [179] return to:@return main::@113: scope:[main] from main::@48 [180] hiscore#123 = hiscore#19 to:main::@3 main::@27: scope:[main] from main::@26 [181] phi() [182] call read_chrono to:main::@85 main::@85: scope:[main] from main::@27 [183] m = *((char *) 37151) [184] *((char *) 37154) = $7f [185] n#14 = *((char *) 37152) [186] *((char *) 37154) = $ff [187] main::$78 = $10 & m [188] if(main::$78!=0) goto main::@29 to:main::@37 main::@37: scope:[main] from main::@85 [189] y#0 = -- y#18 to:main::@29 main::@29: scope:[main] from main::@37 main::@85 [190] y#10 = phi( main::@37/y#0, main::@85/y#18 ) [191] main::$81 = $80 & n#14 [192] if(main::$81!=0) goto main::@30 to:main::@38 main::@38: scope:[main] from main::@29 [193] y#1 = ++ y#10 to:main::@30 main::@30: scope:[main] from main::@29 main::@38 [194] y#11 = phi( main::@29/y#10, main::@38/y#1 ) [195] main::$84 = 4 & m [196] if(main::$84!=0) goto main::@31 to:main::@39 main::@39: scope:[main] from main::@30 [197] y#2 = y#11 - $16 to:main::@31 main::@31: scope:[main] from main::@30 main::@39 [198] y#12 = phi( main::@30/y#11, main::@39/y#2 ) [199] main::$88 = 8 & m [200] if(main::$88!=0) goto main::@32 to:main::@40 main::@40: scope:[main] from main::@31 [201] y#3 = y#12 + $16 to:main::@32 main::@32: scope:[main] from main::@31 main::@40 [202] y#13 = phi( main::@31/y#12, main::@40/y#3 ) [203] main::$92 = $20 & m [204] if(main::$92!=0) goto main::@33 to:main::@41 main::@41: scope:[main] from main::@32 [205] *((char *) 36877) = $82 [206] if(peephole#12!=duck#1) goto main::@34 to:main::@42 main::@42: scope:[main] from main::@41 [207] main::$96 = $c - div16u8u::return#2 [208] main::$179 = main::$96 << 2 [209] main::$180 = main::$179 + main::$96 [210] main::$97 = main::$180 << 1 [211] score#8 = score#19 + main::$97 [212] call wait to:main::@35 main::@35: scope:[main] from main::@42 main::@88 [213] score#81 = phi( main::@88/score#38, main::@42/score#8 ) [213] time#38 = phi( main::@88/div16u8u::return#2, main::@42/$a ) [214] *((char *) 36877) = 0 to:main::@33 main::@33: scope:[main] from main::@32 main::@35 [215] score#43 = phi( main::@32/score#19, main::@35/score#81 ) [215] time#17 = phi( main::@32/div16u8u::return#2, main::@35/time#38 ) [215] z#48 = phi( main::@32/z#100, main::@35/z#25 ) [216] main::$104 = y#13 + 1 [217] main::$107 = y#13 + $16 [218] main::$110 = y#13 + $17 [219] if(*((char *)y#13)==brick) goto main::@36 to:main::@111 main::@111: scope:[main] from main::@33 [220] if(*((char *)main::$104)==brick) goto main::@36 to:main::@110 main::@110: scope:[main] from main::@111 [221] if(*((char *)main::$107)!=brick) goto main::@109 to:main::@36 main::@36: scope:[main] from main::@107 main::@108 main::@109 main::@110 main::@111 main::@33 main::@43 [222] y#35 = phi( main::@33/peephole#12, main::@43/y#141 ) [223] *((char *)y#35) = $fd [224] main::$125 = y#35 + c [225] *((char *)main::$125) = 1 [226] main::$127 = y#35 + 1 [227] *((char *)main::$127) = $ed [228] main::$128 = main::$127 + c [229] *((char *)main::$128) = 1 [230] main::$130 = y#35 + $16 [231] *((char *)main::$130) = $ee [232] main::$131 = main::$130 + c [233] *((char *)main::$131) = 1 [234] main::$133 = y#35 + $17 [235] *((char *)main::$133) = $f0 [236] main::$134 = main::$133 + c [237] *((char *)main::$134) = 1 [238] call wait to:main::@89 main::@89: scope:[main] from main::@36 [239] *((char *)duck#1) = 0 [240] main::$136 = duck#1 + c [241] *((char *)main::$136) = 7 [242] main::$138 = duck#1 + 1 [243] *((char *)main::$138) = 1 [244] main::$139 = main::$138 + c [245] *((char *)main::$139) = 7 [246] main::$141 = duck#1 + $16 [247] *((char *)main::$141) = 2 [248] main::$142 = main::$141 + c [249] *((char *)main::$142) = 7 [250] main::$144 = duck#1 + $17 [251] *((char *)main::$144) = 3 [252] main::$145 = main::$144 + c [253] *((char *)main::$145) = 7 [254] call wait to:main::@90 main::@90: scope:[main] from main::@89 [255] y#130 = y#35 to:main::@26 main::@109: scope:[main] from main::@110 [256] if(*((char *)main::$110)==brick) goto main::@36 to:main::@108 main::@108: scope:[main] from main::@109 [257] if(y#13>$1e16) goto main::@107 to:main::@36 main::@107: scope:[main] from main::@108 [258] if(y#13>=$1fe3) goto main::@36 to:main::@43 main::@43: scope:[main] from main::@107 [259] main::$119 = peephole#12 + c [260] *((char *)main::$119) = 0 [261] main::$120 = main::$119 + 1 [262] *((char *)main::$120) = 0 [263] main::$122 = main::$119 + $16 [264] *((char *)main::$122) = 0 [265] main::$124 = main::$119 + $17 [266] *((char *)main::$124) = 0 [267] y#141 = y#13 to:main::@36 main::@34: scope:[main] from main::@41 [268] score#6 = score#19 - $a [269] call write_score to:main::@88 main::@88: scope:[main] from main::@34 [270] phi() [271] call wait to:main::@35 main::@23: scope:[main] from main::@81 [272] main::$57 = $30 + tu#13 [273] chrout::petscii = main::$57 [274] call chrout to:main::@24 main::@21: scope:[main] from main::@20 [275] chrout::petscii = ducknumber[j#16] [276] call chrout to:main::@78 main::@78: scope:[main] from main::@21 [277] j#5 = ++ j#16 to:main::@20 main::@18: scope:[main] from main::@17 [278] chrout::petscii = chrono[j#13] [279] call chrout to:main::@74 main::@74: scope:[main] from main::@18 [280] j#3 = ++ j#13 to:main::@17 main::@14: scope:[main] from main::@71 main::@72 [281] j#11 = phi( main::@71/1, main::@72/j#2 ) [282] if(j#11<=m) goto main::@15 to:main::@16 main::@16: scope:[main] from main::@14 [283] chrout::petscii = brick [284] call chrout to:main::@73 main::@73: scope:[main] from main::@16 [285] main::$35 = z#28 + m [286] z#9 = main::$35 + 1 [287] if(z#9<$1fa) goto main::@13 to:main::@12 main::@15: scope:[main] from main::@14 [288] chrout::petscii = right [289] call chrout to:main::@72 main::@72: scope:[main] from main::@15 [290] j#2 = ++ j#11 to:main::@14 main::@7: scope:[main] from main::@6 [291] chrout::petscii = brick [292] call chrout to:main::@9 main::@9: scope:[main] from main::@63 main::@7 [293] n#101 = phi( main::@7/2, main::@63/n#1 ) [294] if(n#101<$16) goto main::@10 to:main::@11 main::@11: scope:[main] from main::@9 [295] chrout::petscii = brick [296] call chrout to:main::@64 main::@64: scope:[main] from main::@11 [297] k#1 = ++ k#101 to:main::@6 main::@10: scope:[main] from main::@9 [298] chrout::petscii = right [299] call chrout to:main::@63 main::@63: scope:[main] from main::@10 [300] n#1 = ++ n#101 to:main::@9 main::@2: scope:[main] from main::@1 [301] main::$3 = $1c00 + m [302] *((char *)main::$3) = duck_udg[m] [303] m = ++ m to:main::@1 void gotoxy(char x , char y) gotoxy: scope:[gotoxy] from clear_screen::@3 conio_c64_init::@1 [304] gotoxy::y#4 = phi( clear_screen::@3/0, conio_c64_init::@1/gotoxy::y#2 ) [305] if(gotoxy::y#4<$19+1) goto gotoxy::@3 to:gotoxy::@1 gotoxy::@3: scope:[gotoxy] from gotoxy [306] phi() to:gotoxy::@1 gotoxy::@1: scope:[gotoxy] from gotoxy gotoxy::@3 [307] gotoxy::y#5 = phi( gotoxy::@3/gotoxy::y#4, gotoxy/0 ) to:gotoxy::@2 gotoxy::@2: scope:[gotoxy] from gotoxy::@1 [308] conio_cursor_x = 0 [309] conio_cursor_y = gotoxy::y#5 [310] gotoxy::$7 = (unsigned int)gotoxy::y#5 [311] gotoxy::$8 = gotoxy::$7 << 2 [312] gotoxy::$9 = gotoxy::$8 + gotoxy::$7 [313] gotoxy::line_offset#0 = gotoxy::$9 << 3 [314] gotoxy::$5 = DEFAULT_SCREEN + gotoxy::line_offset#0 [315] conio_line_text = gotoxy::$5 [316] gotoxy::$6 = COLORRAM + gotoxy::line_offset#0 [317] conio_line_color = gotoxy::$6 to:gotoxy::@return gotoxy::@return: scope:[gotoxy] from gotoxy::@2 [318] return to:@return void chrout(volatile char petscii) chrout: scope:[chrout] from clear_screen::@4 main main::@10 main::@11 main::@12 main::@15 main::@16 main::@18 main::@21 main::@22 main::@23 main::@45 main::@50 main::@58 main::@59 main::@60 main::@61 main::@65 main::@66 main::@67 main::@68 main::@69 main::@7 main::@75 main::@76 main::@79 main::@8 main::@80 main::@82 main::@91 write_score::@10 write_score::@12 write_score::@3 asm { ldapetscii jsr$ffd2 } to:chrout::@return chrout::@return: scope:[chrout] from chrout [320] return to:@return void clear_screen(char n , char m) clear_screen: scope:[clear_screen] from main::@3 main::@44 main::@5 [321] clear_screen::n#5 = phi( main::@3/$20, main::@44/4, main::@5/4 ) to:clear_screen::@1 clear_screen::@1: scope:[clear_screen] from clear_screen clear_screen::@2 [322] z#2 = phi( clear_screen/0, clear_screen::@2/z#1 ) [323] if(z#2<$1fa) goto clear_screen::@2 to:clear_screen::@3 clear_screen::@3: scope:[clear_screen] from clear_screen::@1 [324] phi() [325] call gotoxy to:clear_screen::@4 clear_screen::@4: scope:[clear_screen] from clear_screen::@3 [326] chrout::petscii = home [327] call chrout to:clear_screen::@return clear_screen::@return: scope:[clear_screen] from clear_screen::@4 [328] return to:@return clear_screen::@2: scope:[clear_screen] from clear_screen::@1 [329] clear_screen::$5 = $1e00 + z#2 [330] clear_screen::$4 = clear_screen::$5 + c [331] *((char *)clear_screen::$4) = 0 [332] *((char *)clear_screen::$5) = clear_screen::n#5 [333] z#1 = ++ z#2 to:clear_screen::@1 char textcolor(char color) textcolor: scope:[textcolor] from main::@101 main::@52 main::@54 main::@56 main::@92 main::@94 main::@97 [334] textcolor::color#7 = phi( main::@92/7, main::@94/2, main::@97/3, main::@101/1, main::@52/7, main::@54/1, main::@56/2 ) [335] conio_textcolor = textcolor::color#7 to:textcolor::@return textcolor::@return: scope:[textcolor] from textcolor [336] return to:@return void cputs(const char *s) cputs: scope:[cputs] from main::@100 main::@102 main::@53 main::@55 main::@57 main::@93 main::@95 main::@96 main::@98 [337] cputs::s#11 = phi( main::@93/game_over, main::@95/your_score, main::@96/buffer, main::@98/high_score, main::@100/buffer, main::@102/play_again, main::@53/intro, main::@55/levels, main::@57/foot ) to:cputs::@1 cputs::@1: scope:[cputs] from cputs cputs::@2 [338] cputs::s#10 = phi( cputs/cputs::s#11, cputs::@2/cputs::s#0 ) [339] cputs::c#1 = *cputs::s#10 [340] cputs::s#0 = ++ cputs::s#10 [341] if(0!=cputs::c#1) goto cputs::@2 to:cputs::@return cputs::@return: scope:[cputs] from cputs::@1 [342] return to:@return cputs::@2: scope:[cputs] from cputs::@1 [343] cputc::c#0 = cputs::c#1 [344] call cputc to:cputs::@1 void random(char k , char n) random: scope:[random] from main::@13 main::@24 main::@83 [345] random::n#4 = phi( main::@13/random::n#0, main::@24/$ff, main::@83/$ff ) [345] random::k#4 = phi( main::@13/random::k#0, main::@24/0, main::@83/0 ) to:random::@1 random::@1: scope:[random] from random random::@1 random::@2 [346] m = *((char *) 37140) [347] random::$3 = m [348] if(mrandom::n#4) goto random::@1 to:random::@return random::@return: scope:[random] from random::@2 [350] return to:@return void write_score() write_score: scope:[write_score] from main::@19 main::@28 main::@34 [351] score#13 = phi( main::@19/0, main::@28/score#4, main::@34/score#6 ) [352] if(score#13<=$fde8) goto write_score::@15 to:write_score::@1 write_score::@15: scope:[write_score] from write_score [353] phi() to:write_score::@1 write_score::@1: scope:[write_score] from write_score write_score::@15 [354] score#38 = phi( write_score::@15/score#13, write_score/0 ) [355] m = 0 to:write_score::@5 write_score::@5: scope:[write_score] from write_score::@1 write_score::@6 [356] if(m<4) goto write_score::@6 to:write_score::@7 write_score::@7: scope:[write_score] from write_score::@5 [357] utoa::value#1 = score#38 [358] call utoa to:write_score::@11 write_score::@11: scope:[write_score] from write_score::@7 [359] if(score#38<9+1) goto write_score::@2 to:write_score::@8 write_score::@8: scope:[write_score] from write_score::@11 [360] *(points+2) = *buffer [361] *(points+3) = *(buffer+1) to:write_score::@2 write_score::@2: scope:[write_score] from write_score::@11 write_score::@8 [362] if(score#38<$63+1) goto write_score::@3 to:write_score::@4 write_score::@4: scope:[write_score] from write_score::@2 [363] *(points+1) = *buffer [364] *(points+2) = *(buffer+1) [365] *(points+3) = *(buffer+2) to:write_score::@3 write_score::@3: scope:[write_score] from write_score::@2 write_score::@4 [366] chrout::petscii = yellow [367] call chrout to:write_score::@12 write_score::@12: scope:[write_score] from write_score::@3 [368] chrout::petscii = home [369] call chrout to:write_score::@13 write_score::@13: scope:[write_score] from write_score::@12 [370] *((char *) 211) = 4 [371] m = 0 to:write_score::@9 write_score::@9: scope:[write_score] from write_score::@13 write_score::@14 [372] if(m<4) goto write_score::@10 to:write_score::@return write_score::@return: scope:[write_score] from write_score::@9 [373] return to:@return write_score::@10: scope:[write_score] from write_score::@9 [374] chrout::petscii = points[m] [375] call chrout to:write_score::@14 write_score::@14: scope:[write_score] from write_score::@10 [376] m = ++ m to:write_score::@9 write_score::@6: scope:[write_score] from write_score::@5 [377] points[m] = '0' [378] m = ++ m to:write_score::@5 void chrono_restart() chrono_restart: scope:[chrono_restart] from main::@25 asm { lda#0 ldy#0 ldx#0 jsr$ffdb } to:chrono_restart::@return chrono_restart::@return: scope:[chrono_restart] from chrono_restart [380] return to:@return void wait(char n) wait: scope:[wait] from main::@36 main::@42 main::@86 main::@88 main::@89 [381] z#53 = phi( main::@36/z#48, main::@42/z#100, main::@86/z#100, main::@88/z#100, main::@89/z#25 ) [381] wait::n#6 = phi( main::@36/5, main::@42/$a, main::@86/$14, main::@88/$a, main::@89/5 ) [382] m = 0 to:wait::@1 wait::@1: scope:[wait] from wait wait::@4 [383] z#25 = phi( wait/z#53, wait::@4/z#23 ) [384] if(m=utoa::digit_value#0) goto utoa::@5 to:utoa::@4 utoa::@4: scope:[utoa] from utoa::@6 utoa::@7 [402] utoa::buffer#15 = phi( utoa::@7/utoa::buffer#10, utoa::@6/utoa::buffer#4 ) [402] utoa::started#4 = phi( utoa::@7/utoa::started#2, utoa::@6/1 ) [402] utoa::value#7 = phi( utoa::@7/utoa::value#3, utoa::@6/utoa::value#0 ) [403] utoa::digit#1 = ++ utoa::digit#2 to:utoa::@1 utoa::@5: scope:[utoa] from utoa::@2 utoa::@7 [404] utoa_append::buffer#0 = utoa::buffer#10 [405] utoa_append::value#0 = utoa::value#3 [406] utoa_append::sub#0 = utoa::digit_value#0 [407] call utoa_append [408] utoa_append::return#0 = utoa_append::value#2 to:utoa::@6 utoa::@6: scope:[utoa] from utoa::@5 [409] utoa::value#0 = utoa_append::return#0 [410] utoa::buffer#4 = ++ utoa::buffer#10 to:utoa::@4 void read_chrono() read_chrono: scope:[read_chrono] from main::@27 asm { jsr$ffde stal stxm } [412] read_chrono::$0 = m << 8 [413] div16u8u::dividend#0 = read_chrono::$0 + l [414] call div16u8u [415] div16u8u::return#2 = div16u8u::return#0 to:read_chrono::@2 read_chrono::@2: scope:[read_chrono] from read_chrono [416] *((char *)$1e15+c) = 7 [417] *((char *) 7701) = $b9 [418] if(div16u8u::return#2>=$a) goto read_chrono::@return to:read_chrono::@1 read_chrono::@1: scope:[read_chrono] from read_chrono::@2 [419] read_chrono::$5 = $b9 - div16u8u::return#2 [420] *((char *) 7701) = read_chrono::$5 to:read_chrono::@return read_chrono::@return: scope:[read_chrono] from read_chrono::@1 read_chrono::@2 [421] return to:@return void cputc(char c) cputc: scope:[cputc] from cputs::@2 [422] if(cputc::c#0==' ') goto cputc::@1 to:cputc::@2 cputc::@2: scope:[cputc] from cputc [423] conio_line_text[conio_cursor_x] = cputc::c#0 [424] conio_line_color[conio_cursor_x] = conio_textcolor [425] conio_cursor_x = ++ conio_cursor_x [426] if(conio_cursor_x!=$28) goto cputc::@return to:cputc::@3 cputc::@3: scope:[cputc] from cputc::@2 [427] phi() [428] call cputln to:cputc::@return cputc::@return: scope:[cputc] from cputc::@1 cputc::@2 cputc::@3 [429] return to:@return cputc::@1: scope:[cputc] from cputc [430] phi() [431] call cputln to:cputc::@return unsigned int utoa_append(char *buffer , unsigned int value , unsigned int sub) utoa_append: scope:[utoa_append] from utoa::@5 [432] phi() to:utoa_append::@1 utoa_append::@1: scope:[utoa_append] from utoa_append utoa_append::@2 [433] utoa_append::digit#2 = phi( utoa_append/0, utoa_append::@2/utoa_append::digit#1 ) [433] utoa_append::value#2 = phi( utoa_append/utoa_append::value#0, utoa_append::@2/utoa_append::value#1 ) [434] 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 [435] *utoa_append::buffer#0 = DIGITS[utoa_append::digit#2] to:utoa_append::@return utoa_append::@return: scope:[utoa_append] from utoa_append::@3 [436] return to:@return utoa_append::@2: scope:[utoa_append] from utoa_append::@1 [437] utoa_append::digit#1 = ++ utoa_append::digit#2 [438] utoa_append::value#1 = utoa_append::value#2 - utoa_append::sub#0 to:utoa_append::@1 unsigned int div16u8u(unsigned int dividend , char divisor) div16u8u: scope:[div16u8u] from read_chrono [439] divr8u::dividend#1 = byte1 div16u8u::dividend#0 [440] call divr8u [441] divr8u::return#2 = divr8u::return#0 to:div16u8u::@1 div16u8u::@1: scope:[div16u8u] from div16u8u [442] div16u8u::quotient_hi#0 = divr8u::return#2 [443] divr8u::dividend#2 = byte0 div16u8u::dividend#0 [444] divr8u::rem#4 = divr8u::rem#11 [445] call divr8u [446] divr8u::return#3 = divr8u::return#0 to:div16u8u::@2 div16u8u::@2: scope:[div16u8u] from div16u8u::@1 [447] div16u8u::quotient_lo#0 = divr8u::return#3 [448] div16u8u::return#0 = div16u8u::quotient_hi#0 w= div16u8u::quotient_lo#0 to:div16u8u::@return div16u8u::@return: scope:[div16u8u] from div16u8u::@2 [449] return to:@return void cputln() cputln: scope:[cputln] from cputc::@1 cputc::@3 [450] conio_line_text = conio_line_text + $28 [451] conio_line_color = conio_line_color + $28 [452] conio_cursor_x = 0 [453] conio_cursor_y = ++ conio_cursor_y [454] call cscroll to:cputln::@return cputln::@return: scope:[cputln] from cputln [455] return to:@return char divr8u(char dividend , char divisor , char rem) divr8u: scope:[divr8u] from div16u8u div16u8u::@1 [456] divr8u::dividend#5 = phi( div16u8u/divr8u::dividend#1, div16u8u::@1/divr8u::dividend#2 ) [456] divr8u::rem#10 = phi( div16u8u/0, div16u8u::@1/divr8u::rem#4 ) to:divr8u::@1 divr8u::@1: scope:[divr8u] from divr8u divr8u::@3 [457] divr8u::i#2 = phi( divr8u/0, divr8u::@3/divr8u::i#1 ) [457] divr8u::quotient#3 = phi( divr8u/0, divr8u::@3/divr8u::return#0 ) [457] divr8u::dividend#3 = phi( divr8u/divr8u::dividend#5, divr8u::@3/divr8u::dividend#0 ) [457] divr8u::rem#5 = phi( divr8u/divr8u::rem#10, divr8u::@3/divr8u::rem#11 ) [458] divr8u::rem#0 = divr8u::rem#5 << 1 [459] divr8u::$1 = divr8u::dividend#3 & $80 [460] if(divr8u::$1==0) goto divr8u::@2 to:divr8u::@4 divr8u::@4: scope:[divr8u] from divr8u::@1 [461] divr8u::rem#1 = divr8u::rem#0 | 1 to:divr8u::@2 divr8u::@2: scope:[divr8u] from divr8u::@1 divr8u::@4 [462] divr8u::rem#6 = phi( divr8u::@1/divr8u::rem#0, divr8u::@4/divr8u::rem#1 ) [463] divr8u::dividend#0 = divr8u::dividend#3 << 1 [464] divr8u::quotient#1 = divr8u::quotient#3 << 1 [465] if(divr8u::rem#6=5+1) goto main::@4 [ l rem8u#127 y#114 hiscore#110 n#109 ] ( main:10 [ l rem8u#127 y#114 hiscore#110 n#109 ] { } ) always clobbers reg byte a Statement [45] *((char *) 36869) = $ff [ l rem8u#127 y#114 hiscore#110 n#109 ] ( main:10 [ l rem8u#127 y#114 hiscore#110 n#109 ] { } ) always clobbers reg byte a Statement [46] chrout::petscii = reverse_on [ l chrout::petscii rem8u#127 y#114 hiscore#110 n#109 ] ( main:10 [ l chrout::petscii rem8u#127 y#114 hiscore#110 n#109 ] { } ) always clobbers reg byte a Statement [48] chrout::petscii = red [ l chrout::petscii rem8u#127 y#114 hiscore#110 n#109 ] ( main:10 [ l chrout::petscii rem8u#127 y#114 hiscore#110 n#109 ] { } ) always clobbers reg byte a Statement [50] chrout::petscii = down [ l chrout::petscii rem8u#127 y#114 hiscore#110 n#109 ] ( main:10 [ l chrout::petscii rem8u#127 y#114 hiscore#110 n#109 ] { } ) always clobbers reg byte a Statement [54] chrout::petscii = brick [ l chrout::petscii rem8u#127 y#114 hiscore#110 n#89 ] ( main:10 [ l chrout::petscii rem8u#127 y#114 hiscore#110 n#89 ] { } ) always clobbers reg byte a Statement [56] *((char *) 8185) = brick [ l rem8u#127 y#114 hiscore#110 n#89 ] ( main:10 [ l rem8u#127 y#114 hiscore#110 n#89 ] { } ) always clobbers reg byte a Statement [57] *((char *)$1ff9+c) = 2 [ l rem8u#127 y#114 hiscore#110 n#89 ] ( main:10 [ l rem8u#127 y#114 hiscore#110 n#89 ] { } ) always clobbers reg byte a Statement [58] chrout::petscii = home [ l chrout::petscii rem8u#127 y#114 hiscore#110 n#89 ] ( main:10 [ l chrout::petscii rem8u#127 y#114 hiscore#110 n#89 ] { } ) always clobbers reg byte a Statement [60] if(l<1+1) goto main::@12 [ l rem8u#127 y#114 hiscore#110 n#89 ] ( main:10 [ l rem8u#127 y#114 hiscore#110 n#89 ] { } ) always clobbers reg byte a Statement [62] random::k#0 = 7 - l [ l rem8u#127 y#114 hiscore#110 n#89 z#28 random::k#0 ] ( main:10 [ l rem8u#127 y#114 hiscore#110 n#89 z#28 random::k#0 ] { { random::k#0 = random::k#4 } { random::n#0 = random::n#4 } } ) always clobbers reg byte a Statement [63] main::$177 = l << 1 [ l rem8u#127 y#114 hiscore#110 n#89 z#28 random::k#0 main::$177 ] ( main:10 [ l rem8u#127 y#114 hiscore#110 n#89 z#28 random::k#0 main::$177 ] { { random::k#0 = random::k#4 } { random::n#0 = random::n#4 } } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:3 [ random::k#4 random::k#0 ] Statement [64] main::$26 = main::$177 + l [ l rem8u#127 y#114 hiscore#110 n#89 z#28 random::k#0 main::$26 ] ( main:10 [ l rem8u#127 y#114 hiscore#110 n#89 z#28 random::k#0 main::$26 ] { { random::k#0 = random::k#4 } { random::n#0 = random::n#4 } } ) always clobbers reg byte a Statement [65] random::n#0 = $1a - main::$26 [ l rem8u#127 y#114 hiscore#110 n#89 z#28 random::k#0 random::n#0 ] ( main:10 [ l rem8u#127 y#114 hiscore#110 n#89 z#28 random::k#0 random::n#0 ] { { random::k#0 = random::k#4 } { random::n#0 = random::n#4 } } ) always clobbers reg byte a Statement [67] main::$29 = z#28 + m [ l m rem8u#127 y#114 hiscore#110 n#89 z#28 main::$29 ] ( main:10 [ l m rem8u#127 y#114 hiscore#110 n#89 z#28 main::$29 ] { } ) always clobbers reg byte a Statement [68] if(main::$29<=$1f9) goto main::@14 [ l m rem8u#127 y#114 hiscore#110 n#89 z#28 ] ( main:10 [ l m rem8u#127 y#114 hiscore#110 n#89 z#28 ] { } ) always clobbers reg byte a Statement [70] *((char *) 36878) = $f [ l rem8u#127 y#114 hiscore#110 n#89 z#128 ] ( main:10 [ l rem8u#127 y#114 hiscore#110 n#89 z#128 ] { } ) always clobbers reg byte a Statement [71] chrout::petscii = home [ l chrout::petscii rem8u#127 y#114 hiscore#110 n#89 z#128 ] ( main:10 [ l chrout::petscii rem8u#127 y#114 hiscore#110 n#89 z#128 ] { } ) always clobbers reg byte a Statement [73] chrout::petscii = yellow [ l chrout::petscii rem8u#127 y#114 hiscore#110 n#89 z#128 ] ( main:10 [ l chrout::petscii rem8u#127 y#114 hiscore#110 n#89 z#128 ] { } ) always clobbers reg byte a Statement [75] chrout::petscii = $50 [ l chrout::petscii rem8u#127 y#114 hiscore#110 n#89 z#128 ] ( main:10 [ l chrout::petscii rem8u#127 y#114 hiscore#110 n#89 z#128 ] { } ) always clobbers reg byte a Statement [77] chrout::petscii = $54 [ l chrout::petscii rem8u#127 y#114 hiscore#110 n#89 z#128 ] ( main:10 [ l chrout::petscii rem8u#127 y#114 hiscore#110 n#89 z#128 ] { } ) always clobbers reg byte a Statement [79] chrout::petscii = $53 [ l chrout::petscii rem8u#127 y#114 hiscore#110 n#89 z#128 ] ( main:10 [ l chrout::petscii rem8u#127 y#114 hiscore#110 n#89 z#128 ] { } ) always clobbers reg byte a Statement [81] chrout::petscii = $3a [ l chrout::petscii rem8u#127 y#114 hiscore#110 n#89 z#128 ] ( main:10 [ l chrout::petscii rem8u#127 y#114 hiscore#110 n#89 z#128 ] { } ) always clobbers reg byte a Statement [83] *((char *) 211) = $12 [ l rem8u#127 y#114 hiscore#110 n#89 z#128 ] ( main:10 [ l rem8u#127 y#114 hiscore#110 n#89 z#128 ] { } ) always clobbers reg byte a Statement [88] chrout::petscii = home [ l chrout::petscii rem8u#127 y#114 hiscore#110 n#89 z#128 score#38 ] ( main:10 [ l chrout::petscii rem8u#127 y#114 hiscore#110 n#89 z#128 score#38 ] { } ) always clobbers reg byte a Statement [90] chrout::petscii = green [ l chrout::petscii rem8u#127 y#114 hiscore#110 n#89 z#128 score#38 ] ( main:10 [ l chrout::petscii rem8u#127 y#114 hiscore#110 n#89 z#128 score#38 ] { } ) always clobbers reg byte a Statement [92] *((char *) 211) = $a [ l rem8u#127 y#114 hiscore#110 n#89 z#128 score#38 ] ( main:10 [ l rem8u#127 y#114 hiscore#110 n#89 z#128 score#38 ] { } ) always clobbers reg byte a Statement [96] chrout::petscii = home [ l chrout::petscii hiscore#110 tu#13 rem8u#48 y#49 z#102 peephole#52 n#52 score#38 ] ( main:10 [ l chrout::petscii hiscore#110 tu#13 rem8u#48 y#49 z#102 peephole#52 n#52 score#38 ] { } ) always clobbers reg byte a Statement [98] chrout::petscii = green [ l chrout::petscii hiscore#110 tu#13 rem8u#48 y#49 z#102 peephole#52 n#52 score#38 ] ( main:10 [ l chrout::petscii hiscore#110 tu#13 rem8u#48 y#49 z#102 peephole#52 n#52 score#38 ] { } ) always clobbers reg byte a Statement [100] chrout::petscii = reverse_on [ l chrout::petscii hiscore#110 tu#13 rem8u#48 y#49 z#102 peephole#52 n#52 score#38 ] ( main:10 [ l chrout::petscii hiscore#110 tu#13 rem8u#48 y#49 z#102 peephole#52 n#52 score#38 ] { } ) always clobbers reg byte a Statement [102] *((char *) 211) = $f [ l hiscore#110 tu#13 rem8u#48 y#49 z#102 peephole#52 n#52 score#38 ] ( main:10 [ l hiscore#110 tu#13 rem8u#48 y#49 z#102 peephole#52 n#52 score#38 ] { } ) always clobbers reg byte a Statement [103] if(tu#13<$a) goto main::@23 [ l hiscore#110 tu#13 rem8u#48 y#49 z#102 peephole#52 n#52 score#38 ] ( main:10 [ l hiscore#110 tu#13 rem8u#48 y#49 z#102 peephole#52 n#52 score#38 ] { } ) always clobbers reg byte a Statement [104] chrout::petscii = $31 [ l chrout::petscii hiscore#110 tu#13 rem8u#48 y#49 z#102 peephole#52 n#52 score#38 ] ( main:10 [ l chrout::petscii hiscore#110 tu#13 rem8u#48 y#49 z#102 peephole#52 n#52 score#38 ] { } ) always clobbers reg byte a Statement [106] chrout::petscii = $30 [ l chrout::petscii hiscore#110 tu#13 rem8u#48 y#49 z#102 peephole#52 n#52 score#38 ] ( main:10 [ l chrout::petscii hiscore#110 tu#13 rem8u#48 y#49 z#102 peephole#52 n#52 score#38 ] { } ) always clobbers reg byte a Statement [110] duck#0 = m [ l hiscore#110 tu#13 rem8u#48 y#49 z#102 peephole#52 n#52 duck#0 score#38 ] ( main:10 [ l hiscore#110 tu#13 rem8u#48 y#49 z#102 peephole#52 n#52 duck#0 score#38 ] { } ) always clobbers reg byte a Statement [112] main::$61 = m + $1e15 [ l m hiscore#110 tu#13 rem8u#48 y#49 z#102 peephole#52 n#52 duck#0 main::$61 score#38 ] ( main:10 [ l m hiscore#110 tu#13 rem8u#48 y#49 z#102 peephole#52 n#52 duck#0 main::$61 score#38 ] { } ) always clobbers reg byte a Statement [113] duck#1 = main::$61 + duck#0 [ l m hiscore#110 tu#13 rem8u#48 y#49 z#102 peephole#52 n#52 duck#1 score#38 ] ( main:10 [ l m hiscore#110 tu#13 rem8u#48 y#49 z#102 peephole#52 n#52 duck#1 score#38 ] { } ) always clobbers reg byte a Statement [114] main::$66 = duck#1 + 1 [ l m hiscore#110 tu#13 rem8u#48 y#49 z#102 peephole#52 n#52 duck#1 main::$66 score#38 ] ( main:10 [ l m hiscore#110 tu#13 rem8u#48 y#49 z#102 peephole#52 n#52 duck#1 main::$66 score#38 ] { } ) always clobbers reg byte a Statement [115] main::$69 = duck#1 + $16 [ l m hiscore#110 tu#13 rem8u#48 y#49 z#102 peephole#52 n#52 duck#1 main::$66 main::$69 score#38 ] ( main:10 [ l m hiscore#110 tu#13 rem8u#48 y#49 z#102 peephole#52 n#52 duck#1 main::$66 main::$69 score#38 ] { } ) always clobbers reg byte a Statement [116] main::$72 = duck#1 + $17 [ l m hiscore#110 tu#13 rem8u#48 y#49 z#102 peephole#52 n#52 duck#1 main::$66 main::$69 main::$72 score#38 ] ( main:10 [ l m hiscore#110 tu#13 rem8u#48 y#49 z#102 peephole#52 n#52 duck#1 main::$66 main::$69 main::$72 score#38 ] { } ) always clobbers reg byte a Statement [117] if(duck#1>$1fe3) goto main::@24 [ l m hiscore#110 tu#13 rem8u#48 y#49 z#102 peephole#52 n#52 duck#1 main::$66 main::$69 main::$72 score#38 ] ( main:10 [ l m hiscore#110 tu#13 rem8u#48 y#49 z#102 peephole#52 n#52 duck#1 main::$66 main::$69 main::$72 score#38 ] { } ) always clobbers reg byte a Statement [118] if(*((char *)duck#1)==brick) goto main::@24 [ l m hiscore#110 tu#13 rem8u#48 y#49 z#102 peephole#52 n#52 duck#1 main::$66 main::$69 main::$72 score#38 ] ( main:10 [ l m hiscore#110 tu#13 rem8u#48 y#49 z#102 peephole#52 n#52 duck#1 main::$66 main::$69 main::$72 score#38 ] { } ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte y as potential for zp[1]:17 [ divr8u::rem#5 divr8u::rem#10 divr8u::rem#4 rem8u#48 rem8u#127 rem8u#25 divr8u::rem#11 divr8u::rem#6 divr8u::rem#0 divr8u::rem#1 divr8u::rem#2 ] Removing always clobbered register reg byte y as potential for zp[1]:95 [ n#52 n#89 n#109 n#20 n#101 n#14 n#1 ] Statement [119] if(*((char *)main::$66)==brick) goto main::@24 [ l m hiscore#110 tu#13 rem8u#48 y#49 z#102 peephole#52 n#52 duck#1 main::$69 main::$72 score#38 ] ( main:10 [ l m hiscore#110 tu#13 rem8u#48 y#49 z#102 peephole#52 n#52 duck#1 main::$69 main::$72 score#38 ] { } ) always clobbers reg byte a reg byte y Statement [120] if(*((char *)main::$69)==brick) goto main::@24 [ l m hiscore#110 tu#13 rem8u#48 y#49 z#102 peephole#52 n#52 duck#1 main::$72 score#38 ] ( main:10 [ l m hiscore#110 tu#13 rem8u#48 y#49 z#102 peephole#52 n#52 duck#1 main::$72 score#38 ] { } ) always clobbers reg byte a reg byte y Statement [121] if(*((char *)main::$72)==brick) goto main::@24 [ l m hiscore#110 tu#13 rem8u#48 y#49 z#102 peephole#52 n#52 duck#1 score#38 ] ( main:10 [ l m hiscore#110 tu#13 rem8u#48 y#49 z#102 peephole#52 n#52 duck#1 score#38 ] { } ) always clobbers reg byte a reg byte y Statement [125] if(time#11<$a) goto main::@27 [ l m hiscore#110 rem8u#25 y#18 n#20 tu#13 peephole#12 duck#1 score#19 z#100 ] ( main:10 [ l m hiscore#110 rem8u#25 y#18 n#20 tu#13 peephole#12 duck#1 score#19 z#100 ] { } ) always clobbers reg byte a Statement [127] score#4 = score#19 - $a [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 peephole#12 duck#1 z#100 score#4 ] ( main:10 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 peephole#12 duck#1 z#100 score#4 ] { { score#13 = score#4 } } ) always clobbers reg byte a Statement [129] *((char *) 36877) = $82 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 peephole#12 duck#1 z#100 score#38 ] ( main:10 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 peephole#12 duck#1 z#100 score#38 ] { { z#100 = z#53 } } ) always clobbers reg byte a Statement [131] *((char *) 36877) = 0 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 z#25 peephole#12 duck#1 score#38 ] ( main:10 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 z#25 peephole#12 duck#1 score#38 ] { } ) always clobbers reg byte a Statement [132] main::$150 = duck#1 + c [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 z#25 peephole#12 duck#1 score#38 main::$150 ] ( main:10 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 z#25 peephole#12 duck#1 score#38 main::$150 ] { } ) always clobbers reg byte a Statement [133] *((char *)main::$150) = 0 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 z#25 peephole#12 duck#1 score#38 ] ( main:10 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 z#25 peephole#12 duck#1 score#38 ] { } ) always clobbers reg byte a reg byte y Statement [134] main::$151 = duck#1 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 z#25 peephole#12 duck#1 score#38 main::$151 ] ( main:10 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 z#25 peephole#12 duck#1 score#38 main::$151 ] { } ) always clobbers reg byte a Statement [135] main::$152 = main::$151 + 1+c [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 z#25 peephole#12 duck#1 score#38 main::$152 ] ( main:10 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 z#25 peephole#12 duck#1 score#38 main::$152 ] { } ) always clobbers reg byte a Statement [136] *((char *)main::$152) = 0 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 z#25 peephole#12 duck#1 score#38 ] ( main:10 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 z#25 peephole#12 duck#1 score#38 ] { } ) always clobbers reg byte a reg byte y Statement [137] main::$153 = duck#1 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 z#25 peephole#12 duck#1 score#38 main::$153 ] ( main:10 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 z#25 peephole#12 duck#1 score#38 main::$153 ] { } ) always clobbers reg byte a Statement [138] main::$154 = main::$153 + $16+c [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 z#25 peephole#12 duck#1 score#38 main::$154 ] ( main:10 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 z#25 peephole#12 duck#1 score#38 main::$154 ] { } ) always clobbers reg byte a Statement [139] *((char *)main::$154) = 0 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 z#25 peephole#12 duck#1 score#38 ] ( main:10 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 z#25 peephole#12 duck#1 score#38 ] { } ) always clobbers reg byte a reg byte y Statement [140] main::$155 = duck#1 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 z#25 peephole#12 score#38 main::$155 ] ( main:10 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 z#25 peephole#12 score#38 main::$155 ] { } ) always clobbers reg byte a Statement [141] main::$156 = main::$155 + $17+c [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 z#25 peephole#12 score#38 main::$156 ] ( main:10 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 z#25 peephole#12 score#38 main::$156 ] { } ) always clobbers reg byte a Statement [142] *((char *)main::$156) = 0 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 z#25 peephole#12 score#38 ] ( main:10 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 z#25 peephole#12 score#38 ] { } ) always clobbers reg byte a reg byte y Statement [143] if(tu#1<$b) goto main::@22 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 z#25 peephole#12 score#38 ] ( main:10 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 z#25 peephole#12 score#38 ] { } ) always clobbers reg byte a Statement [146] *((char *) 36869) = $f0 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color hiscore#110 rem8u#25 y#18 n#20 score#38 ] ( main:10 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color hiscore#110 rem8u#25 y#18 n#20 score#38 ] { } ) always clobbers reg byte a Statement [147] chrout::petscii = lower [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color chrout::petscii hiscore#110 rem8u#25 y#18 n#20 score#38 ] ( main:10 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color chrout::petscii hiscore#110 rem8u#25 y#18 n#20 score#38 ] { } ) always clobbers reg byte a Statement [163] if(score#38<=hiscore#110) goto main::@114 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor hiscore#110 rem8u#25 y#18 n#20 score#38 ] ( main:10 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor hiscore#110 rem8u#25 y#18 n#20 score#38 ] { } ) always clobbers reg byte a Statement [164] hiscore#124 = hiscore#110 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor rem8u#25 y#18 n#20 hiscore#124 ] ( main:10 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor rem8u#25 y#18 n#20 hiscore#124 ] { } ) always clobbers reg byte a Statement [166] utoa::value#2 = hiscore#19 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor rem8u#25 y#18 n#20 hiscore#19 utoa::value#2 ] ( main:10 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor rem8u#25 y#18 n#20 hiscore#19 utoa::value#2 ] { { utoa::value#10 = utoa::value#2 hiscore#19 } } ) always clobbers reg byte a Statement asm { jsr$FD22 } always clobbers reg byte a reg byte x reg byte y Statement [180] hiscore#123 = hiscore#19 [ rem8u#25 y#18 hiscore#123 n#20 ] ( main:10 [ rem8u#25 y#18 hiscore#123 n#20 ] { } ) always clobbers reg byte a Statement [183] m = *((char *) 37151) [ l m hiscore#110 y#18 tu#13 peephole#12 duck#1 score#19 z#100 divr8u::rem#11 div16u8u::return#2 ] ( main:10 [ l m hiscore#110 y#18 tu#13 peephole#12 duck#1 score#19 z#100 divr8u::rem#11 div16u8u::return#2 ] { } ) always clobbers reg byte a Statement [184] *((char *) 37154) = $7f [ l m hiscore#110 y#18 tu#13 peephole#12 duck#1 score#19 z#100 divr8u::rem#11 div16u8u::return#2 ] ( main:10 [ l m hiscore#110 y#18 tu#13 peephole#12 duck#1 score#19 z#100 divr8u::rem#11 div16u8u::return#2 ] { } ) always clobbers reg byte a Statement [186] *((char *) 37154) = $ff [ l m hiscore#110 y#18 tu#13 peephole#12 duck#1 score#19 z#100 divr8u::rem#11 n#14 div16u8u::return#2 ] ( main:10 [ l m hiscore#110 y#18 tu#13 peephole#12 duck#1 score#19 z#100 divr8u::rem#11 n#14 div16u8u::return#2 ] { } ) always clobbers reg byte a Statement [187] main::$78 = $10 & m [ l m hiscore#110 y#18 tu#13 peephole#12 duck#1 score#19 z#100 divr8u::rem#11 n#14 main::$78 div16u8u::return#2 ] ( main:10 [ l m hiscore#110 y#18 tu#13 peephole#12 duck#1 score#19 z#100 divr8u::rem#11 n#14 main::$78 div16u8u::return#2 ] { } ) always clobbers reg byte a Statement [189] y#0 = -- y#18 [ l m hiscore#110 tu#13 peephole#12 duck#1 score#19 z#100 divr8u::rem#11 n#14 y#0 div16u8u::return#2 ] ( main:10 [ l m hiscore#110 tu#13 peephole#12 duck#1 score#19 z#100 divr8u::rem#11 n#14 y#0 div16u8u::return#2 ] { } ) always clobbers reg byte a Statement [191] main::$81 = $80 & n#14 [ l m hiscore#110 tu#13 peephole#12 duck#1 score#19 z#100 divr8u::rem#11 n#14 y#10 main::$81 div16u8u::return#2 ] ( main:10 [ l m hiscore#110 tu#13 peephole#12 duck#1 score#19 z#100 divr8u::rem#11 n#14 y#10 main::$81 div16u8u::return#2 ] { } ) always clobbers reg byte a Statement [195] main::$84 = 4 & m [ l m hiscore#110 tu#13 peephole#12 duck#1 score#19 z#100 divr8u::rem#11 n#14 y#11 main::$84 div16u8u::return#2 ] ( main:10 [ l m hiscore#110 tu#13 peephole#12 duck#1 score#19 z#100 divr8u::rem#11 n#14 y#11 main::$84 div16u8u::return#2 ] { } ) always clobbers reg byte a Statement [197] y#2 = y#11 - $16 [ l m hiscore#110 tu#13 peephole#12 duck#1 score#19 z#100 divr8u::rem#11 n#14 y#2 div16u8u::return#2 ] ( main:10 [ l m hiscore#110 tu#13 peephole#12 duck#1 score#19 z#100 divr8u::rem#11 n#14 y#2 div16u8u::return#2 ] { } ) always clobbers reg byte a Statement [199] main::$88 = 8 & m [ l m hiscore#110 tu#13 peephole#12 duck#1 score#19 z#100 divr8u::rem#11 n#14 y#12 main::$88 div16u8u::return#2 ] ( main:10 [ l m hiscore#110 tu#13 peephole#12 duck#1 score#19 z#100 divr8u::rem#11 n#14 y#12 main::$88 div16u8u::return#2 ] { } ) always clobbers reg byte a Statement [201] y#3 = y#12 + $16 [ l m hiscore#110 tu#13 peephole#12 duck#1 score#19 z#100 divr8u::rem#11 n#14 y#3 div16u8u::return#2 ] ( main:10 [ l m hiscore#110 tu#13 peephole#12 duck#1 score#19 z#100 divr8u::rem#11 n#14 y#3 div16u8u::return#2 ] { } ) always clobbers reg byte a Statement [203] main::$92 = $20 & m [ l hiscore#110 tu#13 peephole#12 duck#1 score#19 z#100 divr8u::rem#11 n#14 y#13 main::$92 div16u8u::return#2 ] ( main:10 [ l hiscore#110 tu#13 peephole#12 duck#1 score#19 z#100 divr8u::rem#11 n#14 y#13 main::$92 div16u8u::return#2 ] { } ) always clobbers reg byte a Statement [205] *((char *) 36877) = $82 [ l hiscore#110 tu#13 peephole#12 duck#1 score#19 z#100 divr8u::rem#11 n#14 y#13 div16u8u::return#2 ] ( main:10 [ l hiscore#110 tu#13 peephole#12 duck#1 score#19 z#100 divr8u::rem#11 n#14 y#13 div16u8u::return#2 ] { } ) always clobbers reg byte a Statement [206] if(peephole#12!=duck#1) goto main::@34 [ l hiscore#110 tu#13 peephole#12 duck#1 score#19 z#100 divr8u::rem#11 n#14 y#13 div16u8u::return#2 ] ( main:10 [ l hiscore#110 tu#13 peephole#12 duck#1 score#19 z#100 divr8u::rem#11 n#14 y#13 div16u8u::return#2 ] { } ) always clobbers reg byte a Statement [207] main::$96 = $c - div16u8u::return#2 [ l hiscore#110 tu#13 peephole#12 duck#1 score#19 z#100 divr8u::rem#11 n#14 y#13 main::$96 ] ( main:10 [ l hiscore#110 tu#13 peephole#12 duck#1 score#19 z#100 divr8u::rem#11 n#14 y#13 main::$96 ] { { z#100 = z#53 } } ) always clobbers reg byte a Statement [208] main::$179 = main::$96 << 2 [ l hiscore#110 tu#13 peephole#12 duck#1 score#19 z#100 divr8u::rem#11 n#14 y#13 main::$96 main::$179 ] ( main:10 [ l hiscore#110 tu#13 peephole#12 duck#1 score#19 z#100 divr8u::rem#11 n#14 y#13 main::$96 main::$179 ] { { z#100 = z#53 } } ) always clobbers reg byte a Statement [209] main::$180 = main::$179 + main::$96 [ l hiscore#110 tu#13 peephole#12 duck#1 score#19 z#100 divr8u::rem#11 n#14 y#13 main::$180 ] ( main:10 [ l hiscore#110 tu#13 peephole#12 duck#1 score#19 z#100 divr8u::rem#11 n#14 y#13 main::$180 ] { { z#100 = z#53 } } ) always clobbers reg byte a Statement [210] main::$97 = main::$180 << 1 [ l hiscore#110 tu#13 peephole#12 duck#1 score#19 z#100 divr8u::rem#11 n#14 y#13 main::$97 ] ( main:10 [ l hiscore#110 tu#13 peephole#12 duck#1 score#19 z#100 divr8u::rem#11 n#14 y#13 main::$97 ] { { z#100 = z#53 } } ) always clobbers reg byte a Statement [211] score#8 = score#19 + main::$97 [ l hiscore#110 tu#13 peephole#12 duck#1 z#100 divr8u::rem#11 n#14 y#13 score#8 ] ( main:10 [ l hiscore#110 tu#13 peephole#12 duck#1 z#100 divr8u::rem#11 n#14 y#13 score#8 ] { { z#100 = z#53 } } ) always clobbers reg byte a Statement [214] *((char *) 36877) = 0 [ l hiscore#110 tu#13 z#25 peephole#12 duck#1 divr8u::rem#11 n#14 y#13 time#38 score#81 ] ( main:10 [ l hiscore#110 tu#13 z#25 peephole#12 duck#1 divr8u::rem#11 n#14 y#13 time#38 score#81 ] { } ) always clobbers reg byte a Statement [216] main::$104 = y#13 + 1 [ l hiscore#110 tu#13 peephole#12 duck#1 time#17 score#43 divr8u::rem#11 n#14 y#13 z#48 main::$104 ] ( main:10 [ l hiscore#110 tu#13 peephole#12 duck#1 time#17 score#43 divr8u::rem#11 n#14 y#13 z#48 main::$104 ] { } ) always clobbers reg byte a Statement [217] main::$107 = y#13 + $16 [ l hiscore#110 tu#13 peephole#12 duck#1 time#17 score#43 divr8u::rem#11 n#14 y#13 z#48 main::$104 main::$107 ] ( main:10 [ l hiscore#110 tu#13 peephole#12 duck#1 time#17 score#43 divr8u::rem#11 n#14 y#13 z#48 main::$104 main::$107 ] { } ) always clobbers reg byte a Statement [218] main::$110 = y#13 + $17 [ l hiscore#110 tu#13 peephole#12 duck#1 time#17 score#43 divr8u::rem#11 n#14 y#13 z#48 main::$104 main::$107 main::$110 ] ( main:10 [ l hiscore#110 tu#13 peephole#12 duck#1 time#17 score#43 divr8u::rem#11 n#14 y#13 z#48 main::$104 main::$107 main::$110 ] { } ) always clobbers reg byte a Statement [219] if(*((char *)y#13)==brick) goto main::@36 [ l hiscore#110 tu#13 peephole#12 duck#1 time#17 score#43 divr8u::rem#11 n#14 y#13 z#48 main::$104 main::$107 main::$110 ] ( main:10 [ l hiscore#110 tu#13 peephole#12 duck#1 time#17 score#43 divr8u::rem#11 n#14 y#13 z#48 main::$104 main::$107 main::$110 ] { } ) always clobbers reg byte a reg byte y Statement [220] if(*((char *)main::$104)==brick) goto main::@36 [ l hiscore#110 tu#13 peephole#12 duck#1 time#17 score#43 divr8u::rem#11 n#14 y#13 z#48 main::$107 main::$110 ] ( main:10 [ l hiscore#110 tu#13 peephole#12 duck#1 time#17 score#43 divr8u::rem#11 n#14 y#13 z#48 main::$107 main::$110 ] { } ) always clobbers reg byte a reg byte y Statement [221] if(*((char *)main::$107)!=brick) goto main::@109 [ l hiscore#110 tu#13 peephole#12 duck#1 time#17 score#43 divr8u::rem#11 n#14 y#13 z#48 main::$110 ] ( main:10 [ l hiscore#110 tu#13 peephole#12 duck#1 time#17 score#43 divr8u::rem#11 n#14 y#13 z#48 main::$110 ] { } ) always clobbers reg byte a reg byte y Statement [223] *((char *)y#35) = $fd [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 z#48 ] ( main:10 [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 z#48 ] { { z#48 = z#53 } } ) always clobbers reg byte a reg byte y Statement [224] main::$125 = y#35 + c [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 z#48 main::$125 ] ( main:10 [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 z#48 main::$125 ] { { z#48 = z#53 } } ) always clobbers reg byte a Statement [225] *((char *)main::$125) = 1 [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 z#48 ] ( main:10 [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 z#48 ] { { z#48 = z#53 } } ) always clobbers reg byte a reg byte y Statement [226] main::$127 = y#35 + 1 [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 z#48 main::$127 ] ( main:10 [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 z#48 main::$127 ] { { z#48 = z#53 } } ) always clobbers reg byte a Statement [227] *((char *)main::$127) = $ed [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 z#48 main::$127 ] ( main:10 [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 z#48 main::$127 ] { { z#48 = z#53 } } ) always clobbers reg byte a reg byte y Statement [228] main::$128 = main::$127 + c [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 z#48 main::$128 ] ( main:10 [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 z#48 main::$128 ] { { z#48 = z#53 } } ) always clobbers reg byte a Statement [229] *((char *)main::$128) = 1 [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 z#48 ] ( main:10 [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 z#48 ] { { z#48 = z#53 } } ) always clobbers reg byte a reg byte y Statement [230] main::$130 = y#35 + $16 [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 z#48 main::$130 ] ( main:10 [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 z#48 main::$130 ] { { z#48 = z#53 } } ) always clobbers reg byte a Statement [231] *((char *)main::$130) = $ee [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 z#48 main::$130 ] ( main:10 [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 z#48 main::$130 ] { { z#48 = z#53 } } ) always clobbers reg byte a reg byte y Statement [232] main::$131 = main::$130 + c [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 z#48 main::$131 ] ( main:10 [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 z#48 main::$131 ] { { z#48 = z#53 } } ) always clobbers reg byte a Statement [233] *((char *)main::$131) = 1 [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 z#48 ] ( main:10 [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 z#48 ] { { z#48 = z#53 } } ) always clobbers reg byte a reg byte y Statement [234] main::$133 = y#35 + $17 [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 z#48 main::$133 ] ( main:10 [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 z#48 main::$133 ] { { z#48 = z#53 } } ) always clobbers reg byte a Statement [235] *((char *)main::$133) = $f0 [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 z#48 main::$133 ] ( main:10 [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 z#48 main::$133 ] { { z#48 = z#53 } } ) always clobbers reg byte a reg byte y Statement [236] main::$134 = main::$133 + c [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 z#48 main::$134 ] ( main:10 [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 z#48 main::$134 ] { { z#48 = z#53 } } ) always clobbers reg byte a Statement [237] *((char *)main::$134) = 1 [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 z#48 ] ( main:10 [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 z#48 ] { { z#48 = z#53 } } ) always clobbers reg byte a reg byte y Statement [239] *((char *)duck#1) = 0 [ l hiscore#110 tu#13 z#25 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 ] ( main:10 [ l hiscore#110 tu#13 z#25 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 ] { { z#25 = z#53 } } ) always clobbers reg byte a reg byte y Statement [240] main::$136 = duck#1 + c [ l hiscore#110 tu#13 z#25 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 main::$136 ] ( main:10 [ l hiscore#110 tu#13 z#25 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 main::$136 ] { { z#25 = z#53 } } ) always clobbers reg byte a Statement [241] *((char *)main::$136) = 7 [ l hiscore#110 tu#13 z#25 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 ] ( main:10 [ l hiscore#110 tu#13 z#25 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 ] { { z#25 = z#53 } } ) always clobbers reg byte a reg byte y Statement [242] main::$138 = duck#1 + 1 [ l hiscore#110 tu#13 z#25 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 main::$138 ] ( main:10 [ l hiscore#110 tu#13 z#25 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 main::$138 ] { { z#25 = z#53 } } ) always clobbers reg byte a Statement [243] *((char *)main::$138) = 1 [ l hiscore#110 tu#13 z#25 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 main::$138 ] ( main:10 [ l hiscore#110 tu#13 z#25 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 main::$138 ] { { z#25 = z#53 } } ) always clobbers reg byte a reg byte y Statement [244] main::$139 = main::$138 + c [ l hiscore#110 tu#13 z#25 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 main::$139 ] ( main:10 [ l hiscore#110 tu#13 z#25 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 main::$139 ] { { z#25 = z#53 } } ) always clobbers reg byte a Statement [245] *((char *)main::$139) = 7 [ l hiscore#110 tu#13 z#25 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 ] ( main:10 [ l hiscore#110 tu#13 z#25 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 ] { { z#25 = z#53 } } ) always clobbers reg byte a reg byte y Statement [246] main::$141 = duck#1 + $16 [ l hiscore#110 tu#13 z#25 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 main::$141 ] ( main:10 [ l hiscore#110 tu#13 z#25 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 main::$141 ] { { z#25 = z#53 } } ) always clobbers reg byte a Statement [247] *((char *)main::$141) = 2 [ l hiscore#110 tu#13 z#25 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 main::$141 ] ( main:10 [ l hiscore#110 tu#13 z#25 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 main::$141 ] { { z#25 = z#53 } } ) always clobbers reg byte a reg byte y Statement [248] main::$142 = main::$141 + c [ l hiscore#110 tu#13 z#25 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 main::$142 ] ( main:10 [ l hiscore#110 tu#13 z#25 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 main::$142 ] { { z#25 = z#53 } } ) always clobbers reg byte a Statement [249] *((char *)main::$142) = 7 [ l hiscore#110 tu#13 z#25 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 ] ( main:10 [ l hiscore#110 tu#13 z#25 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 ] { { z#25 = z#53 } } ) always clobbers reg byte a reg byte y Statement [250] main::$144 = duck#1 + $17 [ l hiscore#110 tu#13 z#25 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 main::$144 ] ( main:10 [ l hiscore#110 tu#13 z#25 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 main::$144 ] { { z#25 = z#53 } } ) always clobbers reg byte a Statement [251] *((char *)main::$144) = 3 [ l hiscore#110 tu#13 z#25 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 main::$144 ] ( main:10 [ l hiscore#110 tu#13 z#25 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 main::$144 ] { { z#25 = z#53 } } ) always clobbers reg byte a reg byte y Statement [252] main::$145 = main::$144 + c [ l hiscore#110 tu#13 z#25 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 main::$145 ] ( main:10 [ l hiscore#110 tu#13 z#25 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 main::$145 ] { { z#25 = z#53 } } ) always clobbers reg byte a Statement [253] *((char *)main::$145) = 7 [ l hiscore#110 tu#13 z#25 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 ] ( main:10 [ l hiscore#110 tu#13 z#25 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 ] { { z#25 = z#53 } } ) always clobbers reg byte a reg byte y Statement [255] y#130 = y#35 [ l m hiscore#110 tu#13 z#25 duck#1 time#17 score#43 divr8u::rem#11 y#130 y#35 n#14 ] ( main:10 [ l m hiscore#110 tu#13 z#25 duck#1 time#17 score#43 divr8u::rem#11 y#130 y#35 n#14 ] { } ) always clobbers reg byte a Statement [256] if(*((char *)main::$110)==brick) goto main::@36 [ l hiscore#110 tu#13 peephole#12 duck#1 time#17 score#43 divr8u::rem#11 n#14 y#13 z#48 ] ( main:10 [ l hiscore#110 tu#13 peephole#12 duck#1 time#17 score#43 divr8u::rem#11 n#14 y#13 z#48 ] { } ) always clobbers reg byte a reg byte y Statement [257] if(y#13>$1e16) goto main::@107 [ l hiscore#110 tu#13 peephole#12 duck#1 time#17 score#43 divr8u::rem#11 n#14 y#13 z#48 ] ( main:10 [ l hiscore#110 tu#13 peephole#12 duck#1 time#17 score#43 divr8u::rem#11 n#14 y#13 z#48 ] { } ) always clobbers reg byte a Statement [258] if(y#13>=$1fe3) goto main::@36 [ l hiscore#110 tu#13 peephole#12 duck#1 time#17 score#43 divr8u::rem#11 n#14 y#13 z#48 ] ( main:10 [ l hiscore#110 tu#13 peephole#12 duck#1 time#17 score#43 divr8u::rem#11 n#14 y#13 z#48 ] { } ) always clobbers reg byte a Statement [259] main::$119 = peephole#12 + c [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 n#14 y#13 z#48 main::$119 ] ( main:10 [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 n#14 y#13 z#48 main::$119 ] { } ) always clobbers reg byte a Statement [260] *((char *)main::$119) = 0 [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 n#14 y#13 z#48 main::$119 ] ( main:10 [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 n#14 y#13 z#48 main::$119 ] { } ) always clobbers reg byte a reg byte y Statement [261] main::$120 = main::$119 + 1 [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 n#14 y#13 z#48 main::$119 main::$120 ] ( main:10 [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 n#14 y#13 z#48 main::$119 main::$120 ] { } ) always clobbers reg byte a Statement [262] *((char *)main::$120) = 0 [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 n#14 y#13 z#48 main::$119 ] ( main:10 [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 n#14 y#13 z#48 main::$119 ] { } ) always clobbers reg byte a reg byte y Statement [263] main::$122 = main::$119 + $16 [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 n#14 y#13 z#48 main::$119 main::$122 ] ( main:10 [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 n#14 y#13 z#48 main::$119 main::$122 ] { } ) always clobbers reg byte a Statement [264] *((char *)main::$122) = 0 [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 n#14 y#13 z#48 main::$119 ] ( main:10 [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 n#14 y#13 z#48 main::$119 ] { } ) always clobbers reg byte a reg byte y Statement [265] main::$124 = main::$119 + $17 [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 n#14 y#13 z#48 main::$124 ] ( main:10 [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 n#14 y#13 z#48 main::$124 ] { } ) always clobbers reg byte a Statement [266] *((char *)main::$124) = 0 [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 n#14 y#13 z#48 ] ( main:10 [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 n#14 y#13 z#48 ] { } ) always clobbers reg byte a reg byte y Statement [267] y#141 = y#13 [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 n#14 z#48 y#141 ] ( main:10 [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 n#14 z#48 y#141 ] { } ) always clobbers reg byte a Statement [268] score#6 = score#19 - $a [ l hiscore#110 tu#13 peephole#12 duck#1 z#100 divr8u::rem#11 n#14 y#13 div16u8u::return#2 score#6 ] ( main:10 [ l hiscore#110 tu#13 peephole#12 duck#1 z#100 divr8u::rem#11 n#14 y#13 div16u8u::return#2 score#6 ] { { score#13 = score#6 } } ) always clobbers reg byte a Statement [272] main::$57 = $30 + tu#13 [ l hiscore#110 tu#13 rem8u#48 y#49 z#102 peephole#52 n#52 score#38 main::$57 ] ( main:10 [ l hiscore#110 tu#13 rem8u#48 y#49 z#102 peephole#52 n#52 score#38 main::$57 ] { { chrout::petscii = main::$57 } } ) always clobbers reg byte a Statement [273] chrout::petscii = main::$57 [ l chrout::petscii hiscore#110 tu#13 rem8u#48 y#49 z#102 peephole#52 n#52 score#38 ] ( main:10 [ l chrout::petscii hiscore#110 tu#13 rem8u#48 y#49 z#102 peephole#52 n#52 score#38 ] { { chrout::petscii = main::$57 } } ) always clobbers reg byte a Statement [275] chrout::petscii = ducknumber[j#16] [ l chrout::petscii rem8u#127 y#114 hiscore#110 n#89 z#128 j#16 score#38 ] ( main:10 [ l chrout::petscii rem8u#127 y#114 hiscore#110 n#89 z#128 j#16 score#38 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:162 [ j#16 j#5 ] Statement [278] chrout::petscii = chrono[j#13] [ l chrout::petscii rem8u#127 y#114 hiscore#110 n#89 z#128 j#13 ] ( main:10 [ l chrout::petscii rem8u#127 y#114 hiscore#110 n#89 z#128 j#13 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:161 [ j#13 j#3 ] Statement [283] chrout::petscii = brick [ l m chrout::petscii rem8u#127 y#114 hiscore#110 n#89 z#28 ] ( main:10 [ l m chrout::petscii rem8u#127 y#114 hiscore#110 n#89 z#28 ] { } ) always clobbers reg byte a Statement [285] main::$35 = z#28 + m [ l rem8u#127 y#114 hiscore#110 n#89 main::$35 ] ( main:10 [ l rem8u#127 y#114 hiscore#110 n#89 main::$35 ] { } ) always clobbers reg byte a Statement [286] z#9 = main::$35 + 1 [ l rem8u#127 y#114 hiscore#110 n#89 z#9 ] ( main:10 [ l rem8u#127 y#114 hiscore#110 n#89 z#9 ] { } ) always clobbers reg byte a Statement [287] if(z#9<$1fa) goto main::@13 [ l rem8u#127 y#114 hiscore#110 n#89 z#9 ] ( main:10 [ l rem8u#127 y#114 hiscore#110 n#89 z#9 ] { } ) always clobbers reg byte a Statement [288] chrout::petscii = right [ l m chrout::petscii rem8u#127 y#114 hiscore#110 n#89 z#28 j#11 ] ( main:10 [ l m chrout::petscii rem8u#127 y#114 hiscore#110 n#89 z#28 j#11 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:94 [ j#11 j#2 ] Statement [291] chrout::petscii = brick [ l chrout::petscii rem8u#127 y#114 hiscore#110 k#101 ] ( main:10 [ l chrout::petscii rem8u#127 y#114 hiscore#110 k#101 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:169 [ k#101 k#1 ] Statement [295] chrout::petscii = brick [ l chrout::petscii rem8u#127 y#114 hiscore#110 k#101 n#101 ] ( main:10 [ l chrout::petscii rem8u#127 y#114 hiscore#110 k#101 n#101 ] { } ) always clobbers reg byte a Statement [298] chrout::petscii = right [ l chrout::petscii rem8u#127 y#114 hiscore#110 k#101 n#101 ] ( main:10 [ l chrout::petscii rem8u#127 y#114 hiscore#110 k#101 n#101 ] { } ) always clobbers reg byte a Statement [301] main::$3 = $1c00 + m [ m main::$3 ] ( main:10 [ m main::$3 ] { } ) always clobbers reg byte a Statement [302] *((char *)main::$3) = duck_udg[m] [ m ] ( main:10 [ m ] { } ) always clobbers reg byte a reg byte y Statement [308] conio_cursor_x = 0 [ conio_cursor_x gotoxy::y#5 ] ( gotoxy:17 [ conio_cursor_x gotoxy::y#5 ] { { gotoxy::y#2 = gotoxy::y#4 conio_c64_init::line#2 } } conio_c64_init:8::gotoxy:17 [ conio_cursor_x gotoxy::y#5 ] { { gotoxy::y#2 = gotoxy::y#4 conio_c64_init::line#2 } } main:10::clear_screen:27::gotoxy:325 [ rem8u#127 y#114 hiscore#110 n#109 conio_cursor_x gotoxy::y#5 ] { } main:10::clear_screen:44::gotoxy:325 [ l rem8u#127 y#114 hiscore#110 n#109 conio_cursor_x gotoxy::y#5 ] { } main:10::clear_screen:145::gotoxy:325 [ hiscore#110 rem8u#25 y#18 n#20 score#38 conio_cursor_x gotoxy::y#5 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:121 [ gotoxy::y#5 gotoxy::y#4 gotoxy::y#2 ] Statement [310] gotoxy::$7 = (unsigned int)gotoxy::y#5 [ conio_cursor_x conio_cursor_y gotoxy::$7 ] ( gotoxy:17 [ conio_cursor_x conio_cursor_y gotoxy::$7 ] { { gotoxy::y#2 = gotoxy::y#4 conio_c64_init::line#2 } } conio_c64_init:8::gotoxy:17 [ conio_cursor_x conio_cursor_y gotoxy::$7 ] { { gotoxy::y#2 = gotoxy::y#4 conio_c64_init::line#2 } } main:10::clear_screen:27::gotoxy:325 [ rem8u#127 y#114 hiscore#110 n#109 conio_cursor_x conio_cursor_y gotoxy::$7 ] { } main:10::clear_screen:44::gotoxy:325 [ l rem8u#127 y#114 hiscore#110 n#109 conio_cursor_x conio_cursor_y gotoxy::$7 ] { } main:10::clear_screen:145::gotoxy:325 [ hiscore#110 rem8u#25 y#18 n#20 score#38 conio_cursor_x conio_cursor_y gotoxy::$7 ] { } ) always clobbers reg byte a Statement [311] gotoxy::$8 = gotoxy::$7 << 2 [ conio_cursor_x conio_cursor_y gotoxy::$7 gotoxy::$8 ] ( gotoxy:17 [ conio_cursor_x conio_cursor_y gotoxy::$7 gotoxy::$8 ] { { gotoxy::y#2 = gotoxy::y#4 conio_c64_init::line#2 } } conio_c64_init:8::gotoxy:17 [ conio_cursor_x conio_cursor_y gotoxy::$7 gotoxy::$8 ] { { gotoxy::y#2 = gotoxy::y#4 conio_c64_init::line#2 } } main:10::clear_screen:27::gotoxy:325 [ rem8u#127 y#114 hiscore#110 n#109 conio_cursor_x conio_cursor_y gotoxy::$7 gotoxy::$8 ] { } main:10::clear_screen:44::gotoxy:325 [ l rem8u#127 y#114 hiscore#110 n#109 conio_cursor_x conio_cursor_y gotoxy::$7 gotoxy::$8 ] { } main:10::clear_screen:145::gotoxy:325 [ hiscore#110 rem8u#25 y#18 n#20 score#38 conio_cursor_x conio_cursor_y gotoxy::$7 gotoxy::$8 ] { } ) always clobbers reg byte a Statement [312] gotoxy::$9 = gotoxy::$8 + gotoxy::$7 [ conio_cursor_x conio_cursor_y gotoxy::$9 ] ( gotoxy:17 [ conio_cursor_x conio_cursor_y gotoxy::$9 ] { { gotoxy::y#2 = gotoxy::y#4 conio_c64_init::line#2 } } conio_c64_init:8::gotoxy:17 [ conio_cursor_x conio_cursor_y gotoxy::$9 ] { { gotoxy::y#2 = gotoxy::y#4 conio_c64_init::line#2 } } main:10::clear_screen:27::gotoxy:325 [ rem8u#127 y#114 hiscore#110 n#109 conio_cursor_x conio_cursor_y gotoxy::$9 ] { } main:10::clear_screen:44::gotoxy:325 [ l rem8u#127 y#114 hiscore#110 n#109 conio_cursor_x conio_cursor_y gotoxy::$9 ] { } main:10::clear_screen:145::gotoxy:325 [ hiscore#110 rem8u#25 y#18 n#20 score#38 conio_cursor_x conio_cursor_y gotoxy::$9 ] { } ) always clobbers reg byte a Statement [313] gotoxy::line_offset#0 = gotoxy::$9 << 3 [ conio_cursor_x conio_cursor_y gotoxy::line_offset#0 ] ( gotoxy:17 [ conio_cursor_x conio_cursor_y gotoxy::line_offset#0 ] { { gotoxy::y#2 = gotoxy::y#4 conio_c64_init::line#2 } } conio_c64_init:8::gotoxy:17 [ conio_cursor_x conio_cursor_y gotoxy::line_offset#0 ] { { gotoxy::y#2 = gotoxy::y#4 conio_c64_init::line#2 } } main:10::clear_screen:27::gotoxy:325 [ rem8u#127 y#114 hiscore#110 n#109 conio_cursor_x conio_cursor_y gotoxy::line_offset#0 ] { } main:10::clear_screen:44::gotoxy:325 [ l rem8u#127 y#114 hiscore#110 n#109 conio_cursor_x conio_cursor_y gotoxy::line_offset#0 ] { } main:10::clear_screen:145::gotoxy:325 [ hiscore#110 rem8u#25 y#18 n#20 score#38 conio_cursor_x conio_cursor_y gotoxy::line_offset#0 ] { } ) always clobbers reg byte a Statement [314] gotoxy::$5 = DEFAULT_SCREEN + gotoxy::line_offset#0 [ conio_cursor_x conio_cursor_y gotoxy::line_offset#0 gotoxy::$5 ] ( gotoxy:17 [ conio_cursor_x conio_cursor_y gotoxy::line_offset#0 gotoxy::$5 ] { { gotoxy::y#2 = gotoxy::y#4 conio_c64_init::line#2 } } conio_c64_init:8::gotoxy:17 [ conio_cursor_x conio_cursor_y gotoxy::line_offset#0 gotoxy::$5 ] { { gotoxy::y#2 = gotoxy::y#4 conio_c64_init::line#2 } } main:10::clear_screen:27::gotoxy:325 [ rem8u#127 y#114 hiscore#110 n#109 conio_cursor_x conio_cursor_y gotoxy::line_offset#0 gotoxy::$5 ] { } main:10::clear_screen:44::gotoxy:325 [ l rem8u#127 y#114 hiscore#110 n#109 conio_cursor_x conio_cursor_y gotoxy::line_offset#0 gotoxy::$5 ] { } main:10::clear_screen:145::gotoxy:325 [ hiscore#110 rem8u#25 y#18 n#20 score#38 conio_cursor_x conio_cursor_y gotoxy::line_offset#0 gotoxy::$5 ] { } ) always clobbers reg byte a Statement [315] conio_line_text = gotoxy::$5 [ conio_cursor_x conio_cursor_y conio_line_text gotoxy::line_offset#0 ] ( gotoxy:17 [ conio_cursor_x conio_cursor_y conio_line_text gotoxy::line_offset#0 ] { { gotoxy::y#2 = gotoxy::y#4 conio_c64_init::line#2 } } conio_c64_init:8::gotoxy:17 [ conio_cursor_x conio_cursor_y conio_line_text gotoxy::line_offset#0 ] { { gotoxy::y#2 = gotoxy::y#4 conio_c64_init::line#2 } } main:10::clear_screen:27::gotoxy:325 [ rem8u#127 y#114 hiscore#110 n#109 conio_cursor_x conio_cursor_y conio_line_text gotoxy::line_offset#0 ] { } main:10::clear_screen:44::gotoxy:325 [ l rem8u#127 y#114 hiscore#110 n#109 conio_cursor_x conio_cursor_y conio_line_text gotoxy::line_offset#0 ] { } main:10::clear_screen:145::gotoxy:325 [ hiscore#110 rem8u#25 y#18 n#20 score#38 conio_cursor_x conio_cursor_y conio_line_text gotoxy::line_offset#0 ] { } ) always clobbers reg byte a Statement [316] gotoxy::$6 = COLORRAM + gotoxy::line_offset#0 [ conio_cursor_x conio_cursor_y conio_line_text gotoxy::$6 ] ( gotoxy:17 [ conio_cursor_x conio_cursor_y conio_line_text gotoxy::$6 ] { { gotoxy::y#2 = gotoxy::y#4 conio_c64_init::line#2 } } conio_c64_init:8::gotoxy:17 [ conio_cursor_x conio_cursor_y conio_line_text gotoxy::$6 ] { { gotoxy::y#2 = gotoxy::y#4 conio_c64_init::line#2 } } main:10::clear_screen:27::gotoxy:325 [ rem8u#127 y#114 hiscore#110 n#109 conio_cursor_x conio_cursor_y conio_line_text gotoxy::$6 ] { } main:10::clear_screen:44::gotoxy:325 [ l rem8u#127 y#114 hiscore#110 n#109 conio_cursor_x conio_cursor_y conio_line_text gotoxy::$6 ] { } main:10::clear_screen:145::gotoxy:325 [ hiscore#110 rem8u#25 y#18 n#20 score#38 conio_cursor_x conio_cursor_y conio_line_text gotoxy::$6 ] { } ) always clobbers reg byte a Statement [317] conio_line_color = gotoxy::$6 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] ( gotoxy:17 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { gotoxy::y#2 = gotoxy::y#4 conio_c64_init::line#2 } } conio_c64_init:8::gotoxy:17 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { gotoxy::y#2 = gotoxy::y#4 conio_c64_init::line#2 } } main:10::clear_screen:27::gotoxy:325 [ rem8u#127 y#114 hiscore#110 n#109 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { } main:10::clear_screen:44::gotoxy:325 [ l rem8u#127 y#114 hiscore#110 n#109 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { } main:10::clear_screen:145::gotoxy:325 [ hiscore#110 rem8u#25 y#18 n#20 score#38 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { } ) always clobbers reg byte a Statement asm { ldapetscii jsr$ffd2 } always clobbers reg byte a reg byte x reg byte y Removing always clobbered register reg byte x as potential for zp[1]:17 [ divr8u::rem#5 divr8u::rem#10 divr8u::rem#4 rem8u#48 rem8u#127 rem8u#25 divr8u::rem#11 divr8u::rem#6 divr8u::rem#0 divr8u::rem#1 divr8u::rem#2 ] Removing always clobbered register reg byte x as potential for zp[1]:95 [ n#52 n#89 n#109 n#20 n#101 n#14 n#1 ] Removing always clobbered register reg byte x as potential for zp[1]:162 [ j#16 j#5 ] Removing always clobbered register reg byte y as potential for zp[1]:162 [ j#16 j#5 ] Removing always clobbered register reg byte x as potential for zp[1]:161 [ j#13 j#3 ] Removing always clobbered register reg byte y as potential for zp[1]:161 [ j#13 j#3 ] Removing always clobbered register reg byte x as potential for zp[1]:94 [ j#11 j#2 ] Removing always clobbered register reg byte y as potential for zp[1]:94 [ j#11 j#2 ] Removing always clobbered register reg byte x as potential for zp[1]:169 [ k#101 k#1 ] Removing always clobbered register reg byte y as potential for zp[1]:169 [ k#101 k#1 ] Statement [323] if(z#2<$1fa) goto clear_screen::@2 [ clear_screen::n#5 z#2 ] ( main:10::clear_screen:27 [ rem8u#127 y#114 hiscore#110 n#109 clear_screen::n#5 z#2 ] { } main:10::clear_screen:44 [ l rem8u#127 y#114 hiscore#110 n#109 clear_screen::n#5 z#2 ] { } main:10::clear_screen:145 [ hiscore#110 rem8u#25 y#18 n#20 score#38 clear_screen::n#5 z#2 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:122 [ clear_screen::n#5 ] Statement [326] chrout::petscii = home [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color chrout::petscii ] ( main:10::clear_screen:27 [ rem8u#127 y#114 hiscore#110 n#109 conio_cursor_x conio_cursor_y conio_line_text conio_line_color chrout::petscii ] { } main:10::clear_screen:44 [ l rem8u#127 y#114 hiscore#110 n#109 conio_cursor_x conio_cursor_y conio_line_text conio_line_color chrout::petscii ] { } main:10::clear_screen:145 [ hiscore#110 rem8u#25 y#18 n#20 score#38 conio_cursor_x conio_cursor_y conio_line_text conio_line_color chrout::petscii ] { } ) always clobbers reg byte a Statement [329] clear_screen::$5 = $1e00 + z#2 [ clear_screen::n#5 z#2 clear_screen::$5 ] ( main:10::clear_screen:27 [ rem8u#127 y#114 hiscore#110 n#109 clear_screen::n#5 z#2 clear_screen::$5 ] { } main:10::clear_screen:44 [ l rem8u#127 y#114 hiscore#110 n#109 clear_screen::n#5 z#2 clear_screen::$5 ] { } main:10::clear_screen:145 [ hiscore#110 rem8u#25 y#18 n#20 score#38 clear_screen::n#5 z#2 clear_screen::$5 ] { } ) always clobbers reg byte a Statement [330] clear_screen::$4 = clear_screen::$5 + c [ clear_screen::n#5 z#2 clear_screen::$5 clear_screen::$4 ] ( main:10::clear_screen:27 [ rem8u#127 y#114 hiscore#110 n#109 clear_screen::n#5 z#2 clear_screen::$5 clear_screen::$4 ] { } main:10::clear_screen:44 [ l rem8u#127 y#114 hiscore#110 n#109 clear_screen::n#5 z#2 clear_screen::$5 clear_screen::$4 ] { } main:10::clear_screen:145 [ hiscore#110 rem8u#25 y#18 n#20 score#38 clear_screen::n#5 z#2 clear_screen::$5 clear_screen::$4 ] { } ) always clobbers reg byte a Statement [331] *((char *)clear_screen::$4) = 0 [ clear_screen::n#5 z#2 clear_screen::$5 ] ( main:10::clear_screen:27 [ rem8u#127 y#114 hiscore#110 n#109 clear_screen::n#5 z#2 clear_screen::$5 ] { } main:10::clear_screen:44 [ l rem8u#127 y#114 hiscore#110 n#109 clear_screen::n#5 z#2 clear_screen::$5 ] { } main:10::clear_screen:145 [ hiscore#110 rem8u#25 y#18 n#20 score#38 clear_screen::n#5 z#2 clear_screen::$5 ] { } ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte y as potential for zp[1]:122 [ clear_screen::n#5 ] Statement [332] *((char *)clear_screen::$5) = clear_screen::n#5 [ clear_screen::n#5 z#2 ] ( main:10::clear_screen:27 [ rem8u#127 y#114 hiscore#110 n#109 clear_screen::n#5 z#2 ] { } main:10::clear_screen:44 [ l rem8u#127 y#114 hiscore#110 n#109 clear_screen::n#5 z#2 ] { } main:10::clear_screen:145 [ hiscore#110 rem8u#25 y#18 n#20 score#38 clear_screen::n#5 z#2 ] { } ) always clobbers reg byte a reg byte y Statement [339] cputs::c#1 = *cputs::s#10 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#10 cputs::c#1 ] ( main:10::cputs:31 [ rem8u#127 y#114 hiscore#110 n#109 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#10 cputs::c#1 ] { } main:10::cputs:35 [ rem8u#127 y#114 hiscore#110 n#109 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#10 cputs::c#1 ] { } main:10::cputs:39 [ rem8u#127 y#114 hiscore#110 n#109 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#10 cputs::c#1 ] { } main:10::cputs:152 [ hiscore#110 rem8u#25 y#18 n#20 score#38 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#10 cputs::c#1 ] { } main:10::cputs:156 [ hiscore#110 rem8u#25 y#18 n#20 score#38 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#10 cputs::c#1 ] { } main:10::cputs:158 [ hiscore#110 rem8u#25 y#18 n#20 score#38 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#10 cputs::c#1 ] { } main:10::cputs:162 [ hiscore#110 rem8u#25 y#18 n#20 score#38 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#10 cputs::c#1 ] { } main:10::cputs:169 [ rem8u#25 y#18 n#20 hiscore#19 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#10 cputs::c#1 ] { } main:10::cputs:173 [ rem8u#25 y#18 n#20 hiscore#19 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#10 cputs::c#1 ] { } ) always clobbers reg byte a reg byte y Statement [346] m = *((char *) 37140) [ m random::k#4 random::n#4 ] ( main:10::random:66 [ l rem8u#127 y#114 hiscore#110 n#89 z#28 m random::k#4 random::n#4 ] { { random::k#0 = random::k#4 } { random::n#0 = random::n#4 } } main:10::random:109 [ l hiscore#110 tu#13 rem8u#48 y#49 z#102 peephole#52 n#52 score#38 m random::k#4 random::n#4 ] { } main:10::random:111 [ l hiscore#110 tu#13 rem8u#48 y#49 z#102 peephole#52 n#52 duck#0 score#38 m random::k#4 random::n#4 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:8 [ random::n#4 random::n#0 ] Statement [352] if(score#13<=$fde8) goto write_score::@15 [ score#13 ] ( main:10::write_score:87 [ l rem8u#127 y#114 hiscore#110 n#89 z#128 score#13 ] { } main:10::write_score:128 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 peephole#12 duck#1 z#100 score#13 ] { { score#13 = score#4 } } main:10::write_score:269 [ l hiscore#110 tu#13 peephole#12 duck#1 z#100 divr8u::rem#11 n#14 y#13 div16u8u::return#2 score#13 ] { { score#13 = score#6 } } ) always clobbers reg byte a Statement [355] m = 0 [ m score#38 ] ( main:10::write_score:87 [ l rem8u#127 y#114 hiscore#110 n#89 z#128 m score#38 ] { } main:10::write_score:128 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 peephole#12 duck#1 z#100 m score#38 ] { { score#13 = score#4 } } main:10::write_score:269 [ l hiscore#110 tu#13 peephole#12 duck#1 z#100 divr8u::rem#11 n#14 y#13 div16u8u::return#2 m score#38 ] { { score#13 = score#6 } } ) always clobbers reg byte a Statement [356] if(m<4) goto write_score::@6 [ m score#38 ] ( main:10::write_score:87 [ l rem8u#127 y#114 hiscore#110 n#89 z#128 m score#38 ] { } main:10::write_score:128 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 peephole#12 duck#1 z#100 m score#38 ] { { score#13 = score#4 } } main:10::write_score:269 [ l hiscore#110 tu#13 peephole#12 duck#1 z#100 divr8u::rem#11 n#14 y#13 div16u8u::return#2 m score#38 ] { { score#13 = score#6 } } ) always clobbers reg byte a Statement [357] utoa::value#1 = score#38 [ score#38 utoa::value#1 ] ( main:10::write_score:87 [ l rem8u#127 y#114 hiscore#110 n#89 z#128 score#38 utoa::value#1 ] { { utoa::value#1 = utoa::value#10 score#38 } } main:10::write_score:128 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 peephole#12 duck#1 z#100 score#38 utoa::value#1 ] { { score#13 = score#4 } { utoa::value#1 = utoa::value#10 score#38 } } main:10::write_score:269 [ l hiscore#110 tu#13 peephole#12 duck#1 z#100 divr8u::rem#11 n#14 y#13 div16u8u::return#2 score#38 utoa::value#1 ] { { score#13 = score#6 } { utoa::value#1 = utoa::value#10 score#38 } } ) always clobbers reg byte a Statement [359] if(score#38<9+1) goto write_score::@2 [ score#38 ] ( main:10::write_score:87 [ l rem8u#127 y#114 hiscore#110 n#89 z#128 score#38 ] { } main:10::write_score:128 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 peephole#12 duck#1 z#100 score#38 ] { { score#13 = score#4 } } main:10::write_score:269 [ l hiscore#110 tu#13 peephole#12 duck#1 z#100 divr8u::rem#11 n#14 y#13 div16u8u::return#2 score#38 ] { { score#13 = score#6 } } ) always clobbers reg byte a Statement [360] *(points+2) = *buffer [ score#38 ] ( main:10::write_score:87 [ l rem8u#127 y#114 hiscore#110 n#89 z#128 score#38 ] { } main:10::write_score:128 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 peephole#12 duck#1 z#100 score#38 ] { { score#13 = score#4 } } main:10::write_score:269 [ l hiscore#110 tu#13 peephole#12 duck#1 z#100 divr8u::rem#11 n#14 y#13 div16u8u::return#2 score#38 ] { { score#13 = score#6 } } ) always clobbers reg byte a Statement [361] *(points+3) = *(buffer+1) [ score#38 ] ( main:10::write_score:87 [ l rem8u#127 y#114 hiscore#110 n#89 z#128 score#38 ] { } main:10::write_score:128 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 peephole#12 duck#1 z#100 score#38 ] { { score#13 = score#4 } } main:10::write_score:269 [ l hiscore#110 tu#13 peephole#12 duck#1 z#100 divr8u::rem#11 n#14 y#13 div16u8u::return#2 score#38 ] { { score#13 = score#6 } } ) always clobbers reg byte a Statement [362] if(score#38<$63+1) goto write_score::@3 [ score#38 ] ( main:10::write_score:87 [ l rem8u#127 y#114 hiscore#110 n#89 z#128 score#38 ] { } main:10::write_score:128 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 peephole#12 duck#1 z#100 score#38 ] { { score#13 = score#4 } } main:10::write_score:269 [ l hiscore#110 tu#13 peephole#12 duck#1 z#100 divr8u::rem#11 n#14 y#13 div16u8u::return#2 score#38 ] { { score#13 = score#6 } } ) always clobbers reg byte a Statement [363] *(points+1) = *buffer [ score#38 ] ( main:10::write_score:87 [ l rem8u#127 y#114 hiscore#110 n#89 z#128 score#38 ] { } main:10::write_score:128 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 peephole#12 duck#1 z#100 score#38 ] { { score#13 = score#4 } } main:10::write_score:269 [ l hiscore#110 tu#13 peephole#12 duck#1 z#100 divr8u::rem#11 n#14 y#13 div16u8u::return#2 score#38 ] { { score#13 = score#6 } } ) always clobbers reg byte a Statement [364] *(points+2) = *(buffer+1) [ score#38 ] ( main:10::write_score:87 [ l rem8u#127 y#114 hiscore#110 n#89 z#128 score#38 ] { } main:10::write_score:128 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 peephole#12 duck#1 z#100 score#38 ] { { score#13 = score#4 } } main:10::write_score:269 [ l hiscore#110 tu#13 peephole#12 duck#1 z#100 divr8u::rem#11 n#14 y#13 div16u8u::return#2 score#38 ] { { score#13 = score#6 } } ) always clobbers reg byte a Statement [365] *(points+3) = *(buffer+2) [ score#38 ] ( main:10::write_score:87 [ l rem8u#127 y#114 hiscore#110 n#89 z#128 score#38 ] { } main:10::write_score:128 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 peephole#12 duck#1 z#100 score#38 ] { { score#13 = score#4 } } main:10::write_score:269 [ l hiscore#110 tu#13 peephole#12 duck#1 z#100 divr8u::rem#11 n#14 y#13 div16u8u::return#2 score#38 ] { { score#13 = score#6 } } ) always clobbers reg byte a Statement [366] chrout::petscii = yellow [ chrout::petscii score#38 ] ( main:10::write_score:87 [ l rem8u#127 y#114 hiscore#110 n#89 z#128 chrout::petscii score#38 ] { } main:10::write_score:128 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 peephole#12 duck#1 z#100 chrout::petscii score#38 ] { { score#13 = score#4 } } main:10::write_score:269 [ l hiscore#110 tu#13 peephole#12 duck#1 z#100 divr8u::rem#11 n#14 y#13 div16u8u::return#2 chrout::petscii score#38 ] { { score#13 = score#6 } } ) always clobbers reg byte a Statement [368] chrout::petscii = home [ chrout::petscii score#38 ] ( main:10::write_score:87 [ l rem8u#127 y#114 hiscore#110 n#89 z#128 chrout::petscii score#38 ] { } main:10::write_score:128 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 peephole#12 duck#1 z#100 chrout::petscii score#38 ] { { score#13 = score#4 } } main:10::write_score:269 [ l hiscore#110 tu#13 peephole#12 duck#1 z#100 divr8u::rem#11 n#14 y#13 div16u8u::return#2 chrout::petscii score#38 ] { { score#13 = score#6 } } ) always clobbers reg byte a Statement [370] *((char *) 211) = 4 [ score#38 ] ( main:10::write_score:87 [ l rem8u#127 y#114 hiscore#110 n#89 z#128 score#38 ] { } main:10::write_score:128 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 peephole#12 duck#1 z#100 score#38 ] { { score#13 = score#4 } } main:10::write_score:269 [ l hiscore#110 tu#13 peephole#12 duck#1 z#100 divr8u::rem#11 n#14 y#13 div16u8u::return#2 score#38 ] { { score#13 = score#6 } } ) always clobbers reg byte a Statement [371] m = 0 [ m score#38 ] ( main:10::write_score:87 [ l rem8u#127 y#114 hiscore#110 n#89 z#128 m score#38 ] { } main:10::write_score:128 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 peephole#12 duck#1 z#100 m score#38 ] { { score#13 = score#4 } } main:10::write_score:269 [ l hiscore#110 tu#13 peephole#12 duck#1 z#100 divr8u::rem#11 n#14 y#13 div16u8u::return#2 m score#38 ] { { score#13 = score#6 } } ) always clobbers reg byte a Statement [372] if(m<4) goto write_score::@10 [ m score#38 ] ( main:10::write_score:87 [ l rem8u#127 y#114 hiscore#110 n#89 z#128 m score#38 ] { } main:10::write_score:128 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 peephole#12 duck#1 z#100 m score#38 ] { { score#13 = score#4 } } main:10::write_score:269 [ l hiscore#110 tu#13 peephole#12 duck#1 z#100 divr8u::rem#11 n#14 y#13 div16u8u::return#2 m score#38 ] { { score#13 = score#6 } } ) always clobbers reg byte a Statement [374] chrout::petscii = points[m] [ m chrout::petscii score#38 ] ( main:10::write_score:87 [ l rem8u#127 y#114 hiscore#110 n#89 z#128 m chrout::petscii score#38 ] { } main:10::write_score:128 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 peephole#12 duck#1 z#100 m chrout::petscii score#38 ] { { score#13 = score#4 } } main:10::write_score:269 [ l hiscore#110 tu#13 peephole#12 duck#1 z#100 divr8u::rem#11 n#14 y#13 div16u8u::return#2 m chrout::petscii score#38 ] { { score#13 = score#6 } } ) always clobbers reg byte a reg byte y Statement [377] points[m] = '0' [ m score#38 ] ( main:10::write_score:87 [ l rem8u#127 y#114 hiscore#110 n#89 z#128 m score#38 ] { } main:10::write_score:128 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 peephole#12 duck#1 z#100 m score#38 ] { { score#13 = score#4 } } main:10::write_score:269 [ l hiscore#110 tu#13 peephole#12 duck#1 z#100 divr8u::rem#11 n#14 y#13 div16u8u::return#2 m score#38 ] { { score#13 = score#6 } } ) always clobbers reg byte a reg byte y Statement asm { lda#0 ldy#0 ldx#0 jsr$ffdb } always clobbers reg byte a reg byte x reg byte y Statement [382] m = 0 [ m wait::n#6 z#53 ] ( main:10::wait:130 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 peephole#12 duck#1 score#38 m wait::n#6 z#53 ] { { z#100 = z#53 } } main:10::wait:212 [ l hiscore#110 tu#13 peephole#12 duck#1 divr8u::rem#11 n#14 y#13 score#8 m wait::n#6 z#53 ] { { z#100 = z#53 } } main:10::wait:238 [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 m wait::n#6 z#53 ] { { z#48 = z#53 } } main:10::wait:254 [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 m wait::n#6 z#53 ] { { z#25 = z#53 } } main:10::wait:271 [ l hiscore#110 tu#13 peephole#12 duck#1 score#38 divr8u::rem#11 n#14 y#13 div16u8u::return#2 m wait::n#6 z#53 ] { { z#100 = z#53 } } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:44 [ wait::n#6 ] Statement [387] if(z#23<$21c) goto wait::@3 [ m wait::n#6 z#23 ] ( main:10::wait:130 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 peephole#12 duck#1 score#38 m wait::n#6 z#23 ] { { z#100 = z#53 } } main:10::wait:212 [ l hiscore#110 tu#13 peephole#12 duck#1 divr8u::rem#11 n#14 y#13 score#8 m wait::n#6 z#23 ] { { z#100 = z#53 } } main:10::wait:238 [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 m wait::n#6 z#23 ] { { z#48 = z#53 } } main:10::wait:254 [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 m wait::n#6 z#23 ] { { z#25 = z#53 } } main:10::wait:271 [ l hiscore#110 tu#13 peephole#12 duck#1 score#38 divr8u::rem#11 n#14 y#13 div16u8u::return#2 m wait::n#6 z#23 ] { { z#100 = z#53 } } ) always clobbers reg byte a Statement [394] *utoa::buffer#10 = DIGITS[utoa::$11] [ utoa::buffer#10 ] ( main:10::utoa:167 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor rem8u#25 y#18 n#20 hiscore#19 utoa::buffer#10 ] { { utoa::value#10 = utoa::value#2 hiscore#19 } } main:10::write_score:87::utoa:358 [ l rem8u#127 y#114 hiscore#110 n#89 z#128 score#38 utoa::buffer#10 ] { { utoa::value#1 = utoa::value#10 score#38 } } main:10::write_score:128::utoa:358 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 peephole#12 duck#1 z#100 score#38 utoa::buffer#10 ] { { score#13 = score#4 } { utoa::value#1 = utoa::value#10 score#38 } } main:10::write_score:269::utoa:358 [ l hiscore#110 tu#13 peephole#12 duck#1 z#100 divr8u::rem#11 n#14 y#13 div16u8u::return#2 score#38 utoa::buffer#10 ] { { score#13 = score#6 } { utoa::value#1 = utoa::value#10 score#38 } } ) always clobbers reg byte a reg byte y Statement [395] utoa::buffer#3 = ++ utoa::buffer#10 [ utoa::buffer#3 ] ( main:10::utoa:167 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor rem8u#25 y#18 n#20 hiscore#19 utoa::buffer#3 ] { { utoa::value#10 = utoa::value#2 hiscore#19 } } main:10::write_score:87::utoa:358 [ l rem8u#127 y#114 hiscore#110 n#89 z#128 score#38 utoa::buffer#3 ] { { utoa::value#1 = utoa::value#10 score#38 } } main:10::write_score:128::utoa:358 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 peephole#12 duck#1 z#100 score#38 utoa::buffer#3 ] { { score#13 = score#4 } { utoa::value#1 = utoa::value#10 score#38 } } main:10::write_score:269::utoa:358 [ l hiscore#110 tu#13 peephole#12 duck#1 z#100 divr8u::rem#11 n#14 y#13 div16u8u::return#2 score#38 utoa::buffer#3 ] { { score#13 = score#6 } { utoa::value#1 = utoa::value#10 score#38 } } ) always clobbers reg byte a Statement [396] *utoa::buffer#3 = 0 [ ] ( main:10::utoa:167 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor rem8u#25 y#18 n#20 hiscore#19 ] { { utoa::value#10 = utoa::value#2 hiscore#19 } } main:10::write_score:87::utoa:358 [ l rem8u#127 y#114 hiscore#110 n#89 z#128 score#38 ] { { utoa::value#1 = utoa::value#10 score#38 } } main:10::write_score:128::utoa:358 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 peephole#12 duck#1 z#100 score#38 ] { { score#13 = score#4 } { utoa::value#1 = utoa::value#10 score#38 } } main:10::write_score:269::utoa:358 [ l hiscore#110 tu#13 peephole#12 duck#1 z#100 divr8u::rem#11 n#14 y#13 div16u8u::return#2 score#38 ] { { score#13 = score#6 } { utoa::value#1 = utoa::value#10 score#38 } } ) always clobbers reg byte a reg byte y Statement [398] utoa::$10 = utoa::digit#2 << 1 [ utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::$10 ] ( main:10::utoa:167 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor rem8u#25 y#18 n#20 hiscore#19 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::$10 ] { { utoa::value#10 = utoa::value#2 hiscore#19 } } main:10::write_score:87::utoa:358 [ l rem8u#127 y#114 hiscore#110 n#89 z#128 score#38 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::$10 ] { { utoa::value#1 = utoa::value#10 score#38 } } main:10::write_score:128::utoa:358 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 peephole#12 duck#1 z#100 score#38 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::$10 ] { { score#13 = score#4 } { utoa::value#1 = utoa::value#10 score#38 } } main:10::write_score:269::utoa:358 [ l hiscore#110 tu#13 peephole#12 duck#1 z#100 divr8u::rem#11 n#14 y#13 div16u8u::return#2 score#38 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::$10 ] { { score#13 = score#6 } { utoa::value#1 = utoa::value#10 score#38 } } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:33 [ utoa::digit#2 utoa::digit#1 ] Removing always clobbered register reg byte a as potential for zp[1]:37 [ utoa::started#2 utoa::started#4 ] Statement [399] utoa::digit_value#0 = RADIX_DECIMAL_VALUES[utoa::$10] [ utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] ( main:10::utoa:167 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor rem8u#25 y#18 n#20 hiscore#19 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] { { utoa::value#10 = utoa::value#2 hiscore#19 } } main:10::write_score:87::utoa:358 [ l rem8u#127 y#114 hiscore#110 n#89 z#128 score#38 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] { { utoa::value#1 = utoa::value#10 score#38 } } main:10::write_score:128::utoa:358 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 peephole#12 duck#1 z#100 score#38 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] { { score#13 = score#4 } { utoa::value#1 = utoa::value#10 score#38 } } main:10::write_score:269::utoa:358 [ l hiscore#110 tu#13 peephole#12 duck#1 z#100 divr8u::rem#11 n#14 y#13 div16u8u::return#2 score#38 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] { { score#13 = score#6 } { utoa::value#1 = utoa::value#10 score#38 } } ) always clobbers reg byte a Statement [401] if(utoa::value#3>=utoa::digit_value#0) goto utoa::@5 [ utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] ( main:10::utoa:167 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor rem8u#25 y#18 n#20 hiscore#19 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] { { utoa::value#10 = utoa::value#2 hiscore#19 } } main:10::write_score:87::utoa:358 [ l rem8u#127 y#114 hiscore#110 n#89 z#128 score#38 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] { { utoa::value#1 = utoa::value#10 score#38 } } main:10::write_score:128::utoa:358 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 peephole#12 duck#1 z#100 score#38 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] { { score#13 = score#4 } { utoa::value#1 = utoa::value#10 score#38 } } main:10::write_score:269::utoa:358 [ l hiscore#110 tu#13 peephole#12 duck#1 z#100 divr8u::rem#11 n#14 y#13 div16u8u::return#2 score#38 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] { { score#13 = score#6 } { utoa::value#1 = utoa::value#10 score#38 } } ) always clobbers reg byte a Statement [404] utoa_append::buffer#0 = utoa::buffer#10 [ utoa::digit#2 utoa::value#3 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 ] ( main:10::utoa:167 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor rem8u#25 y#18 n#20 hiscore#19 utoa::digit#2 utoa::value#3 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 ] { { utoa::value#10 = utoa::value#2 hiscore#19 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:10::write_score:87::utoa:358 [ l rem8u#127 y#114 hiscore#110 n#89 z#128 score#38 utoa::digit#2 utoa::value#3 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 ] { { utoa::value#1 = utoa::value#10 score#38 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:10::write_score:128::utoa:358 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 peephole#12 duck#1 z#100 score#38 utoa::digit#2 utoa::value#3 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 ] { { score#13 = score#4 } { utoa::value#1 = utoa::value#10 score#38 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:10::write_score:269::utoa:358 [ l hiscore#110 tu#13 peephole#12 duck#1 z#100 divr8u::rem#11 n#14 y#13 div16u8u::return#2 score#38 utoa::digit#2 utoa::value#3 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 ] { { score#13 = score#6 } { utoa::value#1 = utoa::value#10 score#38 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a Statement [405] utoa_append::value#0 = utoa::value#3 [ utoa::digit#2 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 utoa_append::value#0 ] ( main:10::utoa:167 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor rem8u#25 y#18 n#20 hiscore#19 utoa::digit#2 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 utoa_append::value#0 ] { { utoa::value#10 = utoa::value#2 hiscore#19 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:10::write_score:87::utoa:358 [ l rem8u#127 y#114 hiscore#110 n#89 z#128 score#38 utoa::digit#2 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 utoa_append::value#0 ] { { utoa::value#1 = utoa::value#10 score#38 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:10::write_score:128::utoa:358 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 peephole#12 duck#1 z#100 score#38 utoa::digit#2 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 utoa_append::value#0 ] { { score#13 = score#4 } { utoa::value#1 = utoa::value#10 score#38 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:10::write_score:269::utoa:358 [ l hiscore#110 tu#13 peephole#12 duck#1 z#100 divr8u::rem#11 n#14 y#13 div16u8u::return#2 score#38 utoa::digit#2 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 utoa_append::value#0 ] { { score#13 = score#6 } { utoa::value#1 = utoa::value#10 score#38 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a Statement [406] utoa_append::sub#0 = utoa::digit_value#0 [ utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::value#0 utoa_append::sub#0 ] ( main:10::utoa:167 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor rem8u#25 y#18 n#20 hiscore#19 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::value#0 utoa_append::sub#0 ] { { utoa::value#10 = utoa::value#2 hiscore#19 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:10::write_score:87::utoa:358 [ l rem8u#127 y#114 hiscore#110 n#89 z#128 score#38 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::value#0 utoa_append::sub#0 ] { { utoa::value#1 = utoa::value#10 score#38 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:10::write_score:128::utoa:358 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 peephole#12 duck#1 z#100 score#38 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::value#0 utoa_append::sub#0 ] { { score#13 = score#4 } { utoa::value#1 = utoa::value#10 score#38 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:10::write_score:269::utoa:358 [ l hiscore#110 tu#13 peephole#12 duck#1 z#100 divr8u::rem#11 n#14 y#13 div16u8u::return#2 score#38 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::value#0 utoa_append::sub#0 ] { { score#13 = score#6 } { utoa::value#1 = utoa::value#10 score#38 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a Statement [408] utoa_append::return#0 = utoa_append::value#2 [ utoa::digit#2 utoa::buffer#10 utoa_append::return#0 ] ( main:10::utoa:167 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor rem8u#25 y#18 n#20 hiscore#19 utoa::digit#2 utoa::buffer#10 utoa_append::return#0 ] { { utoa::value#10 = utoa::value#2 hiscore#19 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:10::write_score:87::utoa:358 [ l rem8u#127 y#114 hiscore#110 n#89 z#128 score#38 utoa::digit#2 utoa::buffer#10 utoa_append::return#0 ] { { utoa::value#1 = utoa::value#10 score#38 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:10::write_score:128::utoa:358 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 peephole#12 duck#1 z#100 score#38 utoa::digit#2 utoa::buffer#10 utoa_append::return#0 ] { { score#13 = score#4 } { utoa::value#1 = utoa::value#10 score#38 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:10::write_score:269::utoa:358 [ l hiscore#110 tu#13 peephole#12 duck#1 z#100 divr8u::rem#11 n#14 y#13 div16u8u::return#2 score#38 utoa::digit#2 utoa::buffer#10 utoa_append::return#0 ] { { score#13 = score#6 } { utoa::value#1 = utoa::value#10 score#38 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a Statement [409] utoa::value#0 = utoa_append::return#0 [ utoa::digit#2 utoa::buffer#10 utoa::value#0 ] ( main:10::utoa:167 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor rem8u#25 y#18 n#20 hiscore#19 utoa::digit#2 utoa::buffer#10 utoa::value#0 ] { { utoa::value#10 = utoa::value#2 hiscore#19 } } main:10::write_score:87::utoa:358 [ l rem8u#127 y#114 hiscore#110 n#89 z#128 score#38 utoa::digit#2 utoa::buffer#10 utoa::value#0 ] { { utoa::value#1 = utoa::value#10 score#38 } } main:10::write_score:128::utoa:358 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 peephole#12 duck#1 z#100 score#38 utoa::digit#2 utoa::buffer#10 utoa::value#0 ] { { score#13 = score#4 } { utoa::value#1 = utoa::value#10 score#38 } } main:10::write_score:269::utoa:358 [ l hiscore#110 tu#13 peephole#12 duck#1 z#100 divr8u::rem#11 n#14 y#13 div16u8u::return#2 score#38 utoa::digit#2 utoa::buffer#10 utoa::value#0 ] { { score#13 = score#6 } { utoa::value#1 = utoa::value#10 score#38 } } ) always clobbers reg byte a Statement asm { jsr$ffde stal stxm } always clobbers reg byte a reg byte x reg byte y Statement [412] read_chrono::$0 = m << 8 [ l read_chrono::$0 ] ( main:10::read_chrono:182 [ hiscore#110 y#18 tu#13 peephole#12 duck#1 score#19 z#100 l read_chrono::$0 ] { { div16u8u::return#0 = div16u8u::return#2 } } ) always clobbers reg byte a Statement [413] div16u8u::dividend#0 = read_chrono::$0 + l [ l div16u8u::dividend#0 ] ( main:10::read_chrono:182 [ hiscore#110 y#18 tu#13 peephole#12 duck#1 score#19 z#100 l div16u8u::dividend#0 ] { { div16u8u::return#0 = div16u8u::return#2 } } ) always clobbers reg byte a Statement [415] div16u8u::return#2 = div16u8u::return#0 [ l divr8u::rem#11 div16u8u::return#2 ] ( main:10::read_chrono:182 [ hiscore#110 y#18 tu#13 peephole#12 duck#1 score#19 z#100 l divr8u::rem#11 div16u8u::return#2 ] { { div16u8u::return#0 = div16u8u::return#2 } } ) always clobbers reg byte a Statement [416] *((char *)$1e15+c) = 7 [ l divr8u::rem#11 div16u8u::return#2 ] ( main:10::read_chrono:182 [ hiscore#110 y#18 tu#13 peephole#12 duck#1 score#19 z#100 l divr8u::rem#11 div16u8u::return#2 ] { } ) always clobbers reg byte a Statement [417] *((char *) 7701) = $b9 [ l divr8u::rem#11 div16u8u::return#2 ] ( main:10::read_chrono:182 [ hiscore#110 y#18 tu#13 peephole#12 duck#1 score#19 z#100 l divr8u::rem#11 div16u8u::return#2 ] { } ) always clobbers reg byte a Statement [418] if(div16u8u::return#2>=$a) goto read_chrono::@return [ l divr8u::rem#11 div16u8u::return#2 ] ( main:10::read_chrono:182 [ hiscore#110 y#18 tu#13 peephole#12 duck#1 score#19 z#100 l divr8u::rem#11 div16u8u::return#2 ] { } ) always clobbers reg byte a Statement [419] read_chrono::$5 = $b9 - div16u8u::return#2 [ l divr8u::rem#11 div16u8u::return#2 read_chrono::$5 ] ( main:10::read_chrono:182 [ hiscore#110 y#18 tu#13 peephole#12 duck#1 score#19 z#100 l divr8u::rem#11 div16u8u::return#2 read_chrono::$5 ] { } ) always clobbers reg byte a Statement [420] *((char *) 7701) = read_chrono::$5 [ l divr8u::rem#11 div16u8u::return#2 ] ( main:10::read_chrono:182 [ hiscore#110 y#18 tu#13 peephole#12 duck#1 score#19 z#100 l divr8u::rem#11 div16u8u::return#2 ] { } ) always clobbers reg byte a Statement [423] conio_line_text[conio_cursor_x] = cputc::c#0 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] ( main:10::cputs:31::cputc:344 [ rem8u#127 y#114 hiscore#110 n#109 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:35::cputc:344 [ rem8u#127 y#114 hiscore#110 n#109 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:39::cputc:344 [ rem8u#127 y#114 hiscore#110 n#109 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:152::cputc:344 [ hiscore#110 rem8u#25 y#18 n#20 score#38 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:156::cputc:344 [ hiscore#110 rem8u#25 y#18 n#20 score#38 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:158::cputc:344 [ hiscore#110 rem8u#25 y#18 n#20 score#38 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:162::cputc:344 [ hiscore#110 rem8u#25 y#18 n#20 score#38 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:169::cputc:344 [ rem8u#25 y#18 n#20 hiscore#19 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:173::cputc:344 [ rem8u#25 y#18 n#20 hiscore#19 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte y Statement [424] conio_line_color[conio_cursor_x] = conio_textcolor [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] ( main:10::cputs:31::cputc:344 [ rem8u#127 y#114 hiscore#110 n#109 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:35::cputc:344 [ rem8u#127 y#114 hiscore#110 n#109 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:39::cputc:344 [ rem8u#127 y#114 hiscore#110 n#109 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:152::cputc:344 [ hiscore#110 rem8u#25 y#18 n#20 score#38 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:156::cputc:344 [ hiscore#110 rem8u#25 y#18 n#20 score#38 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:158::cputc:344 [ hiscore#110 rem8u#25 y#18 n#20 score#38 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:162::cputc:344 [ hiscore#110 rem8u#25 y#18 n#20 score#38 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:169::cputc:344 [ rem8u#25 y#18 n#20 hiscore#19 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:173::cputc:344 [ rem8u#25 y#18 n#20 hiscore#19 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a reg byte y Statement [426] if(conio_cursor_x!=$28) goto cputc::@return [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] ( main:10::cputs:31::cputc:344 [ rem8u#127 y#114 hiscore#110 n#109 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:35::cputc:344 [ rem8u#127 y#114 hiscore#110 n#109 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:39::cputc:344 [ rem8u#127 y#114 hiscore#110 n#109 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:152::cputc:344 [ hiscore#110 rem8u#25 y#18 n#20 score#38 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:156::cputc:344 [ hiscore#110 rem8u#25 y#18 n#20 score#38 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:158::cputc:344 [ hiscore#110 rem8u#25 y#18 n#20 score#38 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:162::cputc:344 [ hiscore#110 rem8u#25 y#18 n#20 score#38 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:169::cputc:344 [ rem8u#25 y#18 n#20 hiscore#19 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:173::cputc:344 [ rem8u#25 y#18 n#20 hiscore#19 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a Statement [434] if(utoa_append::value#2>=utoa_append::sub#0) goto utoa_append::@2 [ utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#2 utoa_append::digit#2 ] ( main:10::utoa:167::utoa_append:407 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor rem8u#25 y#18 n#20 hiscore#19 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#2 utoa_append::digit#2 ] { { utoa::value#10 = utoa::value#2 hiscore#19 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:10::write_score:87::utoa:358::utoa_append:407 [ l rem8u#127 y#114 hiscore#110 n#89 z#128 score#38 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#2 utoa_append::digit#2 ] { { utoa::value#1 = utoa::value#10 score#38 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:10::write_score:128::utoa:358::utoa_append:407 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 peephole#12 duck#1 z#100 score#38 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#2 utoa_append::digit#2 ] { { score#13 = score#4 } { utoa::value#1 = utoa::value#10 score#38 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:10::write_score:269::utoa:358::utoa_append:407 [ l hiscore#110 tu#13 peephole#12 duck#1 z#100 divr8u::rem#11 n#14 y#13 div16u8u::return#2 score#38 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#2 utoa_append::digit#2 ] { { score#13 = score#6 } { utoa::value#1 = utoa::value#10 score#38 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:7 [ utoa_append::digit#2 utoa_append::digit#1 ] Statement [435] *utoa_append::buffer#0 = DIGITS[utoa_append::digit#2] [ utoa_append::value#2 ] ( main:10::utoa:167::utoa_append:407 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor rem8u#25 y#18 n#20 hiscore#19 utoa::digit#2 utoa::buffer#10 utoa_append::value#2 ] { { utoa::value#10 = utoa::value#2 hiscore#19 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:10::write_score:87::utoa:358::utoa_append:407 [ l rem8u#127 y#114 hiscore#110 n#89 z#128 score#38 utoa::digit#2 utoa::buffer#10 utoa_append::value#2 ] { { utoa::value#1 = utoa::value#10 score#38 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:10::write_score:128::utoa:358::utoa_append:407 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 peephole#12 duck#1 z#100 score#38 utoa::digit#2 utoa::buffer#10 utoa_append::value#2 ] { { score#13 = score#4 } { utoa::value#1 = utoa::value#10 score#38 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:10::write_score:269::utoa:358::utoa_append:407 [ l hiscore#110 tu#13 peephole#12 duck#1 z#100 divr8u::rem#11 n#14 y#13 div16u8u::return#2 score#38 utoa::digit#2 utoa::buffer#10 utoa_append::value#2 ] { { score#13 = score#6 } { utoa::value#1 = utoa::value#10 score#38 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte y as potential for zp[1]:33 [ utoa::digit#2 utoa::digit#1 ] Statement [438] utoa_append::value#1 = utoa_append::value#2 - utoa_append::sub#0 [ utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#1 utoa_append::digit#1 ] ( main:10::utoa:167::utoa_append:407 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor rem8u#25 y#18 n#20 hiscore#19 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#1 utoa_append::digit#1 ] { { utoa::value#10 = utoa::value#2 hiscore#19 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:10::write_score:87::utoa:358::utoa_append:407 [ l rem8u#127 y#114 hiscore#110 n#89 z#128 score#38 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#1 utoa_append::digit#1 ] { { utoa::value#1 = utoa::value#10 score#38 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:10::write_score:128::utoa:358::utoa_append:407 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 peephole#12 duck#1 z#100 score#38 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#1 utoa_append::digit#1 ] { { score#13 = score#4 } { utoa::value#1 = utoa::value#10 score#38 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:10::write_score:269::utoa:358::utoa_append:407 [ l hiscore#110 tu#13 peephole#12 duck#1 z#100 divr8u::rem#11 n#14 y#13 div16u8u::return#2 score#38 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#1 utoa_append::digit#1 ] { { score#13 = score#6 } { utoa::value#1 = utoa::value#10 score#38 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a Statement [450] conio_line_text = conio_line_text + $28 [ conio_cursor_y conio_line_text conio_line_color conio_textcolor ] ( main:10::cputs:31::cputc:344::cputln:428 [ rem8u#127 y#114 hiscore#110 n#109 cputs::s#0 conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:35::cputc:344::cputln:428 [ rem8u#127 y#114 hiscore#110 n#109 cputs::s#0 conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:39::cputc:344::cputln:428 [ rem8u#127 y#114 hiscore#110 n#109 cputs::s#0 conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:152::cputc:344::cputln:428 [ hiscore#110 rem8u#25 y#18 n#20 score#38 cputs::s#0 conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:156::cputc:344::cputln:428 [ hiscore#110 rem8u#25 y#18 n#20 score#38 cputs::s#0 conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:158::cputc:344::cputln:428 [ hiscore#110 rem8u#25 y#18 n#20 score#38 cputs::s#0 conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:162::cputc:344::cputln:428 [ hiscore#110 rem8u#25 y#18 n#20 score#38 cputs::s#0 conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:169::cputc:344::cputln:428 [ rem8u#25 y#18 n#20 hiscore#19 cputs::s#0 conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:173::cputc:344::cputln:428 [ rem8u#25 y#18 n#20 hiscore#19 cputs::s#0 conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:31::cputc:344::cputln:431 [ rem8u#127 y#114 hiscore#110 n#109 cputs::s#0 conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:35::cputc:344::cputln:431 [ rem8u#127 y#114 hiscore#110 n#109 cputs::s#0 conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:39::cputc:344::cputln:431 [ rem8u#127 y#114 hiscore#110 n#109 cputs::s#0 conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:152::cputc:344::cputln:431 [ hiscore#110 rem8u#25 y#18 n#20 score#38 cputs::s#0 conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:156::cputc:344::cputln:431 [ hiscore#110 rem8u#25 y#18 n#20 score#38 cputs::s#0 conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:158::cputc:344::cputln:431 [ hiscore#110 rem8u#25 y#18 n#20 score#38 cputs::s#0 conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:162::cputc:344::cputln:431 [ hiscore#110 rem8u#25 y#18 n#20 score#38 cputs::s#0 conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:169::cputc:344::cputln:431 [ rem8u#25 y#18 n#20 hiscore#19 cputs::s#0 conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:173::cputc:344::cputln:431 [ rem8u#25 y#18 n#20 hiscore#19 cputs::s#0 conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a Statement [451] conio_line_color = conio_line_color + $28 [ conio_cursor_y conio_line_text conio_line_color conio_textcolor ] ( main:10::cputs:31::cputc:344::cputln:428 [ rem8u#127 y#114 hiscore#110 n#109 cputs::s#0 conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:35::cputc:344::cputln:428 [ rem8u#127 y#114 hiscore#110 n#109 cputs::s#0 conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:39::cputc:344::cputln:428 [ rem8u#127 y#114 hiscore#110 n#109 cputs::s#0 conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:152::cputc:344::cputln:428 [ hiscore#110 rem8u#25 y#18 n#20 score#38 cputs::s#0 conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:156::cputc:344::cputln:428 [ hiscore#110 rem8u#25 y#18 n#20 score#38 cputs::s#0 conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:158::cputc:344::cputln:428 [ hiscore#110 rem8u#25 y#18 n#20 score#38 cputs::s#0 conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:162::cputc:344::cputln:428 [ hiscore#110 rem8u#25 y#18 n#20 score#38 cputs::s#0 conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:169::cputc:344::cputln:428 [ rem8u#25 y#18 n#20 hiscore#19 cputs::s#0 conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:173::cputc:344::cputln:428 [ rem8u#25 y#18 n#20 hiscore#19 cputs::s#0 conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:31::cputc:344::cputln:431 [ rem8u#127 y#114 hiscore#110 n#109 cputs::s#0 conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:35::cputc:344::cputln:431 [ rem8u#127 y#114 hiscore#110 n#109 cputs::s#0 conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:39::cputc:344::cputln:431 [ rem8u#127 y#114 hiscore#110 n#109 cputs::s#0 conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:152::cputc:344::cputln:431 [ hiscore#110 rem8u#25 y#18 n#20 score#38 cputs::s#0 conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:156::cputc:344::cputln:431 [ hiscore#110 rem8u#25 y#18 n#20 score#38 cputs::s#0 conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:158::cputc:344::cputln:431 [ hiscore#110 rem8u#25 y#18 n#20 score#38 cputs::s#0 conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:162::cputc:344::cputln:431 [ hiscore#110 rem8u#25 y#18 n#20 score#38 cputs::s#0 conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:169::cputc:344::cputln:431 [ rem8u#25 y#18 n#20 hiscore#19 cputs::s#0 conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:173::cputc:344::cputln:431 [ rem8u#25 y#18 n#20 hiscore#19 cputs::s#0 conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a Statement [452] conio_cursor_x = 0 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] ( main:10::cputs:31::cputc:344::cputln:428 [ rem8u#127 y#114 hiscore#110 n#109 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:35::cputc:344::cputln:428 [ rem8u#127 y#114 hiscore#110 n#109 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:39::cputc:344::cputln:428 [ rem8u#127 y#114 hiscore#110 n#109 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:152::cputc:344::cputln:428 [ hiscore#110 rem8u#25 y#18 n#20 score#38 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:156::cputc:344::cputln:428 [ hiscore#110 rem8u#25 y#18 n#20 score#38 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:158::cputc:344::cputln:428 [ hiscore#110 rem8u#25 y#18 n#20 score#38 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:162::cputc:344::cputln:428 [ hiscore#110 rem8u#25 y#18 n#20 score#38 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:169::cputc:344::cputln:428 [ rem8u#25 y#18 n#20 hiscore#19 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:173::cputc:344::cputln:428 [ rem8u#25 y#18 n#20 hiscore#19 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:31::cputc:344::cputln:431 [ rem8u#127 y#114 hiscore#110 n#109 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:35::cputc:344::cputln:431 [ rem8u#127 y#114 hiscore#110 n#109 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:39::cputc:344::cputln:431 [ rem8u#127 y#114 hiscore#110 n#109 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:152::cputc:344::cputln:431 [ hiscore#110 rem8u#25 y#18 n#20 score#38 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:156::cputc:344::cputln:431 [ hiscore#110 rem8u#25 y#18 n#20 score#38 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:158::cputc:344::cputln:431 [ hiscore#110 rem8u#25 y#18 n#20 score#38 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:162::cputc:344::cputln:431 [ hiscore#110 rem8u#25 y#18 n#20 score#38 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:169::cputc:344::cputln:431 [ rem8u#25 y#18 n#20 hiscore#19 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:173::cputc:344::cputln:431 [ rem8u#25 y#18 n#20 hiscore#19 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a Statement [461] divr8u::rem#1 = divr8u::rem#0 | 1 [ divr8u::dividend#3 divr8u::quotient#3 divr8u::i#2 divr8u::rem#1 ] ( main:10::read_chrono:182::div16u8u:414::divr8u:440 [ hiscore#110 y#18 tu#13 peephole#12 duck#1 score#19 z#100 l div16u8u::dividend#0 divr8u::dividend#3 divr8u::quotient#3 divr8u::i#2 divr8u::rem#1 ] { { div16u8u::return#0 = div16u8u::return#2 } { divr8u::dividend#1 = divr8u::dividend#5 } { divr8u::return#0 = divr8u::return#2 } } main:10::read_chrono:182::div16u8u:414::divr8u:445 [ hiscore#110 y#18 tu#13 peephole#12 duck#1 score#19 z#100 l div16u8u::quotient_hi#0 divr8u::dividend#3 divr8u::quotient#3 divr8u::i#2 divr8u::rem#1 ] { { div16u8u::return#0 = div16u8u::return#2 } { divr8u::rem#10 = divr8u::rem#4 divr8u::rem#11 } { divr8u::dividend#2 = divr8u::dividend#5 } { divr8u::return#0 = divr8u::return#3 } } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:26 [ divr8u::dividend#3 divr8u::dividend#5 divr8u::dividend#1 divr8u::dividend#2 divr8u::dividend#0 ] Removing always clobbered register reg byte a as potential for zp[1]:18 [ divr8u::quotient#3 divr8u::return#0 divr8u::quotient#1 divr8u::quotient#2 ] Removing always clobbered register reg byte a as potential for zp[1]:22 [ divr8u::i#2 divr8u::i#1 ] Removing always clobbered register reg byte a as potential for zp[1]:73 [ div16u8u::quotient_hi#0 ] Statement [465] if(divr8u::rem#6=5+1) goto main::@4 [ l rem8u#127 y#114 hiscore#110 n#109 ] ( main:10 [ l rem8u#127 y#114 hiscore#110 n#109 ] { } ) always clobbers reg byte a Statement [45] *((char *) 36869) = $ff [ l rem8u#127 y#114 hiscore#110 n#109 ] ( main:10 [ l rem8u#127 y#114 hiscore#110 n#109 ] { } ) always clobbers reg byte a Statement [46] chrout::petscii = reverse_on [ l chrout::petscii rem8u#127 y#114 hiscore#110 n#109 ] ( main:10 [ l chrout::petscii rem8u#127 y#114 hiscore#110 n#109 ] { } ) always clobbers reg byte a Statement [48] chrout::petscii = red [ l chrout::petscii rem8u#127 y#114 hiscore#110 n#109 ] ( main:10 [ l chrout::petscii rem8u#127 y#114 hiscore#110 n#109 ] { } ) always clobbers reg byte a Statement [50] chrout::petscii = down [ l chrout::petscii rem8u#127 y#114 hiscore#110 n#109 ] ( main:10 [ l chrout::petscii rem8u#127 y#114 hiscore#110 n#109 ] { } ) always clobbers reg byte a Statement [53] if(k#101<$16) goto main::@7 [ l rem8u#127 y#114 hiscore#110 k#101 n#89 ] ( main:10 [ l rem8u#127 y#114 hiscore#110 k#101 n#89 ] { } ) always clobbers reg byte a Statement [54] chrout::petscii = brick [ l chrout::petscii rem8u#127 y#114 hiscore#110 n#89 ] ( main:10 [ l chrout::petscii rem8u#127 y#114 hiscore#110 n#89 ] { } ) always clobbers reg byte a Statement [56] *((char *) 8185) = brick [ l rem8u#127 y#114 hiscore#110 n#89 ] ( main:10 [ l rem8u#127 y#114 hiscore#110 n#89 ] { } ) always clobbers reg byte a Statement [57] *((char *)$1ff9+c) = 2 [ l rem8u#127 y#114 hiscore#110 n#89 ] ( main:10 [ l rem8u#127 y#114 hiscore#110 n#89 ] { } ) always clobbers reg byte a Statement [58] chrout::petscii = home [ l chrout::petscii rem8u#127 y#114 hiscore#110 n#89 ] ( main:10 [ l chrout::petscii rem8u#127 y#114 hiscore#110 n#89 ] { } ) always clobbers reg byte a Statement [60] if(l<1+1) goto main::@12 [ l rem8u#127 y#114 hiscore#110 n#89 ] ( main:10 [ l rem8u#127 y#114 hiscore#110 n#89 ] { } ) always clobbers reg byte a Statement [62] random::k#0 = 7 - l [ l rem8u#127 y#114 hiscore#110 n#89 z#28 random::k#0 ] ( main:10 [ l rem8u#127 y#114 hiscore#110 n#89 z#28 random::k#0 ] { { random::k#0 = random::k#4 } { random::n#0 = random::n#4 } } ) always clobbers reg byte a Statement [63] main::$177 = l << 1 [ l rem8u#127 y#114 hiscore#110 n#89 z#28 random::k#0 main::$177 ] ( main:10 [ l rem8u#127 y#114 hiscore#110 n#89 z#28 random::k#0 main::$177 ] { { random::k#0 = random::k#4 } { random::n#0 = random::n#4 } } ) always clobbers reg byte a Statement [64] main::$26 = main::$177 + l [ l rem8u#127 y#114 hiscore#110 n#89 z#28 random::k#0 main::$26 ] ( main:10 [ l rem8u#127 y#114 hiscore#110 n#89 z#28 random::k#0 main::$26 ] { { random::k#0 = random::k#4 } { random::n#0 = random::n#4 } } ) always clobbers reg byte a Statement [65] random::n#0 = $1a - main::$26 [ l rem8u#127 y#114 hiscore#110 n#89 z#28 random::k#0 random::n#0 ] ( main:10 [ l rem8u#127 y#114 hiscore#110 n#89 z#28 random::k#0 random::n#0 ] { { random::k#0 = random::k#4 } { random::n#0 = random::n#4 } } ) always clobbers reg byte a Statement [67] main::$29 = z#28 + m [ l m rem8u#127 y#114 hiscore#110 n#89 z#28 main::$29 ] ( main:10 [ l m rem8u#127 y#114 hiscore#110 n#89 z#28 main::$29 ] { } ) always clobbers reg byte a Statement [68] if(main::$29<=$1f9) goto main::@14 [ l m rem8u#127 y#114 hiscore#110 n#89 z#28 ] ( main:10 [ l m rem8u#127 y#114 hiscore#110 n#89 z#28 ] { } ) always clobbers reg byte a Statement [70] *((char *) 36878) = $f [ l rem8u#127 y#114 hiscore#110 n#89 z#128 ] ( main:10 [ l rem8u#127 y#114 hiscore#110 n#89 z#128 ] { } ) always clobbers reg byte a Statement [71] chrout::petscii = home [ l chrout::petscii rem8u#127 y#114 hiscore#110 n#89 z#128 ] ( main:10 [ l chrout::petscii rem8u#127 y#114 hiscore#110 n#89 z#128 ] { } ) always clobbers reg byte a Statement [73] chrout::petscii = yellow [ l chrout::petscii rem8u#127 y#114 hiscore#110 n#89 z#128 ] ( main:10 [ l chrout::petscii rem8u#127 y#114 hiscore#110 n#89 z#128 ] { } ) always clobbers reg byte a Statement [75] chrout::petscii = $50 [ l chrout::petscii rem8u#127 y#114 hiscore#110 n#89 z#128 ] ( main:10 [ l chrout::petscii rem8u#127 y#114 hiscore#110 n#89 z#128 ] { } ) always clobbers reg byte a Statement [77] chrout::petscii = $54 [ l chrout::petscii rem8u#127 y#114 hiscore#110 n#89 z#128 ] ( main:10 [ l chrout::petscii rem8u#127 y#114 hiscore#110 n#89 z#128 ] { } ) always clobbers reg byte a Statement [79] chrout::petscii = $53 [ l chrout::petscii rem8u#127 y#114 hiscore#110 n#89 z#128 ] ( main:10 [ l chrout::petscii rem8u#127 y#114 hiscore#110 n#89 z#128 ] { } ) always clobbers reg byte a Statement [81] chrout::petscii = $3a [ l chrout::petscii rem8u#127 y#114 hiscore#110 n#89 z#128 ] ( main:10 [ l chrout::petscii rem8u#127 y#114 hiscore#110 n#89 z#128 ] { } ) always clobbers reg byte a Statement [83] *((char *) 211) = $12 [ l rem8u#127 y#114 hiscore#110 n#89 z#128 ] ( main:10 [ l rem8u#127 y#114 hiscore#110 n#89 z#128 ] { } ) always clobbers reg byte a Statement [85] if(j#13<4) goto main::@18 [ l rem8u#127 y#114 hiscore#110 n#89 z#128 j#13 ] ( main:10 [ l rem8u#127 y#114 hiscore#110 n#89 z#128 j#13 ] { } ) always clobbers reg byte a Statement [88] chrout::petscii = home [ l chrout::petscii rem8u#127 y#114 hiscore#110 n#89 z#128 score#38 ] ( main:10 [ l chrout::petscii rem8u#127 y#114 hiscore#110 n#89 z#128 score#38 ] { } ) always clobbers reg byte a Statement [90] chrout::petscii = green [ l chrout::petscii rem8u#127 y#114 hiscore#110 n#89 z#128 score#38 ] ( main:10 [ l chrout::petscii rem8u#127 y#114 hiscore#110 n#89 z#128 score#38 ] { } ) always clobbers reg byte a Statement [92] *((char *) 211) = $a [ l rem8u#127 y#114 hiscore#110 n#89 z#128 score#38 ] ( main:10 [ l rem8u#127 y#114 hiscore#110 n#89 z#128 score#38 ] { } ) always clobbers reg byte a Statement [94] if(j#16<5) goto main::@21 [ l rem8u#127 y#114 hiscore#110 n#89 z#128 j#16 score#38 ] ( main:10 [ l rem8u#127 y#114 hiscore#110 n#89 z#128 j#16 score#38 ] { } ) always clobbers reg byte a Statement [96] chrout::petscii = home [ l chrout::petscii hiscore#110 tu#13 rem8u#48 y#49 z#102 peephole#52 n#52 score#38 ] ( main:10 [ l chrout::petscii hiscore#110 tu#13 rem8u#48 y#49 z#102 peephole#52 n#52 score#38 ] { } ) always clobbers reg byte a Statement [98] chrout::petscii = green [ l chrout::petscii hiscore#110 tu#13 rem8u#48 y#49 z#102 peephole#52 n#52 score#38 ] ( main:10 [ l chrout::petscii hiscore#110 tu#13 rem8u#48 y#49 z#102 peephole#52 n#52 score#38 ] { } ) always clobbers reg byte a Statement [100] chrout::petscii = reverse_on [ l chrout::petscii hiscore#110 tu#13 rem8u#48 y#49 z#102 peephole#52 n#52 score#38 ] ( main:10 [ l chrout::petscii hiscore#110 tu#13 rem8u#48 y#49 z#102 peephole#52 n#52 score#38 ] { } ) always clobbers reg byte a Statement [102] *((char *) 211) = $f [ l hiscore#110 tu#13 rem8u#48 y#49 z#102 peephole#52 n#52 score#38 ] ( main:10 [ l hiscore#110 tu#13 rem8u#48 y#49 z#102 peephole#52 n#52 score#38 ] { } ) always clobbers reg byte a Statement [103] if(tu#13<$a) goto main::@23 [ l hiscore#110 tu#13 rem8u#48 y#49 z#102 peephole#52 n#52 score#38 ] ( main:10 [ l hiscore#110 tu#13 rem8u#48 y#49 z#102 peephole#52 n#52 score#38 ] { } ) always clobbers reg byte a Statement [104] chrout::petscii = $31 [ l chrout::petscii hiscore#110 tu#13 rem8u#48 y#49 z#102 peephole#52 n#52 score#38 ] ( main:10 [ l chrout::petscii hiscore#110 tu#13 rem8u#48 y#49 z#102 peephole#52 n#52 score#38 ] { } ) always clobbers reg byte a Statement [106] chrout::petscii = $30 [ l chrout::petscii hiscore#110 tu#13 rem8u#48 y#49 z#102 peephole#52 n#52 score#38 ] ( main:10 [ l chrout::petscii hiscore#110 tu#13 rem8u#48 y#49 z#102 peephole#52 n#52 score#38 ] { } ) always clobbers reg byte a Statement [110] duck#0 = m [ l hiscore#110 tu#13 rem8u#48 y#49 z#102 peephole#52 n#52 duck#0 score#38 ] ( main:10 [ l hiscore#110 tu#13 rem8u#48 y#49 z#102 peephole#52 n#52 duck#0 score#38 ] { } ) always clobbers reg byte a Statement [112] main::$61 = m + $1e15 [ l m hiscore#110 tu#13 rem8u#48 y#49 z#102 peephole#52 n#52 duck#0 main::$61 score#38 ] ( main:10 [ l m hiscore#110 tu#13 rem8u#48 y#49 z#102 peephole#52 n#52 duck#0 main::$61 score#38 ] { } ) always clobbers reg byte a Statement [113] duck#1 = main::$61 + duck#0 [ l m hiscore#110 tu#13 rem8u#48 y#49 z#102 peephole#52 n#52 duck#1 score#38 ] ( main:10 [ l m hiscore#110 tu#13 rem8u#48 y#49 z#102 peephole#52 n#52 duck#1 score#38 ] { } ) always clobbers reg byte a Statement [114] main::$66 = duck#1 + 1 [ l m hiscore#110 tu#13 rem8u#48 y#49 z#102 peephole#52 n#52 duck#1 main::$66 score#38 ] ( main:10 [ l m hiscore#110 tu#13 rem8u#48 y#49 z#102 peephole#52 n#52 duck#1 main::$66 score#38 ] { } ) always clobbers reg byte a Statement [115] main::$69 = duck#1 + $16 [ l m hiscore#110 tu#13 rem8u#48 y#49 z#102 peephole#52 n#52 duck#1 main::$66 main::$69 score#38 ] ( main:10 [ l m hiscore#110 tu#13 rem8u#48 y#49 z#102 peephole#52 n#52 duck#1 main::$66 main::$69 score#38 ] { } ) always clobbers reg byte a Statement [116] main::$72 = duck#1 + $17 [ l m hiscore#110 tu#13 rem8u#48 y#49 z#102 peephole#52 n#52 duck#1 main::$66 main::$69 main::$72 score#38 ] ( main:10 [ l m hiscore#110 tu#13 rem8u#48 y#49 z#102 peephole#52 n#52 duck#1 main::$66 main::$69 main::$72 score#38 ] { } ) always clobbers reg byte a Statement [117] if(duck#1>$1fe3) goto main::@24 [ l m hiscore#110 tu#13 rem8u#48 y#49 z#102 peephole#52 n#52 duck#1 main::$66 main::$69 main::$72 score#38 ] ( main:10 [ l m hiscore#110 tu#13 rem8u#48 y#49 z#102 peephole#52 n#52 duck#1 main::$66 main::$69 main::$72 score#38 ] { } ) always clobbers reg byte a Statement [118] if(*((char *)duck#1)==brick) goto main::@24 [ l m hiscore#110 tu#13 rem8u#48 y#49 z#102 peephole#52 n#52 duck#1 main::$66 main::$69 main::$72 score#38 ] ( main:10 [ l m hiscore#110 tu#13 rem8u#48 y#49 z#102 peephole#52 n#52 duck#1 main::$66 main::$69 main::$72 score#38 ] { } ) always clobbers reg byte a reg byte y Statement [119] if(*((char *)main::$66)==brick) goto main::@24 [ l m hiscore#110 tu#13 rem8u#48 y#49 z#102 peephole#52 n#52 duck#1 main::$69 main::$72 score#38 ] ( main:10 [ l m hiscore#110 tu#13 rem8u#48 y#49 z#102 peephole#52 n#52 duck#1 main::$69 main::$72 score#38 ] { } ) always clobbers reg byte a reg byte y Statement [120] if(*((char *)main::$69)==brick) goto main::@24 [ l m hiscore#110 tu#13 rem8u#48 y#49 z#102 peephole#52 n#52 duck#1 main::$72 score#38 ] ( main:10 [ l m hiscore#110 tu#13 rem8u#48 y#49 z#102 peephole#52 n#52 duck#1 main::$72 score#38 ] { } ) always clobbers reg byte a reg byte y Statement [121] if(*((char *)main::$72)==brick) goto main::@24 [ l m hiscore#110 tu#13 rem8u#48 y#49 z#102 peephole#52 n#52 duck#1 score#38 ] ( main:10 [ l m hiscore#110 tu#13 rem8u#48 y#49 z#102 peephole#52 n#52 duck#1 score#38 ] { } ) always clobbers reg byte a reg byte y Statement [125] if(time#11<$a) goto main::@27 [ l m hiscore#110 rem8u#25 y#18 n#20 tu#13 peephole#12 duck#1 score#19 z#100 ] ( main:10 [ l m hiscore#110 rem8u#25 y#18 n#20 tu#13 peephole#12 duck#1 score#19 z#100 ] { } ) always clobbers reg byte a Statement [127] score#4 = score#19 - $a [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 peephole#12 duck#1 z#100 score#4 ] ( main:10 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 peephole#12 duck#1 z#100 score#4 ] { { score#13 = score#4 } } ) always clobbers reg byte a Statement [129] *((char *) 36877) = $82 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 peephole#12 duck#1 z#100 score#38 ] ( main:10 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 peephole#12 duck#1 z#100 score#38 ] { { z#100 = z#53 } } ) always clobbers reg byte a Statement [131] *((char *) 36877) = 0 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 z#25 peephole#12 duck#1 score#38 ] ( main:10 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 z#25 peephole#12 duck#1 score#38 ] { } ) always clobbers reg byte a Statement [132] main::$150 = duck#1 + c [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 z#25 peephole#12 duck#1 score#38 main::$150 ] ( main:10 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 z#25 peephole#12 duck#1 score#38 main::$150 ] { } ) always clobbers reg byte a Statement [133] *((char *)main::$150) = 0 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 z#25 peephole#12 duck#1 score#38 ] ( main:10 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 z#25 peephole#12 duck#1 score#38 ] { } ) always clobbers reg byte a reg byte y Statement [134] main::$151 = duck#1 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 z#25 peephole#12 duck#1 score#38 main::$151 ] ( main:10 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 z#25 peephole#12 duck#1 score#38 main::$151 ] { } ) always clobbers reg byte a Statement [135] main::$152 = main::$151 + 1+c [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 z#25 peephole#12 duck#1 score#38 main::$152 ] ( main:10 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 z#25 peephole#12 duck#1 score#38 main::$152 ] { } ) always clobbers reg byte a Statement [136] *((char *)main::$152) = 0 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 z#25 peephole#12 duck#1 score#38 ] ( main:10 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 z#25 peephole#12 duck#1 score#38 ] { } ) always clobbers reg byte a reg byte y Statement [137] main::$153 = duck#1 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 z#25 peephole#12 duck#1 score#38 main::$153 ] ( main:10 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 z#25 peephole#12 duck#1 score#38 main::$153 ] { } ) always clobbers reg byte a Statement [138] main::$154 = main::$153 + $16+c [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 z#25 peephole#12 duck#1 score#38 main::$154 ] ( main:10 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 z#25 peephole#12 duck#1 score#38 main::$154 ] { } ) always clobbers reg byte a Statement [139] *((char *)main::$154) = 0 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 z#25 peephole#12 duck#1 score#38 ] ( main:10 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 z#25 peephole#12 duck#1 score#38 ] { } ) always clobbers reg byte a reg byte y Statement [140] main::$155 = duck#1 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 z#25 peephole#12 score#38 main::$155 ] ( main:10 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 z#25 peephole#12 score#38 main::$155 ] { } ) always clobbers reg byte a Statement [141] main::$156 = main::$155 + $17+c [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 z#25 peephole#12 score#38 main::$156 ] ( main:10 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 z#25 peephole#12 score#38 main::$156 ] { } ) always clobbers reg byte a Statement [142] *((char *)main::$156) = 0 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 z#25 peephole#12 score#38 ] ( main:10 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 z#25 peephole#12 score#38 ] { } ) always clobbers reg byte a reg byte y Statement [143] if(tu#1<$b) goto main::@22 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 z#25 peephole#12 score#38 ] ( main:10 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 z#25 peephole#12 score#38 ] { } ) always clobbers reg byte a Statement [146] *((char *) 36869) = $f0 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color hiscore#110 rem8u#25 y#18 n#20 score#38 ] ( main:10 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color hiscore#110 rem8u#25 y#18 n#20 score#38 ] { } ) always clobbers reg byte a Statement [147] chrout::petscii = lower [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color chrout::petscii hiscore#110 rem8u#25 y#18 n#20 score#38 ] ( main:10 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color chrout::petscii hiscore#110 rem8u#25 y#18 n#20 score#38 ] { } ) always clobbers reg byte a Statement [163] if(score#38<=hiscore#110) goto main::@114 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor hiscore#110 rem8u#25 y#18 n#20 score#38 ] ( main:10 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor hiscore#110 rem8u#25 y#18 n#20 score#38 ] { } ) always clobbers reg byte a Statement [164] hiscore#124 = hiscore#110 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor rem8u#25 y#18 n#20 hiscore#124 ] ( main:10 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor rem8u#25 y#18 n#20 hiscore#124 ] { } ) always clobbers reg byte a Statement [166] utoa::value#2 = hiscore#19 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor rem8u#25 y#18 n#20 hiscore#19 utoa::value#2 ] ( main:10 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor rem8u#25 y#18 n#20 hiscore#19 utoa::value#2 ] { { utoa::value#10 = utoa::value#2 hiscore#19 } } ) always clobbers reg byte a Statement asm { jsr$FD22 } always clobbers reg byte a reg byte x reg byte y Statement [180] hiscore#123 = hiscore#19 [ rem8u#25 y#18 hiscore#123 n#20 ] ( main:10 [ rem8u#25 y#18 hiscore#123 n#20 ] { } ) always clobbers reg byte a Statement [183] m = *((char *) 37151) [ l m hiscore#110 y#18 tu#13 peephole#12 duck#1 score#19 z#100 divr8u::rem#11 div16u8u::return#2 ] ( main:10 [ l m hiscore#110 y#18 tu#13 peephole#12 duck#1 score#19 z#100 divr8u::rem#11 div16u8u::return#2 ] { } ) always clobbers reg byte a Statement [184] *((char *) 37154) = $7f [ l m hiscore#110 y#18 tu#13 peephole#12 duck#1 score#19 z#100 divr8u::rem#11 div16u8u::return#2 ] ( main:10 [ l m hiscore#110 y#18 tu#13 peephole#12 duck#1 score#19 z#100 divr8u::rem#11 div16u8u::return#2 ] { } ) always clobbers reg byte a Statement [185] n#14 = *((char *) 37152) [ l m hiscore#110 y#18 tu#13 peephole#12 duck#1 score#19 z#100 divr8u::rem#11 n#14 div16u8u::return#2 ] ( main:10 [ l m hiscore#110 y#18 tu#13 peephole#12 duck#1 score#19 z#100 divr8u::rem#11 n#14 div16u8u::return#2 ] { } ) always clobbers reg byte a Statement [186] *((char *) 37154) = $ff [ l m hiscore#110 y#18 tu#13 peephole#12 duck#1 score#19 z#100 divr8u::rem#11 n#14 div16u8u::return#2 ] ( main:10 [ l m hiscore#110 y#18 tu#13 peephole#12 duck#1 score#19 z#100 divr8u::rem#11 n#14 div16u8u::return#2 ] { } ) always clobbers reg byte a Statement [187] main::$78 = $10 & m [ l m hiscore#110 y#18 tu#13 peephole#12 duck#1 score#19 z#100 divr8u::rem#11 n#14 main::$78 div16u8u::return#2 ] ( main:10 [ l m hiscore#110 y#18 tu#13 peephole#12 duck#1 score#19 z#100 divr8u::rem#11 n#14 main::$78 div16u8u::return#2 ] { } ) always clobbers reg byte a Statement [189] y#0 = -- y#18 [ l m hiscore#110 tu#13 peephole#12 duck#1 score#19 z#100 divr8u::rem#11 n#14 y#0 div16u8u::return#2 ] ( main:10 [ l m hiscore#110 tu#13 peephole#12 duck#1 score#19 z#100 divr8u::rem#11 n#14 y#0 div16u8u::return#2 ] { } ) always clobbers reg byte a Statement [191] main::$81 = $80 & n#14 [ l m hiscore#110 tu#13 peephole#12 duck#1 score#19 z#100 divr8u::rem#11 n#14 y#10 main::$81 div16u8u::return#2 ] ( main:10 [ l m hiscore#110 tu#13 peephole#12 duck#1 score#19 z#100 divr8u::rem#11 n#14 y#10 main::$81 div16u8u::return#2 ] { } ) always clobbers reg byte a Statement [195] main::$84 = 4 & m [ l m hiscore#110 tu#13 peephole#12 duck#1 score#19 z#100 divr8u::rem#11 n#14 y#11 main::$84 div16u8u::return#2 ] ( main:10 [ l m hiscore#110 tu#13 peephole#12 duck#1 score#19 z#100 divr8u::rem#11 n#14 y#11 main::$84 div16u8u::return#2 ] { } ) always clobbers reg byte a Statement [197] y#2 = y#11 - $16 [ l m hiscore#110 tu#13 peephole#12 duck#1 score#19 z#100 divr8u::rem#11 n#14 y#2 div16u8u::return#2 ] ( main:10 [ l m hiscore#110 tu#13 peephole#12 duck#1 score#19 z#100 divr8u::rem#11 n#14 y#2 div16u8u::return#2 ] { } ) always clobbers reg byte a Statement [199] main::$88 = 8 & m [ l m hiscore#110 tu#13 peephole#12 duck#1 score#19 z#100 divr8u::rem#11 n#14 y#12 main::$88 div16u8u::return#2 ] ( main:10 [ l m hiscore#110 tu#13 peephole#12 duck#1 score#19 z#100 divr8u::rem#11 n#14 y#12 main::$88 div16u8u::return#2 ] { } ) always clobbers reg byte a Statement [201] y#3 = y#12 + $16 [ l m hiscore#110 tu#13 peephole#12 duck#1 score#19 z#100 divr8u::rem#11 n#14 y#3 div16u8u::return#2 ] ( main:10 [ l m hiscore#110 tu#13 peephole#12 duck#1 score#19 z#100 divr8u::rem#11 n#14 y#3 div16u8u::return#2 ] { } ) always clobbers reg byte a Statement [203] main::$92 = $20 & m [ l hiscore#110 tu#13 peephole#12 duck#1 score#19 z#100 divr8u::rem#11 n#14 y#13 main::$92 div16u8u::return#2 ] ( main:10 [ l hiscore#110 tu#13 peephole#12 duck#1 score#19 z#100 divr8u::rem#11 n#14 y#13 main::$92 div16u8u::return#2 ] { } ) always clobbers reg byte a Statement [205] *((char *) 36877) = $82 [ l hiscore#110 tu#13 peephole#12 duck#1 score#19 z#100 divr8u::rem#11 n#14 y#13 div16u8u::return#2 ] ( main:10 [ l hiscore#110 tu#13 peephole#12 duck#1 score#19 z#100 divr8u::rem#11 n#14 y#13 div16u8u::return#2 ] { } ) always clobbers reg byte a Statement [206] if(peephole#12!=duck#1) goto main::@34 [ l hiscore#110 tu#13 peephole#12 duck#1 score#19 z#100 divr8u::rem#11 n#14 y#13 div16u8u::return#2 ] ( main:10 [ l hiscore#110 tu#13 peephole#12 duck#1 score#19 z#100 divr8u::rem#11 n#14 y#13 div16u8u::return#2 ] { } ) always clobbers reg byte a Statement [207] main::$96 = $c - div16u8u::return#2 [ l hiscore#110 tu#13 peephole#12 duck#1 score#19 z#100 divr8u::rem#11 n#14 y#13 main::$96 ] ( main:10 [ l hiscore#110 tu#13 peephole#12 duck#1 score#19 z#100 divr8u::rem#11 n#14 y#13 main::$96 ] { { z#100 = z#53 } } ) always clobbers reg byte a Statement [208] main::$179 = main::$96 << 2 [ l hiscore#110 tu#13 peephole#12 duck#1 score#19 z#100 divr8u::rem#11 n#14 y#13 main::$96 main::$179 ] ( main:10 [ l hiscore#110 tu#13 peephole#12 duck#1 score#19 z#100 divr8u::rem#11 n#14 y#13 main::$96 main::$179 ] { { z#100 = z#53 } } ) always clobbers reg byte a Statement [209] main::$180 = main::$179 + main::$96 [ l hiscore#110 tu#13 peephole#12 duck#1 score#19 z#100 divr8u::rem#11 n#14 y#13 main::$180 ] ( main:10 [ l hiscore#110 tu#13 peephole#12 duck#1 score#19 z#100 divr8u::rem#11 n#14 y#13 main::$180 ] { { z#100 = z#53 } } ) always clobbers reg byte a Statement [210] main::$97 = main::$180 << 1 [ l hiscore#110 tu#13 peephole#12 duck#1 score#19 z#100 divr8u::rem#11 n#14 y#13 main::$97 ] ( main:10 [ l hiscore#110 tu#13 peephole#12 duck#1 score#19 z#100 divr8u::rem#11 n#14 y#13 main::$97 ] { { z#100 = z#53 } } ) always clobbers reg byte a Statement [211] score#8 = score#19 + main::$97 [ l hiscore#110 tu#13 peephole#12 duck#1 z#100 divr8u::rem#11 n#14 y#13 score#8 ] ( main:10 [ l hiscore#110 tu#13 peephole#12 duck#1 z#100 divr8u::rem#11 n#14 y#13 score#8 ] { { z#100 = z#53 } } ) always clobbers reg byte a Statement [214] *((char *) 36877) = 0 [ l hiscore#110 tu#13 z#25 peephole#12 duck#1 divr8u::rem#11 n#14 y#13 time#38 score#81 ] ( main:10 [ l hiscore#110 tu#13 z#25 peephole#12 duck#1 divr8u::rem#11 n#14 y#13 time#38 score#81 ] { } ) always clobbers reg byte a Statement [216] main::$104 = y#13 + 1 [ l hiscore#110 tu#13 peephole#12 duck#1 time#17 score#43 divr8u::rem#11 n#14 y#13 z#48 main::$104 ] ( main:10 [ l hiscore#110 tu#13 peephole#12 duck#1 time#17 score#43 divr8u::rem#11 n#14 y#13 z#48 main::$104 ] { } ) always clobbers reg byte a Statement [217] main::$107 = y#13 + $16 [ l hiscore#110 tu#13 peephole#12 duck#1 time#17 score#43 divr8u::rem#11 n#14 y#13 z#48 main::$104 main::$107 ] ( main:10 [ l hiscore#110 tu#13 peephole#12 duck#1 time#17 score#43 divr8u::rem#11 n#14 y#13 z#48 main::$104 main::$107 ] { } ) always clobbers reg byte a Statement [218] main::$110 = y#13 + $17 [ l hiscore#110 tu#13 peephole#12 duck#1 time#17 score#43 divr8u::rem#11 n#14 y#13 z#48 main::$104 main::$107 main::$110 ] ( main:10 [ l hiscore#110 tu#13 peephole#12 duck#1 time#17 score#43 divr8u::rem#11 n#14 y#13 z#48 main::$104 main::$107 main::$110 ] { } ) always clobbers reg byte a Statement [219] if(*((char *)y#13)==brick) goto main::@36 [ l hiscore#110 tu#13 peephole#12 duck#1 time#17 score#43 divr8u::rem#11 n#14 y#13 z#48 main::$104 main::$107 main::$110 ] ( main:10 [ l hiscore#110 tu#13 peephole#12 duck#1 time#17 score#43 divr8u::rem#11 n#14 y#13 z#48 main::$104 main::$107 main::$110 ] { } ) always clobbers reg byte a reg byte y Statement [220] if(*((char *)main::$104)==brick) goto main::@36 [ l hiscore#110 tu#13 peephole#12 duck#1 time#17 score#43 divr8u::rem#11 n#14 y#13 z#48 main::$107 main::$110 ] ( main:10 [ l hiscore#110 tu#13 peephole#12 duck#1 time#17 score#43 divr8u::rem#11 n#14 y#13 z#48 main::$107 main::$110 ] { } ) always clobbers reg byte a reg byte y Statement [221] if(*((char *)main::$107)!=brick) goto main::@109 [ l hiscore#110 tu#13 peephole#12 duck#1 time#17 score#43 divr8u::rem#11 n#14 y#13 z#48 main::$110 ] ( main:10 [ l hiscore#110 tu#13 peephole#12 duck#1 time#17 score#43 divr8u::rem#11 n#14 y#13 z#48 main::$110 ] { } ) always clobbers reg byte a reg byte y Statement [223] *((char *)y#35) = $fd [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 z#48 ] ( main:10 [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 z#48 ] { { z#48 = z#53 } } ) always clobbers reg byte a reg byte y Statement [224] main::$125 = y#35 + c [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 z#48 main::$125 ] ( main:10 [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 z#48 main::$125 ] { { z#48 = z#53 } } ) always clobbers reg byte a Statement [225] *((char *)main::$125) = 1 [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 z#48 ] ( main:10 [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 z#48 ] { { z#48 = z#53 } } ) always clobbers reg byte a reg byte y Statement [226] main::$127 = y#35 + 1 [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 z#48 main::$127 ] ( main:10 [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 z#48 main::$127 ] { { z#48 = z#53 } } ) always clobbers reg byte a Statement [227] *((char *)main::$127) = $ed [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 z#48 main::$127 ] ( main:10 [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 z#48 main::$127 ] { { z#48 = z#53 } } ) always clobbers reg byte a reg byte y Statement [228] main::$128 = main::$127 + c [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 z#48 main::$128 ] ( main:10 [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 z#48 main::$128 ] { { z#48 = z#53 } } ) always clobbers reg byte a Statement [229] *((char *)main::$128) = 1 [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 z#48 ] ( main:10 [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 z#48 ] { { z#48 = z#53 } } ) always clobbers reg byte a reg byte y Statement [230] main::$130 = y#35 + $16 [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 z#48 main::$130 ] ( main:10 [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 z#48 main::$130 ] { { z#48 = z#53 } } ) always clobbers reg byte a Statement [231] *((char *)main::$130) = $ee [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 z#48 main::$130 ] ( main:10 [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 z#48 main::$130 ] { { z#48 = z#53 } } ) always clobbers reg byte a reg byte y Statement [232] main::$131 = main::$130 + c [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 z#48 main::$131 ] ( main:10 [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 z#48 main::$131 ] { { z#48 = z#53 } } ) always clobbers reg byte a Statement [233] *((char *)main::$131) = 1 [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 z#48 ] ( main:10 [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 z#48 ] { { z#48 = z#53 } } ) always clobbers reg byte a reg byte y Statement [234] main::$133 = y#35 + $17 [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 z#48 main::$133 ] ( main:10 [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 z#48 main::$133 ] { { z#48 = z#53 } } ) always clobbers reg byte a Statement [235] *((char *)main::$133) = $f0 [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 z#48 main::$133 ] ( main:10 [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 z#48 main::$133 ] { { z#48 = z#53 } } ) always clobbers reg byte a reg byte y Statement [236] main::$134 = main::$133 + c [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 z#48 main::$134 ] ( main:10 [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 z#48 main::$134 ] { { z#48 = z#53 } } ) always clobbers reg byte a Statement [237] *((char *)main::$134) = 1 [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 z#48 ] ( main:10 [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 z#48 ] { { z#48 = z#53 } } ) always clobbers reg byte a reg byte y Statement [239] *((char *)duck#1) = 0 [ l hiscore#110 tu#13 z#25 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 ] ( main:10 [ l hiscore#110 tu#13 z#25 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 ] { { z#25 = z#53 } } ) always clobbers reg byte a reg byte y Statement [240] main::$136 = duck#1 + c [ l hiscore#110 tu#13 z#25 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 main::$136 ] ( main:10 [ l hiscore#110 tu#13 z#25 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 main::$136 ] { { z#25 = z#53 } } ) always clobbers reg byte a Statement [241] *((char *)main::$136) = 7 [ l hiscore#110 tu#13 z#25 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 ] ( main:10 [ l hiscore#110 tu#13 z#25 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 ] { { z#25 = z#53 } } ) always clobbers reg byte a reg byte y Statement [242] main::$138 = duck#1 + 1 [ l hiscore#110 tu#13 z#25 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 main::$138 ] ( main:10 [ l hiscore#110 tu#13 z#25 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 main::$138 ] { { z#25 = z#53 } } ) always clobbers reg byte a Statement [243] *((char *)main::$138) = 1 [ l hiscore#110 tu#13 z#25 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 main::$138 ] ( main:10 [ l hiscore#110 tu#13 z#25 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 main::$138 ] { { z#25 = z#53 } } ) always clobbers reg byte a reg byte y Statement [244] main::$139 = main::$138 + c [ l hiscore#110 tu#13 z#25 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 main::$139 ] ( main:10 [ l hiscore#110 tu#13 z#25 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 main::$139 ] { { z#25 = z#53 } } ) always clobbers reg byte a Statement [245] *((char *)main::$139) = 7 [ l hiscore#110 tu#13 z#25 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 ] ( main:10 [ l hiscore#110 tu#13 z#25 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 ] { { z#25 = z#53 } } ) always clobbers reg byte a reg byte y Statement [246] main::$141 = duck#1 + $16 [ l hiscore#110 tu#13 z#25 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 main::$141 ] ( main:10 [ l hiscore#110 tu#13 z#25 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 main::$141 ] { { z#25 = z#53 } } ) always clobbers reg byte a Statement [247] *((char *)main::$141) = 2 [ l hiscore#110 tu#13 z#25 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 main::$141 ] ( main:10 [ l hiscore#110 tu#13 z#25 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 main::$141 ] { { z#25 = z#53 } } ) always clobbers reg byte a reg byte y Statement [248] main::$142 = main::$141 + c [ l hiscore#110 tu#13 z#25 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 main::$142 ] ( main:10 [ l hiscore#110 tu#13 z#25 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 main::$142 ] { { z#25 = z#53 } } ) always clobbers reg byte a Statement [249] *((char *)main::$142) = 7 [ l hiscore#110 tu#13 z#25 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 ] ( main:10 [ l hiscore#110 tu#13 z#25 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 ] { { z#25 = z#53 } } ) always clobbers reg byte a reg byte y Statement [250] main::$144 = duck#1 + $17 [ l hiscore#110 tu#13 z#25 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 main::$144 ] ( main:10 [ l hiscore#110 tu#13 z#25 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 main::$144 ] { { z#25 = z#53 } } ) always clobbers reg byte a Statement [251] *((char *)main::$144) = 3 [ l hiscore#110 tu#13 z#25 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 main::$144 ] ( main:10 [ l hiscore#110 tu#13 z#25 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 main::$144 ] { { z#25 = z#53 } } ) always clobbers reg byte a reg byte y Statement [252] main::$145 = main::$144 + c [ l hiscore#110 tu#13 z#25 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 main::$145 ] ( main:10 [ l hiscore#110 tu#13 z#25 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 main::$145 ] { { z#25 = z#53 } } ) always clobbers reg byte a Statement [253] *((char *)main::$145) = 7 [ l hiscore#110 tu#13 z#25 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 ] ( main:10 [ l hiscore#110 tu#13 z#25 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 ] { { z#25 = z#53 } } ) always clobbers reg byte a reg byte y Statement [255] y#130 = y#35 [ l m hiscore#110 tu#13 z#25 duck#1 time#17 score#43 divr8u::rem#11 y#130 y#35 n#14 ] ( main:10 [ l m hiscore#110 tu#13 z#25 duck#1 time#17 score#43 divr8u::rem#11 y#130 y#35 n#14 ] { } ) always clobbers reg byte a Statement [256] if(*((char *)main::$110)==brick) goto main::@36 [ l hiscore#110 tu#13 peephole#12 duck#1 time#17 score#43 divr8u::rem#11 n#14 y#13 z#48 ] ( main:10 [ l hiscore#110 tu#13 peephole#12 duck#1 time#17 score#43 divr8u::rem#11 n#14 y#13 z#48 ] { } ) always clobbers reg byte a reg byte y Statement [257] if(y#13>$1e16) goto main::@107 [ l hiscore#110 tu#13 peephole#12 duck#1 time#17 score#43 divr8u::rem#11 n#14 y#13 z#48 ] ( main:10 [ l hiscore#110 tu#13 peephole#12 duck#1 time#17 score#43 divr8u::rem#11 n#14 y#13 z#48 ] { } ) always clobbers reg byte a Statement [258] if(y#13>=$1fe3) goto main::@36 [ l hiscore#110 tu#13 peephole#12 duck#1 time#17 score#43 divr8u::rem#11 n#14 y#13 z#48 ] ( main:10 [ l hiscore#110 tu#13 peephole#12 duck#1 time#17 score#43 divr8u::rem#11 n#14 y#13 z#48 ] { } ) always clobbers reg byte a Statement [259] main::$119 = peephole#12 + c [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 n#14 y#13 z#48 main::$119 ] ( main:10 [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 n#14 y#13 z#48 main::$119 ] { } ) always clobbers reg byte a Statement [260] *((char *)main::$119) = 0 [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 n#14 y#13 z#48 main::$119 ] ( main:10 [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 n#14 y#13 z#48 main::$119 ] { } ) always clobbers reg byte a reg byte y Statement [261] main::$120 = main::$119 + 1 [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 n#14 y#13 z#48 main::$119 main::$120 ] ( main:10 [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 n#14 y#13 z#48 main::$119 main::$120 ] { } ) always clobbers reg byte a Statement [262] *((char *)main::$120) = 0 [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 n#14 y#13 z#48 main::$119 ] ( main:10 [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 n#14 y#13 z#48 main::$119 ] { } ) always clobbers reg byte a reg byte y Statement [263] main::$122 = main::$119 + $16 [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 n#14 y#13 z#48 main::$119 main::$122 ] ( main:10 [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 n#14 y#13 z#48 main::$119 main::$122 ] { } ) always clobbers reg byte a Statement [264] *((char *)main::$122) = 0 [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 n#14 y#13 z#48 main::$119 ] ( main:10 [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 n#14 y#13 z#48 main::$119 ] { } ) always clobbers reg byte a reg byte y Statement [265] main::$124 = main::$119 + $17 [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 n#14 y#13 z#48 main::$124 ] ( main:10 [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 n#14 y#13 z#48 main::$124 ] { } ) always clobbers reg byte a Statement [266] *((char *)main::$124) = 0 [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 n#14 y#13 z#48 ] ( main:10 [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 n#14 y#13 z#48 ] { } ) always clobbers reg byte a reg byte y Statement [267] y#141 = y#13 [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 n#14 z#48 y#141 ] ( main:10 [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 n#14 z#48 y#141 ] { } ) always clobbers reg byte a Statement [268] score#6 = score#19 - $a [ l hiscore#110 tu#13 peephole#12 duck#1 z#100 divr8u::rem#11 n#14 y#13 div16u8u::return#2 score#6 ] ( main:10 [ l hiscore#110 tu#13 peephole#12 duck#1 z#100 divr8u::rem#11 n#14 y#13 div16u8u::return#2 score#6 ] { { score#13 = score#6 } } ) always clobbers reg byte a Statement [272] main::$57 = $30 + tu#13 [ l hiscore#110 tu#13 rem8u#48 y#49 z#102 peephole#52 n#52 score#38 main::$57 ] ( main:10 [ l hiscore#110 tu#13 rem8u#48 y#49 z#102 peephole#52 n#52 score#38 main::$57 ] { { chrout::petscii = main::$57 } } ) always clobbers reg byte a Statement [273] chrout::petscii = main::$57 [ l chrout::petscii hiscore#110 tu#13 rem8u#48 y#49 z#102 peephole#52 n#52 score#38 ] ( main:10 [ l chrout::petscii hiscore#110 tu#13 rem8u#48 y#49 z#102 peephole#52 n#52 score#38 ] { { chrout::petscii = main::$57 } } ) always clobbers reg byte a Statement [275] chrout::petscii = ducknumber[j#16] [ l chrout::petscii rem8u#127 y#114 hiscore#110 n#89 z#128 j#16 score#38 ] ( main:10 [ l chrout::petscii rem8u#127 y#114 hiscore#110 n#89 z#128 j#16 score#38 ] { } ) always clobbers reg byte a reg byte y Statement [278] chrout::petscii = chrono[j#13] [ l chrout::petscii rem8u#127 y#114 hiscore#110 n#89 z#128 j#13 ] ( main:10 [ l chrout::petscii rem8u#127 y#114 hiscore#110 n#89 z#128 j#13 ] { } ) always clobbers reg byte a reg byte y Statement [282] if(j#11<=m) goto main::@15 [ l m rem8u#127 y#114 hiscore#110 n#89 z#28 j#11 ] ( main:10 [ l m rem8u#127 y#114 hiscore#110 n#89 z#28 j#11 ] { } ) always clobbers reg byte a Statement [283] chrout::petscii = brick [ l m chrout::petscii rem8u#127 y#114 hiscore#110 n#89 z#28 ] ( main:10 [ l m chrout::petscii rem8u#127 y#114 hiscore#110 n#89 z#28 ] { } ) always clobbers reg byte a Statement [285] main::$35 = z#28 + m [ l rem8u#127 y#114 hiscore#110 n#89 main::$35 ] ( main:10 [ l rem8u#127 y#114 hiscore#110 n#89 main::$35 ] { } ) always clobbers reg byte a Statement [286] z#9 = main::$35 + 1 [ l rem8u#127 y#114 hiscore#110 n#89 z#9 ] ( main:10 [ l rem8u#127 y#114 hiscore#110 n#89 z#9 ] { } ) always clobbers reg byte a Statement [287] if(z#9<$1fa) goto main::@13 [ l rem8u#127 y#114 hiscore#110 n#89 z#9 ] ( main:10 [ l rem8u#127 y#114 hiscore#110 n#89 z#9 ] { } ) always clobbers reg byte a Statement [288] chrout::petscii = right [ l m chrout::petscii rem8u#127 y#114 hiscore#110 n#89 z#28 j#11 ] ( main:10 [ l m chrout::petscii rem8u#127 y#114 hiscore#110 n#89 z#28 j#11 ] { } ) always clobbers reg byte a Statement [291] chrout::petscii = brick [ l chrout::petscii rem8u#127 y#114 hiscore#110 k#101 ] ( main:10 [ l chrout::petscii rem8u#127 y#114 hiscore#110 k#101 ] { } ) always clobbers reg byte a Statement [294] if(n#101<$16) goto main::@10 [ l rem8u#127 y#114 hiscore#110 k#101 n#101 ] ( main:10 [ l rem8u#127 y#114 hiscore#110 k#101 n#101 ] { } ) always clobbers reg byte a Statement [295] chrout::petscii = brick [ l chrout::petscii rem8u#127 y#114 hiscore#110 k#101 n#101 ] ( main:10 [ l chrout::petscii rem8u#127 y#114 hiscore#110 k#101 n#101 ] { } ) always clobbers reg byte a Statement [298] chrout::petscii = right [ l chrout::petscii rem8u#127 y#114 hiscore#110 k#101 n#101 ] ( main:10 [ l chrout::petscii rem8u#127 y#114 hiscore#110 k#101 n#101 ] { } ) always clobbers reg byte a Statement [301] main::$3 = $1c00 + m [ m main::$3 ] ( main:10 [ m main::$3 ] { } ) always clobbers reg byte a Statement [302] *((char *)main::$3) = duck_udg[m] [ m ] ( main:10 [ m ] { } ) always clobbers reg byte a reg byte y Statement [308] conio_cursor_x = 0 [ conio_cursor_x gotoxy::y#5 ] ( gotoxy:17 [ conio_cursor_x gotoxy::y#5 ] { { gotoxy::y#2 = gotoxy::y#4 conio_c64_init::line#2 } } conio_c64_init:8::gotoxy:17 [ conio_cursor_x gotoxy::y#5 ] { { gotoxy::y#2 = gotoxy::y#4 conio_c64_init::line#2 } } main:10::clear_screen:27::gotoxy:325 [ rem8u#127 y#114 hiscore#110 n#109 conio_cursor_x gotoxy::y#5 ] { } main:10::clear_screen:44::gotoxy:325 [ l rem8u#127 y#114 hiscore#110 n#109 conio_cursor_x gotoxy::y#5 ] { } main:10::clear_screen:145::gotoxy:325 [ hiscore#110 rem8u#25 y#18 n#20 score#38 conio_cursor_x gotoxy::y#5 ] { } ) always clobbers reg byte a Statement [310] gotoxy::$7 = (unsigned int)gotoxy::y#5 [ conio_cursor_x conio_cursor_y gotoxy::$7 ] ( gotoxy:17 [ conio_cursor_x conio_cursor_y gotoxy::$7 ] { { gotoxy::y#2 = gotoxy::y#4 conio_c64_init::line#2 } } conio_c64_init:8::gotoxy:17 [ conio_cursor_x conio_cursor_y gotoxy::$7 ] { { gotoxy::y#2 = gotoxy::y#4 conio_c64_init::line#2 } } main:10::clear_screen:27::gotoxy:325 [ rem8u#127 y#114 hiscore#110 n#109 conio_cursor_x conio_cursor_y gotoxy::$7 ] { } main:10::clear_screen:44::gotoxy:325 [ l rem8u#127 y#114 hiscore#110 n#109 conio_cursor_x conio_cursor_y gotoxy::$7 ] { } main:10::clear_screen:145::gotoxy:325 [ hiscore#110 rem8u#25 y#18 n#20 score#38 conio_cursor_x conio_cursor_y gotoxy::$7 ] { } ) always clobbers reg byte a Statement [311] gotoxy::$8 = gotoxy::$7 << 2 [ conio_cursor_x conio_cursor_y gotoxy::$7 gotoxy::$8 ] ( gotoxy:17 [ conio_cursor_x conio_cursor_y gotoxy::$7 gotoxy::$8 ] { { gotoxy::y#2 = gotoxy::y#4 conio_c64_init::line#2 } } conio_c64_init:8::gotoxy:17 [ conio_cursor_x conio_cursor_y gotoxy::$7 gotoxy::$8 ] { { gotoxy::y#2 = gotoxy::y#4 conio_c64_init::line#2 } } main:10::clear_screen:27::gotoxy:325 [ rem8u#127 y#114 hiscore#110 n#109 conio_cursor_x conio_cursor_y gotoxy::$7 gotoxy::$8 ] { } main:10::clear_screen:44::gotoxy:325 [ l rem8u#127 y#114 hiscore#110 n#109 conio_cursor_x conio_cursor_y gotoxy::$7 gotoxy::$8 ] { } main:10::clear_screen:145::gotoxy:325 [ hiscore#110 rem8u#25 y#18 n#20 score#38 conio_cursor_x conio_cursor_y gotoxy::$7 gotoxy::$8 ] { } ) always clobbers reg byte a Statement [312] gotoxy::$9 = gotoxy::$8 + gotoxy::$7 [ conio_cursor_x conio_cursor_y gotoxy::$9 ] ( gotoxy:17 [ conio_cursor_x conio_cursor_y gotoxy::$9 ] { { gotoxy::y#2 = gotoxy::y#4 conio_c64_init::line#2 } } conio_c64_init:8::gotoxy:17 [ conio_cursor_x conio_cursor_y gotoxy::$9 ] { { gotoxy::y#2 = gotoxy::y#4 conio_c64_init::line#2 } } main:10::clear_screen:27::gotoxy:325 [ rem8u#127 y#114 hiscore#110 n#109 conio_cursor_x conio_cursor_y gotoxy::$9 ] { } main:10::clear_screen:44::gotoxy:325 [ l rem8u#127 y#114 hiscore#110 n#109 conio_cursor_x conio_cursor_y gotoxy::$9 ] { } main:10::clear_screen:145::gotoxy:325 [ hiscore#110 rem8u#25 y#18 n#20 score#38 conio_cursor_x conio_cursor_y gotoxy::$9 ] { } ) always clobbers reg byte a Statement [313] gotoxy::line_offset#0 = gotoxy::$9 << 3 [ conio_cursor_x conio_cursor_y gotoxy::line_offset#0 ] ( gotoxy:17 [ conio_cursor_x conio_cursor_y gotoxy::line_offset#0 ] { { gotoxy::y#2 = gotoxy::y#4 conio_c64_init::line#2 } } conio_c64_init:8::gotoxy:17 [ conio_cursor_x conio_cursor_y gotoxy::line_offset#0 ] { { gotoxy::y#2 = gotoxy::y#4 conio_c64_init::line#2 } } main:10::clear_screen:27::gotoxy:325 [ rem8u#127 y#114 hiscore#110 n#109 conio_cursor_x conio_cursor_y gotoxy::line_offset#0 ] { } main:10::clear_screen:44::gotoxy:325 [ l rem8u#127 y#114 hiscore#110 n#109 conio_cursor_x conio_cursor_y gotoxy::line_offset#0 ] { } main:10::clear_screen:145::gotoxy:325 [ hiscore#110 rem8u#25 y#18 n#20 score#38 conio_cursor_x conio_cursor_y gotoxy::line_offset#0 ] { } ) always clobbers reg byte a Statement [314] gotoxy::$5 = DEFAULT_SCREEN + gotoxy::line_offset#0 [ conio_cursor_x conio_cursor_y gotoxy::line_offset#0 gotoxy::$5 ] ( gotoxy:17 [ conio_cursor_x conio_cursor_y gotoxy::line_offset#0 gotoxy::$5 ] { { gotoxy::y#2 = gotoxy::y#4 conio_c64_init::line#2 } } conio_c64_init:8::gotoxy:17 [ conio_cursor_x conio_cursor_y gotoxy::line_offset#0 gotoxy::$5 ] { { gotoxy::y#2 = gotoxy::y#4 conio_c64_init::line#2 } } main:10::clear_screen:27::gotoxy:325 [ rem8u#127 y#114 hiscore#110 n#109 conio_cursor_x conio_cursor_y gotoxy::line_offset#0 gotoxy::$5 ] { } main:10::clear_screen:44::gotoxy:325 [ l rem8u#127 y#114 hiscore#110 n#109 conio_cursor_x conio_cursor_y gotoxy::line_offset#0 gotoxy::$5 ] { } main:10::clear_screen:145::gotoxy:325 [ hiscore#110 rem8u#25 y#18 n#20 score#38 conio_cursor_x conio_cursor_y gotoxy::line_offset#0 gotoxy::$5 ] { } ) always clobbers reg byte a Statement [315] conio_line_text = gotoxy::$5 [ conio_cursor_x conio_cursor_y conio_line_text gotoxy::line_offset#0 ] ( gotoxy:17 [ conio_cursor_x conio_cursor_y conio_line_text gotoxy::line_offset#0 ] { { gotoxy::y#2 = gotoxy::y#4 conio_c64_init::line#2 } } conio_c64_init:8::gotoxy:17 [ conio_cursor_x conio_cursor_y conio_line_text gotoxy::line_offset#0 ] { { gotoxy::y#2 = gotoxy::y#4 conio_c64_init::line#2 } } main:10::clear_screen:27::gotoxy:325 [ rem8u#127 y#114 hiscore#110 n#109 conio_cursor_x conio_cursor_y conio_line_text gotoxy::line_offset#0 ] { } main:10::clear_screen:44::gotoxy:325 [ l rem8u#127 y#114 hiscore#110 n#109 conio_cursor_x conio_cursor_y conio_line_text gotoxy::line_offset#0 ] { } main:10::clear_screen:145::gotoxy:325 [ hiscore#110 rem8u#25 y#18 n#20 score#38 conio_cursor_x conio_cursor_y conio_line_text gotoxy::line_offset#0 ] { } ) always clobbers reg byte a Statement [316] gotoxy::$6 = COLORRAM + gotoxy::line_offset#0 [ conio_cursor_x conio_cursor_y conio_line_text gotoxy::$6 ] ( gotoxy:17 [ conio_cursor_x conio_cursor_y conio_line_text gotoxy::$6 ] { { gotoxy::y#2 = gotoxy::y#4 conio_c64_init::line#2 } } conio_c64_init:8::gotoxy:17 [ conio_cursor_x conio_cursor_y conio_line_text gotoxy::$6 ] { { gotoxy::y#2 = gotoxy::y#4 conio_c64_init::line#2 } } main:10::clear_screen:27::gotoxy:325 [ rem8u#127 y#114 hiscore#110 n#109 conio_cursor_x conio_cursor_y conio_line_text gotoxy::$6 ] { } main:10::clear_screen:44::gotoxy:325 [ l rem8u#127 y#114 hiscore#110 n#109 conio_cursor_x conio_cursor_y conio_line_text gotoxy::$6 ] { } main:10::clear_screen:145::gotoxy:325 [ hiscore#110 rem8u#25 y#18 n#20 score#38 conio_cursor_x conio_cursor_y conio_line_text gotoxy::$6 ] { } ) always clobbers reg byte a Statement [317] conio_line_color = gotoxy::$6 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] ( gotoxy:17 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { gotoxy::y#2 = gotoxy::y#4 conio_c64_init::line#2 } } conio_c64_init:8::gotoxy:17 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { { gotoxy::y#2 = gotoxy::y#4 conio_c64_init::line#2 } } main:10::clear_screen:27::gotoxy:325 [ rem8u#127 y#114 hiscore#110 n#109 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { } main:10::clear_screen:44::gotoxy:325 [ l rem8u#127 y#114 hiscore#110 n#109 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { } main:10::clear_screen:145::gotoxy:325 [ hiscore#110 rem8u#25 y#18 n#20 score#38 conio_cursor_x conio_cursor_y conio_line_text conio_line_color ] { } ) always clobbers reg byte a Statement asm { ldapetscii jsr$ffd2 } always clobbers reg byte a reg byte x reg byte y Statement [323] if(z#2<$1fa) goto clear_screen::@2 [ clear_screen::n#5 z#2 ] ( main:10::clear_screen:27 [ rem8u#127 y#114 hiscore#110 n#109 clear_screen::n#5 z#2 ] { } main:10::clear_screen:44 [ l rem8u#127 y#114 hiscore#110 n#109 clear_screen::n#5 z#2 ] { } main:10::clear_screen:145 [ hiscore#110 rem8u#25 y#18 n#20 score#38 clear_screen::n#5 z#2 ] { } ) always clobbers reg byte a Statement [326] chrout::petscii = home [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color chrout::petscii ] ( main:10::clear_screen:27 [ rem8u#127 y#114 hiscore#110 n#109 conio_cursor_x conio_cursor_y conio_line_text conio_line_color chrout::petscii ] { } main:10::clear_screen:44 [ l rem8u#127 y#114 hiscore#110 n#109 conio_cursor_x conio_cursor_y conio_line_text conio_line_color chrout::petscii ] { } main:10::clear_screen:145 [ hiscore#110 rem8u#25 y#18 n#20 score#38 conio_cursor_x conio_cursor_y conio_line_text conio_line_color chrout::petscii ] { } ) always clobbers reg byte a Statement [329] clear_screen::$5 = $1e00 + z#2 [ clear_screen::n#5 z#2 clear_screen::$5 ] ( main:10::clear_screen:27 [ rem8u#127 y#114 hiscore#110 n#109 clear_screen::n#5 z#2 clear_screen::$5 ] { } main:10::clear_screen:44 [ l rem8u#127 y#114 hiscore#110 n#109 clear_screen::n#5 z#2 clear_screen::$5 ] { } main:10::clear_screen:145 [ hiscore#110 rem8u#25 y#18 n#20 score#38 clear_screen::n#5 z#2 clear_screen::$5 ] { } ) always clobbers reg byte a Statement [330] clear_screen::$4 = clear_screen::$5 + c [ clear_screen::n#5 z#2 clear_screen::$5 clear_screen::$4 ] ( main:10::clear_screen:27 [ rem8u#127 y#114 hiscore#110 n#109 clear_screen::n#5 z#2 clear_screen::$5 clear_screen::$4 ] { } main:10::clear_screen:44 [ l rem8u#127 y#114 hiscore#110 n#109 clear_screen::n#5 z#2 clear_screen::$5 clear_screen::$4 ] { } main:10::clear_screen:145 [ hiscore#110 rem8u#25 y#18 n#20 score#38 clear_screen::n#5 z#2 clear_screen::$5 clear_screen::$4 ] { } ) always clobbers reg byte a Statement [331] *((char *)clear_screen::$4) = 0 [ clear_screen::n#5 z#2 clear_screen::$5 ] ( main:10::clear_screen:27 [ rem8u#127 y#114 hiscore#110 n#109 clear_screen::n#5 z#2 clear_screen::$5 ] { } main:10::clear_screen:44 [ l rem8u#127 y#114 hiscore#110 n#109 clear_screen::n#5 z#2 clear_screen::$5 ] { } main:10::clear_screen:145 [ hiscore#110 rem8u#25 y#18 n#20 score#38 clear_screen::n#5 z#2 clear_screen::$5 ] { } ) always clobbers reg byte a reg byte y Statement [332] *((char *)clear_screen::$5) = clear_screen::n#5 [ clear_screen::n#5 z#2 ] ( main:10::clear_screen:27 [ rem8u#127 y#114 hiscore#110 n#109 clear_screen::n#5 z#2 ] { } main:10::clear_screen:44 [ l rem8u#127 y#114 hiscore#110 n#109 clear_screen::n#5 z#2 ] { } main:10::clear_screen:145 [ hiscore#110 rem8u#25 y#18 n#20 score#38 clear_screen::n#5 z#2 ] { } ) always clobbers reg byte a reg byte y Statement [339] cputs::c#1 = *cputs::s#10 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#10 cputs::c#1 ] ( main:10::cputs:31 [ rem8u#127 y#114 hiscore#110 n#109 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#10 cputs::c#1 ] { } main:10::cputs:35 [ rem8u#127 y#114 hiscore#110 n#109 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#10 cputs::c#1 ] { } main:10::cputs:39 [ rem8u#127 y#114 hiscore#110 n#109 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#10 cputs::c#1 ] { } main:10::cputs:152 [ hiscore#110 rem8u#25 y#18 n#20 score#38 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#10 cputs::c#1 ] { } main:10::cputs:156 [ hiscore#110 rem8u#25 y#18 n#20 score#38 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#10 cputs::c#1 ] { } main:10::cputs:158 [ hiscore#110 rem8u#25 y#18 n#20 score#38 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#10 cputs::c#1 ] { } main:10::cputs:162 [ hiscore#110 rem8u#25 y#18 n#20 score#38 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#10 cputs::c#1 ] { } main:10::cputs:169 [ rem8u#25 y#18 n#20 hiscore#19 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#10 cputs::c#1 ] { } main:10::cputs:173 [ rem8u#25 y#18 n#20 hiscore#19 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor cputs::s#10 cputs::c#1 ] { } ) always clobbers reg byte a reg byte y Statement [346] m = *((char *) 37140) [ m random::k#4 random::n#4 ] ( main:10::random:66 [ l rem8u#127 y#114 hiscore#110 n#89 z#28 m random::k#4 random::n#4 ] { { random::k#0 = random::k#4 } { random::n#0 = random::n#4 } } main:10::random:109 [ l hiscore#110 tu#13 rem8u#48 y#49 z#102 peephole#52 n#52 score#38 m random::k#4 random::n#4 ] { } main:10::random:111 [ l hiscore#110 tu#13 rem8u#48 y#49 z#102 peephole#52 n#52 duck#0 score#38 m random::k#4 random::n#4 ] { } ) always clobbers reg byte a Statement [352] if(score#13<=$fde8) goto write_score::@15 [ score#13 ] ( main:10::write_score:87 [ l rem8u#127 y#114 hiscore#110 n#89 z#128 score#13 ] { } main:10::write_score:128 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 peephole#12 duck#1 z#100 score#13 ] { { score#13 = score#4 } } main:10::write_score:269 [ l hiscore#110 tu#13 peephole#12 duck#1 z#100 divr8u::rem#11 n#14 y#13 div16u8u::return#2 score#13 ] { { score#13 = score#6 } } ) always clobbers reg byte a Statement [355] m = 0 [ m score#38 ] ( main:10::write_score:87 [ l rem8u#127 y#114 hiscore#110 n#89 z#128 m score#38 ] { } main:10::write_score:128 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 peephole#12 duck#1 z#100 m score#38 ] { { score#13 = score#4 } } main:10::write_score:269 [ l hiscore#110 tu#13 peephole#12 duck#1 z#100 divr8u::rem#11 n#14 y#13 div16u8u::return#2 m score#38 ] { { score#13 = score#6 } } ) always clobbers reg byte a Statement [356] if(m<4) goto write_score::@6 [ m score#38 ] ( main:10::write_score:87 [ l rem8u#127 y#114 hiscore#110 n#89 z#128 m score#38 ] { } main:10::write_score:128 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 peephole#12 duck#1 z#100 m score#38 ] { { score#13 = score#4 } } main:10::write_score:269 [ l hiscore#110 tu#13 peephole#12 duck#1 z#100 divr8u::rem#11 n#14 y#13 div16u8u::return#2 m score#38 ] { { score#13 = score#6 } } ) always clobbers reg byte a Statement [357] utoa::value#1 = score#38 [ score#38 utoa::value#1 ] ( main:10::write_score:87 [ l rem8u#127 y#114 hiscore#110 n#89 z#128 score#38 utoa::value#1 ] { { utoa::value#1 = utoa::value#10 score#38 } } main:10::write_score:128 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 peephole#12 duck#1 z#100 score#38 utoa::value#1 ] { { score#13 = score#4 } { utoa::value#1 = utoa::value#10 score#38 } } main:10::write_score:269 [ l hiscore#110 tu#13 peephole#12 duck#1 z#100 divr8u::rem#11 n#14 y#13 div16u8u::return#2 score#38 utoa::value#1 ] { { score#13 = score#6 } { utoa::value#1 = utoa::value#10 score#38 } } ) always clobbers reg byte a Statement [359] if(score#38<9+1) goto write_score::@2 [ score#38 ] ( main:10::write_score:87 [ l rem8u#127 y#114 hiscore#110 n#89 z#128 score#38 ] { } main:10::write_score:128 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 peephole#12 duck#1 z#100 score#38 ] { { score#13 = score#4 } } main:10::write_score:269 [ l hiscore#110 tu#13 peephole#12 duck#1 z#100 divr8u::rem#11 n#14 y#13 div16u8u::return#2 score#38 ] { { score#13 = score#6 } } ) always clobbers reg byte a Statement [360] *(points+2) = *buffer [ score#38 ] ( main:10::write_score:87 [ l rem8u#127 y#114 hiscore#110 n#89 z#128 score#38 ] { } main:10::write_score:128 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 peephole#12 duck#1 z#100 score#38 ] { { score#13 = score#4 } } main:10::write_score:269 [ l hiscore#110 tu#13 peephole#12 duck#1 z#100 divr8u::rem#11 n#14 y#13 div16u8u::return#2 score#38 ] { { score#13 = score#6 } } ) always clobbers reg byte a Statement [361] *(points+3) = *(buffer+1) [ score#38 ] ( main:10::write_score:87 [ l rem8u#127 y#114 hiscore#110 n#89 z#128 score#38 ] { } main:10::write_score:128 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 peephole#12 duck#1 z#100 score#38 ] { { score#13 = score#4 } } main:10::write_score:269 [ l hiscore#110 tu#13 peephole#12 duck#1 z#100 divr8u::rem#11 n#14 y#13 div16u8u::return#2 score#38 ] { { score#13 = score#6 } } ) always clobbers reg byte a Statement [362] if(score#38<$63+1) goto write_score::@3 [ score#38 ] ( main:10::write_score:87 [ l rem8u#127 y#114 hiscore#110 n#89 z#128 score#38 ] { } main:10::write_score:128 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 peephole#12 duck#1 z#100 score#38 ] { { score#13 = score#4 } } main:10::write_score:269 [ l hiscore#110 tu#13 peephole#12 duck#1 z#100 divr8u::rem#11 n#14 y#13 div16u8u::return#2 score#38 ] { { score#13 = score#6 } } ) always clobbers reg byte a Statement [363] *(points+1) = *buffer [ score#38 ] ( main:10::write_score:87 [ l rem8u#127 y#114 hiscore#110 n#89 z#128 score#38 ] { } main:10::write_score:128 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 peephole#12 duck#1 z#100 score#38 ] { { score#13 = score#4 } } main:10::write_score:269 [ l hiscore#110 tu#13 peephole#12 duck#1 z#100 divr8u::rem#11 n#14 y#13 div16u8u::return#2 score#38 ] { { score#13 = score#6 } } ) always clobbers reg byte a Statement [364] *(points+2) = *(buffer+1) [ score#38 ] ( main:10::write_score:87 [ l rem8u#127 y#114 hiscore#110 n#89 z#128 score#38 ] { } main:10::write_score:128 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 peephole#12 duck#1 z#100 score#38 ] { { score#13 = score#4 } } main:10::write_score:269 [ l hiscore#110 tu#13 peephole#12 duck#1 z#100 divr8u::rem#11 n#14 y#13 div16u8u::return#2 score#38 ] { { score#13 = score#6 } } ) always clobbers reg byte a Statement [365] *(points+3) = *(buffer+2) [ score#38 ] ( main:10::write_score:87 [ l rem8u#127 y#114 hiscore#110 n#89 z#128 score#38 ] { } main:10::write_score:128 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 peephole#12 duck#1 z#100 score#38 ] { { score#13 = score#4 } } main:10::write_score:269 [ l hiscore#110 tu#13 peephole#12 duck#1 z#100 divr8u::rem#11 n#14 y#13 div16u8u::return#2 score#38 ] { { score#13 = score#6 } } ) always clobbers reg byte a Statement [366] chrout::petscii = yellow [ chrout::petscii score#38 ] ( main:10::write_score:87 [ l rem8u#127 y#114 hiscore#110 n#89 z#128 chrout::petscii score#38 ] { } main:10::write_score:128 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 peephole#12 duck#1 z#100 chrout::petscii score#38 ] { { score#13 = score#4 } } main:10::write_score:269 [ l hiscore#110 tu#13 peephole#12 duck#1 z#100 divr8u::rem#11 n#14 y#13 div16u8u::return#2 chrout::petscii score#38 ] { { score#13 = score#6 } } ) always clobbers reg byte a Statement [368] chrout::petscii = home [ chrout::petscii score#38 ] ( main:10::write_score:87 [ l rem8u#127 y#114 hiscore#110 n#89 z#128 chrout::petscii score#38 ] { } main:10::write_score:128 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 peephole#12 duck#1 z#100 chrout::petscii score#38 ] { { score#13 = score#4 } } main:10::write_score:269 [ l hiscore#110 tu#13 peephole#12 duck#1 z#100 divr8u::rem#11 n#14 y#13 div16u8u::return#2 chrout::petscii score#38 ] { { score#13 = score#6 } } ) always clobbers reg byte a Statement [370] *((char *) 211) = 4 [ score#38 ] ( main:10::write_score:87 [ l rem8u#127 y#114 hiscore#110 n#89 z#128 score#38 ] { } main:10::write_score:128 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 peephole#12 duck#1 z#100 score#38 ] { { score#13 = score#4 } } main:10::write_score:269 [ l hiscore#110 tu#13 peephole#12 duck#1 z#100 divr8u::rem#11 n#14 y#13 div16u8u::return#2 score#38 ] { { score#13 = score#6 } } ) always clobbers reg byte a Statement [371] m = 0 [ m score#38 ] ( main:10::write_score:87 [ l rem8u#127 y#114 hiscore#110 n#89 z#128 m score#38 ] { } main:10::write_score:128 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 peephole#12 duck#1 z#100 m score#38 ] { { score#13 = score#4 } } main:10::write_score:269 [ l hiscore#110 tu#13 peephole#12 duck#1 z#100 divr8u::rem#11 n#14 y#13 div16u8u::return#2 m score#38 ] { { score#13 = score#6 } } ) always clobbers reg byte a Statement [372] if(m<4) goto write_score::@10 [ m score#38 ] ( main:10::write_score:87 [ l rem8u#127 y#114 hiscore#110 n#89 z#128 m score#38 ] { } main:10::write_score:128 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 peephole#12 duck#1 z#100 m score#38 ] { { score#13 = score#4 } } main:10::write_score:269 [ l hiscore#110 tu#13 peephole#12 duck#1 z#100 divr8u::rem#11 n#14 y#13 div16u8u::return#2 m score#38 ] { { score#13 = score#6 } } ) always clobbers reg byte a Statement [374] chrout::petscii = points[m] [ m chrout::petscii score#38 ] ( main:10::write_score:87 [ l rem8u#127 y#114 hiscore#110 n#89 z#128 m chrout::petscii score#38 ] { } main:10::write_score:128 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 peephole#12 duck#1 z#100 m chrout::petscii score#38 ] { { score#13 = score#4 } } main:10::write_score:269 [ l hiscore#110 tu#13 peephole#12 duck#1 z#100 divr8u::rem#11 n#14 y#13 div16u8u::return#2 m chrout::petscii score#38 ] { { score#13 = score#6 } } ) always clobbers reg byte a reg byte y Statement [377] points[m] = '0' [ m score#38 ] ( main:10::write_score:87 [ l rem8u#127 y#114 hiscore#110 n#89 z#128 m score#38 ] { } main:10::write_score:128 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 peephole#12 duck#1 z#100 m score#38 ] { { score#13 = score#4 } } main:10::write_score:269 [ l hiscore#110 tu#13 peephole#12 duck#1 z#100 divr8u::rem#11 n#14 y#13 div16u8u::return#2 m score#38 ] { { score#13 = score#6 } } ) always clobbers reg byte a reg byte y Statement asm { lda#0 ldy#0 ldx#0 jsr$ffdb } always clobbers reg byte a reg byte x reg byte y Statement [382] m = 0 [ m wait::n#6 z#53 ] ( main:10::wait:130 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 peephole#12 duck#1 score#38 m wait::n#6 z#53 ] { { z#100 = z#53 } } main:10::wait:212 [ l hiscore#110 tu#13 peephole#12 duck#1 divr8u::rem#11 n#14 y#13 score#8 m wait::n#6 z#53 ] { { z#100 = z#53 } } main:10::wait:238 [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 m wait::n#6 z#53 ] { { z#48 = z#53 } } main:10::wait:254 [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 m wait::n#6 z#53 ] { { z#25 = z#53 } } main:10::wait:271 [ l hiscore#110 tu#13 peephole#12 duck#1 score#38 divr8u::rem#11 n#14 y#13 div16u8u::return#2 m wait::n#6 z#53 ] { { z#100 = z#53 } } ) always clobbers reg byte a Statement [387] if(z#23<$21c) goto wait::@3 [ m wait::n#6 z#23 ] ( main:10::wait:130 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 peephole#12 duck#1 score#38 m wait::n#6 z#23 ] { { z#100 = z#53 } } main:10::wait:212 [ l hiscore#110 tu#13 peephole#12 duck#1 divr8u::rem#11 n#14 y#13 score#8 m wait::n#6 z#23 ] { { z#100 = z#53 } } main:10::wait:238 [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 m wait::n#6 z#23 ] { { z#48 = z#53 } } main:10::wait:254 [ l hiscore#110 tu#13 duck#1 time#17 score#43 divr8u::rem#11 y#35 n#14 m wait::n#6 z#23 ] { { z#25 = z#53 } } main:10::wait:271 [ l hiscore#110 tu#13 peephole#12 duck#1 score#38 divr8u::rem#11 n#14 y#13 div16u8u::return#2 m wait::n#6 z#23 ] { { z#100 = z#53 } } ) always clobbers reg byte a Statement [394] *utoa::buffer#10 = DIGITS[utoa::$11] [ utoa::buffer#10 ] ( main:10::utoa:167 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor rem8u#25 y#18 n#20 hiscore#19 utoa::buffer#10 ] { { utoa::value#10 = utoa::value#2 hiscore#19 } } main:10::write_score:87::utoa:358 [ l rem8u#127 y#114 hiscore#110 n#89 z#128 score#38 utoa::buffer#10 ] { { utoa::value#1 = utoa::value#10 score#38 } } main:10::write_score:128::utoa:358 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 peephole#12 duck#1 z#100 score#38 utoa::buffer#10 ] { { score#13 = score#4 } { utoa::value#1 = utoa::value#10 score#38 } } main:10::write_score:269::utoa:358 [ l hiscore#110 tu#13 peephole#12 duck#1 z#100 divr8u::rem#11 n#14 y#13 div16u8u::return#2 score#38 utoa::buffer#10 ] { { score#13 = score#6 } { utoa::value#1 = utoa::value#10 score#38 } } ) always clobbers reg byte a reg byte y Statement [395] utoa::buffer#3 = ++ utoa::buffer#10 [ utoa::buffer#3 ] ( main:10::utoa:167 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor rem8u#25 y#18 n#20 hiscore#19 utoa::buffer#3 ] { { utoa::value#10 = utoa::value#2 hiscore#19 } } main:10::write_score:87::utoa:358 [ l rem8u#127 y#114 hiscore#110 n#89 z#128 score#38 utoa::buffer#3 ] { { utoa::value#1 = utoa::value#10 score#38 } } main:10::write_score:128::utoa:358 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 peephole#12 duck#1 z#100 score#38 utoa::buffer#3 ] { { score#13 = score#4 } { utoa::value#1 = utoa::value#10 score#38 } } main:10::write_score:269::utoa:358 [ l hiscore#110 tu#13 peephole#12 duck#1 z#100 divr8u::rem#11 n#14 y#13 div16u8u::return#2 score#38 utoa::buffer#3 ] { { score#13 = score#6 } { utoa::value#1 = utoa::value#10 score#38 } } ) always clobbers reg byte a Statement [396] *utoa::buffer#3 = 0 [ ] ( main:10::utoa:167 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor rem8u#25 y#18 n#20 hiscore#19 ] { { utoa::value#10 = utoa::value#2 hiscore#19 } } main:10::write_score:87::utoa:358 [ l rem8u#127 y#114 hiscore#110 n#89 z#128 score#38 ] { { utoa::value#1 = utoa::value#10 score#38 } } main:10::write_score:128::utoa:358 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 peephole#12 duck#1 z#100 score#38 ] { { score#13 = score#4 } { utoa::value#1 = utoa::value#10 score#38 } } main:10::write_score:269::utoa:358 [ l hiscore#110 tu#13 peephole#12 duck#1 z#100 divr8u::rem#11 n#14 y#13 div16u8u::return#2 score#38 ] { { score#13 = score#6 } { utoa::value#1 = utoa::value#10 score#38 } } ) always clobbers reg byte a reg byte y Statement [398] utoa::$10 = utoa::digit#2 << 1 [ utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::$10 ] ( main:10::utoa:167 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor rem8u#25 y#18 n#20 hiscore#19 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::$10 ] { { utoa::value#10 = utoa::value#2 hiscore#19 } } main:10::write_score:87::utoa:358 [ l rem8u#127 y#114 hiscore#110 n#89 z#128 score#38 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::$10 ] { { utoa::value#1 = utoa::value#10 score#38 } } main:10::write_score:128::utoa:358 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 peephole#12 duck#1 z#100 score#38 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::$10 ] { { score#13 = score#4 } { utoa::value#1 = utoa::value#10 score#38 } } main:10::write_score:269::utoa:358 [ l hiscore#110 tu#13 peephole#12 duck#1 z#100 divr8u::rem#11 n#14 y#13 div16u8u::return#2 score#38 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::$10 ] { { score#13 = score#6 } { utoa::value#1 = utoa::value#10 score#38 } } ) always clobbers reg byte a Statement [399] utoa::digit_value#0 = RADIX_DECIMAL_VALUES[utoa::$10] [ utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] ( main:10::utoa:167 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor rem8u#25 y#18 n#20 hiscore#19 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] { { utoa::value#10 = utoa::value#2 hiscore#19 } } main:10::write_score:87::utoa:358 [ l rem8u#127 y#114 hiscore#110 n#89 z#128 score#38 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] { { utoa::value#1 = utoa::value#10 score#38 } } main:10::write_score:128::utoa:358 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 peephole#12 duck#1 z#100 score#38 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] { { score#13 = score#4 } { utoa::value#1 = utoa::value#10 score#38 } } main:10::write_score:269::utoa:358 [ l hiscore#110 tu#13 peephole#12 duck#1 z#100 divr8u::rem#11 n#14 y#13 div16u8u::return#2 score#38 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] { { score#13 = score#6 } { utoa::value#1 = utoa::value#10 score#38 } } ) always clobbers reg byte a Statement [401] if(utoa::value#3>=utoa::digit_value#0) goto utoa::@5 [ utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] ( main:10::utoa:167 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor rem8u#25 y#18 n#20 hiscore#19 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] { { utoa::value#10 = utoa::value#2 hiscore#19 } } main:10::write_score:87::utoa:358 [ l rem8u#127 y#114 hiscore#110 n#89 z#128 score#38 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] { { utoa::value#1 = utoa::value#10 score#38 } } main:10::write_score:128::utoa:358 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 peephole#12 duck#1 z#100 score#38 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] { { score#13 = score#4 } { utoa::value#1 = utoa::value#10 score#38 } } main:10::write_score:269::utoa:358 [ l hiscore#110 tu#13 peephole#12 duck#1 z#100 divr8u::rem#11 n#14 y#13 div16u8u::return#2 score#38 utoa::digit#2 utoa::value#3 utoa::started#2 utoa::buffer#10 utoa::digit_value#0 ] { { score#13 = score#6 } { utoa::value#1 = utoa::value#10 score#38 } } ) always clobbers reg byte a Statement [404] utoa_append::buffer#0 = utoa::buffer#10 [ utoa::digit#2 utoa::value#3 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 ] ( main:10::utoa:167 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor rem8u#25 y#18 n#20 hiscore#19 utoa::digit#2 utoa::value#3 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 ] { { utoa::value#10 = utoa::value#2 hiscore#19 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:10::write_score:87::utoa:358 [ l rem8u#127 y#114 hiscore#110 n#89 z#128 score#38 utoa::digit#2 utoa::value#3 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 ] { { utoa::value#1 = utoa::value#10 score#38 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:10::write_score:128::utoa:358 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 peephole#12 duck#1 z#100 score#38 utoa::digit#2 utoa::value#3 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 ] { { score#13 = score#4 } { utoa::value#1 = utoa::value#10 score#38 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:10::write_score:269::utoa:358 [ l hiscore#110 tu#13 peephole#12 duck#1 z#100 divr8u::rem#11 n#14 y#13 div16u8u::return#2 score#38 utoa::digit#2 utoa::value#3 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 ] { { score#13 = score#6 } { utoa::value#1 = utoa::value#10 score#38 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a Statement [405] utoa_append::value#0 = utoa::value#3 [ utoa::digit#2 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 utoa_append::value#0 ] ( main:10::utoa:167 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor rem8u#25 y#18 n#20 hiscore#19 utoa::digit#2 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 utoa_append::value#0 ] { { utoa::value#10 = utoa::value#2 hiscore#19 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:10::write_score:87::utoa:358 [ l rem8u#127 y#114 hiscore#110 n#89 z#128 score#38 utoa::digit#2 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 utoa_append::value#0 ] { { utoa::value#1 = utoa::value#10 score#38 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:10::write_score:128::utoa:358 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 peephole#12 duck#1 z#100 score#38 utoa::digit#2 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 utoa_append::value#0 ] { { score#13 = score#4 } { utoa::value#1 = utoa::value#10 score#38 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:10::write_score:269::utoa:358 [ l hiscore#110 tu#13 peephole#12 duck#1 z#100 divr8u::rem#11 n#14 y#13 div16u8u::return#2 score#38 utoa::digit#2 utoa::buffer#10 utoa::digit_value#0 utoa_append::buffer#0 utoa_append::value#0 ] { { score#13 = score#6 } { utoa::value#1 = utoa::value#10 score#38 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a Statement [406] utoa_append::sub#0 = utoa::digit_value#0 [ utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::value#0 utoa_append::sub#0 ] ( main:10::utoa:167 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor rem8u#25 y#18 n#20 hiscore#19 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::value#0 utoa_append::sub#0 ] { { utoa::value#10 = utoa::value#2 hiscore#19 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:10::write_score:87::utoa:358 [ l rem8u#127 y#114 hiscore#110 n#89 z#128 score#38 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::value#0 utoa_append::sub#0 ] { { utoa::value#1 = utoa::value#10 score#38 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:10::write_score:128::utoa:358 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 peephole#12 duck#1 z#100 score#38 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::value#0 utoa_append::sub#0 ] { { score#13 = score#4 } { utoa::value#1 = utoa::value#10 score#38 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:10::write_score:269::utoa:358 [ l hiscore#110 tu#13 peephole#12 duck#1 z#100 divr8u::rem#11 n#14 y#13 div16u8u::return#2 score#38 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::value#0 utoa_append::sub#0 ] { { score#13 = score#6 } { utoa::value#1 = utoa::value#10 score#38 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a Statement [408] utoa_append::return#0 = utoa_append::value#2 [ utoa::digit#2 utoa::buffer#10 utoa_append::return#0 ] ( main:10::utoa:167 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor rem8u#25 y#18 n#20 hiscore#19 utoa::digit#2 utoa::buffer#10 utoa_append::return#0 ] { { utoa::value#10 = utoa::value#2 hiscore#19 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:10::write_score:87::utoa:358 [ l rem8u#127 y#114 hiscore#110 n#89 z#128 score#38 utoa::digit#2 utoa::buffer#10 utoa_append::return#0 ] { { utoa::value#1 = utoa::value#10 score#38 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:10::write_score:128::utoa:358 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 peephole#12 duck#1 z#100 score#38 utoa::digit#2 utoa::buffer#10 utoa_append::return#0 ] { { score#13 = score#4 } { utoa::value#1 = utoa::value#10 score#38 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:10::write_score:269::utoa:358 [ l hiscore#110 tu#13 peephole#12 duck#1 z#100 divr8u::rem#11 n#14 y#13 div16u8u::return#2 score#38 utoa::digit#2 utoa::buffer#10 utoa_append::return#0 ] { { score#13 = score#6 } { utoa::value#1 = utoa::value#10 score#38 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a Statement [409] utoa::value#0 = utoa_append::return#0 [ utoa::digit#2 utoa::buffer#10 utoa::value#0 ] ( main:10::utoa:167 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor rem8u#25 y#18 n#20 hiscore#19 utoa::digit#2 utoa::buffer#10 utoa::value#0 ] { { utoa::value#10 = utoa::value#2 hiscore#19 } } main:10::write_score:87::utoa:358 [ l rem8u#127 y#114 hiscore#110 n#89 z#128 score#38 utoa::digit#2 utoa::buffer#10 utoa::value#0 ] { { utoa::value#1 = utoa::value#10 score#38 } } main:10::write_score:128::utoa:358 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 peephole#12 duck#1 z#100 score#38 utoa::digit#2 utoa::buffer#10 utoa::value#0 ] { { score#13 = score#4 } { utoa::value#1 = utoa::value#10 score#38 } } main:10::write_score:269::utoa:358 [ l hiscore#110 tu#13 peephole#12 duck#1 z#100 divr8u::rem#11 n#14 y#13 div16u8u::return#2 score#38 utoa::digit#2 utoa::buffer#10 utoa::value#0 ] { { score#13 = score#6 } { utoa::value#1 = utoa::value#10 score#38 } } ) always clobbers reg byte a Statement asm { jsr$ffde stal stxm } always clobbers reg byte a reg byte x reg byte y Statement [412] read_chrono::$0 = m << 8 [ l read_chrono::$0 ] ( main:10::read_chrono:182 [ hiscore#110 y#18 tu#13 peephole#12 duck#1 score#19 z#100 l read_chrono::$0 ] { { div16u8u::return#0 = div16u8u::return#2 } } ) always clobbers reg byte a Statement [413] div16u8u::dividend#0 = read_chrono::$0 + l [ l div16u8u::dividend#0 ] ( main:10::read_chrono:182 [ hiscore#110 y#18 tu#13 peephole#12 duck#1 score#19 z#100 l div16u8u::dividend#0 ] { { div16u8u::return#0 = div16u8u::return#2 } } ) always clobbers reg byte a Statement [415] div16u8u::return#2 = div16u8u::return#0 [ l divr8u::rem#11 div16u8u::return#2 ] ( main:10::read_chrono:182 [ hiscore#110 y#18 tu#13 peephole#12 duck#1 score#19 z#100 l divr8u::rem#11 div16u8u::return#2 ] { { div16u8u::return#0 = div16u8u::return#2 } } ) always clobbers reg byte a Statement [416] *((char *)$1e15+c) = 7 [ l divr8u::rem#11 div16u8u::return#2 ] ( main:10::read_chrono:182 [ hiscore#110 y#18 tu#13 peephole#12 duck#1 score#19 z#100 l divr8u::rem#11 div16u8u::return#2 ] { } ) always clobbers reg byte a Statement [417] *((char *) 7701) = $b9 [ l divr8u::rem#11 div16u8u::return#2 ] ( main:10::read_chrono:182 [ hiscore#110 y#18 tu#13 peephole#12 duck#1 score#19 z#100 l divr8u::rem#11 div16u8u::return#2 ] { } ) always clobbers reg byte a Statement [418] if(div16u8u::return#2>=$a) goto read_chrono::@return [ l divr8u::rem#11 div16u8u::return#2 ] ( main:10::read_chrono:182 [ hiscore#110 y#18 tu#13 peephole#12 duck#1 score#19 z#100 l divr8u::rem#11 div16u8u::return#2 ] { } ) always clobbers reg byte a Statement [419] read_chrono::$5 = $b9 - div16u8u::return#2 [ l divr8u::rem#11 div16u8u::return#2 read_chrono::$5 ] ( main:10::read_chrono:182 [ hiscore#110 y#18 tu#13 peephole#12 duck#1 score#19 z#100 l divr8u::rem#11 div16u8u::return#2 read_chrono::$5 ] { } ) always clobbers reg byte a Statement [420] *((char *) 7701) = read_chrono::$5 [ l divr8u::rem#11 div16u8u::return#2 ] ( main:10::read_chrono:182 [ hiscore#110 y#18 tu#13 peephole#12 duck#1 score#19 z#100 l divr8u::rem#11 div16u8u::return#2 ] { } ) always clobbers reg byte a Statement [423] conio_line_text[conio_cursor_x] = cputc::c#0 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] ( main:10::cputs:31::cputc:344 [ rem8u#127 y#114 hiscore#110 n#109 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:35::cputc:344 [ rem8u#127 y#114 hiscore#110 n#109 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:39::cputc:344 [ rem8u#127 y#114 hiscore#110 n#109 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:152::cputc:344 [ hiscore#110 rem8u#25 y#18 n#20 score#38 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:156::cputc:344 [ hiscore#110 rem8u#25 y#18 n#20 score#38 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:158::cputc:344 [ hiscore#110 rem8u#25 y#18 n#20 score#38 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:162::cputc:344 [ hiscore#110 rem8u#25 y#18 n#20 score#38 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:169::cputc:344 [ rem8u#25 y#18 n#20 hiscore#19 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:173::cputc:344 [ rem8u#25 y#18 n#20 hiscore#19 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte y Statement [424] conio_line_color[conio_cursor_x] = conio_textcolor [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] ( main:10::cputs:31::cputc:344 [ rem8u#127 y#114 hiscore#110 n#109 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:35::cputc:344 [ rem8u#127 y#114 hiscore#110 n#109 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:39::cputc:344 [ rem8u#127 y#114 hiscore#110 n#109 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:152::cputc:344 [ hiscore#110 rem8u#25 y#18 n#20 score#38 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:156::cputc:344 [ hiscore#110 rem8u#25 y#18 n#20 score#38 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:158::cputc:344 [ hiscore#110 rem8u#25 y#18 n#20 score#38 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:162::cputc:344 [ hiscore#110 rem8u#25 y#18 n#20 score#38 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:169::cputc:344 [ rem8u#25 y#18 n#20 hiscore#19 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:173::cputc:344 [ rem8u#25 y#18 n#20 hiscore#19 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a reg byte y Statement [426] if(conio_cursor_x!=$28) goto cputc::@return [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] ( main:10::cputs:31::cputc:344 [ rem8u#127 y#114 hiscore#110 n#109 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:35::cputc:344 [ rem8u#127 y#114 hiscore#110 n#109 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:39::cputc:344 [ rem8u#127 y#114 hiscore#110 n#109 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:152::cputc:344 [ hiscore#110 rem8u#25 y#18 n#20 score#38 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:156::cputc:344 [ hiscore#110 rem8u#25 y#18 n#20 score#38 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:158::cputc:344 [ hiscore#110 rem8u#25 y#18 n#20 score#38 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:162::cputc:344 [ hiscore#110 rem8u#25 y#18 n#20 score#38 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:169::cputc:344 [ rem8u#25 y#18 n#20 hiscore#19 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:173::cputc:344 [ rem8u#25 y#18 n#20 hiscore#19 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a Statement [434] if(utoa_append::value#2>=utoa_append::sub#0) goto utoa_append::@2 [ utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#2 utoa_append::digit#2 ] ( main:10::utoa:167::utoa_append:407 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor rem8u#25 y#18 n#20 hiscore#19 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#2 utoa_append::digit#2 ] { { utoa::value#10 = utoa::value#2 hiscore#19 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:10::write_score:87::utoa:358::utoa_append:407 [ l rem8u#127 y#114 hiscore#110 n#89 z#128 score#38 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#2 utoa_append::digit#2 ] { { utoa::value#1 = utoa::value#10 score#38 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:10::write_score:128::utoa:358::utoa_append:407 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 peephole#12 duck#1 z#100 score#38 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#2 utoa_append::digit#2 ] { { score#13 = score#4 } { utoa::value#1 = utoa::value#10 score#38 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:10::write_score:269::utoa:358::utoa_append:407 [ l hiscore#110 tu#13 peephole#12 duck#1 z#100 divr8u::rem#11 n#14 y#13 div16u8u::return#2 score#38 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#2 utoa_append::digit#2 ] { { score#13 = score#6 } { utoa::value#1 = utoa::value#10 score#38 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a Statement [435] *utoa_append::buffer#0 = DIGITS[utoa_append::digit#2] [ utoa_append::value#2 ] ( main:10::utoa:167::utoa_append:407 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor rem8u#25 y#18 n#20 hiscore#19 utoa::digit#2 utoa::buffer#10 utoa_append::value#2 ] { { utoa::value#10 = utoa::value#2 hiscore#19 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:10::write_score:87::utoa:358::utoa_append:407 [ l rem8u#127 y#114 hiscore#110 n#89 z#128 score#38 utoa::digit#2 utoa::buffer#10 utoa_append::value#2 ] { { utoa::value#1 = utoa::value#10 score#38 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:10::write_score:128::utoa:358::utoa_append:407 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 peephole#12 duck#1 z#100 score#38 utoa::digit#2 utoa::buffer#10 utoa_append::value#2 ] { { score#13 = score#4 } { utoa::value#1 = utoa::value#10 score#38 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:10::write_score:269::utoa:358::utoa_append:407 [ l hiscore#110 tu#13 peephole#12 duck#1 z#100 divr8u::rem#11 n#14 y#13 div16u8u::return#2 score#38 utoa::digit#2 utoa::buffer#10 utoa_append::value#2 ] { { score#13 = score#6 } { utoa::value#1 = utoa::value#10 score#38 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a reg byte y Statement [438] utoa_append::value#1 = utoa_append::value#2 - utoa_append::sub#0 [ utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#1 utoa_append::digit#1 ] ( main:10::utoa:167::utoa_append:407 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor rem8u#25 y#18 n#20 hiscore#19 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#1 utoa_append::digit#1 ] { { utoa::value#10 = utoa::value#2 hiscore#19 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:10::write_score:87::utoa:358::utoa_append:407 [ l rem8u#127 y#114 hiscore#110 n#89 z#128 score#38 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#1 utoa_append::digit#1 ] { { utoa::value#1 = utoa::value#10 score#38 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:10::write_score:128::utoa:358::utoa_append:407 [ l hiscore#110 rem8u#25 y#18 n#20 tu#1 peephole#12 duck#1 z#100 score#38 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#1 utoa_append::digit#1 ] { { score#13 = score#4 } { utoa::value#1 = utoa::value#10 score#38 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } main:10::write_score:269::utoa:358::utoa_append:407 [ l hiscore#110 tu#13 peephole#12 duck#1 z#100 divr8u::rem#11 n#14 y#13 div16u8u::return#2 score#38 utoa::digit#2 utoa::buffer#10 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#1 utoa_append::digit#1 ] { { score#13 = score#6 } { utoa::value#1 = utoa::value#10 score#38 } { utoa_append::buffer#0 = utoa::buffer#10 } { utoa_append::value#0 = utoa::value#3 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a Statement [450] conio_line_text = conio_line_text + $28 [ conio_cursor_y conio_line_text conio_line_color conio_textcolor ] ( main:10::cputs:31::cputc:344::cputln:428 [ rem8u#127 y#114 hiscore#110 n#109 cputs::s#0 conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:35::cputc:344::cputln:428 [ rem8u#127 y#114 hiscore#110 n#109 cputs::s#0 conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:39::cputc:344::cputln:428 [ rem8u#127 y#114 hiscore#110 n#109 cputs::s#0 conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:152::cputc:344::cputln:428 [ hiscore#110 rem8u#25 y#18 n#20 score#38 cputs::s#0 conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:156::cputc:344::cputln:428 [ hiscore#110 rem8u#25 y#18 n#20 score#38 cputs::s#0 conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:158::cputc:344::cputln:428 [ hiscore#110 rem8u#25 y#18 n#20 score#38 cputs::s#0 conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:162::cputc:344::cputln:428 [ hiscore#110 rem8u#25 y#18 n#20 score#38 cputs::s#0 conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:169::cputc:344::cputln:428 [ rem8u#25 y#18 n#20 hiscore#19 cputs::s#0 conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:173::cputc:344::cputln:428 [ rem8u#25 y#18 n#20 hiscore#19 cputs::s#0 conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:31::cputc:344::cputln:431 [ rem8u#127 y#114 hiscore#110 n#109 cputs::s#0 conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:35::cputc:344::cputln:431 [ rem8u#127 y#114 hiscore#110 n#109 cputs::s#0 conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:39::cputc:344::cputln:431 [ rem8u#127 y#114 hiscore#110 n#109 cputs::s#0 conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:152::cputc:344::cputln:431 [ hiscore#110 rem8u#25 y#18 n#20 score#38 cputs::s#0 conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:156::cputc:344::cputln:431 [ hiscore#110 rem8u#25 y#18 n#20 score#38 cputs::s#0 conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:158::cputc:344::cputln:431 [ hiscore#110 rem8u#25 y#18 n#20 score#38 cputs::s#0 conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:162::cputc:344::cputln:431 [ hiscore#110 rem8u#25 y#18 n#20 score#38 cputs::s#0 conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:169::cputc:344::cputln:431 [ rem8u#25 y#18 n#20 hiscore#19 cputs::s#0 conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:173::cputc:344::cputln:431 [ rem8u#25 y#18 n#20 hiscore#19 cputs::s#0 conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a Statement [451] conio_line_color = conio_line_color + $28 [ conio_cursor_y conio_line_text conio_line_color conio_textcolor ] ( main:10::cputs:31::cputc:344::cputln:428 [ rem8u#127 y#114 hiscore#110 n#109 cputs::s#0 conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:35::cputc:344::cputln:428 [ rem8u#127 y#114 hiscore#110 n#109 cputs::s#0 conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:39::cputc:344::cputln:428 [ rem8u#127 y#114 hiscore#110 n#109 cputs::s#0 conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:152::cputc:344::cputln:428 [ hiscore#110 rem8u#25 y#18 n#20 score#38 cputs::s#0 conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:156::cputc:344::cputln:428 [ hiscore#110 rem8u#25 y#18 n#20 score#38 cputs::s#0 conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:158::cputc:344::cputln:428 [ hiscore#110 rem8u#25 y#18 n#20 score#38 cputs::s#0 conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:162::cputc:344::cputln:428 [ hiscore#110 rem8u#25 y#18 n#20 score#38 cputs::s#0 conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:169::cputc:344::cputln:428 [ rem8u#25 y#18 n#20 hiscore#19 cputs::s#0 conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:173::cputc:344::cputln:428 [ rem8u#25 y#18 n#20 hiscore#19 cputs::s#0 conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:31::cputc:344::cputln:431 [ rem8u#127 y#114 hiscore#110 n#109 cputs::s#0 conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:35::cputc:344::cputln:431 [ rem8u#127 y#114 hiscore#110 n#109 cputs::s#0 conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:39::cputc:344::cputln:431 [ rem8u#127 y#114 hiscore#110 n#109 cputs::s#0 conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:152::cputc:344::cputln:431 [ hiscore#110 rem8u#25 y#18 n#20 score#38 cputs::s#0 conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:156::cputc:344::cputln:431 [ hiscore#110 rem8u#25 y#18 n#20 score#38 cputs::s#0 conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:158::cputc:344::cputln:431 [ hiscore#110 rem8u#25 y#18 n#20 score#38 cputs::s#0 conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:162::cputc:344::cputln:431 [ hiscore#110 rem8u#25 y#18 n#20 score#38 cputs::s#0 conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:169::cputc:344::cputln:431 [ rem8u#25 y#18 n#20 hiscore#19 cputs::s#0 conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:173::cputc:344::cputln:431 [ rem8u#25 y#18 n#20 hiscore#19 cputs::s#0 conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a Statement [452] conio_cursor_x = 0 [ conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] ( main:10::cputs:31::cputc:344::cputln:428 [ rem8u#127 y#114 hiscore#110 n#109 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:35::cputc:344::cputln:428 [ rem8u#127 y#114 hiscore#110 n#109 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:39::cputc:344::cputln:428 [ rem8u#127 y#114 hiscore#110 n#109 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:152::cputc:344::cputln:428 [ hiscore#110 rem8u#25 y#18 n#20 score#38 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:156::cputc:344::cputln:428 [ hiscore#110 rem8u#25 y#18 n#20 score#38 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:158::cputc:344::cputln:428 [ hiscore#110 rem8u#25 y#18 n#20 score#38 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:162::cputc:344::cputln:428 [ hiscore#110 rem8u#25 y#18 n#20 score#38 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:169::cputc:344::cputln:428 [ rem8u#25 y#18 n#20 hiscore#19 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:173::cputc:344::cputln:428 [ rem8u#25 y#18 n#20 hiscore#19 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:31::cputc:344::cputln:431 [ rem8u#127 y#114 hiscore#110 n#109 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:35::cputc:344::cputln:431 [ rem8u#127 y#114 hiscore#110 n#109 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:39::cputc:344::cputln:431 [ rem8u#127 y#114 hiscore#110 n#109 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:152::cputc:344::cputln:431 [ hiscore#110 rem8u#25 y#18 n#20 score#38 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:156::cputc:344::cputln:431 [ hiscore#110 rem8u#25 y#18 n#20 score#38 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:158::cputc:344::cputln:431 [ hiscore#110 rem8u#25 y#18 n#20 score#38 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:162::cputc:344::cputln:431 [ hiscore#110 rem8u#25 y#18 n#20 score#38 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:169::cputc:344::cputln:431 [ rem8u#25 y#18 n#20 hiscore#19 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } main:10::cputs:173::cputc:344::cputln:431 [ rem8u#25 y#18 n#20 hiscore#19 cputs::s#0 conio_cursor_x conio_cursor_y conio_line_text conio_line_color conio_textcolor ] { { cputc::c#0 = cputs::c#1 } } ) always clobbers reg byte a Statement [459] divr8u::$1 = divr8u::dividend#3 & $80 [ divr8u::dividend#3 divr8u::quotient#3 divr8u::i#2 divr8u::rem#0 divr8u::$1 ] ( main:10::read_chrono:182::div16u8u:414::divr8u:440 [ hiscore#110 y#18 tu#13 peephole#12 duck#1 score#19 z#100 l div16u8u::dividend#0 divr8u::dividend#3 divr8u::quotient#3 divr8u::i#2 divr8u::rem#0 divr8u::$1 ] { { div16u8u::return#0 = div16u8u::return#2 } { divr8u::dividend#1 = divr8u::dividend#5 } { divr8u::return#0 = divr8u::return#2 } } main:10::read_chrono:182::div16u8u:414::divr8u:445 [ hiscore#110 y#18 tu#13 peephole#12 duck#1 score#19 z#100 l div16u8u::quotient_hi#0 divr8u::dividend#3 divr8u::quotient#3 divr8u::i#2 divr8u::rem#0 divr8u::$1 ] { { div16u8u::return#0 = div16u8u::return#2 } { divr8u::rem#10 = divr8u::rem#4 divr8u::rem#11 } { divr8u::dividend#2 = divr8u::dividend#5 } { divr8u::return#0 = divr8u::return#3 } } ) always clobbers reg byte a Statement [461] divr8u::rem#1 = divr8u::rem#0 | 1 [ divr8u::dividend#3 divr8u::quotient#3 divr8u::i#2 divr8u::rem#1 ] ( main:10::read_chrono:182::div16u8u:414::divr8u:440 [ hiscore#110 y#18 tu#13 peephole#12 duck#1 score#19 z#100 l div16u8u::dividend#0 divr8u::dividend#3 divr8u::quotient#3 divr8u::i#2 divr8u::rem#1 ] { { div16u8u::return#0 = div16u8u::return#2 } { divr8u::dividend#1 = divr8u::dividend#5 } { divr8u::return#0 = divr8u::return#2 } } main:10::read_chrono:182::div16u8u:414::divr8u:445 [ hiscore#110 y#18 tu#13 peephole#12 duck#1 score#19 z#100 l div16u8u::quotient_hi#0 divr8u::dividend#3 divr8u::quotient#3 divr8u::i#2 divr8u::rem#1 ] { { div16u8u::return#0 = div16u8u::return#2 } { divr8u::rem#10 = divr8u::rem#4 divr8u::rem#11 } { divr8u::dividend#2 = divr8u::dividend#5 } { divr8u::return#0 = divr8u::return#3 } } ) always clobbers reg byte a Statement [465] if(divr8u::rem#6DEFAULT_SCREEN sta.z conio_line_text+1 // [4] conio_line_color = COLORRAM -- pbuz1=pbuc1 lda #COLORRAM sta.z conio_line_color+1 // [5] conio_textcolor = LIGHT_BLUE -- vbuz1=vbuc1 lda #LIGHT_BLUE sta.z conio_textcolor // [6] l = 0 -- vbuz1=vbuc1 lda #0 sta.z l // [7] m = 0 -- vbuz1=vbuc1 lda #0 sta.z m // [8] call conio_c64_init jsr conio_c64_init // [9] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1] __b1_from___init1: jmp __b1 // __start::@1 __b1: // [10] call main jsr main jmp __breturn // __start::@return __breturn: // [11] return rts } // conio_c64_init // Set initial cursor position conio_c64_init: { // Position cursor at current line .label BASIC_CURSOR_LINE = $d6 .label line = $4c // [12] conio_c64_init::line#0 = *conio_c64_init::BASIC_CURSOR_LINE -- vbuz1=_deref_pbuc1 lda.z BASIC_CURSOR_LINE sta.z line // [13] if(conio_c64_init::line#0<$19) goto conio_c64_init::@2 -- vbuz1_lt_vbuc1_then_la1 lda.z line cmp #$19 bcc __b2_from_conio_c64_init // [15] phi from conio_c64_init to conio_c64_init::@1 [phi:conio_c64_init->conio_c64_init::@1] __b1_from_conio_c64_init: // [15] phi conio_c64_init::line#2 = $19-1 [phi:conio_c64_init->conio_c64_init::@1#0] -- vbuz1=vbuc1 lda #$19-1 sta.z line jmp __b1 // [14] phi from conio_c64_init to conio_c64_init::@2 [phi:conio_c64_init->conio_c64_init::@2] __b2_from_conio_c64_init: jmp __b2 // conio_c64_init::@2 __b2: // [15] phi from conio_c64_init::@2 to conio_c64_init::@1 [phi:conio_c64_init::@2->conio_c64_init::@1] __b1_from___b2: // [15] phi conio_c64_init::line#2 = conio_c64_init::line#0 [phi:conio_c64_init::@2->conio_c64_init::@1#0] -- register_copy jmp __b1 // conio_c64_init::@1 __b1: // [16] gotoxy::y#2 = conio_c64_init::line#2 // [17] call gotoxy // [304] phi from conio_c64_init::@1 to gotoxy [phi:conio_c64_init::@1->gotoxy] gotoxy_from___b1: // [304] phi gotoxy::y#4 = gotoxy::y#2 [phi:conio_c64_init::@1->gotoxy#0] -- register_copy jsr gotoxy jmp __breturn // conio_c64_init::@return __breturn: // [18] return rts } // main main: { .label __3 = $70 .label __26 = 8 .label __29 = 5 .label __35 = $66 .label __57 = $64 .label __61 = $d .label __66 = $b .label __69 = $19 .label __72 = $1b .label __78 = $10 .label __81 = 7 .label __84 = 3 .label __88 = $36 .label __92 = $37 .label __96 = $2e .label __97 = $2e .label __104 = $5d .label __107 = $5f .label __110 = $61 .label __119 = $4a .label __120 = $51 .label __122 = $53 .label __124 = $4a .label __125 = $4d .label __127 = $3a .label __128 = $3a .label __130 = $3c .label __131 = $3c .label __133 = $3e .label __134 = $3e .label __136 = $4f .label __138 = $40 .label __139 = $40 .label __141 = $42 .label __142 = $42 .label __144 = $44 .label __145 = $44 .label __150 = $69 .label __151 = $57 .label __152 = $57 .label __153 = $59 .label __154 = $59 .label __155 = $5b .label __156 = $5b .label __177 = 8 .label __179 = $38 .label __180 = $2e // [19] *((char *) 36879) = 8 -- _deref_pbuc1=vbuc2 lda #8 sta $900f // [20] chrout::petscii = lock -- vbuz1=vbuc1 lda #lock sta.z chrout.petscii // [21] call chrout // border and black paper jsr chrout jmp __b50 // main::@50 __b50: // [22] chrout::petscii = lower -- vbuz1=vbuc1 lda #lower sta.z chrout.petscii // [23] call chrout //Lock UpperCase to Lowercase key jsr chrout jmp __b51 // main::@51 __b51: // [24] m = 0 -- vbuz1=vbuc1 lda #0 sta.z m jmp __b1 //Put text in Lowercase set // main::@1 __b1: // [25] if(m<$28) goto main::@2 -- vbuz1_lt_vbuc1_then_la1 lda.z m cmp #$28 bcc __b2 // [26] phi from main::@1 to main::@3 [phi:main::@1->main::@3] __b3_from___b1: // [26] phi n#109 = 0 [phi:main::@1->main::@3#0] -- vbuz1=vbuc1 lda #0 sta.z n // [26] phi hiscore#110 = 0 [phi:main::@1->main::@3#1] -- vwuz1=vwuc1 lda #<0 sta.z hiscore_1 lda #>0 sta.z hiscore_1+1 // [26] phi y#114 = 0 [phi:main::@1->main::@3#2] -- vwuz1=vwuc1 lda #<0 sta.z y lda #>0 sta.z y+1 // [26] phi rem8u#127 = 0 [phi:main::@1->main::@3#3] -- vbuz1=vbuc1 lda #0 sta.z rem8u jmp __b3 // Load udgs. From 0-->39; // main::@3 __b3: // [27] call clear_screen // [321] phi from main::@3 to clear_screen [phi:main::@3->clear_screen] clear_screen_from___b3: // [321] phi clear_screen::n#5 = $20 [phi:main::@3->clear_screen#0] -- vbuz1=vbuc1 lda #$20 sta.z clear_screen.n jsr clear_screen // [28] phi from main::@3 to main::@52 [phi:main::@3->main::@52] __b52_from___b3: jmp __b52 // main::@52 __b52: // [29] call textcolor // Clear Screen with spaces & black ink // [334] phi from main::@52 to textcolor [phi:main::@52->textcolor] textcolor_from___b52: // [334] phi textcolor::color#7 = 7 [phi:main::@52->textcolor#0] -- vbuz1=vbuc1 lda #7 sta.z textcolor.color jsr textcolor // [30] phi from main::@52 to main::@53 [phi:main::@52->main::@53] __b53_from___b52: jmp __b53 // main::@53 __b53: // [31] call cputs // [337] phi from main::@53 to cputs [phi:main::@53->cputs] cputs_from___b53: // [337] phi cputs::s#11 = intro [phi:main::@53->cputs#0] -- pbuz1=pbuc1 lda #intro sta.z cputs.s+1 jsr cputs // [32] phi from main::@53 to main::@54 [phi:main::@53->main::@54] __b54_from___b53: jmp __b54 // main::@54 __b54: // [33] call textcolor // Yellow ink // [334] phi from main::@54 to textcolor [phi:main::@54->textcolor] textcolor_from___b54: // [334] phi textcolor::color#7 = 1 [phi:main::@54->textcolor#0] -- vbuz1=vbuc1 lda #1 sta.z textcolor.color jsr textcolor // [34] phi from main::@54 to main::@55 [phi:main::@54->main::@55] __b55_from___b54: jmp __b55 // main::@55 __b55: // [35] call cputs // [337] phi from main::@55 to cputs [phi:main::@55->cputs] cputs_from___b55: // [337] phi cputs::s#11 = levels [phi:main::@55->cputs#0] -- pbuz1=pbuc1 lda #levels sta.z cputs.s+1 jsr cputs // [36] phi from main::@55 to main::@56 [phi:main::@55->main::@56] __b56_from___b55: jmp __b56 // main::@56 __b56: // [37] call textcolor // White // [334] phi from main::@56 to textcolor [phi:main::@56->textcolor] textcolor_from___b56: // [334] phi textcolor::color#7 = 2 [phi:main::@56->textcolor#0] -- vbuz1=vbuc1 lda #2 sta.z textcolor.color jsr textcolor // [38] phi from main::@56 to main::@57 [phi:main::@56->main::@57] __b57_from___b56: jmp __b57 // main::@57 __b57: // [39] call cputs // [337] phi from main::@57 to cputs [phi:main::@57->cputs] cputs_from___b57: // [337] phi cputs::s#11 = foot [phi:main::@57->cputs#0] -- pbuz1=pbuc1 lda #foot sta.z cputs.s+1 jsr cputs jmp __b4 // Red // main::@4 __b4: // [40] l = *((char *) 197) -- vbuz1=_deref_pbuc1 lda.z $c5 sta.z l // [41] l = ++ l -- vbuz1=_inc_vbuz1 inc.z l // [42] if(l>=5+1) goto main::@4 -- vbuz1_ge_vbuc1_then_la1 lda.z l cmp #5+1 bcs __b4 // [43] phi from main::@4 to main::@5 [phi:main::@4->main::@5] __b5_from___b4: jmp __b5 // main::@5 __b5: // [44] call clear_screen // wait for 1-3-5-7-9 keys only // [321] phi from main::@5 to clear_screen [phi:main::@5->clear_screen] clear_screen_from___b5: // [321] phi clear_screen::n#5 = 4 [phi:main::@5->clear_screen#0] -- vbuz1=vbuc1 lda #4 sta.z clear_screen.n jsr clear_screen jmp __b58 // main::@58 __b58: // [45] *((char *) 36869) = $ff -- _deref_pbuc1=vbuc2 lda #$ff sta $9005 // [46] chrout::petscii = reverse_on -- vbuz1=vbuc1 lda #reverse_on sta.z chrout.petscii // [47] call chrout // Graphic mode jsr chrout jmp __b59 // main::@59 __b59: // [48] chrout::petscii = red -- vbuz1=vbuc1 lda #red sta.z chrout.petscii // [49] call chrout jsr chrout jmp __b60 // main::@60 __b60: // [50] chrout::petscii = down -- vbuz1=vbuc1 lda #down sta.z chrout.petscii // [51] call chrout jsr chrout // [52] phi from main::@60 to main::@6 [phi:main::@60->main::@6] __b6_from___b60: // [52] phi n#89 = n#109 [phi:main::@60->main::@6#0] -- register_copy // [52] phi k#101 = 1 [phi:main::@60->main::@6#1] -- vbuz1=vbuc1 lda #1 sta.z k jmp __b6 //for (z=1;z<23;z++) { POKE(7680+z*22,230);POKE(c+7680+z*22,2); POKE(7679+z*22,230); POKE(c+7679+z*22,2); } // 23 rows * 22 columns (7680 to 8185). 506 positions. //k=1; do { chrout(brick); POKE(211,20); chrout(brick); ++k; } while (k<23); //for (k=1;k<22;k++) { chrout(brick); POKE(211,22); chrout(brick); }; // 23 rows * 22 columns (7680 to 8185). 506 positions. // main::@6 __b6: // [53] if(k#101<$16) goto main::@7 -- vbuz1_lt_vbuc1_then_la1 lda.z k cmp #$16 bcc __b7 jmp __b8 // main::@8 __b8: // [54] chrout::petscii = brick -- vbuz1=vbuc1 lda #brick sta.z chrout.petscii // [55] call chrout // 23 rows * 22 columns (7680 to 8185). 506 positions. jsr chrout jmp __b61 // main::@61 __b61: // [56] *((char *) 8185) = brick -- _deref_pbuc1=vbuc2 lda #brick sta $1ff9 // [57] *((char *)$1ff9+c) = 2 -- _deref_pbuc1=vbuc2 lda #2 sta $1ff9+c // [58] chrout::petscii = home -- vbuz1=vbuc1 lda #home sta.z chrout.petscii // [59] call chrout //last brick from last line (#23) to avoid scrolling jsr chrout jmp __b62 // main::@62 __b62: // [60] if(l<1+1) goto main::@12 -- vbuz1_lt_vbuc1_then_la1 lda.z l cmp #1+1 bcc __b12_from___b62 // [61] phi from main::@62 to main::@13 [phi:main::@62->main::@13] __b13_from___b62: // [61] phi z#28 = 1 [phi:main::@62->main::@13#0] -- vwuz1=vbuc1 lda #<1 sta.z z_1 lda #>1 sta.z z_1+1 jmp __b13 // [61] phi from main::@73 to main::@13 [phi:main::@73->main::@13] __b13_from___b73: // [61] phi z#28 = z#9 [phi:main::@73->main::@13#0] -- register_copy jmp __b13 // main::@13 __b13: // [62] random::k#0 = 7 - l -- vbuz1=vbuc1_minus_vbuz2 lda #7 sec sbc.z l sta.z random.k // [63] main::$177 = l << 1 -- vbuz1=vbuz2_rol_1 lda.z l asl sta.z __177 // [64] main::$26 = main::$177 + l -- vbuz1=vbuz1_plus_vbuz2 lda.z __26 clc adc.z l sta.z __26 // [65] random::n#0 = $1a - main::$26 -- vbuz1=vbuc1_minus_vbuz1 lda #$1a sec sbc.z random.n sta.z random.n // [66] call random // Write differential random bricks depending on 'l' level choosen // [345] phi from main::@13 to random [phi:main::@13->random] random_from___b13: // [345] phi random::n#4 = random::n#0 [phi:main::@13->random#0] -- register_copy // [345] phi random::k#4 = random::k#0 [phi:main::@13->random#1] -- register_copy jsr random jmp __b71 // main::@71 __b71: // [67] main::$29 = z#28 + m -- vwuz1=vwuz2_plus_vbuz3 lda.z m clc adc.z z_1 sta.z __29 lda #0 adc.z z_1+1 sta.z __29+1 // [68] if(main::$29<=$1f9) goto main::@14 -- vwuz1_le_vwuc1_then_la1 lda.z __29+1 cmp #>$1f9 bne !+ lda.z __29 cmp #<$1f9 !: bcc __b14_from___b71 beq __b14_from___b71 // [69] phi from main::@71 main::@73 to main::@12 [phi:main::@71/main::@73->main::@12] __b12_from___b71: __b12_from___b73: // [69] phi z#128 = z#28 [phi:main::@71/main::@73->main::@12#0] -- register_copy jmp __b12 // [69] phi from main::@62 to main::@12 [phi:main::@62->main::@12] __b12_from___b62: // [69] phi z#128 = 1 [phi:main::@62->main::@12#0] -- vwuz1=vbuc1 lda #<1 sta.z z_1 lda #>1 sta.z z_1+1 jmp __b12 // main::@12 __b12: // [70] *((char *) 36878) = $f -- _deref_pbuc1=vbuc2 lda #$f sta $900e // [71] chrout::petscii = home -- vbuz1=vbuc1 lda #home sta.z chrout.petscii // [72] call chrout // Duck #1 jsr chrout jmp __b65 // main::@65 __b65: // [73] chrout::petscii = yellow -- vbuz1=vbuc1 lda #yellow sta.z chrout.petscii // [74] call chrout jsr chrout jmp __b66 // main::@66 __b66: // [75] chrout::petscii = $50 -- vbuz1=vbuc1 lda #$50 sta.z chrout.petscii // [76] call chrout jsr chrout jmp __b67 // main::@67 __b67: // [77] chrout::petscii = $54 -- vbuz1=vbuc1 lda #$54 sta.z chrout.petscii // [78] call chrout jsr chrout jmp __b68 // main::@68 __b68: // [79] chrout::petscii = $53 -- vbuz1=vbuc1 lda #$53 sta.z chrout.petscii // [80] call chrout jsr chrout jmp __b69 // main::@69 __b69: // [81] chrout::petscii = $3a -- vbuz1=vbuc1 lda #$3a sta.z chrout.petscii // [82] call chrout jsr chrout jmp __b70 // main::@70 __b70: // [83] *((char *) 211) = $12 -- _deref_pbuc1=vbuc2 lda #$12 sta.z $d3 // [84] phi from main::@70 to main::@17 [phi:main::@70->main::@17] __b17_from___b70: // [84] phi j#13 = 0 [phi:main::@70->main::@17#0] -- vbuz1=vbuc1 lda #0 sta.z j_1 jmp __b17 // jump to Column 18 // main::@17 __b17: // [85] if(j#13<4) goto main::@18 -- vbuz1_lt_vbuc1_then_la1 lda.z j_1 cmp #4 bcc __b18 // [86] phi from main::@17 to main::@19 [phi:main::@17->main::@19] __b19_from___b17: jmp __b19 // main::@19 __b19: // [87] call write_score // Write 'TM:9', yellow // [351] phi from main::@19 to write_score [phi:main::@19->write_score] write_score_from___b19: // [351] phi score#13 = 0 [phi:main::@19->write_score#0] -- vwuz1=vbuc1 lda #<0 sta.z score lda #>0 sta.z score+1 jsr write_score jmp __b75 // main::@75 __b75: // [88] chrout::petscii = home -- vbuz1=vbuc1 lda #home sta.z chrout.petscii // [89] call chrout // Write Score (yellow) jsr chrout jmp __b76 // main::@76 __b76: // [90] chrout::petscii = green -- vbuz1=vbuc1 lda #green sta.z chrout.petscii // [91] call chrout jsr chrout jmp __b77 // main::@77 __b77: // [92] *((char *) 211) = $a -- _deref_pbuc1=vbuc2 lda #$a sta.z $d3 // [93] phi from main::@77 to main::@20 [phi:main::@77->main::@20] __b20_from___b77: // [93] phi j#16 = 0 [phi:main::@77->main::@20#0] -- vbuz1=vbuc1 lda #0 sta.z j_2 jmp __b20 // Jump to column 10 // main::@20 __b20: // [94] if(j#16<5) goto main::@21 -- vbuz1_lt_vbuc1_then_la1 lda.z j_2 cmp #5 bcc __b21 // [95] phi from main::@20 to main::@22 [phi:main::@20->main::@22] __b22_from___b20: // [95] phi n#52 = n#89 [phi:main::@20->main::@22#0] -- register_copy // [95] phi peephole#52 = $1f1f [phi:main::@20->main::@22#1] -- vwuz1=vwuc1 lda #<$1f1f sta.z peephole lda #>$1f1f sta.z peephole+1 // [95] phi z#102 = z#128 [phi:main::@20->main::@22#2] -- register_copy // [95] phi y#49 = y#114 [phi:main::@20->main::@22#3] -- register_copy // [95] phi rem8u#48 = rem8u#127 [phi:main::@20->main::@22#4] -- register_copy // [95] phi tu#13 = 1 [phi:main::@20->main::@22#5] -- vwuz1=vbuc1 lda #<1 sta.z tu lda #>1 sta.z tu+1 jmp __b22 // Write 'DUCK', green // [95] phi from main::@87 to main::@22 [phi:main::@87->main::@22] __b22_from___b87: // [95] phi n#52 = n#20 [phi:main::@87->main::@22#0] -- register_copy // [95] phi peephole#52 = peephole#12 [phi:main::@87->main::@22#1] -- register_copy // [95] phi z#102 = z#25 [phi:main::@87->main::@22#2] -- register_copy // [95] phi y#49 = y#18 [phi:main::@87->main::@22#3] -- register_copy // [95] phi rem8u#48 = rem8u#25 [phi:main::@87->main::@22#4] -- register_copy // [95] phi tu#13 = tu#1 [phi:main::@87->main::@22#5] -- register_copy jmp __b22 // main::@22 __b22: // [96] chrout::petscii = home -- vbuz1=vbuc1 lda #home sta.z chrout.petscii // [97] call chrout jsr chrout jmp __b79 // main::@79 __b79: // [98] chrout::petscii = green -- vbuz1=vbuc1 lda #green sta.z chrout.petscii // [99] call chrout jsr chrout jmp __b80 // main::@80 __b80: // [100] chrout::petscii = reverse_on -- vbuz1=vbuc1 lda #reverse_on sta.z chrout.petscii // [101] call chrout jsr chrout jmp __b81 // main::@81 __b81: // [102] *((char *) 211) = $f -- _deref_pbuc1=vbuc2 lda #$f sta.z $d3 // [103] if(tu#13<$a) goto main::@23 -- vwuz1_lt_vbuc1_then_la1 // Jump to column 15 lda.z tu+1 bne !+ lda.z tu cmp #$a bcc __b23 !: jmp __b45 // main::@45 __b45: // [104] chrout::petscii = $31 -- vbuz1=vbuc1 lda #$31 sta.z chrout.petscii // [105] call chrout jsr chrout jmp __b82 // main::@82 __b82: // [106] chrout::petscii = $30 -- vbuz1=vbuc1 lda #$30 sta.z chrout.petscii // [107] call chrout jsr chrout // [108] phi from main::@103 main::@104 main::@105 main::@106 main::@23 main::@82 main::@84 to main::@24 [phi:main::@103/main::@104/main::@105/main::@106/main::@23/main::@82/main::@84->main::@24] __b24_from___b103: __b24_from___b104: __b24_from___b105: __b24_from___b106: __b24_from___b23: __b24_from___b82: __b24_from___b84: jmp __b24 // Write duck number // main::@24 __b24: // [109] call random // [345] phi from main::@24 to random [phi:main::@24->random] random_from___b24: // [345] phi random::n#4 = $ff [phi:main::@24->random#0] -- vbuz1=vbuc1 lda #$ff sta.z random.n // [345] phi random::k#4 = 0 [phi:main::@24->random#1] -- vbuz1=vbuc1 lda #0 sta.z random.k jsr random jmp __b83 // main::@83 __b83: // [110] duck#0 = m -- vwuz1=vbuz2 lda.z m sta.z duck lda #0 sta.z duck+1 // [111] call random // [345] phi from main::@83 to random [phi:main::@83->random] random_from___b83: // [345] phi random::n#4 = $ff [phi:main::@83->random#0] -- vbuz1=vbuc1 lda #$ff sta.z random.n // [345] phi random::k#4 = 0 [phi:main::@83->random#1] -- vbuz1=vbuc1 lda #0 sta.z random.k jsr random jmp __b84 // main::@84 __b84: // [112] main::$61 = m + $1e15 -- vwuz1=vbuz2_plus_vwuc1 lda.z m clc adc #<$1e15 sta.z __61 lda #>$1e15 adc #0 sta.z __61+1 // [113] duck#1 = main::$61 + duck#0 -- vwuz1=vwuz2_plus_vwuz1 clc lda.z duck adc.z __61 sta.z duck lda.z duck+1 adc.z __61+1 sta.z duck+1 // [114] main::$66 = duck#1 + 1 -- vwuz1=vwuz2_plus_1 clc lda.z duck adc #1 sta.z __66 lda.z duck+1 adc #0 sta.z __66+1 // [115] main::$69 = duck#1 + $16 -- vwuz1=vwuz2_plus_vbuc1 lda #$16 clc adc.z duck sta.z __69 lda #0 adc.z duck+1 sta.z __69+1 // [116] main::$72 = duck#1 + $17 -- vwuz1=vwuz2_plus_vbuc1 lda #$17 clc adc.z duck sta.z __72 lda #0 adc.z duck+1 sta.z __72+1 // [117] if(duck#1>$1fe3) goto main::@24 -- vwuz1_gt_vwuc1_then_la1 lda #>$1fe3 cmp.z duck+1 bcc __b24_from___b84 bne !+ lda #<$1fe3 cmp.z duck bcc __b24_from___b84 !: jmp __b106 // main::@106 __b106: // [118] if(*((char *)duck#1)==brick) goto main::@24 -- _deref_pbuz1_eq_vbuc1_then_la1 lda #brick ldy #0 cmp (duck),y beq __b24_from___b106 jmp __b105 // main::@105 __b105: // [119] if(*((char *)main::$66)==brick) goto main::@24 -- _deref_pbuz1_eq_vbuc1_then_la1 lda #brick ldy #0 cmp (__66),y beq __b24_from___b105 jmp __b104 // main::@104 __b104: // [120] if(*((char *)main::$69)==brick) goto main::@24 -- _deref_pbuz1_eq_vbuc1_then_la1 lda #brick ldy #0 cmp (__69),y beq __b24_from___b104 jmp __b103 // main::@103 __b103: // [121] if(*((char *)main::$72)==brick) goto main::@24 -- _deref_pbuz1_eq_vbuc1_then_la1 lda #brick ldy #0 cmp (__72),y beq __b24_from___b103 // [122] phi from main::@103 to main::@25 [phi:main::@103->main::@25] __b25_from___b103: jmp __b25 // main::@25 __b25: // [123] call chrono_restart jsr chrono_restart // [124] phi from main::@25 to main::@26 [phi:main::@25->main::@26] __b26_from___b25: // [124] phi n#20 = n#52 [phi:main::@25->main::@26#0] -- register_copy // [124] phi peephole#12 = peephole#52 [phi:main::@25->main::@26#1] -- register_copy // [124] phi z#100 = z#102 [phi:main::@25->main::@26#2] -- register_copy // [124] phi y#18 = y#49 [phi:main::@25->main::@26#3] -- register_copy // [124] phi rem8u#25 = rem8u#48 [phi:main::@25->main::@26#4] -- register_copy // [124] phi score#19 = score#38 [phi:main::@25->main::@26#5] -- register_copy // [124] phi time#11 = 0 [phi:main::@25->main::@26#6] -- vwuz1=vbuc1 lda #<0 sta.z time lda #>0 sta.z time+1 jmp __b26 // main::@26 __b26: // [125] if(time#11<$a) goto main::@27 -- vwuz1_lt_vbuc1_then_la1 lda.z time+1 bne !+ lda.z time cmp #$a bcc __b27_from___b26 !: jmp __b28 // main::@28 __b28: // [126] tu#1 = ++ tu#13 -- vwuz1=_inc_vwuz1 inc.z tu bne !+ inc.z tu+1 !: // [127] score#4 = score#19 - $a -- vwuz1=vwuz1_minus_vbuc1 sec lda.z score sbc #$a sta.z score lda.z score+1 sbc #0 sta.z score+1 // [128] call write_score // [351] phi from main::@28 to write_score [phi:main::@28->write_score] write_score_from___b28: // [351] phi score#13 = score#4 [phi:main::@28->write_score#0] -- register_copy jsr write_score jmp __b86 // main::@86 __b86: // [129] *((char *) 36877) = $82 -- _deref_pbuc1=vbuc2 lda #$82 sta $900d // [130] call wait // [381] phi from main::@86 to wait [phi:main::@86->wait] wait_from___b86: // [381] phi z#53 = z#100 [phi:main::@86->wait#0] -- register_copy // [381] phi wait::n#6 = $14 [phi:main::@86->wait#1] -- vbuz1=vbuc1 lda #$14 sta.z wait.n jsr wait jmp __b87 // main::@87 __b87: // [131] *((char *) 36877) = 0 -- _deref_pbuc1=vbuc2 lda #0 sta $900d // [132] main::$150 = duck#1 + c -- vwuz1=vwuz2_plus_vwuc1 lda.z duck clc adc #c sta.z __150+1 // [133] *((char *)main::$150) = 0 -- _deref_pbuz1=vbuc1 lda #0 ldy #0 sta (__150),y // [134] main::$151 = duck#1 -- vwuz1=vwuz2 lda.z duck sta.z __151 lda.z duck+1 sta.z __151+1 // [135] main::$152 = main::$151 + 1+c -- vwuz1=vwuz1_plus_vwuc1 lda.z __152 clc adc #<1+c sta.z __152 lda.z __152+1 adc #>1+c sta.z __152+1 // [136] *((char *)main::$152) = 0 -- _deref_pbuz1=vbuc1 lda #0 ldy #0 sta (__152),y // [137] main::$153 = duck#1 -- vwuz1=vwuz2 lda.z duck sta.z __153 lda.z duck+1 sta.z __153+1 // [138] main::$154 = main::$153 + $16+c -- vwuz1=vwuz1_plus_vwuc1 lda.z __154 clc adc #<$16+c sta.z __154 lda.z __154+1 adc #>$16+c sta.z __154+1 // [139] *((char *)main::$154) = 0 -- _deref_pbuz1=vbuc1 lda #0 ldy #0 sta (__154),y // [140] main::$155 = duck#1 -- vwuz1=vwuz2 lda.z duck sta.z __155 lda.z duck+1 sta.z __155+1 // [141] main::$156 = main::$155 + $17+c -- vwuz1=vwuz1_plus_vwuc1 lda.z __156 clc adc #<$17+c sta.z __156 lda.z __156+1 adc #>$17+c sta.z __156+1 // [142] *((char *)main::$156) = 0 -- _deref_pbuz1=vbuc1 lda #0 ldy #0 sta (__156),y // [143] if(tu#1<$b) goto main::@22 -- vwuz1_lt_vbuc1_then_la1 lda.z tu+1 bne !+ lda.z tu cmp #$b bcc __b22_from___b87 !: // [144] phi from main::@87 to main::@44 [phi:main::@87->main::@44] __b44_from___b87: jmp __b44 // main::@44 __b44: // [145] call clear_screen // 10 ducks // [321] phi from main::@44 to clear_screen [phi:main::@44->clear_screen] clear_screen_from___b44: // [321] phi clear_screen::n#5 = 4 [phi:main::@44->clear_screen#0] -- vbuz1=vbuc1 lda #4 sta.z clear_screen.n jsr clear_screen jmp __b91 // main::@91 __b91: // [146] *((char *) 36869) = $f0 -- _deref_pbuc1=vbuc2 lda #$f0 sta $9005 // [147] chrout::petscii = lower -- vbuz1=vbuc1 lda #lower sta.z chrout.petscii // [148] call chrout jsr chrout // [149] phi from main::@91 to main::@92 [phi:main::@91->main::@92] __b92_from___b91: jmp __b92 // main::@92 __b92: // [150] call textcolor // Return to text mode, lowcase // [334] phi from main::@92 to textcolor [phi:main::@92->textcolor] textcolor_from___b92: // [334] phi textcolor::color#7 = 7 [phi:main::@92->textcolor#0] -- vbuz1=vbuc1 lda #7 sta.z textcolor.color jsr textcolor // [151] phi from main::@92 to main::@93 [phi:main::@92->main::@93] __b93_from___b92: jmp __b93 // main::@93 __b93: // [152] call cputs // [337] phi from main::@93 to cputs [phi:main::@93->cputs] cputs_from___b93: // [337] phi cputs::s#11 = game_over [phi:main::@93->cputs#0] -- pbuz1=pbuc1 lda #game_over sta.z cputs.s+1 jsr cputs // [153] phi from main::@93 to main::@94 [phi:main::@93->main::@94] __b94_from___b93: jmp __b94 // main::@94 __b94: // [154] call textcolor // Yellow // [334] phi from main::@94 to textcolor [phi:main::@94->textcolor] textcolor_from___b94: // [334] phi textcolor::color#7 = 2 [phi:main::@94->textcolor#0] -- vbuz1=vbuc1 lda #2 sta.z textcolor.color jsr textcolor // [155] phi from main::@94 to main::@95 [phi:main::@94->main::@95] __b95_from___b94: jmp __b95 // main::@95 __b95: // [156] call cputs // [337] phi from main::@95 to cputs [phi:main::@95->cputs] cputs_from___b95: // [337] phi cputs::s#11 = your_score [phi:main::@95->cputs#0] -- pbuz1=pbuc1 lda #your_score sta.z cputs.s+1 jsr cputs // [157] phi from main::@95 to main::@96 [phi:main::@95->main::@96] __b96_from___b95: jmp __b96 // main::@96 __b96: // [158] call cputs // [337] phi from main::@96 to cputs [phi:main::@96->cputs] cputs_from___b96: // [337] phi cputs::s#11 = buffer [phi:main::@96->cputs#0] -- pbuz1=pbuc1 lda #buffer sta.z cputs.s+1 jsr cputs // [159] phi from main::@96 to main::@97 [phi:main::@96->main::@97] __b97_from___b96: jmp __b97 // main::@97 __b97: // [160] call textcolor // Red // [334] phi from main::@97 to textcolor [phi:main::@97->textcolor] textcolor_from___b97: // [334] phi textcolor::color#7 = 3 [phi:main::@97->textcolor#0] -- vbuz1=vbuc1 lda #3 sta.z textcolor.color jsr textcolor // [161] phi from main::@97 to main::@98 [phi:main::@97->main::@98] __b98_from___b97: jmp __b98 // main::@98 __b98: // [162] call cputs // [337] phi from main::@98 to cputs [phi:main::@98->cputs] cputs_from___b98: // [337] phi cputs::s#11 = high_score [phi:main::@98->cputs#0] -- pbuz1=pbuc1 lda #high_score sta.z cputs.s+1 jsr cputs jmp __b99 // main::@99 __b99: // [163] if(score#38<=hiscore#110) goto main::@114 -- vwuz1_le_vwuz2_then_la1 lda.z score+1 cmp.z hiscore_1+1 bne !+ lda.z score cmp.z hiscore_1 beq __b114 !: bcc __b114 // [165] phi from main::@114 main::@99 to main::@46 [phi:main::@114/main::@99->main::@46] __b46_from___b114: __b46_from___b99: // [165] phi hiscore#19 = hiscore#124 [phi:main::@114/main::@99->main::@46#0] -- register_copy jmp __b46 // main::@114 __b114: // [164] hiscore#124 = hiscore#110 -- vwuz1=vwuz2 lda.z hiscore_1 sta.z hiscore lda.z hiscore_1+1 sta.z hiscore+1 jmp __b46_from___b114 // main::@46 __b46: // [166] utoa::value#2 = hiscore#19 -- vwuz1=vwuz2 lda.z hiscore sta.z utoa.value lda.z hiscore+1 sta.z utoa.value+1 // [167] call utoa // [390] phi from main::@46 to utoa [phi:main::@46->utoa] utoa_from___b46: // [390] phi utoa::value#10 = utoa::value#2 [phi:main::@46->utoa#0] -- register_copy jsr utoa // [168] phi from main::@46 to main::@100 [phi:main::@46->main::@100] __b100_from___b46: jmp __b100 // main::@100 __b100: // [169] call cputs // [337] phi from main::@100 to cputs [phi:main::@100->cputs] cputs_from___b100: // [337] phi cputs::s#11 = buffer [phi:main::@100->cputs#0] -- pbuz1=pbuc1 lda #buffer sta.z cputs.s+1 jsr cputs // [170] phi from main::@100 to main::@101 [phi:main::@100->main::@101] __b101_from___b100: jmp __b101 // main::@101 __b101: // [171] call textcolor // Cyan // [334] phi from main::@101 to textcolor [phi:main::@101->textcolor] textcolor_from___b101: // [334] phi textcolor::color#7 = 1 [phi:main::@101->textcolor#0] -- vbuz1=vbuc1 lda #1 sta.z textcolor.color jsr textcolor // [172] phi from main::@101 to main::@102 [phi:main::@101->main::@102] __b102_from___b101: jmp __b102 // main::@102 __b102: // [173] call cputs // [337] phi from main::@102 to cputs [phi:main::@102->cputs] cputs_from___b102: // [337] phi cputs::s#11 = play_again [phi:main::@102->cputs#0] -- pbuz1=pbuc1 lda #play_again sta.z cputs.s+1 jsr cputs jmp __b47 // white // main::@47 __b47: // [174] j#19 = *((char *) 197) -- vbuz1=_deref_pbuc1 lda.z $c5 sta.z j_3 // [175] if(j#19==$b) goto main::@48 -- vbuz1_eq_vbuc1_then_la1 lda #$b cmp.z j_3 beq __b48 jmp __b112 // main::@112 __b112: // [176] if(j#19!=$1c) goto main::@47 -- vbuz1_neq_vbuc1_then_la1 lda #$1c cmp.z j_3 bne __b47 jmp __b48 // main::@48 __b48: // [177] if(j#19==$b) goto main::@113 -- vbuz1_eq_vbuc1_then_la1 lda #$b cmp.z j_3 beq __b113 jmp __b49 // main::@49 __b49: // asm { jsr$FD22 } // N pressed. Exit game jsr $fd22 jmp __breturn // main::@return __breturn: // [179] return rts // main::@113 __b113: // [180] hiscore#123 = hiscore#19 -- vwuz1=vwuz2 lda.z hiscore sta.z hiscore_1 lda.z hiscore+1 sta.z hiscore_1+1 // [26] phi from main::@113 to main::@3 [phi:main::@113->main::@3] __b3_from___b113: // [26] phi n#109 = n#20 [phi:main::@113->main::@3#0] -- register_copy // [26] phi hiscore#110 = hiscore#123 [phi:main::@113->main::@3#1] -- register_copy // [26] phi y#114 = y#18 [phi:main::@113->main::@3#2] -- register_copy // [26] phi rem8u#127 = rem8u#25 [phi:main::@113->main::@3#3] -- register_copy jmp __b3 // [181] phi from main::@26 to main::@27 [phi:main::@26->main::@27] __b27_from___b26: jmp __b27 // main::@27 __b27: // [182] call read_chrono jsr read_chrono jmp __b85 // main::@85 __b85: // [183] m = *((char *) 37151) -- vbuz1=_deref_pbuc1 // Joystick routine lda $911f sta.z m // [184] *((char *) 37154) = $7f -- _deref_pbuc1=vbuc2 lda #$7f sta $9122 // [185] n#14 = *((char *) 37152) -- vbuz1=_deref_pbuc1 lda $9120 sta.z n // [186] *((char *) 37154) = $ff -- _deref_pbuc1=vbuc2 lda #$ff sta $9122 // [187] main::$78 = $10 & m -- vbuz1=vbuc1_band_vbuz2 lda #$10 and.z m sta.z __78 // [188] if(main::$78!=0) goto main::@29 -- vbuz1_neq_0_then_la1 lda.z __78 bne __b29_from___b85 jmp __b37 // main::@37 __b37: // [189] y#0 = -- y#18 -- vwuz1=_dec_vwuz1 lda.z y bne !+ dec.z y+1 !: dec.z y // [190] phi from main::@37 main::@85 to main::@29 [phi:main::@37/main::@85->main::@29] __b29_from___b37: __b29_from___b85: // [190] phi y#10 = y#0 [phi:main::@37/main::@85->main::@29#0] -- register_copy jmp __b29 // main::@29 __b29: // [191] main::$81 = $80 & n#14 -- vbuz1=vbuc1_band_vbuz2 lda #$80 and.z n sta.z __81 // [192] if(main::$81!=0) goto main::@30 -- vbuz1_neq_0_then_la1 lda.z __81 bne __b30_from___b29 jmp __b38 // main::@38 __b38: // [193] y#1 = ++ y#10 -- vwuz1=_inc_vwuz1 inc.z y bne !+ inc.z y+1 !: // [194] phi from main::@29 main::@38 to main::@30 [phi:main::@29/main::@38->main::@30] __b30_from___b29: __b30_from___b38: // [194] phi y#11 = y#10 [phi:main::@29/main::@38->main::@30#0] -- register_copy jmp __b30 // main::@30 __b30: // [195] main::$84 = 4 & m -- vbuz1=vbuc1_band_vbuz2 lda #4 and.z m sta.z __84 // [196] if(main::$84!=0) goto main::@31 -- vbuz1_neq_0_then_la1 lda.z __84 bne __b31_from___b30 jmp __b39 // main::@39 __b39: // [197] y#2 = y#11 - $16 -- vwuz1=vwuz1_minus_vbuc1 sec lda.z y sbc #$16 sta.z y lda.z y+1 sbc #0 sta.z y+1 // [198] phi from main::@30 main::@39 to main::@31 [phi:main::@30/main::@39->main::@31] __b31_from___b30: __b31_from___b39: // [198] phi y#12 = y#11 [phi:main::@30/main::@39->main::@31#0] -- register_copy jmp __b31 // main::@31 __b31: // [199] main::$88 = 8 & m -- vbuz1=vbuc1_band_vbuz2 lda #8 and.z m sta.z __88 // [200] if(main::$88!=0) goto main::@32 -- vbuz1_neq_0_then_la1 lda.z __88 bne __b32_from___b31 jmp __b40 // main::@40 __b40: // [201] y#3 = y#12 + $16 -- vwuz1=vwuz1_plus_vbuc1 lda #$16 clc adc.z y sta.z y bcc !+ inc.z y+1 !: // [202] phi from main::@31 main::@40 to main::@32 [phi:main::@31/main::@40->main::@32] __b32_from___b31: __b32_from___b40: // [202] phi y#13 = y#12 [phi:main::@31/main::@40->main::@32#0] -- register_copy jmp __b32 // main::@32 __b32: // [203] main::$92 = $20 & m -- vbuz1=vbuc1_band_vbuz2 lda #$20 and.z m sta.z __92 // [204] if(main::$92!=0) goto main::@33 -- vbuz1_neq_0_then_la1 lda.z __92 bne __b33_from___b32 jmp __b41 // main::@41 __b41: // [205] *((char *) 36877) = $82 -- _deref_pbuc1=vbuc2 lda #$82 sta $900d // [206] if(peephole#12!=duck#1) goto main::@34 -- vwuz1_neq_vwuz2_then_la1 lda.z peephole+1 cmp.z duck+1 bne __b34 lda.z peephole cmp.z duck bne __b34 jmp __b42 // main::@42 __b42: // [207] main::$96 = $c - div16u8u::return#2 -- vwuz1=vwuc1_minus_vwuz2 sec lda #<$c sbc.z div16u8u.return_1 sta.z __96 lda #>$c sbc.z div16u8u.return_1+1 sta.z __96+1 // [208] main::$179 = main::$96 << 2 -- vwuz1=vwuz2_rol_2 lda.z __96 asl sta.z __179 lda.z __96+1 rol sta.z __179+1 asl.z __179 rol.z __179+1 // [209] main::$180 = main::$179 + main::$96 -- vwuz1=vwuz2_plus_vwuz1 clc lda.z __180 adc.z __179 sta.z __180 lda.z __180+1 adc.z __179+1 sta.z __180+1 // [210] main::$97 = main::$180 << 1 -- vwuz1=vwuz1_rol_1 asl.z __97 rol.z __97+1 // [211] score#8 = score#19 + main::$97 -- vwuz1=vwuz1_plus_vwuz2 clc lda.z score adc.z __97 sta.z score lda.z score+1 adc.z __97+1 sta.z score+1 // [212] call wait // [381] phi from main::@42 to wait [phi:main::@42->wait] wait_from___b42: // [381] phi z#53 = z#100 [phi:main::@42->wait#0] -- register_copy // [381] phi wait::n#6 = $a [phi:main::@42->wait#1] -- vbuz1=vbuc1 lda #$a sta.z wait.n jsr wait // [213] phi from main::@42 to main::@35 [phi:main::@42->main::@35] __b35_from___b42: // [213] phi score#81 = score#8 [phi:main::@42->main::@35#0] -- register_copy // [213] phi time#38 = $a [phi:main::@42->main::@35#1] -- vwuz1=vbuc1 lda #<$a sta.z time lda #>$a sta.z time+1 jmp __b35 // main::@35 __b35: // [214] *((char *) 36877) = 0 -- _deref_pbuc1=vbuc2 lda #0 sta $900d // [215] phi from main::@32 main::@35 to main::@33 [phi:main::@32/main::@35->main::@33] __b33_from___b32: __b33_from___b35: // [215] phi score#43 = score#19 [phi:main::@32/main::@35->main::@33#0] -- register_copy // [215] phi time#17 = div16u8u::return#2 [phi:main::@32/main::@35->main::@33#1] -- register_copy // [215] phi z#48 = z#100 [phi:main::@32/main::@35->main::@33#2] -- register_copy jmp __b33 // main::@33 __b33: // [216] main::$104 = y#13 + 1 -- vwuz1=vwuz2_plus_1 clc lda.z y adc #1 sta.z __104 lda.z y+1 adc #0 sta.z __104+1 // [217] main::$107 = y#13 + $16 -- vwuz1=vwuz2_plus_vbuc1 lda #$16 clc adc.z y sta.z __107 lda #0 adc.z y+1 sta.z __107+1 // [218] main::$110 = y#13 + $17 -- vwuz1=vwuz2_plus_vbuc1 lda #$17 clc adc.z y sta.z __110 lda #0 adc.z y+1 sta.z __110+1 // [219] if(*((char *)y#13)==brick) goto main::@36 -- _deref_pbuz1_eq_vbuc1_then_la1 lda #brick ldy #0 cmp (y),y beq __b36_from___b33 jmp __b111 // main::@111 __b111: // [220] if(*((char *)main::$104)==brick) goto main::@36 -- _deref_pbuz1_eq_vbuc1_then_la1 lda #brick ldy #0 cmp (__104),y beq __b36_from___b111 jmp __b110 // main::@110 __b110: // [221] if(*((char *)main::$107)!=brick) goto main::@109 -- _deref_pbuz1_neq_vbuc1_then_la1 ldy #0 lda (__107),y cmp #brick bne __b109 // [222] phi from main::@107 main::@108 main::@109 main::@110 main::@111 to main::@36 [phi:main::@107/main::@108/main::@109/main::@110/main::@111->main::@36] __b36_from___b107: __b36_from___b108: __b36_from___b109: __b36_from___b110: __b36_from___b111: jmp __b36 // [222] phi from main::@33 main::@43 to main::@36 [phi:main::@33/main::@43->main::@36] __b36_from___b33: __b36_from___b43: // [222] phi y#35 = peephole#12 [phi:main::@33/main::@43->main::@36#0] -- register_copy jmp __b36 // main::@36 __b36: // [223] *((char *)y#35) = $fd -- _deref_pbuz1=vbuc1 lda #$fd ldy #0 sta (y_1),y // [224] main::$125 = y#35 + c -- vwuz1=vwuz2_plus_vwuc1 lda.z y_1 clc adc #c sta.z __125+1 // [225] *((char *)main::$125) = 1 -- _deref_pbuz1=vbuc1 lda #1 ldy #0 sta (__125),y // [226] main::$127 = y#35 + 1 -- vwuz1=vwuz2_plus_1 clc lda.z y_1 adc #1 sta.z __127 lda.z y_1+1 adc #0 sta.z __127+1 // [227] *((char *)main::$127) = $ed -- _deref_pbuz1=vbuc1 lda #$ed ldy #0 sta (__127),y // [228] main::$128 = main::$127 + c -- vwuz1=vwuz1_plus_vwuc1 lda.z __128 clc adc #c sta.z __128+1 // [229] *((char *)main::$128) = 1 -- _deref_pbuz1=vbuc1 lda #1 ldy #0 sta (__128),y // [230] main::$130 = y#35 + $16 -- vwuz1=vwuz2_plus_vbuc1 lda #$16 clc adc.z y_1 sta.z __130 lda #0 adc.z y_1+1 sta.z __130+1 // [231] *((char *)main::$130) = $ee -- _deref_pbuz1=vbuc1 lda #$ee ldy #0 sta (__130),y // [232] main::$131 = main::$130 + c -- vwuz1=vwuz1_plus_vwuc1 lda.z __131 clc adc #c sta.z __131+1 // [233] *((char *)main::$131) = 1 -- _deref_pbuz1=vbuc1 lda #1 ldy #0 sta (__131),y // [234] main::$133 = y#35 + $17 -- vwuz1=vwuz2_plus_vbuc1 lda #$17 clc adc.z y_1 sta.z __133 lda #0 adc.z y_1+1 sta.z __133+1 // [235] *((char *)main::$133) = $f0 -- _deref_pbuz1=vbuc1 lda #$f0 ldy #0 sta (__133),y // [236] main::$134 = main::$133 + c -- vwuz1=vwuz1_plus_vwuc1 lda.z __134 clc adc #c sta.z __134+1 // [237] *((char *)main::$134) = 1 -- _deref_pbuz1=vbuc1 lda #1 ldy #0 sta (__134),y // [238] call wait // Clear peephole if there is not bricks contact // [381] phi from main::@36 to wait [phi:main::@36->wait] wait_from___b36: // [381] phi z#53 = z#48 [phi:main::@36->wait#0] -- register_copy // [381] phi wait::n#6 = 5 [phi:main::@36->wait#1] -- vbuz1=vbuc1 lda #5 sta.z wait.n jsr wait jmp __b89 // main::@89 __b89: // [239] *((char *)duck#1) = 0 -- _deref_pbuz1=vbuc1 lda #0 ldy #0 sta (duck),y // [240] main::$136 = duck#1 + c -- vwuz1=vwuz2_plus_vwuc1 lda.z duck clc adc #c sta.z __136+1 // [241] *((char *)main::$136) = 7 -- _deref_pbuz1=vbuc1 lda #7 ldy #0 sta (__136),y // [242] main::$138 = duck#1 + 1 -- vwuz1=vwuz2_plus_1 clc lda.z duck adc #1 sta.z __138 lda.z duck+1 adc #0 sta.z __138+1 // [243] *((char *)main::$138) = 1 -- _deref_pbuz1=vbuc1 lda #1 ldy #0 sta (__138),y // [244] main::$139 = main::$138 + c -- vwuz1=vwuz1_plus_vwuc1 lda.z __139 clc adc #c sta.z __139+1 // [245] *((char *)main::$139) = 7 -- _deref_pbuz1=vbuc1 lda #7 ldy #0 sta (__139),y // [246] main::$141 = duck#1 + $16 -- vwuz1=vwuz2_plus_vbuc1 lda #$16 clc adc.z duck sta.z __141 lda #0 adc.z duck+1 sta.z __141+1 // [247] *((char *)main::$141) = 2 -- _deref_pbuz1=vbuc1 lda #2 ldy #0 sta (__141),y // [248] main::$142 = main::$141 + c -- vwuz1=vwuz1_plus_vwuc1 lda.z __142 clc adc #c sta.z __142+1 // [249] *((char *)main::$142) = 7 -- _deref_pbuz1=vbuc1 lda #7 ldy #0 sta (__142),y // [250] main::$144 = duck#1 + $17 -- vwuz1=vwuz2_plus_vbuc1 lda #$17 clc adc.z duck sta.z __144 lda #0 adc.z duck+1 sta.z __144+1 // [251] *((char *)main::$144) = 3 -- _deref_pbuz1=vbuc1 lda #3 ldy #0 sta (__144),y // [252] main::$145 = main::$144 + c -- vwuz1=vwuz1_plus_vwuc1 lda.z __145 clc adc #c sta.z __145+1 // [253] *((char *)main::$145) = 7 -- _deref_pbuz1=vbuc1 lda #7 ldy #0 sta (__145),y // [254] call wait // [381] phi from main::@89 to wait [phi:main::@89->wait] wait_from___b89: // [381] phi z#53 = z#25 [phi:main::@89->wait#0] -- register_copy // [381] phi wait::n#6 = 5 [phi:main::@89->wait#1] -- vbuz1=vbuc1 lda #5 sta.z wait.n jsr wait jmp __b90 // main::@90 __b90: // [255] y#130 = y#35 -- vwuz1=vwuz2 lda.z y_1 sta.z y lda.z y_1+1 sta.z y+1 // [124] phi from main::@90 to main::@26 [phi:main::@90->main::@26] __b26_from___b90: // [124] phi n#20 = n#14 [phi:main::@90->main::@26#0] -- register_copy // [124] phi peephole#12 = y#35 [phi:main::@90->main::@26#1] -- register_copy // [124] phi z#100 = z#25 [phi:main::@90->main::@26#2] -- register_copy // [124] phi y#18 = y#130 [phi:main::@90->main::@26#3] -- register_copy // [124] phi rem8u#25 = divr8u::rem#11 [phi:main::@90->main::@26#4] -- register_copy // [124] phi score#19 = score#43 [phi:main::@90->main::@26#5] -- register_copy // [124] phi time#11 = time#17 [phi:main::@90->main::@26#6] -- register_copy jmp __b26 // main::@109 __b109: // [256] if(*((char *)main::$110)==brick) goto main::@36 -- _deref_pbuz1_eq_vbuc1_then_la1 lda #brick ldy #0 cmp (__110),y beq __b36_from___b109 jmp __b108 // main::@108 __b108: // [257] if(y#13>$1e16) goto main::@107 -- vwuz1_gt_vwuc1_then_la1 lda #>$1e16 cmp.z y+1 bcc __b107 bne !+ lda #<$1e16 cmp.z y bcc __b107 !: jmp __b36_from___b108 // main::@107 __b107: // [258] if(y#13>=$1fe3) goto main::@36 -- vwuz1_ge_vwuc1_then_la1 lda.z y+1 cmp #>$1fe3 bcc !+ bne __b36_from___b107 lda.z y cmp #<$1fe3 bcs __b36_from___b107 !: jmp __b43 // main::@43 __b43: // [259] main::$119 = peephole#12 + c -- vwuz1=vwuz2_plus_vwuc1 lda.z peephole clc adc #c sta.z __119+1 // [260] *((char *)main::$119) = 0 -- _deref_pbuz1=vbuc1 lda #0 ldy #0 sta (__119),y // [261] main::$120 = main::$119 + 1 -- vwuz1=vwuz2_plus_1 clc lda.z __119 adc #1 sta.z __120 lda.z __119+1 adc #0 sta.z __120+1 // [262] *((char *)main::$120) = 0 -- _deref_pbuz1=vbuc1 lda #0 ldy #0 sta (__120),y // [263] main::$122 = main::$119 + $16 -- vwuz1=vwuz2_plus_vbuc1 lda #$16 clc adc.z __119 sta.z __122 lda #0 adc.z __119+1 sta.z __122+1 // [264] *((char *)main::$122) = 0 -- _deref_pbuz1=vbuc1 lda #0 ldy #0 sta (__122),y // [265] main::$124 = main::$119 + $17 -- vwuz1=vwuz1_plus_vbuc1 lda #$17 clc adc.z __124 sta.z __124 bcc !+ inc.z __124+1 !: // [266] *((char *)main::$124) = 0 -- _deref_pbuz1=vbuc1 lda #0 ldy #0 sta (__124),y // [267] y#141 = y#13 -- vwuz1=vwuz2 lda.z y sta.z y_1 lda.z y+1 sta.z y_1+1 jmp __b36_from___b43 // main::@34 __b34: // [268] score#6 = score#19 - $a -- vwuz1=vwuz1_minus_vbuc1 sec lda.z score sbc #$a sta.z score lda.z score+1 sbc #0 sta.z score+1 // [269] call write_score // [351] phi from main::@34 to write_score [phi:main::@34->write_score] write_score_from___b34: // [351] phi score#13 = score#6 [phi:main::@34->write_score#0] -- register_copy jsr write_score // [270] phi from main::@34 to main::@88 [phi:main::@34->main::@88] __b88_from___b34: jmp __b88 // main::@88 __b88: // [271] call wait // [381] phi from main::@88 to wait [phi:main::@88->wait] wait_from___b88: // [381] phi z#53 = z#100 [phi:main::@88->wait#0] -- register_copy // [381] phi wait::n#6 = $a [phi:main::@88->wait#1] -- vbuz1=vbuc1 lda #$a sta.z wait.n jsr wait // [213] phi from main::@88 to main::@35 [phi:main::@88->main::@35] __b35_from___b88: // [213] phi score#81 = score#38 [phi:main::@88->main::@35#0] -- register_copy // [213] phi time#38 = div16u8u::return#2 [phi:main::@88->main::@35#1] -- register_copy jmp __b35 // main::@23 __b23: // [272] main::$57 = $30 + tu#13 -- vwuz1=vbuc1_plus_vwuz2 lda #$30 clc adc.z tu sta.z __57 lda #0 adc.z tu+1 sta.z __57+1 // [273] chrout::petscii = main::$57 -- vbuz1=vwuz2 lda.z __57 sta.z chrout.petscii // [274] call chrout jsr chrout jmp __b24_from___b23 // main::@21 __b21: // [275] chrout::petscii = ducknumber[j#16] -- vbuz1=pbuc1_derefidx_vbuz2 ldy.z j_2 lda ducknumber,y sta.z chrout.petscii // [276] call chrout jsr chrout jmp __b78 // main::@78 __b78: // [277] j#5 = ++ j#16 -- vbuz1=_inc_vbuz1 inc.z j_2 // [93] phi from main::@78 to main::@20 [phi:main::@78->main::@20] __b20_from___b78: // [93] phi j#16 = j#5 [phi:main::@78->main::@20#0] -- register_copy jmp __b20 // main::@18 __b18: // [278] chrout::petscii = chrono[j#13] -- vbuz1=pbuc1_derefidx_vbuz2 ldy.z j_1 lda chrono,y sta.z chrout.petscii // [279] call chrout jsr chrout jmp __b74 // main::@74 __b74: // [280] j#3 = ++ j#13 -- vbuz1=_inc_vbuz1 inc.z j_1 // [84] phi from main::@74 to main::@17 [phi:main::@74->main::@17] __b17_from___b74: // [84] phi j#13 = j#3 [phi:main::@74->main::@17#0] -- register_copy jmp __b17 // [281] phi from main::@71 to main::@14 [phi:main::@71->main::@14] __b14_from___b71: // [281] phi j#11 = 1 [phi:main::@71->main::@14#0] -- vbuz1=vbuc1 lda #1 sta.z j jmp __b14 // main::@14 __b14: // [282] if(j#11<=m) goto main::@15 -- vbuz1_le_vbuz2_then_la1 lda.z m cmp.z j bcs __b15 jmp __b16 // main::@16 __b16: // [283] chrout::petscii = brick -- vbuz1=vbuc1 lda #brick sta.z chrout.petscii // [284] call chrout jsr chrout jmp __b73 // main::@73 __b73: // [285] main::$35 = z#28 + m -- vwuz1=vwuz2_plus_vbuz3 lda.z m clc adc.z z_1 sta.z __35 lda #0 adc.z z_1+1 sta.z __35+1 // [286] z#9 = main::$35 + 1 -- vwuz1=vwuz2_plus_1 clc lda.z __35 adc #1 sta.z z_1 lda.z __35+1 adc #0 sta.z z_1+1 // [287] if(z#9<$1fa) goto main::@13 -- vwuz1_lt_vwuc1_then_la1 lda.z z_1+1 cmp #>$1fa bcc __b13_from___b73 bne !+ lda.z z_1 cmp #<$1fa bcc __b13_from___b73 !: jmp __b12_from___b73 // main::@15 __b15: // [288] chrout::petscii = right -- vbuz1=vbuc1 lda #right sta.z chrout.petscii // [289] call chrout jsr chrout jmp __b72 // main::@72 __b72: // [290] j#2 = ++ j#11 -- vbuz1=_inc_vbuz1 inc.z j // [281] phi from main::@72 to main::@14 [phi:main::@72->main::@14] __b14_from___b72: // [281] phi j#11 = j#2 [phi:main::@72->main::@14#0] -- register_copy jmp __b14 // main::@7 __b7: // [291] chrout::petscii = brick -- vbuz1=vbuc1 lda #brick sta.z chrout.petscii // [292] call chrout jsr chrout // [293] phi from main::@7 to main::@9 [phi:main::@7->main::@9] __b9_from___b7: // [293] phi n#101 = 2 [phi:main::@7->main::@9#0] -- vbuz1=vbuc1 lda #2 sta.z n jmp __b9 // main::@9 __b9: // [294] if(n#101<$16) goto main::@10 -- vbuz1_lt_vbuc1_then_la1 lda.z n cmp #$16 bcc __b10 jmp __b11 // main::@11 __b11: // [295] chrout::petscii = brick -- vbuz1=vbuc1 lda #brick sta.z chrout.petscii // [296] call chrout jsr chrout jmp __b64 // main::@64 __b64: // [297] k#1 = ++ k#101 -- vbuz1=_inc_vbuz1 inc.z k // [52] phi from main::@64 to main::@6 [phi:main::@64->main::@6] __b6_from___b64: // [52] phi n#89 = n#101 [phi:main::@64->main::@6#0] -- register_copy // [52] phi k#101 = k#1 [phi:main::@64->main::@6#1] -- register_copy jmp __b6 // main::@10 __b10: // [298] chrout::petscii = right -- vbuz1=vbuc1 lda #right sta.z chrout.petscii // [299] call chrout jsr chrout jmp __b63 // main::@63 __b63: // [300] n#1 = ++ n#101 -- vbuz1=_inc_vbuz1 inc.z n // [293] phi from main::@63 to main::@9 [phi:main::@63->main::@9] __b9_from___b63: // [293] phi n#101 = n#1 [phi:main::@63->main::@9#0] -- register_copy jmp __b9 // main::@2 __b2: // [301] main::$3 = $1c00 + m -- vwuz1=vwuc1_plus_vbuz2 lda.z m clc adc #<$1c00 sta.z __3 lda #>$1c00 adc #0 sta.z __3+1 // [302] *((char *)main::$3) = duck_udg[m] -- _deref_pbuz1=pbuc1_derefidx_vbuz2 ldy.z m lda duck_udg,y ldy #0 sta (__3),y // [303] m = ++ m -- vbuz1=_inc_vbuz1 inc.z m jmp __b1 } // gotoxy // Set the cursor to the specified position // void gotoxy(char x, __zp($4c) char y) gotoxy: { .label __5 = $48 .label __6 = $2c .label __7 = $2c .label line_offset = $2c .label y = $4c .label __8 = $46 .label __9 = $2c // [305] if(gotoxy::y#4<$19+1) goto gotoxy::@3 -- vbuz1_lt_vbuc1_then_la1 lda.z y cmp #$19+1 bcc __b3_from_gotoxy // [307] phi from gotoxy to gotoxy::@1 [phi:gotoxy->gotoxy::@1] __b1_from_gotoxy: // [307] phi gotoxy::y#5 = 0 [phi:gotoxy->gotoxy::@1#0] -- vbuz1=vbuc1 lda #0 sta.z y jmp __b1 // [306] phi from gotoxy to gotoxy::@3 [phi:gotoxy->gotoxy::@3] __b3_from_gotoxy: jmp __b3 // gotoxy::@3 __b3: // [307] phi from gotoxy::@3 to gotoxy::@1 [phi:gotoxy::@3->gotoxy::@1] __b1_from___b3: // [307] phi gotoxy::y#5 = gotoxy::y#4 [phi:gotoxy::@3->gotoxy::@1#0] -- register_copy jmp __b1 // gotoxy::@1 __b1: jmp __b2 // gotoxy::@2 __b2: // [308] conio_cursor_x = 0 -- vbuz1=vbuc1 lda #0 sta.z conio_cursor_x // [309] conio_cursor_y = gotoxy::y#5 -- vbuz1=vbuz2 lda.z y sta.z conio_cursor_y // [310] gotoxy::$7 = (unsigned int)gotoxy::y#5 -- vwuz1=_word_vbuz2 lda.z y sta.z __7 lda #0 sta.z __7+1 // [311] gotoxy::$8 = gotoxy::$7 << 2 -- vwuz1=vwuz2_rol_2 lda.z __7 asl sta.z __8 lda.z __7+1 rol sta.z __8+1 asl.z __8 rol.z __8+1 // [312] gotoxy::$9 = gotoxy::$8 + gotoxy::$7 -- vwuz1=vwuz2_plus_vwuz1 clc lda.z __9 adc.z __8 sta.z __9 lda.z __9+1 adc.z __8+1 sta.z __9+1 // [313] gotoxy::line_offset#0 = gotoxy::$9 << 3 -- vwuz1=vwuz1_rol_3 asl.z line_offset rol.z line_offset+1 asl.z line_offset rol.z line_offset+1 asl.z line_offset rol.z line_offset+1 // [314] gotoxy::$5 = DEFAULT_SCREEN + gotoxy::line_offset#0 -- pbuz1=pbuc1_plus_vwuz2 lda.z line_offset clc adc #DEFAULT_SCREEN sta.z __5+1 // [315] conio_line_text = gotoxy::$5 -- pbuz1=pbuz2 lda.z __5 sta.z conio_line_text lda.z __5+1 sta.z conio_line_text+1 // [316] gotoxy::$6 = COLORRAM + gotoxy::line_offset#0 -- pbuz1=pbuc1_plus_vwuz1 lda.z __6 clc adc #COLORRAM sta.z __6+1 // [317] conio_line_color = gotoxy::$6 -- pbuz1=pbuz2 lda.z __6 sta.z conio_line_color lda.z __6+1 sta.z conio_line_color+1 jmp __breturn // gotoxy::@return __breturn: // [318] return rts } // chrout // void chrout(__zp($18) volatile char petscii) chrout: { .label petscii = $18 // asm { ldapetscii jsr$ffd2 } lda petscii jsr $ffd2 jmp __breturn // chrout::@return __breturn: // [320] return rts } // clear_screen // void clear_screen(__zp(8) char n, char m) clear_screen: { .label __4 = $23 .label __5 = 9 .label n = 8 // [322] phi from clear_screen to clear_screen::@1 [phi:clear_screen->clear_screen::@1] __b1_from_clear_screen: // [322] phi z#2 = 0 [phi:clear_screen->clear_screen::@1#0] -- vwuz1=vbuc1 lda #<0 sta.z z lda #>0 sta.z z+1 jmp __b1 // clear_screen::@1 __b1: // [323] if(z#2<$1fa) goto clear_screen::@2 -- vwuz1_lt_vwuc1_then_la1 lda.z z+1 cmp #>$1fa bcc __b2 bne !+ lda.z z cmp #<$1fa bcc __b2 !: // [324] phi from clear_screen::@1 to clear_screen::@3 [phi:clear_screen::@1->clear_screen::@3] __b3_from___b1: jmp __b3 // clear_screen::@3 __b3: // [325] call gotoxy // From 0-->505 (506 bytes). ClearScreen with byte 'n' with color 'm' // [304] phi from clear_screen::@3 to gotoxy [phi:clear_screen::@3->gotoxy] gotoxy_from___b3: // [304] phi gotoxy::y#4 = 0 [phi:clear_screen::@3->gotoxy#0] -- vbuz1=vbuc1 lda #0 sta.z gotoxy.y jsr gotoxy jmp __b4 // clear_screen::@4 __b4: // [326] chrout::petscii = home -- vbuz1=vbuc1 lda #home sta.z chrout.petscii // [327] call chrout jsr chrout jmp __breturn // clear_screen::@return __breturn: // [328] return rts // clear_screen::@2 __b2: // [329] clear_screen::$5 = $1e00 + z#2 -- vwuz1=vwuc1_plus_vwuz2 lda.z z clc adc #<$1e00 sta.z __5 lda.z z+1 adc #>$1e00 sta.z __5+1 // [330] clear_screen::$4 = clear_screen::$5 + c -- vwuz1=vwuz2_plus_vwuc1 lda.z __5 clc adc #c sta.z __4+1 // [331] *((char *)clear_screen::$4) = 0 -- _deref_pbuz1=vbuc1 lda #0 ldy #0 sta (__4),y // [332] *((char *)clear_screen::$5) = clear_screen::n#5 -- _deref_pbuz1=vbuz2 lda.z n ldy #0 sta (__5),y // [333] z#1 = ++ z#2 -- vwuz1=_inc_vwuz1 inc.z z bne !+ inc.z z+1 !: // [322] phi from clear_screen::@2 to clear_screen::@1 [phi:clear_screen::@2->clear_screen::@1] __b1_from___b2: // [322] phi z#2 = z#1 [phi:clear_screen::@2->clear_screen::@1#0] -- register_copy jmp __b1 } // textcolor // Set the color for text output. The old color setting is returned. // char textcolor(__zp(8) char color) textcolor: { .label color = 8 // [335] conio_textcolor = textcolor::color#7 -- vbuz1=vbuz2 lda.z color sta.z conio_textcolor jmp __breturn // textcolor::@return __breturn: // [336] return rts } // cputs // Output a NUL-terminated string at the current cursor position // void cputs(__zp(5) const char *s) cputs: { .label c = 2 .label s = 5 // [338] phi from cputs cputs::@2 to cputs::@1 [phi:cputs/cputs::@2->cputs::@1] __b1_from_cputs: __b1_from___b2: // [338] phi cputs::s#10 = cputs::s#11 [phi:cputs/cputs::@2->cputs::@1#0] -- register_copy jmp __b1 // cputs::@1 __b1: // [339] cputs::c#1 = *cputs::s#10 -- vbuz1=_deref_pbuz2 ldy #0 lda (s),y sta.z c // [340] cputs::s#0 = ++ cputs::s#10 -- pbuz1=_inc_pbuz1 inc.z s bne !+ inc.z s+1 !: // [341] if(0!=cputs::c#1) goto cputs::@2 -- 0_neq_vbuz1_then_la1 lda.z c bne __b2 jmp __breturn // cputs::@return __breturn: // [342] return rts // cputs::@2 __b2: // [343] cputc::c#0 = cputs::c#1 // [344] call cputc jsr cputc jmp __b1_from___b2 } // random // Return to home position // void random(__zp(3) char k, __zp(8) char n) random: { .label k = 3 .label n = 8 .label __3 = 2 jmp __b1 // random::@1 __b1: // [346] m = *((char *) 37140) -- vbuz1=_deref_pbuc1 lda $9114 sta.z m // [347] random::$3 = m -- vbuz1=vbuz2 lda.z m sta.z __3 // [348] if(mrandom::n#4) goto random::@1 -- vbuz1_gt_vbuz2_then_la1 lda.z n cmp.z __3 bcc __b1 jmp __breturn // random::@return __breturn: // [350] return rts } // write_score write_score: { // [352] if(score#13<=$fde8) goto write_score::@15 -- vwuz1_le_vwuc1_then_la1 lda.z score+1 cmp #>$fde8 bne !+ lda.z score cmp #<$fde8 !: bcc __b15_from_write_score beq __b15_from_write_score // [354] phi from write_score to write_score::@1 [phi:write_score->write_score::@1] __b1_from_write_score: // [354] phi score#38 = 0 [phi:write_score->write_score::@1#0] -- vwuz1=vbuc1 lda #<0 sta.z score lda #>0 sta.z score+1 jmp __b1 // [353] phi from write_score to write_score::@15 [phi:write_score->write_score::@15] __b15_from_write_score: jmp __b15 // write_score::@15 __b15: // [354] phi from write_score::@15 to write_score::@1 [phi:write_score::@15->write_score::@1] __b1_from___b15: // [354] phi score#38 = score#13 [phi:write_score::@15->write_score::@1#0] -- register_copy jmp __b1 // write_score::@1 __b1: // [355] m = 0 -- vbuz1=vbuc1 lda #0 sta.z m jmp __b5 // write_score::@5 __b5: // [356] if(m<4) goto write_score::@6 -- vbuz1_lt_vbuc1_then_la1 lda.z m cmp #4 bcc __b6 jmp __b7 // write_score::@7 __b7: // [357] utoa::value#1 = score#38 -- vwuz1=vwuz2 lda.z score sta.z utoa.value lda.z score+1 sta.z utoa.value+1 // [358] call utoa // (!!) Needed. Possibly a bug // [390] phi from write_score::@7 to utoa [phi:write_score::@7->utoa] utoa_from___b7: // [390] phi utoa::value#10 = utoa::value#1 [phi:write_score::@7->utoa#0] -- register_copy jsr utoa jmp __b11 // write_score::@11 __b11: // [359] if(score#38<9+1) goto write_score::@2 -- vwuz1_lt_vbuc1_then_la1 lda.z score+1 bne !+ lda.z score cmp #9+1 bcc __b2 !: jmp __b8 // write_score::@8 __b8: // [360] *(points+2) = *buffer -- _deref_pbuc1=_deref_pbuc2 lda buffer sta points+2 // [361] *(points+3) = *(buffer+1) -- _deref_pbuc1=_deref_pbuc2 lda buffer+1 sta points+3 jmp __b2 // write_score::@2 __b2: // [362] if(score#38<$63+1) goto write_score::@3 -- vwuz1_lt_vbuc1_then_la1 lda.z score+1 bne !+ lda.z score cmp #$63+1 bcc __b3 !: jmp __b4 // write_score::@4 __b4: // [363] *(points+1) = *buffer -- _deref_pbuc1=_deref_pbuc2 lda buffer sta points+1 // [364] *(points+2) = *(buffer+1) -- _deref_pbuc1=_deref_pbuc2 lda buffer+1 sta points+2 // [365] *(points+3) = *(buffer+2) -- _deref_pbuc1=_deref_pbuc2 lda buffer+2 sta points+3 jmp __b3 // write_score::@3 __b3: // [366] chrout::petscii = yellow -- vbuz1=vbuc1 lda #yellow sta.z chrout.petscii // [367] call chrout jsr chrout jmp __b12 // write_score::@12 __b12: // [368] chrout::petscii = home -- vbuz1=vbuc1 lda #home sta.z chrout.petscii // [369] call chrout jsr chrout jmp __b13 // write_score::@13 __b13: // [370] *((char *) 211) = 4 -- _deref_pbuc1=vbuc2 lda #4 sta.z $d3 // [371] m = 0 -- vbuz1=vbuc1 lda #0 sta.z m jmp __b9 // write_score::@9 __b9: // [372] if(m<4) goto write_score::@10 -- vbuz1_lt_vbuc1_then_la1 lda.z m cmp #4 bcc __b10 jmp __breturn // write_score::@return __breturn: // [373] return rts // write_score::@10 __b10: // [374] chrout::petscii = points[m] -- vbuz1=pbuc1_derefidx_vbuz2 ldy.z m lda points,y sta.z chrout.petscii // [375] call chrout jsr chrout jmp __b14 // write_score::@14 __b14: // [376] m = ++ m -- vbuz1=_inc_vbuz1 inc.z m jmp __b9 // write_score::@6 __b6: // [377] points[m] = '0' -- pbuc1_derefidx_vbuz1=vbuc2 lda #'0' ldy.z m sta points,y // [378] m = ++ m -- vbuz1=_inc_vbuz1 inc.z m jmp __b5 } // chrono_restart chrono_restart: { // asm { lda#0 ldy#0 ldx#0 jsr$ffdb } lda #0 ldy #0 ldx #0 jsr $ffdb jmp __breturn // chrono_restart::@return __breturn: // [380] return rts } // wait // void wait(__zp(3) char n) wait: { .label n = 3 // [382] m = 0 -- vbuz1=vbuc1 lda #0 sta.z m // [383] phi from wait wait::@4 to wait::@1 [phi:wait/wait::@4->wait::@1] __b1_from_wait: __b1_from___b4: // [383] phi z#25 = z#53 [phi:wait/wait::@4->wait::@1#0] -- register_copy jmp __b1 // wait::@1 __b1: // [384] if(mwait::@2] __b2_from___b1: // [386] phi z#23 = 0 [phi:wait::@1->wait::@2#0] -- vwuz1=vbuc1 lda #<0 sta.z z_1 lda #>0 sta.z z_1+1 jmp __b2 // wait::@2 __b2: // [387] if(z#23<$21c) goto wait::@3 -- vwuz1_lt_vwuc1_then_la1 lda.z z_1+1 cmp #>$21c bcc __b3 bne !+ lda.z z_1 cmp #<$21c bcc __b3 !: jmp __b4 // wait::@4 __b4: // [388] m = ++ m -- vbuz1=_inc_vbuz1 inc.z m jmp __b1_from___b4 // wait::@3 __b3: // [389] z#4 = ++ z#23 -- vwuz1=_inc_vwuz1 inc.z z_1 bne !+ inc.z z_1+1 !: // [386] phi from wait::@3 to wait::@2 [phi:wait::@3->wait::@2] __b2_from___b3: // [386] phi z#23 = z#4 [phi:wait::@3->wait::@2#0] -- register_copy jmp __b2 } // utoa // Converts unsigned number value to a string representing it in RADIX format. // If the leading digits are zero they are not included in the string. // - value : The number to be converted to RADIX // - buffer : receives the string representing the number and zero-termination. // - radix : The radix to convert the number to (from the enum RADIX) // void utoa(__zp(5) unsigned int value, __zp($d) char *buffer, char radix) utoa: { .label __10 = $11 .label __11 = 2 .label digit_value = 9 .label buffer = $d .label digit = 3 .label value = 5 .label started = $10 // [391] phi from utoa to utoa::@1 [phi:utoa->utoa::@1] __b1_from_utoa: // [391] phi utoa::buffer#10 = buffer [phi:utoa->utoa::@1#0] -- pbuz1=pbuc1 lda #<@buffer sta.z buffer lda #>@buffer sta.z buffer+1 // [391] phi utoa::started#2 = 0 [phi:utoa->utoa::@1#1] -- vbuz1=vbuc1 lda #0 sta.z started // [391] phi utoa::value#3 = utoa::value#10 [phi:utoa->utoa::@1#2] -- register_copy // [391] phi utoa::digit#2 = 0 [phi:utoa->utoa::@1#3] -- vbuz1=vbuc1 lda #0 sta.z digit jmp __b1 // utoa::@1 __b1: // [392] if(utoa::digit#2<5-1) goto utoa::@2 -- vbuz1_lt_vbuc1_then_la1 lda.z digit cmp #5-1 bcc __b2 jmp __b3 // utoa::@3 __b3: // [393] utoa::$11 = (char)utoa::value#3 -- vbuz1=_byte_vwuz2 lda.z value sta.z __11 // [394] *utoa::buffer#10 = DIGITS[utoa::$11] -- _deref_pbuz1=pbuc1_derefidx_vbuz2 ldy.z __11 lda DIGITS,y ldy #0 sta (buffer),y // [395] utoa::buffer#3 = ++ utoa::buffer#10 -- pbuz1=_inc_pbuz1 inc.z buffer bne !+ inc.z buffer+1 !: // [396] *utoa::buffer#3 = 0 -- _deref_pbuz1=vbuc1 lda #0 ldy #0 sta (buffer),y jmp __breturn // utoa::@return __breturn: // [397] return rts // utoa::@2 __b2: // [398] utoa::$10 = utoa::digit#2 << 1 -- vbuz1=vbuz2_rol_1 lda.z digit asl sta.z __10 // [399] utoa::digit_value#0 = RADIX_DECIMAL_VALUES[utoa::$10] -- vwuz1=pwuc1_derefidx_vbuz2 ldy.z __10 lda RADIX_DECIMAL_VALUES,y sta.z digit_value lda RADIX_DECIMAL_VALUES+1,y sta.z digit_value+1 // [400] if(0!=utoa::started#2) goto utoa::@5 -- 0_neq_vbuz1_then_la1 lda.z started bne __b5 jmp __b7 // utoa::@7 __b7: // [401] if(utoa::value#3>=utoa::digit_value#0) goto utoa::@5 -- vwuz1_ge_vwuz2_then_la1 lda.z digit_value+1 cmp.z value+1 bne !+ lda.z digit_value cmp.z value beq __b5 !: bcc __b5 // [402] phi from utoa::@7 to utoa::@4 [phi:utoa::@7->utoa::@4] __b4_from___b7: // [402] phi utoa::buffer#15 = utoa::buffer#10 [phi:utoa::@7->utoa::@4#0] -- register_copy // [402] phi utoa::started#4 = utoa::started#2 [phi:utoa::@7->utoa::@4#1] -- register_copy // [402] phi utoa::value#7 = utoa::value#3 [phi:utoa::@7->utoa::@4#2] -- register_copy jmp __b4 // utoa::@4 __b4: // [403] utoa::digit#1 = ++ utoa::digit#2 -- vbuz1=_inc_vbuz1 inc.z digit // [391] phi from utoa::@4 to utoa::@1 [phi:utoa::@4->utoa::@1] __b1_from___b4: // [391] phi utoa::buffer#10 = utoa::buffer#15 [phi:utoa::@4->utoa::@1#0] -- register_copy // [391] phi utoa::started#2 = utoa::started#4 [phi:utoa::@4->utoa::@1#1] -- register_copy // [391] phi utoa::value#3 = utoa::value#7 [phi:utoa::@4->utoa::@1#2] -- register_copy // [391] phi utoa::digit#2 = utoa::digit#1 [phi:utoa::@4->utoa::@1#3] -- register_copy jmp __b1 // utoa::@5 __b5: // [404] utoa_append::buffer#0 = utoa::buffer#10 // [405] utoa_append::value#0 = utoa::value#3 // [406] utoa_append::sub#0 = utoa::digit_value#0 // [407] call utoa_append // [432] phi from utoa::@5 to utoa_append [phi:utoa::@5->utoa_append] utoa_append_from___b5: jsr utoa_append // [408] utoa_append::return#0 = utoa_append::value#2 jmp __b6 // utoa::@6 __b6: // [409] utoa::value#0 = utoa_append::return#0 // [410] utoa::buffer#4 = ++ utoa::buffer#10 -- pbuz1=_inc_pbuz1 inc.z buffer bne !+ inc.z buffer+1 !: // [402] phi from utoa::@6 to utoa::@4 [phi:utoa::@6->utoa::@4] __b4_from___b6: // [402] phi utoa::buffer#15 = utoa::buffer#4 [phi:utoa::@6->utoa::@4#0] -- register_copy // [402] phi utoa::started#4 = 1 [phi:utoa::@6->utoa::@4#1] -- vbuz1=vbuc1 lda #1 sta.z started // [402] phi utoa::value#7 = utoa::value#0 [phi:utoa::@6->utoa::@4#2] -- register_copy jmp __b4 } // read_chrono read_chrono: { .label __0 = $23 .label __5 = 9 // asm { jsr$ffde stal stxm } jsr $ffde sta l stx m // [412] read_chrono::$0 = m << 8 -- vwuz1=vbuz2_rol_8 lda.z m sta.z __0+1 lda #0 sta.z __0 // [413] div16u8u::dividend#0 = read_chrono::$0 + l -- vwuz1=vwuz1_plus_vbuz2 lda.z l clc adc.z div16u8u.dividend sta.z div16u8u.dividend bcc !+ inc.z div16u8u.dividend+1 !: // [414] call div16u8u jsr div16u8u // [415] div16u8u::return#2 = div16u8u::return#0 -- vwuz1=vwuz2 lda.z div16u8u.return sta.z div16u8u.return_1 lda.z div16u8u.return+1 sta.z div16u8u.return_1+1 jmp __b2 // read_chrono::@2 __b2: // [416] *((char *)$1e15+c) = 7 -- _deref_pbuc1=vbuc2 lda #7 sta $1e15+c // [417] *((char *) 7701) = $b9 -- _deref_pbuc1=vbuc2 lda #$b9 sta $1e15 // [418] if(div16u8u::return#2>=$a) goto read_chrono::@return -- vwuz1_ge_vbuc1_then_la1 lda.z div16u8u.return_1+1 bne __breturn lda.z div16u8u.return_1 cmp #$a bcs __breturn !: jmp __b1 // read_chrono::@1 __b1: // [419] read_chrono::$5 = $b9 - div16u8u::return#2 -- vwuz1=vwuc1_minus_vwuz2 sec lda #<$b9 sbc.z div16u8u.return_1 sta.z __5 lda #>$b9 sbc.z div16u8u.return_1+1 sta.z __5+1 // [420] *((char *) 7701) = read_chrono::$5 -- _deref_pbuc1=vwuz1 lda.z __5 sta $1e15 jmp __breturn // read_chrono::@return __breturn: // [421] return rts } // cputc // Output one character at the current cursor position // Moves the cursor forward. Scrolls the entire screen if needed // void cputc(__zp(2) char c) cputc: { .label c = 2 // [422] if(cputc::c#0==' ') goto cputc::@1 -- vbuz1_eq_vbuc1_then_la1 lda #'\n' cmp.z c beq __b1_from_cputc jmp __b2 // cputc::@2 __b2: // [423] conio_line_text[conio_cursor_x] = cputc::c#0 -- pbuz1_derefidx_vbuz2=vbuz3 lda.z c ldy.z conio_cursor_x sta (conio_line_text),y // [424] conio_line_color[conio_cursor_x] = conio_textcolor -- pbuz1_derefidx_vbuz2=vbuz3 lda.z conio_textcolor ldy.z conio_cursor_x sta (conio_line_color),y // [425] conio_cursor_x = ++ conio_cursor_x -- vbuz1=_inc_vbuz1 inc.z conio_cursor_x // [426] if(conio_cursor_x!=$28) goto cputc::@return -- vbuz1_neq_vbuc1_then_la1 lda #$28 cmp.z conio_cursor_x bne __breturn // [427] phi from cputc::@2 to cputc::@3 [phi:cputc::@2->cputc::@3] __b3_from___b2: jmp __b3 // cputc::@3 __b3: // [428] call cputln jsr cputln jmp __breturn // cputc::@return __breturn: // [429] return rts // [430] phi from cputc to cputc::@1 [phi:cputc->cputc::@1] __b1_from_cputc: jmp __b1 // cputc::@1 __b1: // [431] call cputln jsr cputln jmp __breturn } // utoa_append // Used to convert a single digit of an unsigned number value to a string representation // Counts a single digit up from '0' as long as the value is larger than sub. // Each time the digit is increased sub is subtracted from value. // - buffer : pointer to the char that receives the digit // - value : The value where the digit will be derived from // - sub : the value of a '1' in the digit. Subtracted continually while the digit is increased. // (For decimal the subs used are 10000, 1000, 100, 10, 1) // returns : the value reduced by sub * digit so that it is less than sub. // __zp(5) unsigned int utoa_append(__zp($d) char *buffer, __zp(5) unsigned int value, __zp(9) unsigned int sub) utoa_append: { .label buffer = $d .label value = 5 .label sub = 9 .label return = 5 .label digit = 7 // [433] phi from utoa_append to utoa_append::@1 [phi:utoa_append->utoa_append::@1] __b1_from_utoa_append: // [433] phi utoa_append::digit#2 = 0 [phi:utoa_append->utoa_append::@1#0] -- vbuz1=vbuc1 lda #0 sta.z digit // [433] phi utoa_append::value#2 = utoa_append::value#0 [phi:utoa_append->utoa_append::@1#1] -- register_copy jmp __b1 // utoa_append::@1 __b1: // [434] if(utoa_append::value#2>=utoa_append::sub#0) goto utoa_append::@2 -- vwuz1_ge_vwuz2_then_la1 lda.z sub+1 cmp.z value+1 bne !+ lda.z sub cmp.z value beq __b2 !: bcc __b2 jmp __b3 // utoa_append::@3 __b3: // [435] *utoa_append::buffer#0 = DIGITS[utoa_append::digit#2] -- _deref_pbuz1=pbuc1_derefidx_vbuz2 ldy.z digit lda DIGITS,y ldy #0 sta (buffer),y jmp __breturn // utoa_append::@return __breturn: // [436] return rts // utoa_append::@2 __b2: // [437] utoa_append::digit#1 = ++ utoa_append::digit#2 -- vbuz1=_inc_vbuz1 inc.z digit // [438] utoa_append::value#1 = utoa_append::value#2 - utoa_append::sub#0 -- vwuz1=vwuz1_minus_vwuz2 lda.z value sec sbc.z sub sta.z value lda.z value+1 sbc.z sub+1 sta.z value+1 // [433] phi from utoa_append::@2 to utoa_append::@1 [phi:utoa_append::@2->utoa_append::@1] __b1_from___b2: // [433] phi utoa_append::digit#2 = utoa_append::digit#1 [phi:utoa_append::@2->utoa_append::@1#0] -- register_copy // [433] phi utoa_append::value#2 = utoa_append::value#1 [phi:utoa_append::@2->utoa_append::@1#1] -- register_copy jmp __b1 } // div16u8u // Divide unsigned 16-bit unsigned long dividend with a 8-bit unsigned char divisor // The 8-bit unsigned char remainder can be found in rem8u after the division // __zp($30) unsigned int div16u8u(__zp($23) unsigned int dividend, char divisor) div16u8u: { .label divisor = $3c .label quotient_hi = 2 .label quotient_lo = $10 .label return = $12 .label dividend = $23 .label return_1 = $30 // [439] divr8u::dividend#1 = byte1 div16u8u::dividend#0 -- vbuz1=_byte1_vwuz2 lda.z dividend+1 sta.z divr8u.dividend // [440] call divr8u // [456] phi from div16u8u to divr8u [phi:div16u8u->divr8u] divr8u_from_div16u8u: // [456] phi divr8u::dividend#5 = divr8u::dividend#1 [phi:div16u8u->divr8u#0] -- register_copy // [456] phi divr8u::rem#10 = 0 [phi:div16u8u->divr8u#1] -- vbuz1=vbuc1 lda #0 sta.z divr8u.rem jsr divr8u // [441] divr8u::return#2 = divr8u::return#0 jmp __b1 // div16u8u::@1 __b1: // [442] div16u8u::quotient_hi#0 = divr8u::return#2 -- vbuz1=vbuz2 lda.z divr8u.return sta.z quotient_hi // [443] divr8u::dividend#2 = byte0 div16u8u::dividend#0 -- vbuz1=_byte0_vwuz2 lda.z dividend sta.z divr8u.dividend // [444] divr8u::rem#4 = divr8u::rem#11 // [445] call divr8u // [456] phi from div16u8u::@1 to divr8u [phi:div16u8u::@1->divr8u] divr8u_from___b1: // [456] phi divr8u::dividend#5 = divr8u::dividend#2 [phi:div16u8u::@1->divr8u#0] -- register_copy // [456] phi divr8u::rem#10 = divr8u::rem#4 [phi:div16u8u::@1->divr8u#1] -- register_copy jsr divr8u // [446] divr8u::return#3 = divr8u::return#0 jmp __b2 // div16u8u::@2 __b2: // [447] div16u8u::quotient_lo#0 = divr8u::return#3 // [448] div16u8u::return#0 = div16u8u::quotient_hi#0 w= div16u8u::quotient_lo#0 -- vwuz1=vbuz2_word_vbuz3 lda.z quotient_hi sta.z return+1 lda.z quotient_lo sta.z return jmp __breturn // div16u8u::@return __breturn: // [449] return rts } // cputln // Print a newline cputln: { // [450] conio_line_text = conio_line_text + $28 -- pbuz1=pbuz1_plus_vbuc1 lda #$28 clc adc.z conio_line_text sta.z conio_line_text bcc !+ inc.z conio_line_text+1 !: // [451] conio_line_color = conio_line_color + $28 -- pbuz1=pbuz1_plus_vbuc1 lda #$28 clc adc.z conio_line_color sta.z conio_line_color bcc !+ inc.z conio_line_color+1 !: // [452] conio_cursor_x = 0 -- vbuz1=vbuc1 lda #0 sta.z conio_cursor_x // [453] conio_cursor_y = ++ conio_cursor_y -- vbuz1=_inc_vbuz1 inc.z conio_cursor_y // [454] call cscroll jsr cscroll jmp __breturn // cputln::@return __breturn: // [455] return rts } // divr8u // Performs division on two 8 bit unsigned chars and an initial remainder // Returns dividend/divisor. // The final remainder will be set into the global variable rem8u // Implemented using simple binary division // __zp($10) char divr8u(__zp(3) char dividend, char divisor, __zp($f) char rem) divr8u: { .label __1 = $11 .label rem = $f .label dividend = 3 .label quotient = $10 .label i = 7 .label return = $10 // [457] phi from divr8u to divr8u::@1 [phi:divr8u->divr8u::@1] __b1_from_divr8u: // [457] phi divr8u::i#2 = 0 [phi:divr8u->divr8u::@1#0] -- vbuz1=vbuc1 lda #0 sta.z i // [457] phi divr8u::quotient#3 = 0 [phi:divr8u->divr8u::@1#1] -- vbuz1=vbuc1 lda #0 sta.z quotient // [457] phi divr8u::dividend#3 = divr8u::dividend#5 [phi:divr8u->divr8u::@1#2] -- register_copy // [457] phi divr8u::rem#5 = divr8u::rem#10 [phi:divr8u->divr8u::@1#3] -- register_copy jmp __b1 // [457] phi from divr8u::@3 to divr8u::@1 [phi:divr8u::@3->divr8u::@1] __b1_from___b3: // [457] phi divr8u::i#2 = divr8u::i#1 [phi:divr8u::@3->divr8u::@1#0] -- register_copy // [457] phi divr8u::quotient#3 = divr8u::return#0 [phi:divr8u::@3->divr8u::@1#1] -- register_copy // [457] phi divr8u::dividend#3 = divr8u::dividend#0 [phi:divr8u::@3->divr8u::@1#2] -- register_copy // [457] phi divr8u::rem#5 = divr8u::rem#11 [phi:divr8u::@3->divr8u::@1#3] -- register_copy jmp __b1 // divr8u::@1 __b1: // [458] divr8u::rem#0 = divr8u::rem#5 << 1 -- vbuz1=vbuz1_rol_1 asl.z rem // [459] divr8u::$1 = divr8u::dividend#3 & $80 -- vbuz1=vbuz2_band_vbuc1 lda #$80 and.z dividend sta.z __1 // [460] if(divr8u::$1==0) goto divr8u::@2 -- vbuz1_eq_0_then_la1 lda.z __1 beq __b2_from___b1 jmp __b4 // divr8u::@4 __b4: // [461] divr8u::rem#1 = divr8u::rem#0 | 1 -- vbuz1=vbuz1_bor_vbuc1 lda #1 ora.z rem sta.z rem // [462] phi from divr8u::@1 divr8u::@4 to divr8u::@2 [phi:divr8u::@1/divr8u::@4->divr8u::@2] __b2_from___b1: __b2_from___b4: // [462] phi divr8u::rem#6 = divr8u::rem#0 [phi:divr8u::@1/divr8u::@4->divr8u::@2#0] -- register_copy jmp __b2 // divr8u::@2 __b2: // [463] divr8u::dividend#0 = divr8u::dividend#3 << 1 -- vbuz1=vbuz1_rol_1 asl.z dividend // [464] divr8u::quotient#1 = divr8u::quotient#3 << 1 -- vbuz1=vbuz1_rol_1 asl.z quotient // [465] if(divr8u::rem#6divr8u::@3] __b3_from___b2: __b3_from___b5: // [468] phi divr8u::return#0 = divr8u::quotient#1 [phi:divr8u::@2/divr8u::@5->divr8u::@3#0] -- register_copy // [468] phi divr8u::rem#11 = divr8u::rem#6 [phi:divr8u::@2/divr8u::@5->divr8u::@3#1] -- register_copy jmp __b3 // divr8u::@3 __b3: // [469] divr8u::i#1 = ++ divr8u::i#2 -- vbuz1=_inc_vbuz1 inc.z i // [470] if(divr8u::i#1!=8) goto divr8u::@1 -- vbuz1_neq_vbuc1_then_la1 lda #8 cmp.z i bne __b1_from___b3 jmp __breturn // divr8u::@return __breturn: // [471] return rts } // cscroll // Scroll the entire screen if the cursor is beyond the last line cscroll: { // [472] if(conio_cursor_y!=$19) goto cscroll::@return -- vbuz1_neq_vbuc1_then_la1 lda #$19 cmp.z conio_cursor_y bne __breturn // [473] phi from cscroll to cscroll::@1 [phi:cscroll->cscroll::@1] __b1_from_cscroll: jmp __b1 // cscroll::@1 __b1: // [474] call memcpy // [485] phi from cscroll::@1 to memcpy [phi:cscroll::@1->memcpy] memcpy_from___b1: // [485] phi memcpy::destination#2 = (void *)DEFAULT_SCREEN [phi:cscroll::@1->memcpy#0] -- pvoz1=pvoc1 lda #DEFAULT_SCREEN sta.z memcpy.destination+1 // [485] phi memcpy::source#2 = (void *)DEFAULT_SCREEN+$28 [phi:cscroll::@1->memcpy#1] -- pvoz1=pvoc1 lda #DEFAULT_SCREEN+$28 sta.z memcpy.source+1 jsr memcpy // [475] phi from cscroll::@1 to cscroll::@2 [phi:cscroll::@1->cscroll::@2] __b2_from___b1: jmp __b2 // cscroll::@2 __b2: // [476] call memcpy // [485] phi from cscroll::@2 to memcpy [phi:cscroll::@2->memcpy] memcpy_from___b2: // [485] phi memcpy::destination#2 = (void *)COLORRAM [phi:cscroll::@2->memcpy#0] -- pvoz1=pvoc1 lda #COLORRAM sta.z memcpy.destination+1 // [485] phi memcpy::source#2 = (void *)COLORRAM+$28 [phi:cscroll::@2->memcpy#1] -- pvoz1=pvoc1 lda #COLORRAM+$28 sta.z memcpy.source+1 jsr memcpy // [477] phi from cscroll::@2 to cscroll::@3 [phi:cscroll::@2->cscroll::@3] __b3_from___b2: jmp __b3 // cscroll::@3 __b3: // [478] call memset // [495] phi from cscroll::@3 to memset [phi:cscroll::@3->memset] memset_from___b3: // [495] phi memset::c#4 = ' ' [phi:cscroll::@3->memset#0] -- vbuz1=vbuc1 lda #' ' sta.z memset.c // [495] phi memset::str#3 = (void *)DEFAULT_SCREEN+(unsigned int)$19*$28-$28 [phi:cscroll::@3->memset#1] -- pvoz1=pvoc1 lda #DEFAULT_SCREEN+$19*$28-$28 sta.z memset.str+1 jsr memset jmp __b4 // cscroll::@4 __b4: // [479] memset::c#1 = conio_textcolor -- vbuz1=vbuz2 lda.z conio_textcolor sta.z memset.c // [480] call memset // [495] phi from cscroll::@4 to memset [phi:cscroll::@4->memset] memset_from___b4: // [495] phi memset::c#4 = memset::c#1 [phi:cscroll::@4->memset#0] -- register_copy // [495] phi memset::str#3 = (void *)COLORRAM+(unsigned int)$19*$28-$28 [phi:cscroll::@4->memset#1] -- pvoz1=pvoc1 lda #COLORRAM+$19*$28-$28 sta.z memset.str+1 jsr memset jmp __b5 // cscroll::@5 __b5: // [481] conio_line_text = conio_line_text - $28 -- pbuz1=pbuz1_minus_vbuc1 sec lda.z conio_line_text sbc #$28 sta.z conio_line_text lda.z conio_line_text+1 sbc #0 sta.z conio_line_text+1 // [482] conio_line_color = conio_line_color - $28 -- pbuz1=pbuz1_minus_vbuc1 sec lda.z conio_line_color sbc #$28 sta.z conio_line_color lda.z conio_line_color+1 sbc #0 sta.z conio_line_color+1 // [483] conio_cursor_y = -- conio_cursor_y -- vbuz1=_dec_vbuz1 dec.z conio_cursor_y jmp __breturn // cscroll::@return __breturn: // [484] return rts } // memcpy // Copy block of memory (forwards) // Copies the values of num bytes from the location pointed to by source directly to the memory block pointed to by destination. // void * memcpy(__zp($b) void *destination, __zp($d) void *source, unsigned int num) memcpy: { .label src_end = 9 .label dst = $b .label src = $d .label source = $d .label destination = $b // [486] memcpy::src_end#0 = (char *)memcpy::source#2 + (unsigned int)$19*$28-$28 -- pbuz1=pbuz2_plus_vwuc1 lda.z source clc adc #<$19*$28-$28 sta.z src_end lda.z source+1 adc #>$19*$28-$28 sta.z src_end+1 // [487] memcpy::src#4 = (char *)memcpy::source#2 // [488] memcpy::dst#4 = (char *)memcpy::destination#2 // [489] phi from memcpy memcpy::@2 to memcpy::@1 [phi:memcpy/memcpy::@2->memcpy::@1] __b1_from_memcpy: __b1_from___b2: // [489] phi memcpy::dst#2 = memcpy::dst#4 [phi:memcpy/memcpy::@2->memcpy::@1#0] -- register_copy // [489] phi memcpy::src#2 = memcpy::src#4 [phi:memcpy/memcpy::@2->memcpy::@1#1] -- register_copy jmp __b1 // memcpy::@1 __b1: // [490] if(memcpy::src#2!=memcpy::src_end#0) goto memcpy::@2 -- pbuz1_neq_pbuz2_then_la1 lda.z src+1 cmp.z src_end+1 bne __b2 lda.z src cmp.z src_end bne __b2 jmp __breturn // memcpy::@return __breturn: // [491] return rts // memcpy::@2 __b2: // [492] *memcpy::dst#2 = *memcpy::src#2 -- _deref_pbuz1=_deref_pbuz2 ldy #0 lda (src),y ldy #0 sta (dst),y // [493] memcpy::dst#1 = ++ memcpy::dst#2 -- pbuz1=_inc_pbuz1 inc.z dst bne !+ inc.z dst+1 !: // [494] memcpy::src#1 = ++ memcpy::src#2 -- pbuz1=_inc_pbuz1 inc.z src bne !+ inc.z src+1 !: jmp __b1_from___b2 } // memset // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. // void * memset(__zp($b) void *str, __zp($10) char c, unsigned int num) memset: { .label end = $12 .label dst = $b .label c = $10 .label str = $b jmp __b1 // memset::@1 __b1: // [496] memset::end#0 = (char *)memset::str#3 + $28 -- pbuz1=pbuz2_plus_vbuc1 lda #$28 clc adc.z str sta.z end lda #0 adc.z str+1 sta.z end+1 // [497] memset::dst#4 = (char *)memset::str#3 // [498] phi from memset::@1 memset::@3 to memset::@2 [phi:memset::@1/memset::@3->memset::@2] __b2_from___b1: __b2_from___b3: // [498] phi memset::dst#2 = memset::dst#4 [phi:memset::@1/memset::@3->memset::@2#0] -- register_copy jmp __b2 // memset::@2 __b2: // [499] if(memset::dst#2!=memset::end#0) goto memset::@3 -- pbuz1_neq_pbuz2_then_la1 lda.z dst+1 cmp.z end+1 bne __b3 lda.z dst cmp.z end bne __b3 jmp __breturn // memset::@return __breturn: // [500] return rts // memset::@3 __b3: // [501] *memset::dst#2 = memset::c#4 -- _deref_pbuz1=vbuz2 lda.z c ldy #0 sta (dst),y // [502] memset::dst#1 = ++ memset::dst#2 -- pbuz1=_inc_pbuz1 inc.z dst bne !+ inc.z dst+1 !: jmp __b2_from___b3 } // File Data .segment Data // The digits used for numbers DIGITS: .text "0123456789abcdef" // Values of decimal digits RADIX_DECIMAL_VALUES: .word $2710, $3e8, $64, $a // [0..65536] 16-bit points: .byte 0, 0, 0, 0 buffer: .byte 0, 0, 0, 0 // for unexpanded. 37888-4096 color for expanded ducknumber: .byte $44, $55, $43, $4b, $3a // DUCK: chrono: .byte $54, $4d, $3a, $39 // TM:9 duck_udg: .byte $e, $1b, $3f, $1f, $f, 7, $f, $1f, 0, 0, 0, 0, 0, $c0, $70, $bc, $1f, $1d, $1e, $f, 3, 1, 1, 3, $ce, $1e, $7c, $f8, $e0, $40, $40, $e0, 0, 0, 0, 0, 0, 0, 0, 0 // POKE CODES = 0,1,2,3,4; CHROUT CODES = 64, 65, 66, 67, 68 (with previous reverse_off "chrout(146)") intro: .text @"\n\n\nDIFFICULTY\n----------\n\n\n" .byte 0 levels: .text @"1.EASIEST\n\n3.EASY\n\n5.MEDIUM\n\n7.HARD\n\n9.EXPERT\n\n\n\n\n" .byte 0 foot: .text @"PRESS: 1,3,5,7 or 9\n\n" .byte 0 game_over: .text @"\n\n\n\nGAME OVER" .byte 0 play_again: .text @"\n\n\nPlay Again (Y/N)?" .byte 0 your_score: .text @"\n\n\nYour Score: " .byte 0 high_score: .text @"\n\nHi-Score: " .byte 0 ASSEMBLER OPTIMIZATIONS Removing instruction jmp __init1 Removing instruction jmp __b1 Removing instruction jmp __breturn Removing instruction jmp __b2 Removing instruction jmp __b1 Removing instruction jmp __breturn Removing instruction jmp __b50 Removing instruction jmp __b51 Removing instruction jmp __b1 Removing instruction jmp __b3 Removing instruction jmp __b52 Removing instruction jmp __b53 Removing instruction jmp __b54 Removing instruction jmp __b55 Removing instruction jmp __b56 Removing instruction jmp __b57 Removing instruction jmp __b4 Removing instruction jmp __b5 Removing instruction jmp __b58 Removing instruction jmp __b59 Removing instruction jmp __b60 Removing instruction jmp __b6 Removing instruction jmp __b8 Removing instruction jmp __b61 Removing instruction jmp __b62 Removing instruction jmp __b13 Removing instruction jmp __b71 Removing instruction jmp __b12 Removing instruction jmp __b65 Removing instruction jmp __b66 Removing instruction jmp __b67 Removing instruction jmp __b68 Removing instruction jmp __b69 Removing instruction jmp __b70 Removing instruction jmp __b17 Removing instruction jmp __b19 Removing instruction jmp __b75 Removing instruction jmp __b76 Removing instruction jmp __b77 Removing instruction jmp __b20 Removing instruction jmp __b22 Removing instruction jmp __b79 Removing instruction jmp __b80 Removing instruction jmp __b81 Removing instruction jmp __b45 Removing instruction jmp __b82 Removing instruction jmp __b24 Removing instruction jmp __b83 Removing instruction jmp __b84 Removing instruction jmp __b106 Removing instruction jmp __b105 Removing instruction jmp __b104 Removing instruction jmp __b103 Removing instruction jmp __b25 Removing instruction jmp __b26 Removing instruction jmp __b28 Removing instruction jmp __b86 Removing instruction jmp __b87 Removing instruction jmp __b44 Removing instruction jmp __b91 Removing instruction jmp __b92 Removing instruction jmp __b93 Removing instruction jmp __b94 Removing instruction jmp __b95 Removing instruction jmp __b96 Removing instruction jmp __b97 Removing instruction jmp __b98 Removing instruction jmp __b99 Removing instruction jmp __b100 Removing instruction jmp __b101 Removing instruction jmp __b102 Removing instruction jmp __b47 Removing instruction jmp __b112 Removing instruction jmp __b48 Removing instruction jmp __b49 Removing instruction jmp __breturn Removing instruction jmp __b27 Removing instruction jmp __b85 Removing instruction jmp __b37 Removing instruction jmp __b29 Removing instruction jmp __b38 Removing instruction jmp __b30 Removing instruction jmp __b39 Removing instruction jmp __b31 Removing instruction jmp __b40 Removing instruction jmp __b32 Removing instruction jmp __b41 Removing instruction jmp __b42 Removing instruction jmp __b35 Removing instruction jmp __b33 Removing instruction jmp __b111 Removing instruction jmp __b110 Removing instruction jmp __b36 Removing instruction jmp __b89 Removing instruction jmp __b90 Removing instruction jmp __b108 Removing instruction jmp __b43 Removing instruction jmp __b88 Removing instruction jmp __b78 Removing instruction jmp __b74 Removing instruction jmp __b14 Removing instruction jmp __b16 Removing instruction jmp __b73 Removing instruction jmp __b72 Removing instruction jmp __b9 Removing instruction jmp __b11 Removing instruction jmp __b64 Removing instruction jmp __b63 Removing instruction jmp __b3 Removing instruction jmp __b1 Removing instruction jmp __b2 Removing instruction jmp __breturn Removing instruction jmp __breturn Removing instruction jmp __b1 Removing instruction jmp __b3 Removing instruction jmp __b4 Removing instruction jmp __breturn Removing instruction jmp __breturn Removing instruction jmp __b1 Removing instruction jmp __breturn Removing instruction jmp __b1 Removing instruction jmp __b2 Removing instruction jmp __breturn Removing instruction jmp __b15 Removing instruction jmp __b1 Removing instruction jmp __b5 Removing instruction jmp __b7 Removing instruction jmp __b11 Removing instruction jmp __b8 Removing instruction jmp __b2 Removing instruction jmp __b4 Removing instruction jmp __b3 Removing instruction jmp __b12 Removing instruction jmp __b13 Removing instruction jmp __b9 Removing instruction jmp __breturn Removing instruction jmp __b14 Removing instruction jmp __breturn Removing instruction jmp __b1 Removing instruction jmp __breturn Removing instruction jmp __b2 Removing instruction jmp __b4 Removing instruction jmp __b1 Removing instruction jmp __b3 Removing instruction jmp __breturn Removing instruction jmp __b7 Removing instruction jmp __b4 Removing instruction jmp __b6 Removing instruction jmp __b2 Removing instruction jmp __b1 Removing instruction jmp __breturn Removing instruction jmp __b2 Removing instruction jmp __b3 Removing instruction jmp __breturn Removing instruction jmp __b1 Removing instruction jmp __b1 Removing instruction jmp __b3 Removing instruction jmp __breturn Removing instruction jmp __b1 Removing instruction jmp __b2 Removing instruction jmp __breturn Removing instruction jmp __breturn Removing instruction jmp __b1 Removing instruction jmp __b4 Removing instruction jmp __b2 Removing instruction jmp __b5 Removing instruction jmp __b3 Removing instruction jmp __breturn Removing instruction jmp __b1 Removing instruction jmp __b2 Removing instruction jmp __b3 Removing instruction jmp __b4 Removing instruction jmp __b5 Removing instruction jmp __breturn Removing instruction jmp __b1 Removing instruction jmp __breturn Removing instruction jmp __b1 Removing instruction jmp __b2 Removing instruction jmp __breturn Succesful ASM optimization Pass5NextJumpElimination Removing instruction lda #0 Removing instruction lda #0 Removing instruction lda.z line Removing instruction lda #<0 Removing instruction lda #>0 Removing instruction lda #<0 Removing instruction lda #>0 Removing instruction lda #0 Removing instruction lda.z __29+1 Removing instruction lda #>0 Removing instruction lda #>0 Replacing instruction ldy #0 with TAY Replacing instruction lda #0 with TYA Removing instruction ldy #0 Replacing instruction lda #0 with TYA Removing instruction ldy #0 Replacing instruction lda #0 with TYA Removing instruction ldy #0 Removing instruction lda.z __78 Removing instruction lda.z __81 Removing instruction lda.z __84 Removing instruction lda.z __88 Removing instruction lda.z __92 Removing instruction ldy #0 Removing instruction ldy #0 Removing instruction ldy #0 Replacing instruction lda #0 with TYA Removing instruction ldy #0 Removing instruction ldy #0 Replacing instruction lda #0 with TYA Removing instruction ldy #0 Removing instruction ldy #0 Replacing instruction ldy #0 with TAY Removing instruction ldy #0 Removing instruction ldy #0 Removing instruction ldy #0 Replacing instruction lda #0 with TYA Removing instruction ldy #0 Removing instruction ldy #0 Replacing instruction lda #0 with TYA Removing instruction ldy #0 Removing instruction ldy #0 Replacing instruction ldy #0 with TAY Replacing instruction lda #0 with TYA Removing instruction ldy #0 Replacing instruction lda #0 with TYA Replacing instruction lda #0 with TYA Removing instruction ldy #0 Replacing instruction ldy #0 with TAY Removing instruction lda.z z_1+1 Removing instruction lda #>0 Replacing instruction ldy #0 with TAY Removing instruction ldy #0 Removing instruction lda.z m Removing instruction lda #>0 Replacing instruction ldy #0 with TAY Replacing instruction ldx #0 with TAX Removing instruction lda #>0 Removing instruction lda #0 Replacing instruction ldy.z __11 with TAY Replacing instruction ldy #0 with TAY Replacing instruction ldy.z __10 with TAY Replacing instruction lda.z m with TXA Removing instruction ldy.z conio_cursor_x Removing instruction lda #0 Removing instruction lda.z __1 Removing instruction ldy #0 Succesful ASM optimization Pass5UnnecesaryLoadElimination Replacing label __b2_from_conio_c64_init with __b1 Replacing label __b24_from___b106 with __b24_from___b84 Replacing label __b24_from___b105 with __b24_from___b84 Replacing label __b24_from___b104 with __b24_from___b84 Replacing label __b24_from___b103 with __b24_from___b84 Replacing label __b27_from___b26 with __b27 Replacing label __b22_from___b87 with __b22 Replacing label __b46_from___b114 with __b46_from___b99 Replacing label __b29_from___b85 with __b29 Replacing label __b30_from___b29 with __b30 Replacing label __b31_from___b30 with __b31 Replacing label __b32_from___b31 with __b32 Replacing label __b33_from___b32 with __b33 Replacing label __b36_from___b33 with __b36 Replacing label __b36_from___b109 with __b36_from___b111 Replacing label __b36_from___b108 with __b36_from___b111 Replacing label __b36_from___b107 with __b36_from___b111 Replacing label __b36_from___b107 with __b36_from___b111 Replacing label __b36_from___b43 with __b36 Replacing label __b24_from___b23 with __b24_from___b84 Replacing label __b13_from___b73 with __b13 Replacing label __b13_from___b73 with __b13 Replacing label __b3_from_gotoxy with __b2 Replacing label __b1 with __b2 Replacing label __b1_from___b2 with __b1 Replacing label __b15_from_write_score with __b1 Replacing label __b15_from_write_score with __b1 Replacing label __b1_from___b4 with __b1 Replacing label __b1_from_cputc with __b1 Replacing label __b2_from___b1 with __b2 Replacing label __b3_from___b2 with __b3 Replacing label __b1_from___b3 with __b1 Replacing label __b1_from___b2 with __b1 Replacing label __b2_from___b3 with __b2 Removing instruction __b1_from___init1: Removing instruction __b2_from_conio_c64_init: Removing instruction __b2: Removing instruction __b1_from___b2: Removing instruction gotoxy_from___b1: Removing instruction clear_screen_from___b3: Removing instruction __b52_from___b3: Removing instruction __b53_from___b52: Removing instruction cputs_from___b53: Removing instruction __b54_from___b53: Removing instruction __b55_from___b54: Removing instruction cputs_from___b55: Removing instruction __b56_from___b55: Removing instruction __b57_from___b56: Removing instruction cputs_from___b57: Removing instruction __b5_from___b4: Removing instruction __b13_from___b73: Removing instruction __b12_from___b71: Removing instruction __b19_from___b17: Removing instruction __b22_from___b87: Removing instruction __b24_from___b103: Removing instruction __b24_from___b104: Removing instruction __b24_from___b105: Removing instruction __b24_from___b106: Removing instruction __b24_from___b23: Removing instruction __b24_from___b82: Removing instruction random_from___b24: Removing instruction __b25_from___b103: Removing instruction __b44_from___b87: Removing instruction __b92_from___b91: Removing instruction __b93_from___b92: Removing instruction cputs_from___b93: Removing instruction __b94_from___b93: Removing instruction __b95_from___b94: Removing instruction cputs_from___b95: Removing instruction __b96_from___b95: Removing instruction cputs_from___b96: Removing instruction __b97_from___b96: Removing instruction __b98_from___b97: Removing instruction cputs_from___b98: Removing instruction __b46_from___b114: Removing instruction __b100_from___b46: Removing instruction cputs_from___b100: Removing instruction __b101_from___b100: Removing instruction __b102_from___b101: Removing instruction cputs_from___b102: Removing instruction __b27_from___b26: Removing instruction __b29_from___b37: Removing instruction __b29_from___b85: Removing instruction __b30_from___b29: Removing instruction __b30_from___b38: Removing instruction __b31_from___b30: Removing instruction __b31_from___b39: Removing instruction __b32_from___b31: Removing instruction __b32_from___b40: Removing instruction __b33_from___b32: Removing instruction __b33_from___b35: Removing instruction __b36_from___b107: Removing instruction __b36_from___b108: Removing instruction __b36_from___b109: Removing instruction __b36_from___b110: Removing instruction __b36_from___b33: Removing instruction __b36_from___b43: Removing instruction __b88_from___b34: Removing instruction wait_from___b88: Removing instruction __b3_from_gotoxy: Removing instruction __b3: Removing instruction __b1_from___b3: Removing instruction __b1: Removing instruction __b3_from___b1: Removing instruction __b1_from_cputs: Removing instruction __b1_from___b2: Removing instruction __b15_from_write_score: Removing instruction __b15: Removing instruction __b1_from___b15: Removing instruction __b1_from_wait: Removing instruction __b1_from___b4: Removing instruction __b4_from___b7: Removing instruction utoa_append_from___b5: Removing instruction __b3_from___b2: Removing instruction __b1_from_cputc: Removing instruction __b1_from___b3: Removing instruction __b2_from___b1: Removing instruction __b2_from___b4: Removing instruction __b3_from___b2: Removing instruction __b3_from___b5: Removing instruction __b1_from_cscroll: Removing instruction memcpy_from___b1: Removing instruction __b2_from___b1: Removing instruction memcpy_from___b2: Removing instruction __b3_from___b2: Removing instruction memset_from___b3: Removing instruction __b1_from_memcpy: Removing instruction __b1_from___b2: Removing instruction __b2_from___b1: Removing instruction __b2_from___b3: Succesful ASM optimization Pass5RedundantLabelElimination Removing instruction __init1: Removing instruction __b1: Removing instruction __breturn: Removing instruction __b1_from_conio_c64_init: Removing instruction __breturn: Removing instruction __b50: Removing instruction __b51: Removing instruction __b3_from___b1: Removing instruction __b52: Removing instruction textcolor_from___b52: Removing instruction __b53: Removing instruction __b54: Removing instruction textcolor_from___b54: Removing instruction __b55: Removing instruction __b56: Removing instruction textcolor_from___b56: Removing instruction __b57: Removing instruction __b5: Removing instruction clear_screen_from___b5: Removing instruction __b58: Removing instruction __b59: Removing instruction __b60: Removing instruction __b6_from___b60: Removing instruction __b8: Removing instruction __b61: Removing instruction __b62: Removing instruction __b13_from___b62: Removing instruction random_from___b13: Removing instruction __b71: Removing instruction __b65: Removing instruction __b66: Removing instruction __b67: Removing instruction __b68: Removing instruction __b69: Removing instruction __b70: Removing instruction __b17_from___b70: Removing instruction __b19: Removing instruction write_score_from___b19: Removing instruction __b75: Removing instruction __b76: Removing instruction __b77: Removing instruction __b20_from___b77: Removing instruction __b22_from___b20: Removing instruction __b79: Removing instruction __b80: Removing instruction __b81: Removing instruction __b45: Removing instruction __b82: Removing instruction __b24: Removing instruction __b83: Removing instruction random_from___b83: Removing instruction __b84: Removing instruction __b106: Removing instruction __b105: Removing instruction __b104: Removing instruction __b103: Removing instruction __b25: Removing instruction __b26_from___b25: Removing instruction __b28: Removing instruction write_score_from___b28: Removing instruction __b86: Removing instruction wait_from___b86: Removing instruction __b87: Removing instruction __b44: Removing instruction clear_screen_from___b44: Removing instruction __b91: Removing instruction __b92: Removing instruction textcolor_from___b92: Removing instruction __b93: Removing instruction __b94: Removing instruction textcolor_from___b94: Removing instruction __b95: Removing instruction __b96: Removing instruction __b97: Removing instruction textcolor_from___b97: Removing instruction __b98: Removing instruction __b99: Removing instruction utoa_from___b46: Removing instruction __b100: Removing instruction __b101: Removing instruction textcolor_from___b101: Removing instruction __b102: Removing instruction __b112: Removing instruction __b49: Removing instruction __breturn: Removing instruction __b3_from___b113: Removing instruction __b85: Removing instruction __b37: Removing instruction __b38: Removing instruction __b39: Removing instruction __b40: Removing instruction __b41: Removing instruction __b42: Removing instruction wait_from___b42: Removing instruction __b35_from___b42: Removing instruction __b111: Removing instruction __b110: Removing instruction wait_from___b36: Removing instruction __b89: Removing instruction wait_from___b89: Removing instruction __b90: Removing instruction __b26_from___b90: Removing instruction __b108: Removing instruction __b43: Removing instruction write_score_from___b34: Removing instruction __b88: Removing instruction __b35_from___b88: Removing instruction __b78: Removing instruction __b20_from___b78: Removing instruction __b74: Removing instruction __b17_from___b74: Removing instruction __b16: Removing instruction __b73: Removing instruction __b72: Removing instruction __b14_from___b72: Removing instruction __b9_from___b7: Removing instruction __b11: Removing instruction __b64: Removing instruction __b6_from___b64: Removing instruction __b63: Removing instruction __b9_from___b63: Removing instruction __b1_from_gotoxy: Removing instruction __breturn: Removing instruction __breturn: Removing instruction __b1_from_clear_screen: Removing instruction __b3: Removing instruction gotoxy_from___b3: Removing instruction __b4: Removing instruction __breturn: Removing instruction __b1_from___b2: Removing instruction __breturn: Removing instruction __breturn: Removing instruction __b2: Removing instruction __breturn: Removing instruction __b1_from_write_score: Removing instruction __b7: Removing instruction utoa_from___b7: Removing instruction __b11: Removing instruction __b8: Removing instruction __b4: Removing instruction __b12: Removing instruction __b13: Removing instruction __breturn: Removing instruction __b14: Removing instruction __breturn: Removing instruction __breturn: Removing instruction __b4: Removing instruction __b2_from___b3: Removing instruction __b1_from_utoa: Removing instruction __b3: Removing instruction __breturn: Removing instruction __b7: Removing instruction __b1_from___b4: Removing instruction __b6: Removing instruction __b4_from___b6: Removing instruction __b2: Removing instruction __b1: Removing instruction __b2: Removing instruction __b3: Removing instruction __b1_from_utoa_append: Removing instruction __b3: Removing instruction __breturn: Removing instruction __b1_from___b2: Removing instruction divr8u_from_div16u8u: Removing instruction __b1: Removing instruction divr8u_from___b1: Removing instruction __b2: Removing instruction __breturn: Removing instruction __breturn: Removing instruction __b1_from_divr8u: Removing instruction __b4: Removing instruction __b5: Removing instruction __breturn: Removing instruction __b1: Removing instruction __b2: Removing instruction __b3: Removing instruction __b4: Removing instruction memset_from___b4: Removing instruction __b5: Removing instruction __breturn: Removing instruction __b1: Removing instruction __breturn: Succesful ASM optimization Pass5UnusedLabelElimination Skipping double jump to __b46 in jmp __b46_from___b99 Skipping double jump to __b36 in beq __b36_from___b111 Skipping double jump to __b36 in beq __b36_from___b111 Skipping double jump to __b36 in jmp __b36_from___b111 Skipping double jump to __b36 in bne __b36_from___b111 Skipping double jump to __b36 in bcs __b36_from___b111 Skipping double jump to __b12 in jmp __b12_from___b73 Replacing jump to rts with rts in jmp __breturn Succesful ASM optimization Pass5DoubleJumpElimination Relabelling long label __b12_from___b73 to __b5 Relabelling long label __b12_from___b62 to __b8 Relabelling long label __b24_from___b84 to __b11 Relabelling long label __b46_from___b99 to __b16 Relabelling long label __b36_from___b111 to __b19 Relabelling long label __b14_from___b71 to __b24 Relabelling long label __b2_from___b1 to __b4 Succesful ASM optimization Pass5RelabelLongLabels Removing instruction jmp __b1 Removing instruction jmp __b13 Removing instruction jmp __b22 Removing instruction jmp __b46 Removing instruction jmp __b36 Removing instruction jmp __b2 Removing instruction jmp __b1 Removing instruction jmp __b1 Succesful ASM optimization Pass5NextJumpElimination Removing instruction lda #brick Removing instruction ldy #0 Removing instruction lda #brick Removing instruction ldy #0 Removing instruction lda #brick Removing instruction ldy #0 Removing instruction lda #brick Removing instruction ldy #0 Removing instruction ldy #0 Succesful ASM optimization Pass5UnnecesaryLoadElimination Removing instruction __b19: Succesful ASM optimization Pass5RedundantLabelElimination Removing instruction __b5: Removing instruction __b16: Succesful ASM optimization Pass5UnusedLabelElimination Fixing long branch [445] beq __b11 to bne Fixing long branch [531] bcc __b22 to bcs Fixing long branch [920] beq __b36 to bne Fixing long branch [936] bne __b36 to beq Fixing long branch [941] bcs __b36 to bcc Fixing long branch [1052] bcc __b13 to bcs Fixing long branch [1058] bcc __b13 to bcs Fixing long branch [161] bcc __b2 to bcs Fixing long branch [235] bcc __b7 to bcs Fixing long branch [287] bcc __b24 to bcs Fixing long branch [290] beq __b24 to bne Fixing long branch [329] bcc __b18 to bcs Fixing long branch [352] bcc __b21 to bcs Fixing long branch [381] bcc __b23 to bcs Fixing long branch [471] bcc __b27 to bcs Fixing long branch [711] bne __b34 to beq Fixing long branch [716] bne __b34 to beq Fixing long branch [790] bne __b109 to beq FINAL SYMBOL TABLE __constant char * const COLORRAM = (char *) 55296 __constant char * const DEFAULT_SCREEN = (char *) 1024 __constant char DIGITS[] = "0123456789abcdef"z __constant const char LIGHT_BLUE = $e __constant char RADIX::BINARY = 2 __constant char RADIX::DECIMAL = $a __constant char RADIX::HEXADECIMAL = $10 __constant char RADIX::OCTAL = 8 __constant unsigned int RADIX_DECIMAL_VALUES[] = { $2710, $3e8, $64, $a } void __start() __constant const char brick = $e6 __constant char buffer[] = { 0, 0, 0, 0 } __constant const unsigned int c = $7800 __constant const char chrono[] = { $54, $4d, $3a, $39 } void chrono_restart() void chrout(volatile char petscii) __loadstore volatile char chrout::petscii // zp[1]:24 3.0310104636363637E7 void clear_screen(char n , char m) unsigned int clear_screen::$4 // zp[2]:35 100001.0 unsigned int clear_screen::$5 // zp[2]:9 66667.33333333333 char clear_screen::m char clear_screen::n char clear_screen::n#5 // n zp[1]:8 12500.125 void conio_c64_init() __constant char * const conio_c64_init::BASIC_CURSOR_LINE = (char *) 214 char conio_c64_init::line char conio_c64_init::line#0 // line zp[1]:76 11.0 char conio_c64_init::line#2 // line zp[1]:76 22.0 __loadstore char conio_cursor_x // zp[1]:39 200133.45333333334 __loadstore char conio_cursor_y // zp[1]:29 3516593.4945054944 __loadstore char *conio_line_color // zp[2]:30 2662771.1807228914 __loadstore char *conio_line_text // zp[2]:32 2600117.7411764706 __loadstore char conio_textcolor // zp[1]:34 1629048.4677419355 void cputc(char c) char cputc::c char cputc::c#0 // c zp[1]:2 1050001.5 void cputln() void cputs(const char *s) char cputs::c char cputs::c#1 // c zp[1]:2 100001.0 const char *cputs::s const char *cputs::s#0 // s zp[2]:5 50000.5 const char *cputs::s#10 // s zp[2]:5 150502.0 const char *cputs::s#11 // s zp[2]:5 1001.0 void cscroll() unsigned int div16u8u(unsigned int dividend , char divisor) unsigned int div16u8u::dividend unsigned int div16u8u::dividend#0 // dividend zp[2]:35 420000.60000000003 char div16u8u::divisor __constant char div16u8u::divisor#0 = $3c // divisor unsigned int div16u8u::quotient char div16u8u::quotient_hi char div16u8u::quotient_hi#0 // quotient_hi zp[1]:2 333333.6666666667 char div16u8u::quotient_lo char div16u8u::quotient_lo#0 // quotient_lo zp[1]:16 2000002.0 unsigned int div16u8u::return unsigned int div16u8u::return#0 // return zp[2]:18 366667.3333333334 unsigned int div16u8u::return#2 // return_1 zp[2]:48 9166.833333333332 char divr8u(char dividend , char divisor , char rem) char divr8u::$1 // zp[1]:17 2.00000000002E11 char divr8u::dividend char divr8u::dividend#0 // dividend zp[1]:3 2.500000000025E10 char divr8u::dividend#1 // dividend zp[1]:3 2000002.0 char divr8u::dividend#2 // dividend zp[1]:3 1000001.0 char divr8u::dividend#3 // dividend zp[1]:3 5.0001666667333336E10 char divr8u::dividend#5 // dividend zp[1]:3 1.2000003E7 char divr8u::divisor char divr8u::i char divr8u::i#1 // i zp[1]:7 1.500000000015E11 char divr8u::i#2 // i zp[1]:7 1.6666666666833334E10 char divr8u::quotient char divr8u::quotient#1 // quotient zp[1]:16 1.500000000015E11 char divr8u::quotient#2 // quotient zp[1]:16 1.00000000001E11 char divr8u::quotient#3 // quotient zp[1]:16 2.8571428571714287E10 char divr8u::rem char divr8u::rem#0 // rem zp[1]:15 1.00000000001E11 char divr8u::rem#1 // rem zp[1]:15 2.00000000002E11 char divr8u::rem#10 // rem zp[1]:15 1.1000002E7 char divr8u::rem#11 // rem zp[1]:15 2.702711801846847E9 char divr8u::rem#2 // rem zp[1]:15 2.00000000002E11 char divr8u::rem#4 // rem zp[1]:15 2000002.0 char divr8u::rem#5 // rem zp[1]:15 2.00010000003E11 char divr8u::rem#6 // rem zp[1]:15 1.00000000001E11 char divr8u::return char divr8u::return#0 // return zp[1]:16 5.000033333416667E10 char divr8u::return#2 // return zp[1]:16 2000002.0 char divr8u::return#3 // return zp[1]:16 2000002.0 __constant const char down = $11 unsigned int duck unsigned int duck#0 // duck zp[2]:22 6.6666667333333336E7 unsigned int duck#1 // duck zp[2]:22 4237745.88135593 __constant const char duck_udg[] = { $e, $1b, $3f, $1f, $f, 7, $f, $1f, 0, 0, 0, 0, 0, $c0, $70, $bc, $1f, $1d, $1e, $f, 3, 1, 1, 3, $ce, $1e, $7c, $f8, $e0, $40, $40, $e0, 0, 0, 0, 0, 0, 0, 0, 0 } __constant const char ducknumber[] = { $44, $55, $43, $4b, $3a } __constant const char foot[] = "PRESS: 1,3,5,7 or 9 " __constant const char game_over[] = " GAME OVER" void gotoxy(char x , char y) char *gotoxy::$5 // zp[2]:72 20002.0 char *gotoxy::$6 // zp[2]:44 20002.0 unsigned int gotoxy::$7 // zp[2]:44 15001.5 unsigned int gotoxy::$8 // zp[2]:70 20002.0 unsigned int gotoxy::$9 // zp[2]:44 20002.0 unsigned int gotoxy::line_offset unsigned int gotoxy::line_offset#0 // line_offset zp[2]:44 10001.0 char gotoxy::x char gotoxy::y char gotoxy::y#2 // y zp[1]:76 22.0 char gotoxy::y#4 // y zp[1]:76 6671.0 char gotoxy::y#5 // y zp[1]:76 6667.333333333333 __constant const char green = $1e __constant const char high_score[] = " Hi-Score: " unsigned int hiscore unsigned int hiscore#110 // hiscore_1 zp[2]:108 1.1744186046511627 unsigned int hiscore#123 // hiscore_1 zp[2]:108 202.0 unsigned int hiscore#124 // hiscore zp[2]:42 202.0 unsigned int hiscore#19 // hiscore zp[2]:42 31.076923076923077 __constant const char home = $13 __constant const char intro[] = " DIFFICULTY ---------- " char j char j#11 // j zp[1]:50 7500.75 char j#13 // j_1 zp[1]:85 1001.0 char j#16 // j_2 zp[1]:86 1001.0 char j#19 // j_3 zp[1]:104 1034.6666666666667 char j#2 // j zp[1]:50 20002.0 char j#3 // j_1 zp[1]:85 2002.0 char j#5 // j_2 zp[1]:86 2002.0 char k char k#1 // k zp[1]:99 2002.0 char k#101 // k zp[1]:99 273.0 __loadstore volatile char l // zp[1]:107 455.79148936170213 __constant const char levels[] = "1.EASIEST 3.EASY 5.MEDIUM 7.HARD 9.EXPERT " __constant const char lock = 8 __constant const char lower = $e __loadstore volatile char m // zp[1]:4 3.8961039106499544E16 void main() unsigned int main::$104 // zp[2]:93 2500.25 unsigned int main::$107 // zp[2]:95 2500.25 unsigned int main::$110 // zp[2]:97 2500.25 unsigned int main::$119 // zp[2]:74 6667.333333333333 unsigned int main::$120 // zp[2]:81 10001.0 unsigned int main::$122 // zp[2]:83 10001.0 unsigned int main::$124 // zp[2]:74 10001.0 unsigned int main::$125 // zp[2]:77 10001.0 unsigned int main::$127 // zp[2]:58 10001.0 unsigned int main::$128 // zp[2]:58 10001.0 unsigned int main::$130 // zp[2]:60 10001.0 unsigned int main::$131 // zp[2]:60 10001.0 unsigned int main::$133 // zp[2]:62 10001.0 unsigned int main::$134 // zp[2]:62 10001.0 unsigned int main::$136 // zp[2]:79 10001.0 unsigned int main::$138 // zp[2]:64 10001.0 unsigned int main::$139 // zp[2]:64 10001.0 unsigned int main::$141 // zp[2]:66 10001.0 unsigned int main::$142 // zp[2]:66 10001.0 unsigned int main::$144 // zp[2]:68 10001.0 unsigned int main::$145 // zp[2]:68 10001.0 unsigned int main::$150 // zp[2]:105 1001.0 unsigned int main::$151 // zp[2]:87 2002.0 unsigned int main::$152 // zp[2]:87 1001.0 unsigned int main::$153 // zp[2]:89 2002.0 unsigned int main::$154 // zp[2]:89 1001.0 unsigned int main::$155 // zp[2]:91 2002.0 unsigned int main::$156 // zp[2]:91 1001.0 char main::$177 // zp[1]:8 2002.0 unsigned int main::$179 // zp[2]:56 20002.0 unsigned int main::$180 // zp[2]:46 20002.0 char main::$26 // zp[1]:8 2002.0 unsigned int main::$29 // zp[2]:5 2002.0 unsigned int main::$3 // zp[2]:112 101.0 unsigned int main::$35 // zp[2]:102 2002.0 unsigned int main::$57 // zp[2]:100 2002.0 unsigned int main::$61 // zp[2]:13 2.00000002E8 unsigned int main::$66 // zp[2]:11 2.00000002E7 unsigned int main::$69 // zp[2]:25 2.00000002E7 unsigned int main::$72 // zp[2]:27 2.00000002E7 char main::$78 // zp[1]:16 20002.0 char main::$81 // zp[1]:7 20002.0 char main::$84 // zp[1]:3 20002.0 char main::$88 // zp[1]:54 20002.0 char main::$92 // zp[1]:55 20002.0 unsigned int main::$96 // zp[2]:46 15001.5 unsigned int main::$97 // zp[2]:46 20002.0 void * memcpy(void *destination , void *source , unsigned int num) void *memcpy::destination void *memcpy::destination#2 // destination zp[2]:11 char *memcpy::dst char *memcpy::dst#1 // dst zp[2]:11 1.000000000001E12 char *memcpy::dst#2 // dst zp[2]:11 1.0003333333346667E12 char *memcpy::dst#4 // dst zp[2]:11 2.000000002E9 unsigned int memcpy::num void *memcpy::return void *memcpy::source void *memcpy::source#2 // source zp[2]:13 char *memcpy::src char *memcpy::src#1 // src zp[2]:13 2.000000000002E12 char *memcpy::src#2 // src zp[2]:13 1.00025000000125E12 char *memcpy::src#4 // src zp[2]:13 1.000000001E9 char *memcpy::src_end char *memcpy::src_end#0 // src_end zp[2]:9 1.2512500000025E11 void * memset(void *str , char c , unsigned int num) char memset::c char memset::c#1 // c zp[1]:16 2.00000002E8 char memset::c#4 // c zp[1]:16 1.4287142857171426E11 char *memset::dst char *memset::dst#1 // dst zp[2]:11 2.000000000002E12 char *memset::dst#2 // dst zp[2]:11 1.3336666666683335E12 char *memset::dst#4 // dst zp[2]:11 2.000000002E9 char *memset::end char *memset::end#0 // end zp[2]:18 1.668333333336667E11 unsigned int memset::num void *memset::return void *memset::str void *memset::str#3 // str zp[2]:11 char n char n#1 // n zp[1]:51 20002.0 char n#101 // n zp[1]:51 4429.142857142857 char n#109 // n zp[1]:51 7.769230769230769 char n#14 // n zp[1]:51 344.8620689655172 char n#20 // n zp[1]:51 220.07272727272726 char n#52 // n zp[1]:51 93.84375 char n#89 // n zp[1]:51 35.644067796610166 unsigned int peephole unsigned int peephole#12 // peephole zp[2]:52 617.7352941176471 unsigned int peephole#52 // peephole zp[2]:52 62.5625 __constant const char play_again[] = " Play Again (Y/N)?" __constant char points[] = { 0, 0, 0, 0 } void random(char k , char n) char random::$3 // zp[1]:2 5.5E17 char random::k char random::k#0 // k zp[1]:3 500.5 char random::k#4 // k zp[1]:3 2.000000000000002E17 char random::n char random::n#0 // n zp[1]:8 2002.0 char random::n#4 // n zp[1]:8 2.00000000000002E16 void read_chrono() unsigned int read_chrono::$0 // zp[2]:35 200002.0 unsigned int read_chrono::$5 // zp[2]:9 200002.0 __constant const char red = $1c char rem8u char rem8u#127 // rem8u zp[1]:15 11.6 char rem8u#25 // rem8u zp[1]:15 220.07272727272726 char rem8u#48 // rem8u zp[1]:15 93.84375 __constant const char reverse_on = $12 __constant const char right = $1d unsigned int score unsigned int score#13 // score zp[2]:42 70334.66666666666 unsigned int score#19 // score zp[2]:42 1272.9090909090908 unsigned int score#38 // score zp[2]:42 3843.0654205607475 unsigned int score#4 // score zp[2]:42 2002.0 unsigned int score#43 // score zp[2]:42 566.0943396226415 unsigned int score#6 // score zp[2]:42 20002.0 unsigned int score#8 // score zp[2]:42 10001.0 unsigned int score#81 // score zp[2]:42 15001.5 char textcolor(char color) char textcolor::color char textcolor::color#7 // color zp[1]:8 1001.0 char textcolor::old char textcolor::return unsigned int time unsigned int time#11 // time zp[2]:48 20002.0 unsigned int time#17 // time zp[2]:48 566.0943396226415 unsigned int time#38 // time zp[2]:48 10001.0 unsigned int tu unsigned int tu#1 // tu zp[2]:110 166.83333333333334 unsigned int tu#13 // tu zp[2]:110 32.032 void utoa(unsigned int value , char *buffer , char radix) char utoa::$10 // zp[1]:17 2.0000000002E10 char utoa::$11 // zp[1]:2 2000002.0 char *utoa::buffer char *utoa::buffer#10 // buffer zp[2]:13 2.857285714714286E9 char *utoa::buffer#15 // buffer zp[2]:13 1.50000000015E10 char *utoa::buffer#3 // buffer zp[2]:13 2000002.0 char *utoa::buffer#4 // buffer zp[2]:13 2.0000000002E10 char utoa::digit char utoa::digit#1 // digit zp[1]:3 2.0000000002E10 char utoa::digit#2 // digit zp[1]:3 2.857142857428571E9 unsigned int utoa::digit_value unsigned int utoa::digit_value#0 // digit_value zp[2]:9 6.0000000006E9 unsigned int *utoa::digit_values char utoa::max_digits char utoa::radix char utoa::started char utoa::started#2 // started zp[1]:16 5.0000000005E9 char utoa::started#4 // started zp[1]:16 1.0000000001E10 unsigned int utoa::value unsigned int utoa::value#0 // value zp[2]:5 1.0000000001E10 unsigned int utoa::value#1 // value zp[2]:5 200002.0 unsigned int utoa::value#10 // value zp[2]:5 1100103.0 unsigned int utoa::value#2 // value zp[2]:5 202.0 unsigned int utoa::value#3 // value zp[2]:5 5.714428572142858E9 unsigned int utoa::value#7 // value zp[2]:5 1.50000000015E10 unsigned int utoa_append(char *buffer , unsigned int value , unsigned int sub) char *utoa_append::buffer char *utoa_append::buffer#0 // buffer zp[2]:13 1.375000000025E10 char utoa_append::digit char utoa_append::digit#1 // digit zp[1]:7 1.0E16 char utoa_append::digit#2 // digit zp[1]:7 1.000005E16 unsigned int utoa_append::return unsigned int utoa_append::return#0 // return zp[2]:5 2.0000000002E10 unsigned int utoa_append::sub unsigned int utoa_append::sub#0 // sub zp[2]:9 3.333335E15 unsigned int utoa_append::value unsigned int utoa_append::value#0 // value zp[2]:5 3.6666666667333336E10 unsigned int utoa_append::value#1 // value zp[2]:5 2.0E16 unsigned int utoa_append::value#2 // value zp[2]:5 5.000018333333334E15 void wait(char n) char wait::n char wait::n#6 // n zp[1]:3 1.25000000125E8 void write_score() unsigned int y unsigned int y#0 // y zp[2]:40 20002.0 unsigned int y#1 // y zp[2]:40 20002.0 unsigned int y#10 // y zp[2]:40 13334.666666666666 unsigned int y#11 // y zp[2]:40 13334.666666666666 unsigned int y#114 // y zp[2]:40 11.6 unsigned int y#12 // y zp[2]:40 13334.666666666666 unsigned int y#13 // y zp[2]:40 2285.9428571428575 unsigned int y#130 // y zp[2]:40 20002.0 unsigned int y#141 // y_1 zp[2]:52 20002.0 unsigned int y#18 // y zp[2]:40 509.61904761904765 unsigned int y#2 // y zp[2]:40 20002.0 unsigned int y#3 // y zp[2]:40 20002.0 unsigned int y#35 // y_1 zp[2]:52 2353.1764705882347 unsigned int y#49 // y zp[2]:40 93.84375 __constant const char yellow = $9e __constant const char your_score[] = " Your Score: " unsigned int z unsigned int z#1 // z zp[2]:37 200002.0 unsigned int z#100 // z_1 zp[2]:20 1050.15 unsigned int z#102 // z_1 zp[2]:20 93.84375 unsigned int z#128 // z_1 zp[2]:20 93.84375 unsigned int z#2 // z zp[2]:37 66667.33333333333 unsigned int z#23 // z_1 zp[2]:20 1.0333333334666666E10 unsigned int z#25 // z_1 zp[2]:20 2.564438476923077E7 unsigned int z#28 // z_1 zp[2]:20 266.93333333333334 unsigned int z#4 // z_1 zp[2]:20 2.0000000002E10 unsigned int z#48 // z_1 zp[2]:20 857.2285714285714 unsigned int z#53 // z_1 zp[2]:20 70503.0 unsigned int z#9 // z_1 zp[2]:20 2002.0 zp[1]:76 [ conio_c64_init::line#2 conio_c64_init::line#0 gotoxy::y#5 gotoxy::y#4 gotoxy::y#2 ] zp[2]:108 [ hiscore#110 hiscore#123 ] zp[1]:99 [ k#101 k#1 ] zp[1]:85 [ j#13 j#3 ] zp[1]:86 [ j#16 j#5 ] zp[2]:110 [ tu#13 tu#1 ] zp[2]:52 [ peephole#52 peephole#12 y#35 y#141 ] zp[1]:51 [ n#52 n#89 n#109 n#20 n#101 n#14 n#1 ] zp[2]:48 [ time#11 time#17 time#38 div16u8u::return#2 ] zp[2]:40 [ y#13 y#12 y#11 y#10 y#0 y#49 y#114 y#18 y#130 y#1 y#2 y#3 ] zp[2]:42 [ score#81 hiscore#19 hiscore#124 score#19 score#43 score#38 score#8 score#13 score#4 score#6 ] zp[1]:50 [ j#11 j#2 ] zp[2]:37 [ z#2 z#1 ] zp[1]:8 [ random::n#4 random::n#0 main::$26 main::$177 textcolor::color#7 clear_screen::n#5 ] zp[2]:20 [ z#53 z#48 z#100 z#102 z#128 z#28 z#9 z#25 z#23 z#4 ] zp[1]:15 [ divr8u::rem#5 divr8u::rem#10 divr8u::rem#4 rem8u#48 rem8u#127 rem8u#25 divr8u::rem#11 divr8u::rem#6 divr8u::rem#0 divr8u::rem#1 divr8u::rem#2 ] zp[1]:39 [ conio_cursor_x ] zp[1]:29 [ conio_cursor_y ] zp[2]:32 [ conio_line_text ] zp[2]:30 [ conio_line_color ] zp[1]:34 [ conio_textcolor ] zp[1]:107 [ l ] zp[1]:4 [ m ] zp[1]:24 [ chrout::petscii ] zp[2]:5 [ main::$29 utoa::value#3 utoa::value#7 utoa::value#10 utoa::value#2 utoa::value#1 utoa::value#0 utoa_append::value#2 utoa_append::value#0 utoa_append::value#1 utoa_append::return#0 cputs::s#10 cputs::s#11 cputs::s#0 ] zp[2]:22 [ duck#0 duck#1 ] zp[2]:13 [ main::$61 memcpy::source#2 memcpy::src#2 memcpy::src#4 memcpy::src#1 utoa::buffer#10 utoa::buffer#15 utoa::buffer#4 utoa::buffer#3 utoa_append::buffer#0 ] zp[2]:11 [ main::$66 memset::str#3 memset::dst#2 memset::dst#4 memset::dst#1 memcpy::destination#2 memcpy::dst#2 memcpy::dst#4 memcpy::dst#1 ] zp[2]:25 [ main::$69 ] zp[2]:27 [ main::$72 ] zp[2]:105 [ main::$150 ] zp[2]:87 [ main::$151 main::$152 ] zp[2]:89 [ main::$153 main::$154 ] zp[2]:91 [ main::$155 main::$156 ] zp[1]:104 [ j#19 ] zp[1]:16 [ main::$78 memset::c#4 memset::c#1 divr8u::quotient#3 divr8u::return#0 divr8u::quotient#1 divr8u::quotient#2 divr8u::return#2 divr8u::return#3 div16u8u::quotient_lo#0 utoa::started#2 utoa::started#4 ] zp[1]:7 [ main::$81 divr8u::i#2 divr8u::i#1 utoa_append::digit#2 utoa_append::digit#1 ] zp[1]:3 [ main::$84 divr8u::dividend#3 divr8u::dividend#5 divr8u::dividend#1 divr8u::dividend#2 divr8u::dividend#0 utoa::digit#2 utoa::digit#1 wait::n#6 random::k#4 random::k#0 ] zp[1]:54 [ main::$88 ] zp[1]:55 [ main::$92 ] zp[2]:46 [ main::$96 main::$180 main::$97 ] zp[2]:56 [ main::$179 ] zp[2]:93 [ main::$104 ] zp[2]:95 [ main::$107 ] zp[2]:97 [ main::$110 ] zp[2]:77 [ main::$125 ] zp[2]:58 [ main::$127 main::$128 ] zp[2]:60 [ main::$130 main::$131 ] zp[2]:62 [ main::$133 main::$134 ] zp[2]:79 [ main::$136 ] zp[2]:64 [ main::$138 main::$139 ] zp[2]:66 [ main::$141 main::$142 ] zp[2]:68 [ main::$144 main::$145 ] zp[2]:74 [ main::$119 main::$124 ] zp[2]:81 [ main::$120 ] zp[2]:83 [ main::$122 ] zp[2]:100 [ main::$57 ] zp[2]:102 [ main::$35 ] zp[2]:112 [ main::$3 ] zp[2]:44 [ gotoxy::$7 gotoxy::$9 gotoxy::line_offset#0 gotoxy::$6 ] zp[2]:70 [ gotoxy::$8 ] zp[2]:72 [ gotoxy::$5 ] zp[2]:35 [ read_chrono::$0 div16u8u::dividend#0 clear_screen::$4 ] zp[1]:2 [ div16u8u::quotient_hi#0 utoa::$11 random::$3 cputs::c#1 cputc::c#0 ] zp[1]:17 [ divr8u::$1 utoa::$10 ] zp[2]:9 [ memcpy::src_end#0 read_chrono::$5 utoa::digit_value#0 utoa_append::sub#0 clear_screen::$5 ] zp[2]:18 [ memset::end#0 div16u8u::return#0 ] FINAL ASSEMBLER Score: 2147483647 // File Comments /// @file /// Functions for performing input and output. // Upstart // Commodore 64 PRG executable file .file [name="ducks-total.prg", type="prg", segments="Program"] .segmentdef Program [segments="Basic, Code, Data"] .segmentdef Basic [start=$0801] .segmentdef Code [start=$80d] .segmentdef Data [startAfter="Code"] .segment Basic :BasicUpstart(__start) // Global Constants & labels .const LIGHT_BLUE = $e .const down = $11 .const right = $1d .const lock = 8 .const lower = $e .const home = $13 .const reverse_on = $12 .const brick = $e6 .const green = $1e .const yellow = $9e .const red = $1c .const c = $7800 /// Color Ram .label COLORRAM = $d800 /// Default address of screen character matrix .label DEFAULT_SCREEN = $400 // The number of bytes on the screen // The current cursor x-position .label conio_cursor_x = $27 // The current cursor y-position .label conio_cursor_y = $1d // The current text cursor line start .label conio_line_text = $20 // The current color cursor line start .label conio_line_color = $1e // The current text color .label conio_textcolor = $22 .label l = $6b .label m = 4 .label z = $25 .label z_1 = $14 .label n = $33 .label k = $63 .label j = $32 .label j_1 = $55 .label j_2 = $56 .label duck = $16 // [0..255] 8-bit .label tu = $6e // Volume to max .label score = $2a .label y = $28 .label time = $30 .label j_3 = $68 // Remainder after signed 8 bit division .label rem8u = $f .label peephole = $34 .label y_1 = $34 .label hiscore = $2a .label hiscore_1 = $6c .segment Code // __start __start: { // __start::__init1 // __ma char conio_cursor_x = 0 // [1] conio_cursor_x = 0 -- vbuz1=vbuc1 lda #0 sta.z conio_cursor_x // __ma char conio_cursor_y = 0 // [2] conio_cursor_y = 0 -- vbuz1=vbuc1 sta.z conio_cursor_y // __ma char *conio_line_text = CONIO_SCREEN_TEXT // [3] conio_line_text = DEFAULT_SCREEN -- pbuz1=pbuc1 lda #DEFAULT_SCREEN sta.z conio_line_text+1 // __ma char *conio_line_color = CONIO_SCREEN_COLORS // [4] conio_line_color = COLORRAM -- pbuz1=pbuc1 lda #COLORRAM sta.z conio_line_color+1 // __ma char conio_textcolor = CONIO_TEXTCOLOR_DEFAULT // [5] conio_textcolor = LIGHT_BLUE -- vbuz1=vbuc1 lda #LIGHT_BLUE sta.z conio_textcolor // j,k,l,m // [6] l = 0 -- vbuz1=vbuc1 lda #0 sta.z l // j,k,l,m,n=0 // [7] m = 0 -- vbuz1=vbuc1 sta.z m // #pragma constructor_for(conio_c64_init, cputc, clrscr, cscroll) // [8] call conio_c64_init jsr conio_c64_init // [9] phi from __start::__init1 to __start::@1 [phi:__start::__init1->__start::@1] // __start::@1 // [10] call main jsr main // __start::@return // [11] return rts } // conio_c64_init // Set initial cursor position conio_c64_init: { // Position cursor at current line .label BASIC_CURSOR_LINE = $d6 .label line = $4c // char line = *BASIC_CURSOR_LINE // [12] conio_c64_init::line#0 = *conio_c64_init::BASIC_CURSOR_LINE -- vbuz1=_deref_pbuc1 lda.z BASIC_CURSOR_LINE sta.z line // if(line>=CONIO_HEIGHT) // [13] if(conio_c64_init::line#0<$19) goto conio_c64_init::@2 -- vbuz1_lt_vbuc1_then_la1 cmp #$19 bcc __b1 // [15] phi from conio_c64_init to conio_c64_init::@1 [phi:conio_c64_init->conio_c64_init::@1] // [15] phi conio_c64_init::line#2 = $19-1 [phi:conio_c64_init->conio_c64_init::@1#0] -- vbuz1=vbuc1 lda #$19-1 sta.z line // [14] phi from conio_c64_init to conio_c64_init::@2 [phi:conio_c64_init->conio_c64_init::@2] // conio_c64_init::@2 // [15] phi from conio_c64_init::@2 to conio_c64_init::@1 [phi:conio_c64_init::@2->conio_c64_init::@1] // [15] phi conio_c64_init::line#2 = conio_c64_init::line#0 [phi:conio_c64_init::@2->conio_c64_init::@1#0] -- register_copy // conio_c64_init::@1 __b1: // gotoxy(0, line) // [16] gotoxy::y#2 = conio_c64_init::line#2 // [17] call gotoxy // [304] phi from conio_c64_init::@1 to gotoxy [phi:conio_c64_init::@1->gotoxy] // [304] phi gotoxy::y#4 = gotoxy::y#2 [phi:conio_c64_init::@1->gotoxy#0] -- register_copy jsr gotoxy // conio_c64_init::@return // } // [18] return rts } // main main: { .label __3 = $70 .label __26 = 8 .label __29 = 5 .label __35 = $66 .label __57 = $64 .label __61 = $d .label __66 = $b .label __69 = $19 .label __72 = $1b .label __78 = $10 .label __81 = 7 .label __84 = 3 .label __88 = $36 .label __92 = $37 .label __96 = $2e .label __97 = $2e .label __104 = $5d .label __107 = $5f .label __110 = $61 .label __119 = $4a .label __120 = $51 .label __122 = $53 .label __124 = $4a .label __125 = $4d .label __127 = $3a .label __128 = $3a .label __130 = $3c .label __131 = $3c .label __133 = $3e .label __134 = $3e .label __136 = $4f .label __138 = $40 .label __139 = $40 .label __141 = $42 .label __142 = $42 .label __144 = $44 .label __145 = $44 .label __150 = $69 .label __151 = $57 .label __152 = $57 .label __153 = $59 .label __154 = $59 .label __155 = $5b .label __156 = $5b .label __177 = 8 .label __179 = $38 .label __180 = $2e // POKE // [19] *((char *) 36879) = 8 -- _deref_pbuc1=vbuc2 lda #8 sta $900f // chrout(lock) // [20] chrout::petscii = lock -- vbuz1=vbuc1 lda #lock sta.z chrout.petscii // [21] call chrout // border and black paper jsr chrout // main::@50 // chrout(lower) // [22] chrout::petscii = lower -- vbuz1=vbuc1 lda #lower sta.z chrout.petscii // [23] call chrout //Lock UpperCase to Lowercase key jsr chrout // main::@51 // m=0 // [24] m = 0 -- vbuz1=vbuc1 lda #0 sta.z m //Put text in Lowercase set // main::@1 __b1: // for (m=0; m<40; m++) // [25] if(m<$28) goto main::@2 -- vbuz1_lt_vbuc1_then_la1 lda.z m cmp #$28 bcs !__b2+ jmp __b2 !__b2: // [26] phi from main::@1 to main::@3 [phi:main::@1->main::@3] // [26] phi n#109 = 0 [phi:main::@1->main::@3#0] -- vbuz1=vbuc1 lda #0 sta.z n // [26] phi hiscore#110 = 0 [phi:main::@1->main::@3#1] -- vwuz1=vwuc1 sta.z hiscore_1 sta.z hiscore_1+1 // [26] phi y#114 = 0 [phi:main::@1->main::@3#2] -- vwuz1=vwuc1 sta.z y sta.z y+1 // [26] phi rem8u#127 = 0 [phi:main::@1->main::@3#3] -- vbuz1=vbuc1 sta.z rem8u // Load udgs. From 0-->39; // main::@3 __b3: // clear_screen(32,0) // [27] call clear_screen // [321] phi from main::@3 to clear_screen [phi:main::@3->clear_screen] // [321] phi clear_screen::n#5 = $20 [phi:main::@3->clear_screen#0] -- vbuz1=vbuc1 lda #$20 sta.z clear_screen.n jsr clear_screen // [28] phi from main::@3 to main::@52 [phi:main::@3->main::@52] // main::@52 // textcolor(7) // [29] call textcolor // Clear Screen with spaces & black ink // [334] phi from main::@52 to textcolor [phi:main::@52->textcolor] // [334] phi textcolor::color#7 = 7 [phi:main::@52->textcolor#0] -- vbuz1=vbuc1 lda #7 sta.z textcolor.color jsr textcolor // [30] phi from main::@52 to main::@53 [phi:main::@52->main::@53] // main::@53 // cputs(intro) // [31] call cputs // [337] phi from main::@53 to cputs [phi:main::@53->cputs] // [337] phi cputs::s#11 = intro [phi:main::@53->cputs#0] -- pbuz1=pbuc1 lda #intro sta.z cputs.s+1 jsr cputs // [32] phi from main::@53 to main::@54 [phi:main::@53->main::@54] // main::@54 // textcolor(1) // [33] call textcolor // Yellow ink // [334] phi from main::@54 to textcolor [phi:main::@54->textcolor] // [334] phi textcolor::color#7 = 1 [phi:main::@54->textcolor#0] -- vbuz1=vbuc1 lda #1 sta.z textcolor.color jsr textcolor // [34] phi from main::@54 to main::@55 [phi:main::@54->main::@55] // main::@55 // cputs(levels) // [35] call cputs // [337] phi from main::@55 to cputs [phi:main::@55->cputs] // [337] phi cputs::s#11 = levels [phi:main::@55->cputs#0] -- pbuz1=pbuc1 lda #levels sta.z cputs.s+1 jsr cputs // [36] phi from main::@55 to main::@56 [phi:main::@55->main::@56] // main::@56 // textcolor(2) // [37] call textcolor // White // [334] phi from main::@56 to textcolor [phi:main::@56->textcolor] // [334] phi textcolor::color#7 = 2 [phi:main::@56->textcolor#0] -- vbuz1=vbuc1 lda #2 sta.z textcolor.color jsr textcolor // [38] phi from main::@56 to main::@57 [phi:main::@56->main::@57] // main::@57 // cputs(foot) // [39] call cputs // [337] phi from main::@57 to cputs [phi:main::@57->cputs] // [337] phi cputs::s#11 = foot [phi:main::@57->cputs#0] -- pbuz1=pbuc1 lda #foot sta.z cputs.s+1 jsr cputs // Red // main::@4 __b4: // l=PEEK // [40] l = *((char *) 197) -- vbuz1=_deref_pbuc1 lda.z $c5 sta.z l // ++l; // [41] l = ++ l -- vbuz1=_inc_vbuz1 inc.z l // while (l>5) // [42] if(l>=5+1) goto main::@4 -- vbuz1_ge_vbuc1_then_la1 lda.z l cmp #5+1 bcs __b4 // [43] phi from main::@4 to main::@5 [phi:main::@4->main::@5] // main::@5 // clear_screen(4,0) // [44] call clear_screen // wait for 1-3-5-7-9 keys only // [321] phi from main::@5 to clear_screen [phi:main::@5->clear_screen] // [321] phi clear_screen::n#5 = 4 [phi:main::@5->clear_screen#0] -- vbuz1=vbuc1 lda #4 sta.z clear_screen.n jsr clear_screen // main::@58 // POKE // [45] *((char *) 36869) = $ff -- _deref_pbuc1=vbuc2 lda #$ff sta $9005 // chrout(reverse_on) // [46] chrout::petscii = reverse_on -- vbuz1=vbuc1 lda #reverse_on sta.z chrout.petscii // [47] call chrout // Graphic mode jsr chrout // main::@59 // chrout(red) // [48] chrout::petscii = red -- vbuz1=vbuc1 lda #red sta.z chrout.petscii // [49] call chrout jsr chrout // main::@60 // chrout(down) // [50] chrout::petscii = down -- vbuz1=vbuc1 lda #down sta.z chrout.petscii // [51] call chrout jsr chrout // [52] phi from main::@60 to main::@6 [phi:main::@60->main::@6] // [52] phi n#89 = n#109 [phi:main::@60->main::@6#0] -- register_copy // [52] phi k#101 = 1 [phi:main::@60->main::@6#1] -- vbuz1=vbuc1 lda #1 sta.z k //for (z=1;z<23;z++) { POKE(7680+z*22,230);POKE(c+7680+z*22,2); POKE(7679+z*22,230); POKE(c+7679+z*22,2); } // 23 rows * 22 columns (7680 to 8185). 506 positions. //k=1; do { chrout(brick); POKE(211,20); chrout(brick); ++k; } while (k<23); //for (k=1;k<22;k++) { chrout(brick); POKE(211,22); chrout(brick); }; // 23 rows * 22 columns (7680 to 8185). 506 positions. // main::@6 __b6: // for (k=1;k<22;k++) // [53] if(k#101<$16) goto main::@7 -- vbuz1_lt_vbuc1_then_la1 lda.z k cmp #$16 bcs !__b7+ jmp __b7 !__b7: // main::@8 // chrout(brick) // [54] chrout::petscii = brick -- vbuz1=vbuc1 lda #brick sta.z chrout.petscii // [55] call chrout // 23 rows * 22 columns (7680 to 8185). 506 positions. jsr chrout // main::@61 // POKE // [56] *((char *) 8185) = brick -- _deref_pbuc1=vbuc2 lda #brick sta $1ff9 // [57] *((char *)$1ff9+c) = 2 -- _deref_pbuc1=vbuc2 lda #2 sta $1ff9+c // chrout(home) // [58] chrout::petscii = home -- vbuz1=vbuc1 lda #home sta.z chrout.petscii // [59] call chrout //last brick from last line (#23) to avoid scrolling jsr chrout // main::@62 // if (l>1) // [60] if(l<1+1) goto main::@12 -- vbuz1_lt_vbuc1_then_la1 lda.z l cmp #1+1 bcc __b8 // [61] phi from main::@62 to main::@13 [phi:main::@62->main::@13] // [61] phi z#28 = 1 [phi:main::@62->main::@13#0] -- vwuz1=vbuc1 lda #<1 sta.z z_1 lda #>1 sta.z z_1+1 // [61] phi from main::@73 to main::@13 [phi:main::@73->main::@13] // [61] phi z#28 = z#9 [phi:main::@73->main::@13#0] -- register_copy // main::@13 __b13: // random((7-l),26-(3*l)) // [62] random::k#0 = 7 - l -- vbuz1=vbuc1_minus_vbuz2 lda #7 sec sbc.z l sta.z random.k // 3*l // [63] main::$177 = l << 1 -- vbuz1=vbuz2_rol_1 lda.z l asl sta.z __177 // [64] main::$26 = main::$177 + l -- vbuz1=vbuz1_plus_vbuz2 lda.z __26 clc adc.z l sta.z __26 // random((7-l),26-(3*l)) // [65] random::n#0 = $1a - main::$26 -- vbuz1=vbuc1_minus_vbuz1 lda #$1a sec sbc.z random.n sta.z random.n // [66] call random // Write differential random bricks depending on 'l' level choosen // [345] phi from main::@13 to random [phi:main::@13->random] // [345] phi random::n#4 = random::n#0 [phi:main::@13->random#0] -- register_copy // [345] phi random::k#4 = random::k#0 [phi:main::@13->random#1] -- register_copy jsr random // main::@71 // z+m // [67] main::$29 = z#28 + m -- vwuz1=vwuz2_plus_vbuz3 lda.z m clc adc.z z_1 sta.z __29 lda #0 adc.z z_1+1 sta.z __29+1 // if (z+m>505) // [68] if(main::$29<=$1f9) goto main::@14 -- vwuz1_le_vwuc1_then_la1 cmp #>$1f9 bne !+ lda.z __29 cmp #<$1f9 !: bcs !__b24+ jmp __b24 !__b24: bne !__b24+ jmp __b24 !__b24: // [69] phi from main::@71 main::@73 to main::@12 [phi:main::@71/main::@73->main::@12] // [69] phi z#128 = z#28 [phi:main::@71/main::@73->main::@12#0] -- register_copy jmp __b12 // [69] phi from main::@62 to main::@12 [phi:main::@62->main::@12] __b8: // [69] phi z#128 = 1 [phi:main::@62->main::@12#0] -- vwuz1=vbuc1 lda #<1 sta.z z_1 lda #>1 sta.z z_1+1 // main::@12 __b12: // POKE // [70] *((char *) 36878) = $f -- _deref_pbuc1=vbuc2 lda #$f sta $900e // chrout(home) // [71] chrout::petscii = home -- vbuz1=vbuc1 lda #home sta.z chrout.petscii // [72] call chrout // Duck #1 jsr chrout // main::@65 // chrout(yellow) // [73] chrout::petscii = yellow -- vbuz1=vbuc1 lda #yellow sta.z chrout.petscii // [74] call chrout jsr chrout // main::@66 // chrout(80) // [75] chrout::petscii = $50 -- vbuz1=vbuc1 lda #$50 sta.z chrout.petscii // [76] call chrout jsr chrout // main::@67 // chrout(84) // [77] chrout::petscii = $54 -- vbuz1=vbuc1 lda #$54 sta.z chrout.petscii // [78] call chrout jsr chrout // main::@68 // chrout(83) // [79] chrout::petscii = $53 -- vbuz1=vbuc1 lda #$53 sta.z chrout.petscii // [80] call chrout jsr chrout // main::@69 // chrout(58) // [81] chrout::petscii = $3a -- vbuz1=vbuc1 lda #$3a sta.z chrout.petscii // [82] call chrout jsr chrout // main::@70 // POKE // [83] *((char *) 211) = $12 -- _deref_pbuc1=vbuc2 lda #$12 sta.z $d3 // [84] phi from main::@70 to main::@17 [phi:main::@70->main::@17] // [84] phi j#13 = 0 [phi:main::@70->main::@17#0] -- vbuz1=vbuc1 lda #0 sta.z j_1 // jump to Column 18 // main::@17 __b17: // for (j=0; j<4; ++j) // [85] if(j#13<4) goto main::@18 -- vbuz1_lt_vbuc1_then_la1 lda.z j_1 cmp #4 bcs !__b18+ jmp __b18 !__b18: // [86] phi from main::@17 to main::@19 [phi:main::@17->main::@19] // main::@19 // write_score() // [87] call write_score // Write 'TM:9', yellow // [351] phi from main::@19 to write_score [phi:main::@19->write_score] // [351] phi score#13 = 0 [phi:main::@19->write_score#0] -- vwuz1=vbuc1 lda #<0 sta.z score sta.z score+1 jsr write_score // main::@75 // chrout(home) // [88] chrout::petscii = home -- vbuz1=vbuc1 lda #home sta.z chrout.petscii // [89] call chrout // Write Score (yellow) jsr chrout // main::@76 // chrout(green) // [90] chrout::petscii = green -- vbuz1=vbuc1 lda #green sta.z chrout.petscii // [91] call chrout jsr chrout // main::@77 // POKE // [92] *((char *) 211) = $a -- _deref_pbuc1=vbuc2 lda #$a sta.z $d3 // [93] phi from main::@77 to main::@20 [phi:main::@77->main::@20] // [93] phi j#16 = 0 [phi:main::@77->main::@20#0] -- vbuz1=vbuc1 lda #0 sta.z j_2 // Jump to column 10 // main::@20 __b20: // for (j=0; j<5; j++) // [94] if(j#16<5) goto main::@21 -- vbuz1_lt_vbuc1_then_la1 lda.z j_2 cmp #5 bcs !__b21+ jmp __b21 !__b21: // [95] phi from main::@20 to main::@22 [phi:main::@20->main::@22] // [95] phi n#52 = n#89 [phi:main::@20->main::@22#0] -- register_copy // [95] phi peephole#52 = $1f1f [phi:main::@20->main::@22#1] -- vwuz1=vwuc1 lda #<$1f1f sta.z peephole lda #>$1f1f sta.z peephole+1 // [95] phi z#102 = z#128 [phi:main::@20->main::@22#2] -- register_copy // [95] phi y#49 = y#114 [phi:main::@20->main::@22#3] -- register_copy // [95] phi rem8u#48 = rem8u#127 [phi:main::@20->main::@22#4] -- register_copy // [95] phi tu#13 = 1 [phi:main::@20->main::@22#5] -- vwuz1=vbuc1 lda #<1 sta.z tu lda #>1 sta.z tu+1 // Write 'DUCK', green // [95] phi from main::@87 to main::@22 [phi:main::@87->main::@22] // [95] phi n#52 = n#20 [phi:main::@87->main::@22#0] -- register_copy // [95] phi peephole#52 = peephole#12 [phi:main::@87->main::@22#1] -- register_copy // [95] phi z#102 = z#25 [phi:main::@87->main::@22#2] -- register_copy // [95] phi y#49 = y#18 [phi:main::@87->main::@22#3] -- register_copy // [95] phi rem8u#48 = rem8u#25 [phi:main::@87->main::@22#4] -- register_copy // [95] phi tu#13 = tu#1 [phi:main::@87->main::@22#5] -- register_copy // main::@22 __b22: // chrout(home) // [96] chrout::petscii = home -- vbuz1=vbuc1 lda #home sta.z chrout.petscii // [97] call chrout jsr chrout // main::@79 // chrout(green) // [98] chrout::petscii = green -- vbuz1=vbuc1 lda #green sta.z chrout.petscii // [99] call chrout jsr chrout // main::@80 // chrout(reverse_on) // [100] chrout::petscii = reverse_on -- vbuz1=vbuc1 lda #reverse_on sta.z chrout.petscii // [101] call chrout jsr chrout // main::@81 // POKE // [102] *((char *) 211) = $f -- _deref_pbuc1=vbuc2 lda #$f sta.z $d3 // if (tu<10) // [103] if(tu#13<$a) goto main::@23 -- vwuz1_lt_vbuc1_then_la1 // Jump to column 15 lda.z tu+1 bne !+ lda.z tu cmp #$a bcs !__b23+ jmp __b23 !__b23: !: // main::@45 // chrout(49) // [104] chrout::petscii = $31 -- vbuz1=vbuc1 lda #$31 sta.z chrout.petscii // [105] call chrout jsr chrout // main::@82 // chrout(48) // [106] chrout::petscii = $30 -- vbuz1=vbuc1 lda #$30 sta.z chrout.petscii // [107] call chrout jsr chrout // [108] phi from main::@103 main::@104 main::@105 main::@106 main::@23 main::@82 main::@84 to main::@24 [phi:main::@103/main::@104/main::@105/main::@106/main::@23/main::@82/main::@84->main::@24] __b11: // Write duck number // main::@24 // random(0,255) // [109] call random // [345] phi from main::@24 to random [phi:main::@24->random] // [345] phi random::n#4 = $ff [phi:main::@24->random#0] -- vbuz1=vbuc1 lda #$ff sta.z random.n // [345] phi random::k#4 = 0 [phi:main::@24->random#1] -- vbuz1=vbuc1 lda #0 sta.z random.k jsr random // main::@83 // duck=m // [110] duck#0 = m -- vwuz1=vbuz2 lda.z m sta.z duck lda #0 sta.z duck+1 // random(0,255) // [111] call random // [345] phi from main::@83 to random [phi:main::@83->random] // [345] phi random::n#4 = $ff [phi:main::@83->random#0] -- vbuz1=vbuc1 lda #$ff sta.z random.n // [345] phi random::k#4 = 0 [phi:main::@83->random#1] -- vbuz1=vbuc1 lda #0 sta.z random.k jsr random // main::@84 // m+7701 // [112] main::$61 = m + $1e15 -- vwuz1=vbuz2_plus_vwuc1 lda.z m clc adc #<$1e15 sta.z __61 lda #>$1e15 adc #0 sta.z __61+1 // duck=m+7701+duck // [113] duck#1 = main::$61 + duck#0 -- vwuz1=vwuz2_plus_vwuz1 clc lda.z duck adc.z __61 sta.z duck lda.z duck+1 adc.z __61+1 sta.z duck+1 // PEEK // [114] main::$66 = duck#1 + 1 -- vwuz1=vwuz2_plus_1 clc lda.z duck adc #1 sta.z __66 lda.z duck+1 adc #0 sta.z __66+1 // [115] main::$69 = duck#1 + $16 -- vwuz1=vwuz2_plus_vbuc1 lda #$16 clc adc.z duck sta.z __69 lda #0 adc.z duck+1 sta.z __69+1 // [116] main::$72 = duck#1 + $17 -- vwuz1=vwuz2_plus_vbuc1 lda #$17 clc adc.z duck sta.z __72 lda #0 adc.z duck+1 sta.z __72+1 // while ((duck>8163) || PEEK(duck)==brick || PEEK(duck+1)==brick || PEEK(duck+22)==brick || PEEK(duck+23)==brick) // [117] if(duck#1>$1fe3) goto main::@24 -- vwuz1_gt_vwuc1_then_la1 lda #>$1fe3 cmp.z duck+1 bcc __b11 bne !+ lda #<$1fe3 cmp.z duck bcc __b11 !: // main::@106 // [118] if(*((char *)duck#1)==brick) goto main::@24 -- _deref_pbuz1_eq_vbuc1_then_la1 lda #brick ldy #0 cmp (duck),y beq __b11 // main::@105 // [119] if(*((char *)main::$66)==brick) goto main::@24 -- _deref_pbuz1_eq_vbuc1_then_la1 cmp (__66),y beq __b11 // main::@104 // [120] if(*((char *)main::$69)==brick) goto main::@24 -- _deref_pbuz1_eq_vbuc1_then_la1 cmp (__69),y beq __b11 // main::@103 // [121] if(*((char *)main::$72)==brick) goto main::@24 -- _deref_pbuz1_eq_vbuc1_then_la1 cmp (__72),y bne !__b11+ jmp __b11 !__b11: // [122] phi from main::@103 to main::@25 [phi:main::@103->main::@25] // main::@25 // chrono_restart() // [123] call chrono_restart jsr chrono_restart // [124] phi from main::@25 to main::@26 [phi:main::@25->main::@26] // [124] phi n#20 = n#52 [phi:main::@25->main::@26#0] -- register_copy // [124] phi peephole#12 = peephole#52 [phi:main::@25->main::@26#1] -- register_copy // [124] phi z#100 = z#102 [phi:main::@25->main::@26#2] -- register_copy // [124] phi y#18 = y#49 [phi:main::@25->main::@26#3] -- register_copy // [124] phi rem8u#25 = rem8u#48 [phi:main::@25->main::@26#4] -- register_copy // [124] phi score#19 = score#38 [phi:main::@25->main::@26#5] -- register_copy // [124] phi time#11 = 0 [phi:main::@25->main::@26#6] -- vwuz1=vbuc1 lda #<0 sta.z time sta.z time+1 // main::@26 __b26: // while (time<10) // [125] if(time#11<$a) goto main::@27 -- vwuz1_lt_vbuc1_then_la1 lda.z time+1 bne !+ lda.z time cmp #$a bcs !__b27+ jmp __b27 !__b27: !: // main::@28 // tu++; // [126] tu#1 = ++ tu#13 -- vwuz1=_inc_vwuz1 inc.z tu bne !+ inc.z tu+1 !: // score=score-10 // [127] score#4 = score#19 - $a -- vwuz1=vwuz1_minus_vbuc1 sec lda.z score sbc #$a sta.z score lda.z score+1 sbc #0 sta.z score+1 // write_score() // [128] call write_score // [351] phi from main::@28 to write_score [phi:main::@28->write_score] // [351] phi score#13 = score#4 [phi:main::@28->write_score#0] -- register_copy jsr write_score // main::@86 // POKE // [129] *((char *) 36877) = $82 -- _deref_pbuc1=vbuc2 lda #$82 sta $900d // wait(20) // [130] call wait // [381] phi from main::@86 to wait [phi:main::@86->wait] // [381] phi z#53 = z#100 [phi:main::@86->wait#0] -- register_copy // [381] phi wait::n#6 = $14 [phi:main::@86->wait#1] -- vbuz1=vbuc1 lda #$14 sta.z wait.n jsr wait // main::@87 // POKE // [131] *((char *) 36877) = 0 -- _deref_pbuc1=vbuc2 lda #0 sta $900d // [132] main::$150 = duck#1 + c -- vwuz1=vwuz2_plus_vwuc1 lda.z duck clc adc #c sta.z __150+1 // [133] *((char *)main::$150) = 0 -- _deref_pbuz1=vbuc1 lda #0 tay sta (__150),y // [134] main::$151 = duck#1 -- vwuz1=vwuz2 lda.z duck sta.z __151 lda.z duck+1 sta.z __151+1 // [135] main::$152 = main::$151 + 1+c -- vwuz1=vwuz1_plus_vwuc1 lda.z __152 clc adc #<1+c sta.z __152 lda.z __152+1 adc #>1+c sta.z __152+1 // [136] *((char *)main::$152) = 0 -- _deref_pbuz1=vbuc1 tya sta (__152),y // [137] main::$153 = duck#1 -- vwuz1=vwuz2 lda.z duck sta.z __153 lda.z duck+1 sta.z __153+1 // [138] main::$154 = main::$153 + $16+c -- vwuz1=vwuz1_plus_vwuc1 lda.z __154 clc adc #<$16+c sta.z __154 lda.z __154+1 adc #>$16+c sta.z __154+1 // [139] *((char *)main::$154) = 0 -- _deref_pbuz1=vbuc1 tya sta (__154),y // [140] main::$155 = duck#1 -- vwuz1=vwuz2 lda.z duck sta.z __155 lda.z duck+1 sta.z __155+1 // [141] main::$156 = main::$155 + $17+c -- vwuz1=vwuz1_plus_vwuc1 lda.z __156 clc adc #<$17+c sta.z __156 lda.z __156+1 adc #>$17+c sta.z __156+1 // [142] *((char *)main::$156) = 0 -- _deref_pbuz1=vbuc1 tya sta (__156),y // while (tu<11) // [143] if(tu#1<$b) goto main::@22 -- vwuz1_lt_vbuc1_then_la1 lda.z tu+1 bne !+ lda.z tu cmp #$b bcs !__b22+ jmp __b22 !__b22: !: // [144] phi from main::@87 to main::@44 [phi:main::@87->main::@44] // main::@44 // clear_screen(4,0) // [145] call clear_screen // 10 ducks // [321] phi from main::@44 to clear_screen [phi:main::@44->clear_screen] // [321] phi clear_screen::n#5 = 4 [phi:main::@44->clear_screen#0] -- vbuz1=vbuc1 lda #4 sta.z clear_screen.n jsr clear_screen // main::@91 // POKE // [146] *((char *) 36869) = $f0 -- _deref_pbuc1=vbuc2 lda #$f0 sta $9005 // chrout(lower) // [147] chrout::petscii = lower -- vbuz1=vbuc1 lda #lower sta.z chrout.petscii // [148] call chrout jsr chrout // [149] phi from main::@91 to main::@92 [phi:main::@91->main::@92] // main::@92 // textcolor(7) // [150] call textcolor // Return to text mode, lowcase // [334] phi from main::@92 to textcolor [phi:main::@92->textcolor] // [334] phi textcolor::color#7 = 7 [phi:main::@92->textcolor#0] -- vbuz1=vbuc1 lda #7 sta.z textcolor.color jsr textcolor // [151] phi from main::@92 to main::@93 [phi:main::@92->main::@93] // main::@93 // cputs(game_over) // [152] call cputs // [337] phi from main::@93 to cputs [phi:main::@93->cputs] // [337] phi cputs::s#11 = game_over [phi:main::@93->cputs#0] -- pbuz1=pbuc1 lda #game_over sta.z cputs.s+1 jsr cputs // [153] phi from main::@93 to main::@94 [phi:main::@93->main::@94] // main::@94 // textcolor(2) // [154] call textcolor // Yellow // [334] phi from main::@94 to textcolor [phi:main::@94->textcolor] // [334] phi textcolor::color#7 = 2 [phi:main::@94->textcolor#0] -- vbuz1=vbuc1 lda #2 sta.z textcolor.color jsr textcolor // [155] phi from main::@94 to main::@95 [phi:main::@94->main::@95] // main::@95 // cputs(your_score) // [156] call cputs // [337] phi from main::@95 to cputs [phi:main::@95->cputs] // [337] phi cputs::s#11 = your_score [phi:main::@95->cputs#0] -- pbuz1=pbuc1 lda #your_score sta.z cputs.s+1 jsr cputs // [157] phi from main::@95 to main::@96 [phi:main::@95->main::@96] // main::@96 // cputs(buffer) // [158] call cputs // [337] phi from main::@96 to cputs [phi:main::@96->cputs] // [337] phi cputs::s#11 = buffer [phi:main::@96->cputs#0] -- pbuz1=pbuc1 lda #buffer sta.z cputs.s+1 jsr cputs // [159] phi from main::@96 to main::@97 [phi:main::@96->main::@97] // main::@97 // textcolor(3) // [160] call textcolor // Red // [334] phi from main::@97 to textcolor [phi:main::@97->textcolor] // [334] phi textcolor::color#7 = 3 [phi:main::@97->textcolor#0] -- vbuz1=vbuc1 lda #3 sta.z textcolor.color jsr textcolor // [161] phi from main::@97 to main::@98 [phi:main::@97->main::@98] // main::@98 // cputs(high_score) // [162] call cputs // [337] phi from main::@98 to cputs [phi:main::@98->cputs] // [337] phi cputs::s#11 = high_score [phi:main::@98->cputs#0] -- pbuz1=pbuc1 lda #high_score sta.z cputs.s+1 jsr cputs // main::@99 // if (score>hiscore) // [163] if(score#38<=hiscore#110) goto main::@114 -- vwuz1_le_vwuz2_then_la1 lda.z score+1 cmp.z hiscore_1+1 bne !+ lda.z score cmp.z hiscore_1 beq __b114 !: bcc __b114 // [165] phi from main::@114 main::@99 to main::@46 [phi:main::@114/main::@99->main::@46] // [165] phi hiscore#19 = hiscore#124 [phi:main::@114/main::@99->main::@46#0] -- register_copy jmp __b46 // main::@114 __b114: // [164] hiscore#124 = hiscore#110 -- vwuz1=vwuz2 lda.z hiscore_1 sta.z hiscore lda.z hiscore_1+1 sta.z hiscore+1 // main::@46 __b46: // utoa(hiscore,buffer,10) // [166] utoa::value#2 = hiscore#19 -- vwuz1=vwuz2 lda.z hiscore sta.z utoa.value lda.z hiscore+1 sta.z utoa.value+1 // [167] call utoa // [390] phi from main::@46 to utoa [phi:main::@46->utoa] // [390] phi utoa::value#10 = utoa::value#2 [phi:main::@46->utoa#0] -- register_copy jsr utoa // [168] phi from main::@46 to main::@100 [phi:main::@46->main::@100] // main::@100 // cputs(buffer) // [169] call cputs // [337] phi from main::@100 to cputs [phi:main::@100->cputs] // [337] phi cputs::s#11 = buffer [phi:main::@100->cputs#0] -- pbuz1=pbuc1 lda #buffer sta.z cputs.s+1 jsr cputs // [170] phi from main::@100 to main::@101 [phi:main::@100->main::@101] // main::@101 // textcolor(1) // [171] call textcolor // Cyan // [334] phi from main::@101 to textcolor [phi:main::@101->textcolor] // [334] phi textcolor::color#7 = 1 [phi:main::@101->textcolor#0] -- vbuz1=vbuc1 lda #1 sta.z textcolor.color jsr textcolor // [172] phi from main::@101 to main::@102 [phi:main::@101->main::@102] // main::@102 // cputs(play_again) // [173] call cputs // [337] phi from main::@102 to cputs [phi:main::@102->cputs] // [337] phi cputs::s#11 = play_again [phi:main::@102->cputs#0] -- pbuz1=pbuc1 lda #play_again sta.z cputs.s+1 jsr cputs // white // main::@47 __b47: // j=PEEK // [174] j#19 = *((char *) 197) -- vbuz1=_deref_pbuc1 lda.z $c5 sta.z j_3 // while (j!= 11 && j!=28 ) // [175] if(j#19==$b) goto main::@48 -- vbuz1_eq_vbuc1_then_la1 lda #$b cmp.z j_3 beq __b48 // main::@112 // [176] if(j#19!=$1c) goto main::@47 -- vbuz1_neq_vbuc1_then_la1 lda #$1c cmp.z j_3 bne __b47 // main::@48 __b48: // while (j==11) // [177] if(j#19==$b) goto main::@113 -- vbuz1_eq_vbuc1_then_la1 lda #$b cmp.z j_3 beq __b113 // main::@49 // asm // asm { jsr$FD22 } // N pressed. Exit game jsr $fd22 // main::@return // } // [179] return rts // main::@113 __b113: // [180] hiscore#123 = hiscore#19 -- vwuz1=vwuz2 lda.z hiscore sta.z hiscore_1 lda.z hiscore+1 sta.z hiscore_1+1 // [26] phi from main::@113 to main::@3 [phi:main::@113->main::@3] // [26] phi n#109 = n#20 [phi:main::@113->main::@3#0] -- register_copy // [26] phi hiscore#110 = hiscore#123 [phi:main::@113->main::@3#1] -- register_copy // [26] phi y#114 = y#18 [phi:main::@113->main::@3#2] -- register_copy // [26] phi rem8u#127 = rem8u#25 [phi:main::@113->main::@3#3] -- register_copy jmp __b3 // [181] phi from main::@26 to main::@27 [phi:main::@26->main::@27] // main::@27 __b27: // read_chrono() // [182] call read_chrono jsr read_chrono // main::@85 // m=PEEK // [183] m = *((char *) 37151) -- vbuz1=_deref_pbuc1 // Joystick routine lda $911f sta.z m // POKE // [184] *((char *) 37154) = $7f -- _deref_pbuc1=vbuc2 lda #$7f sta $9122 // n=PEEK // [185] n#14 = *((char *) 37152) -- vbuz1=_deref_pbuc1 lda $9120 sta.z n // POKE // [186] *((char *) 37154) = $ff -- _deref_pbuc1=vbuc2 lda #$ff sta $9122 // 16&m // [187] main::$78 = $10 & m -- vbuz1=vbuc1_band_vbuz2 lda #$10 and.z m sta.z __78 // if ((16&m)==0) // [188] if(main::$78!=0) goto main::@29 -- vbuz1_neq_0_then_la1 bne __b29 // main::@37 // y--; // [189] y#0 = -- y#18 -- vwuz1=_dec_vwuz1 lda.z y bne !+ dec.z y+1 !: dec.z y // [190] phi from main::@37 main::@85 to main::@29 [phi:main::@37/main::@85->main::@29] // [190] phi y#10 = y#0 [phi:main::@37/main::@85->main::@29#0] -- register_copy // main::@29 __b29: // 128&n // [191] main::$81 = $80 & n#14 -- vbuz1=vbuc1_band_vbuz2 lda #$80 and.z n sta.z __81 // if ((128&n)==0) // [192] if(main::$81!=0) goto main::@30 -- vbuz1_neq_0_then_la1 bne __b30 // main::@38 // y++; // [193] y#1 = ++ y#10 -- vwuz1=_inc_vwuz1 inc.z y bne !+ inc.z y+1 !: // [194] phi from main::@29 main::@38 to main::@30 [phi:main::@29/main::@38->main::@30] // [194] phi y#11 = y#10 [phi:main::@29/main::@38->main::@30#0] -- register_copy // main::@30 __b30: // 4&m // [195] main::$84 = 4 & m -- vbuz1=vbuc1_band_vbuz2 lda #4 and.z m sta.z __84 // if ((4&m)==0) // [196] if(main::$84!=0) goto main::@31 -- vbuz1_neq_0_then_la1 bne __b31 // main::@39 // y=y-22 // [197] y#2 = y#11 - $16 -- vwuz1=vwuz1_minus_vbuc1 sec lda.z y sbc #$16 sta.z y lda.z y+1 sbc #0 sta.z y+1 // [198] phi from main::@30 main::@39 to main::@31 [phi:main::@30/main::@39->main::@31] // [198] phi y#12 = y#11 [phi:main::@30/main::@39->main::@31#0] -- register_copy // main::@31 __b31: // 8&m // [199] main::$88 = 8 & m -- vbuz1=vbuc1_band_vbuz2 lda #8 and.z m sta.z __88 // if ((8&m)==0) // [200] if(main::$88!=0) goto main::@32 -- vbuz1_neq_0_then_la1 bne __b32 // main::@40 // y=y+22 // [201] y#3 = y#12 + $16 -- vwuz1=vwuz1_plus_vbuc1 lda #$16 clc adc.z y sta.z y bcc !+ inc.z y+1 !: // [202] phi from main::@31 main::@40 to main::@32 [phi:main::@31/main::@40->main::@32] // [202] phi y#13 = y#12 [phi:main::@31/main::@40->main::@32#0] -- register_copy // main::@32 __b32: // 32&m // [203] main::$92 = $20 & m -- vbuz1=vbuc1_band_vbuz2 lda #$20 and.z m sta.z __92 // if ((32&m)==0) // [204] if(main::$92!=0) goto main::@33 -- vbuz1_neq_0_then_la1 bne __b33 // main::@41 // POKE // [205] *((char *) 36877) = $82 -- _deref_pbuc1=vbuc2 lda #$82 sta $900d // if (peephole!=duck) // [206] if(peephole#12!=duck#1) goto main::@34 -- vwuz1_neq_vwuz2_then_la1 lda.z peephole+1 cmp.z duck+1 beq !__b34+ jmp __b34 !__b34: lda.z peephole cmp.z duck beq !__b34+ jmp __b34 !__b34: // main::@42 // 12-time // [207] main::$96 = $c - div16u8u::return#2 -- vwuz1=vwuc1_minus_vwuz2 sec lda #<$c sbc.z div16u8u.return_1 sta.z __96 lda #>$c sbc.z div16u8u.return_1+1 sta.z __96+1 // (12-time)*10 // [208] main::$179 = main::$96 << 2 -- vwuz1=vwuz2_rol_2 lda.z __96 asl sta.z __179 lda.z __96+1 rol sta.z __179+1 asl.z __179 rol.z __179+1 // [209] main::$180 = main::$179 + main::$96 -- vwuz1=vwuz2_plus_vwuz1 clc lda.z __180 adc.z __179 sta.z __180 lda.z __180+1 adc.z __179+1 sta.z __180+1 // [210] main::$97 = main::$180 << 1 -- vwuz1=vwuz1_rol_1 asl.z __97 rol.z __97+1 // score=score+(12-time)*10 // [211] score#8 = score#19 + main::$97 -- vwuz1=vwuz1_plus_vwuz2 clc lda.z score adc.z __97 sta.z score lda.z score+1 adc.z __97+1 sta.z score+1 // wait(10) // [212] call wait // [381] phi from main::@42 to wait [phi:main::@42->wait] // [381] phi z#53 = z#100 [phi:main::@42->wait#0] -- register_copy // [381] phi wait::n#6 = $a [phi:main::@42->wait#1] -- vbuz1=vbuc1 lda #$a sta.z wait.n jsr wait // [213] phi from main::@42 to main::@35 [phi:main::@42->main::@35] // [213] phi score#81 = score#8 [phi:main::@42->main::@35#0] -- register_copy // [213] phi time#38 = $a [phi:main::@42->main::@35#1] -- vwuz1=vbuc1 lda #<$a sta.z time lda #>$a sta.z time+1 // main::@35 __b35: // POKE // [214] *((char *) 36877) = 0 -- _deref_pbuc1=vbuc2 lda #0 sta $900d // [215] phi from main::@32 main::@35 to main::@33 [phi:main::@32/main::@35->main::@33] // [215] phi score#43 = score#19 [phi:main::@32/main::@35->main::@33#0] -- register_copy // [215] phi time#17 = div16u8u::return#2 [phi:main::@32/main::@35->main::@33#1] -- register_copy // [215] phi z#48 = z#100 [phi:main::@32/main::@35->main::@33#2] -- register_copy // main::@33 __b33: // PEEK // [216] main::$104 = y#13 + 1 -- vwuz1=vwuz2_plus_1 clc lda.z y adc #1 sta.z __104 lda.z y+1 adc #0 sta.z __104+1 // [217] main::$107 = y#13 + $16 -- vwuz1=vwuz2_plus_vbuc1 lda #$16 clc adc.z y sta.z __107 lda #0 adc.z y+1 sta.z __107+1 // [218] main::$110 = y#13 + $17 -- vwuz1=vwuz2_plus_vbuc1 lda #$17 clc adc.z y sta.z __110 lda #0 adc.z y+1 sta.z __110+1 // if (PEEK(y)!=brick && PEEK(y+1)!=brick && PEEK(y+22)!=brick && PEEK(y+23)!=brick && y>7702 && y<8163) // [219] if(*((char *)y#13)==brick) goto main::@36 -- _deref_pbuz1_eq_vbuc1_then_la1 lda #brick ldy #0 cmp (y),y beq __b36 // main::@111 // [220] if(*((char *)main::$104)==brick) goto main::@36 -- _deref_pbuz1_eq_vbuc1_then_la1 cmp (__104),y beq __b36 // main::@110 // [221] if(*((char *)main::$107)!=brick) goto main::@109 -- _deref_pbuz1_neq_vbuc1_then_la1 lda (__107),y cmp #brick beq !__b109+ jmp __b109 !__b109: // [222] phi from main::@107 main::@108 main::@109 main::@110 main::@111 to main::@36 [phi:main::@107/main::@108/main::@109/main::@110/main::@111->main::@36] // [222] phi from main::@33 main::@43 to main::@36 [phi:main::@33/main::@43->main::@36] // [222] phi y#35 = peephole#12 [phi:main::@33/main::@43->main::@36#0] -- register_copy // main::@36 __b36: // POKE // [223] *((char *)y#35) = $fd -- _deref_pbuz1=vbuc1 lda #$fd ldy #0 sta (y_1),y // [224] main::$125 = y#35 + c -- vwuz1=vwuz2_plus_vwuc1 lda.z y_1 clc adc #c sta.z __125+1 // [225] *((char *)main::$125) = 1 -- _deref_pbuz1=vbuc1 lda #1 sta (__125),y // [226] main::$127 = y#35 + 1 -- vwuz1=vwuz2_plus_1 clc lda.z y_1 adc #1 sta.z __127 lda.z y_1+1 adc #0 sta.z __127+1 // [227] *((char *)main::$127) = $ed -- _deref_pbuz1=vbuc1 lda #$ed sta (__127),y // [228] main::$128 = main::$127 + c -- vwuz1=vwuz1_plus_vwuc1 lda.z __128 clc adc #c sta.z __128+1 // [229] *((char *)main::$128) = 1 -- _deref_pbuz1=vbuc1 lda #1 sta (__128),y // [230] main::$130 = y#35 + $16 -- vwuz1=vwuz2_plus_vbuc1 lda #$16 clc adc.z y_1 sta.z __130 tya adc.z y_1+1 sta.z __130+1 // [231] *((char *)main::$130) = $ee -- _deref_pbuz1=vbuc1 lda #$ee sta (__130),y // [232] main::$131 = main::$130 + c -- vwuz1=vwuz1_plus_vwuc1 lda.z __131 clc adc #c sta.z __131+1 // [233] *((char *)main::$131) = 1 -- _deref_pbuz1=vbuc1 lda #1 sta (__131),y // [234] main::$133 = y#35 + $17 -- vwuz1=vwuz2_plus_vbuc1 lda #$17 clc adc.z y_1 sta.z __133 tya adc.z y_1+1 sta.z __133+1 // [235] *((char *)main::$133) = $f0 -- _deref_pbuz1=vbuc1 lda #$f0 sta (__133),y // [236] main::$134 = main::$133 + c -- vwuz1=vwuz1_plus_vwuc1 lda.z __134 clc adc #c sta.z __134+1 // [237] *((char *)main::$134) = 1 -- _deref_pbuz1=vbuc1 lda #1 sta (__134),y // wait(5) // [238] call wait // Clear peephole if there is not bricks contact // [381] phi from main::@36 to wait [phi:main::@36->wait] // [381] phi z#53 = z#48 [phi:main::@36->wait#0] -- register_copy // [381] phi wait::n#6 = 5 [phi:main::@36->wait#1] -- vbuz1=vbuc1 lda #5 sta.z wait.n jsr wait // main::@89 // POKE // [239] *((char *)duck#1) = 0 -- _deref_pbuz1=vbuc1 lda #0 tay sta (duck),y // [240] main::$136 = duck#1 + c -- vwuz1=vwuz2_plus_vwuc1 lda.z duck clc adc #c sta.z __136+1 // [241] *((char *)main::$136) = 7 -- _deref_pbuz1=vbuc1 lda #7 sta (__136),y // [242] main::$138 = duck#1 + 1 -- vwuz1=vwuz2_plus_1 clc lda.z duck adc #1 sta.z __138 lda.z duck+1 adc #0 sta.z __138+1 // [243] *((char *)main::$138) = 1 -- _deref_pbuz1=vbuc1 lda #1 sta (__138),y // [244] main::$139 = main::$138 + c -- vwuz1=vwuz1_plus_vwuc1 lda.z __139 clc adc #c sta.z __139+1 // [245] *((char *)main::$139) = 7 -- _deref_pbuz1=vbuc1 lda #7 sta (__139),y // [246] main::$141 = duck#1 + $16 -- vwuz1=vwuz2_plus_vbuc1 lda #$16 clc adc.z duck sta.z __141 tya adc.z duck+1 sta.z __141+1 // [247] *((char *)main::$141) = 2 -- _deref_pbuz1=vbuc1 lda #2 sta (__141),y // [248] main::$142 = main::$141 + c -- vwuz1=vwuz1_plus_vwuc1 lda.z __142 clc adc #c sta.z __142+1 // [249] *((char *)main::$142) = 7 -- _deref_pbuz1=vbuc1 lda #7 sta (__142),y // [250] main::$144 = duck#1 + $17 -- vwuz1=vwuz2_plus_vbuc1 lda #$17 clc adc.z duck sta.z __144 tya adc.z duck+1 sta.z __144+1 // [251] *((char *)main::$144) = 3 -- _deref_pbuz1=vbuc1 lda #3 sta (__144),y // [252] main::$145 = main::$144 + c -- vwuz1=vwuz1_plus_vwuc1 lda.z __145 clc adc #c sta.z __145+1 // [253] *((char *)main::$145) = 7 -- _deref_pbuz1=vbuc1 lda #7 sta (__145),y // wait(5) // [254] call wait // [381] phi from main::@89 to wait [phi:main::@89->wait] // [381] phi z#53 = z#25 [phi:main::@89->wait#0] -- register_copy // [381] phi wait::n#6 = 5 [phi:main::@89->wait#1] -- vbuz1=vbuc1 lda #5 sta.z wait.n jsr wait // main::@90 // [255] y#130 = y#35 -- vwuz1=vwuz2 lda.z y_1 sta.z y lda.z y_1+1 sta.z y+1 // [124] phi from main::@90 to main::@26 [phi:main::@90->main::@26] // [124] phi n#20 = n#14 [phi:main::@90->main::@26#0] -- register_copy // [124] phi peephole#12 = y#35 [phi:main::@90->main::@26#1] -- register_copy // [124] phi z#100 = z#25 [phi:main::@90->main::@26#2] -- register_copy // [124] phi y#18 = y#130 [phi:main::@90->main::@26#3] -- register_copy // [124] phi rem8u#25 = divr8u::rem#11 [phi:main::@90->main::@26#4] -- register_copy // [124] phi score#19 = score#43 [phi:main::@90->main::@26#5] -- register_copy // [124] phi time#11 = time#17 [phi:main::@90->main::@26#6] -- register_copy jmp __b26 // main::@109 __b109: // if (PEEK(y)!=brick && PEEK(y+1)!=brick && PEEK(y+22)!=brick && PEEK(y+23)!=brick && y>7702 && y<8163) // [256] if(*((char *)main::$110)==brick) goto main::@36 -- _deref_pbuz1_eq_vbuc1_then_la1 lda #brick ldy #0 cmp (__110),y bne !__b36+ jmp __b36 !__b36: // main::@108 // [257] if(y#13>$1e16) goto main::@107 -- vwuz1_gt_vwuc1_then_la1 lda #>$1e16 cmp.z y+1 bcc __b107 bne !+ lda #<$1e16 cmp.z y bcc __b107 !: jmp __b36 // main::@107 __b107: // [258] if(y#13>=$1fe3) goto main::@36 -- vwuz1_ge_vwuc1_then_la1 lda.z y+1 cmp #>$1fe3 bcc !+ beq !__b36+ jmp __b36 !__b36: lda.z y cmp #<$1fe3 bcc !__b36+ jmp __b36 !__b36: !: // main::@43 // POKE // [259] main::$119 = peephole#12 + c -- vwuz1=vwuz2_plus_vwuc1 lda.z peephole clc adc #c sta.z __119+1 // [260] *((char *)main::$119) = 0 -- _deref_pbuz1=vbuc1 lda #0 tay sta (__119),y // [261] main::$120 = main::$119 + 1 -- vwuz1=vwuz2_plus_1 clc lda.z __119 adc #1 sta.z __120 lda.z __119+1 adc #0 sta.z __120+1 // [262] *((char *)main::$120) = 0 -- _deref_pbuz1=vbuc1 tya sta (__120),y // [263] main::$122 = main::$119 + $16 -- vwuz1=vwuz2_plus_vbuc1 lda #$16 clc adc.z __119 sta.z __122 tya adc.z __119+1 sta.z __122+1 // [264] *((char *)main::$122) = 0 -- _deref_pbuz1=vbuc1 tya sta (__122),y // [265] main::$124 = main::$119 + $17 -- vwuz1=vwuz1_plus_vbuc1 lda #$17 clc adc.z __124 sta.z __124 bcc !+ inc.z __124+1 !: // [266] *((char *)main::$124) = 0 -- _deref_pbuz1=vbuc1 lda #0 tay sta (__124),y // [267] y#141 = y#13 -- vwuz1=vwuz2 lda.z y sta.z y_1 lda.z y+1 sta.z y_1+1 jmp __b36 // main::@34 __b34: // score=score-10 // [268] score#6 = score#19 - $a -- vwuz1=vwuz1_minus_vbuc1 sec lda.z score sbc #$a sta.z score lda.z score+1 sbc #0 sta.z score+1 // write_score() // [269] call write_score // [351] phi from main::@34 to write_score [phi:main::@34->write_score] // [351] phi score#13 = score#6 [phi:main::@34->write_score#0] -- register_copy jsr write_score // [270] phi from main::@34 to main::@88 [phi:main::@34->main::@88] // main::@88 // wait(10) // [271] call wait // [381] phi from main::@88 to wait [phi:main::@88->wait] // [381] phi z#53 = z#100 [phi:main::@88->wait#0] -- register_copy // [381] phi wait::n#6 = $a [phi:main::@88->wait#1] -- vbuz1=vbuc1 lda #$a sta.z wait.n jsr wait // [213] phi from main::@88 to main::@35 [phi:main::@88->main::@35] // [213] phi score#81 = score#38 [phi:main::@88->main::@35#0] -- register_copy // [213] phi time#38 = div16u8u::return#2 [phi:main::@88->main::@35#1] -- register_copy jmp __b35 // main::@23 __b23: // 48+tu // [272] main::$57 = $30 + tu#13 -- vwuz1=vbuc1_plus_vwuz2 lda #$30 clc adc.z tu sta.z __57 lda #0 adc.z tu+1 sta.z __57+1 // chrout(48+tu) // [273] chrout::petscii = main::$57 -- vbuz1=vwuz2 lda.z __57 sta.z chrout.petscii // [274] call chrout jsr chrout jmp __b11 // main::@21 __b21: // chrout(ducknumber[j]) // [275] chrout::petscii = ducknumber[j#16] -- vbuz1=pbuc1_derefidx_vbuz2 ldy.z j_2 lda ducknumber,y sta.z chrout.petscii // [276] call chrout jsr chrout // main::@78 // for (j=0; j<5; j++) // [277] j#5 = ++ j#16 -- vbuz1=_inc_vbuz1 inc.z j_2 // [93] phi from main::@78 to main::@20 [phi:main::@78->main::@20] // [93] phi j#16 = j#5 [phi:main::@78->main::@20#0] -- register_copy jmp __b20 // main::@18 __b18: // chrout(chrono[j]) // [278] chrout::petscii = chrono[j#13] -- vbuz1=pbuc1_derefidx_vbuz2 ldy.z j_1 lda chrono,y sta.z chrout.petscii // [279] call chrout jsr chrout // main::@74 // for (j=0; j<4; ++j) // [280] j#3 = ++ j#13 -- vbuz1=_inc_vbuz1 inc.z j_1 // [84] phi from main::@74 to main::@17 [phi:main::@74->main::@17] // [84] phi j#13 = j#3 [phi:main::@74->main::@17#0] -- register_copy jmp __b17 // [281] phi from main::@71 to main::@14 [phi:main::@71->main::@14] __b24: // [281] phi j#11 = 1 [phi:main::@71->main::@14#0] -- vbuz1=vbuc1 lda #1 sta.z j // main::@14 __b14: // for (j=1; j<=m; ++j) // [282] if(j#11<=m) goto main::@15 -- vbuz1_le_vbuz2_then_la1 lda.z m cmp.z j bcs __b15 // main::@16 // chrout(brick) // [283] chrout::petscii = brick -- vbuz1=vbuc1 lda #brick sta.z chrout.petscii // [284] call chrout jsr chrout // main::@73 // z+m // [285] main::$35 = z#28 + m -- vwuz1=vwuz2_plus_vbuz3 lda.z m clc adc.z z_1 sta.z __35 lda #0 adc.z z_1+1 sta.z __35+1 // z=z+m+1 // [286] z#9 = main::$35 + 1 -- vwuz1=vwuz2_plus_1 clc lda.z __35 adc #1 sta.z z_1 lda.z __35+1 adc #0 sta.z z_1+1 // while (z<506) // [287] if(z#9<$1fa) goto main::@13 -- vwuz1_lt_vwuc1_then_la1 cmp #>$1fa bcs !__b13+ jmp __b13 !__b13: bne !+ lda.z z_1 cmp #<$1fa bcs !__b13+ jmp __b13 !__b13: !: jmp __b12 // main::@15 __b15: // chrout(right) // [288] chrout::petscii = right -- vbuz1=vbuc1 lda #right sta.z chrout.petscii // [289] call chrout jsr chrout // main::@72 // for (j=1; j<=m; ++j) // [290] j#2 = ++ j#11 -- vbuz1=_inc_vbuz1 inc.z j // [281] phi from main::@72 to main::@14 [phi:main::@72->main::@14] // [281] phi j#11 = j#2 [phi:main::@72->main::@14#0] -- register_copy jmp __b14 // main::@7 __b7: // chrout(brick) // [291] chrout::petscii = brick -- vbuz1=vbuc1 lda #brick sta.z chrout.petscii // [292] call chrout jsr chrout // [293] phi from main::@7 to main::@9 [phi:main::@7->main::@9] // [293] phi n#101 = 2 [phi:main::@7->main::@9#0] -- vbuz1=vbuc1 lda #2 sta.z n // main::@9 __b9: // for(n=2;n<22;++n) // [294] if(n#101<$16) goto main::@10 -- vbuz1_lt_vbuc1_then_la1 lda.z n cmp #$16 bcc __b10 // main::@11 // chrout(brick) // [295] chrout::petscii = brick -- vbuz1=vbuc1 lda #brick sta.z chrout.petscii // [296] call chrout jsr chrout // main::@64 // for (k=1;k<22;k++) // [297] k#1 = ++ k#101 -- vbuz1=_inc_vbuz1 inc.z k // [52] phi from main::@64 to main::@6 [phi:main::@64->main::@6] // [52] phi n#89 = n#101 [phi:main::@64->main::@6#0] -- register_copy // [52] phi k#101 = k#1 [phi:main::@64->main::@6#1] -- register_copy jmp __b6 // main::@10 __b10: // chrout(right) // [298] chrout::petscii = right -- vbuz1=vbuc1 lda #right sta.z chrout.petscii // [299] call chrout jsr chrout // main::@63 // for(n=2;n<22;++n) // [300] n#1 = ++ n#101 -- vbuz1=_inc_vbuz1 inc.z n // [293] phi from main::@63 to main::@9 [phi:main::@63->main::@9] // [293] phi n#101 = n#1 [phi:main::@63->main::@9#0] -- register_copy jmp __b9 // main::@2 __b2: // POKE // [301] main::$3 = $1c00 + m -- vwuz1=vwuc1_plus_vbuz2 lda.z m clc adc #<$1c00 sta.z __3 lda #>$1c00 adc #0 sta.z __3+1 // [302] *((char *)main::$3) = duck_udg[m] -- _deref_pbuz1=pbuc1_derefidx_vbuz2 ldy.z m lda duck_udg,y ldy #0 sta (__3),y // for (m=0; m<40; m++) // [303] m = ++ m -- vbuz1=_inc_vbuz1 inc.z m jmp __b1 } // gotoxy // Set the cursor to the specified position // void gotoxy(char x, __zp($4c) char y) gotoxy: { .label __5 = $48 .label __6 = $2c .label __7 = $2c .label line_offset = $2c .label y = $4c .label __8 = $46 .label __9 = $2c // if(y>CONIO_HEIGHT) // [305] if(gotoxy::y#4<$19+1) goto gotoxy::@3 -- vbuz1_lt_vbuc1_then_la1 lda.z y cmp #$19+1 bcc __b2 // [307] phi from gotoxy to gotoxy::@1 [phi:gotoxy->gotoxy::@1] // [307] phi gotoxy::y#5 = 0 [phi:gotoxy->gotoxy::@1#0] -- vbuz1=vbuc1 lda #0 sta.z y // [306] phi from gotoxy to gotoxy::@3 [phi:gotoxy->gotoxy::@3] // gotoxy::@3 // [307] phi from gotoxy::@3 to gotoxy::@1 [phi:gotoxy::@3->gotoxy::@1] // [307] phi gotoxy::y#5 = gotoxy::y#4 [phi:gotoxy::@3->gotoxy::@1#0] -- register_copy // gotoxy::@1 // gotoxy::@2 __b2: // conio_cursor_x = x // [308] conio_cursor_x = 0 -- vbuz1=vbuc1 lda #0 sta.z conio_cursor_x // conio_cursor_y = y // [309] conio_cursor_y = gotoxy::y#5 -- vbuz1=vbuz2 lda.z y sta.z conio_cursor_y // unsigned int line_offset = (unsigned int)y*CONIO_WIDTH // [310] gotoxy::$7 = (unsigned int)gotoxy::y#5 -- vwuz1=_word_vbuz2 lda.z y sta.z __7 lda #0 sta.z __7+1 // [311] gotoxy::$8 = gotoxy::$7 << 2 -- vwuz1=vwuz2_rol_2 lda.z __7 asl sta.z __8 lda.z __7+1 rol sta.z __8+1 asl.z __8 rol.z __8+1 // [312] gotoxy::$9 = gotoxy::$8 + gotoxy::$7 -- vwuz1=vwuz2_plus_vwuz1 clc lda.z __9 adc.z __8 sta.z __9 lda.z __9+1 adc.z __8+1 sta.z __9+1 // [313] gotoxy::line_offset#0 = gotoxy::$9 << 3 -- vwuz1=vwuz1_rol_3 asl.z line_offset rol.z line_offset+1 asl.z line_offset rol.z line_offset+1 asl.z line_offset rol.z line_offset+1 // CONIO_SCREEN_TEXT + line_offset // [314] gotoxy::$5 = DEFAULT_SCREEN + gotoxy::line_offset#0 -- pbuz1=pbuc1_plus_vwuz2 lda.z line_offset clc adc #DEFAULT_SCREEN sta.z __5+1 // conio_line_text = CONIO_SCREEN_TEXT + line_offset // [315] conio_line_text = gotoxy::$5 -- pbuz1=pbuz2 lda.z __5 sta.z conio_line_text lda.z __5+1 sta.z conio_line_text+1 // CONIO_SCREEN_COLORS + line_offset // [316] gotoxy::$6 = COLORRAM + gotoxy::line_offset#0 -- pbuz1=pbuc1_plus_vwuz1 lda.z __6 clc adc #COLORRAM sta.z __6+1 // conio_line_color = CONIO_SCREEN_COLORS + line_offset // [317] conio_line_color = gotoxy::$6 -- pbuz1=pbuz2 lda.z __6 sta.z conio_line_color lda.z __6+1 sta.z conio_line_color+1 // gotoxy::@return // } // [318] return rts } // chrout // void chrout(__zp($18) volatile char petscii) chrout: { .label petscii = $18 // asm // asm { ldapetscii jsr$ffd2 } lda petscii jsr $ffd2 // chrout::@return // } // [320] return rts } // clear_screen // void clear_screen(__zp(8) char n, char m) clear_screen: { .label __4 = $23 .label __5 = 9 .label n = 8 // [322] phi from clear_screen to clear_screen::@1 [phi:clear_screen->clear_screen::@1] // [322] phi z#2 = 0 [phi:clear_screen->clear_screen::@1#0] -- vwuz1=vbuc1 lda #<0 sta.z z sta.z z+1 // clear_screen::@1 __b1: // for (z=0; z<506; ++z) // [323] if(z#2<$1fa) goto clear_screen::@2 -- vwuz1_lt_vwuc1_then_la1 lda.z z+1 cmp #>$1fa bcc __b2 bne !+ lda.z z cmp #<$1fa bcc __b2 !: // [324] phi from clear_screen::@1 to clear_screen::@3 [phi:clear_screen::@1->clear_screen::@3] // clear_screen::@3 // gotoxy(0,0) // [325] call gotoxy // From 0-->505 (506 bytes). ClearScreen with byte 'n' with color 'm' // [304] phi from clear_screen::@3 to gotoxy [phi:clear_screen::@3->gotoxy] // [304] phi gotoxy::y#4 = 0 [phi:clear_screen::@3->gotoxy#0] -- vbuz1=vbuc1 lda #0 sta.z gotoxy.y jsr gotoxy // clear_screen::@4 // chrout(home) // [326] chrout::petscii = home -- vbuz1=vbuc1 lda #home sta.z chrout.petscii // [327] call chrout jsr chrout // clear_screen::@return // } // [328] return rts // clear_screen::@2 __b2: // POKE // [329] clear_screen::$5 = $1e00 + z#2 -- vwuz1=vwuc1_plus_vwuz2 lda.z z clc adc #<$1e00 sta.z __5 lda.z z+1 adc #>$1e00 sta.z __5+1 // [330] clear_screen::$4 = clear_screen::$5 + c -- vwuz1=vwuz2_plus_vwuc1 lda.z __5 clc adc #c sta.z __4+1 // [331] *((char *)clear_screen::$4) = 0 -- _deref_pbuz1=vbuc1 lda #0 tay sta (__4),y // [332] *((char *)clear_screen::$5) = clear_screen::n#5 -- _deref_pbuz1=vbuz2 lda.z n sta (__5),y // for (z=0; z<506; ++z) // [333] z#1 = ++ z#2 -- vwuz1=_inc_vwuz1 inc.z z bne !+ inc.z z+1 !: // [322] phi from clear_screen::@2 to clear_screen::@1 [phi:clear_screen::@2->clear_screen::@1] // [322] phi z#2 = z#1 [phi:clear_screen::@2->clear_screen::@1#0] -- register_copy jmp __b1 } // textcolor // Set the color for text output. The old color setting is returned. // char textcolor(__zp(8) char color) textcolor: { .label color = 8 // conio_textcolor = color // [335] conio_textcolor = textcolor::color#7 -- vbuz1=vbuz2 lda.z color sta.z conio_textcolor // textcolor::@return // } // [336] return rts } // cputs // Output a NUL-terminated string at the current cursor position // void cputs(__zp(5) const char *s) cputs: { .label c = 2 .label s = 5 // [338] phi from cputs cputs::@2 to cputs::@1 [phi:cputs/cputs::@2->cputs::@1] // [338] phi cputs::s#10 = cputs::s#11 [phi:cputs/cputs::@2->cputs::@1#0] -- register_copy // cputs::@1 __b1: // while(c=*s++) // [339] cputs::c#1 = *cputs::s#10 -- vbuz1=_deref_pbuz2 ldy #0 lda (s),y sta.z c // [340] cputs::s#0 = ++ cputs::s#10 -- pbuz1=_inc_pbuz1 inc.z s bne !+ inc.z s+1 !: // [341] if(0!=cputs::c#1) goto cputs::@2 -- 0_neq_vbuz1_then_la1 lda.z c bne __b2 // cputs::@return // } // [342] return rts // cputs::@2 __b2: // cputc(c) // [343] cputc::c#0 = cputs::c#1 // [344] call cputc jsr cputc jmp __b1 } // random // Return to home position // void random(__zp(3) char k, __zp(8) char n) random: { .label k = 3 .label n = 8 .label __3 = 2 // random::@1 __b1: // m=PEEK // [346] m = *((char *) 37140) -- vbuz1=_deref_pbuc1 lda $9114 sta.z m // m>n // [347] random::$3 = m -- vbuz1=vbuz2 sta.z __3 // while (mn) // [348] if(mrandom::n#4) goto random::@1 -- vbuz1_gt_vbuz2_then_la1 lda.z n cmp.z __3 bcc __b1 // random::@return // } // [350] return rts } // write_score write_score: { // if (score>65000) // [352] if(score#13<=$fde8) goto write_score::@15 -- vwuz1_le_vwuc1_then_la1 lda.z score+1 cmp #>$fde8 bne !+ lda.z score cmp #<$fde8 !: bcc __b1 beq __b1 // [354] phi from write_score to write_score::@1 [phi:write_score->write_score::@1] // [354] phi score#38 = 0 [phi:write_score->write_score::@1#0] -- vwuz1=vbuc1 lda #<0 sta.z score sta.z score+1 // [353] phi from write_score to write_score::@15 [phi:write_score->write_score::@15] // write_score::@15 // [354] phi from write_score::@15 to write_score::@1 [phi:write_score::@15->write_score::@1] // [354] phi score#38 = score#13 [phi:write_score::@15->write_score::@1#0] -- register_copy // write_score::@1 __b1: // m=0 // [355] m = 0 -- vbuz1=vbuc1 lda #0 sta.z m // write_score::@5 __b5: // for (m=0;m<4;m++) // [356] if(m<4) goto write_score::@6 -- vbuz1_lt_vbuc1_then_la1 lda.z m cmp #4 bcc __b6 // write_score::@7 // utoa(score,buffer,10) // [357] utoa::value#1 = score#38 -- vwuz1=vwuz2 lda.z score sta.z utoa.value lda.z score+1 sta.z utoa.value+1 // [358] call utoa // (!!) Needed. Possibly a bug // [390] phi from write_score::@7 to utoa [phi:write_score::@7->utoa] // [390] phi utoa::value#10 = utoa::value#1 [phi:write_score::@7->utoa#0] -- register_copy jsr utoa // write_score::@11 // if (score>9) // [359] if(score#38<9+1) goto write_score::@2 -- vwuz1_lt_vbuc1_then_la1 lda.z score+1 bne !+ lda.z score cmp #9+1 bcc __b2 !: // write_score::@8 // points[2]=buffer[0] // [360] *(points+2) = *buffer -- _deref_pbuc1=_deref_pbuc2 lda buffer sta points+2 // points[3]=buffer[1] // [361] *(points+3) = *(buffer+1) -- _deref_pbuc1=_deref_pbuc2 lda buffer+1 sta points+3 // write_score::@2 __b2: // if (score>99) // [362] if(score#38<$63+1) goto write_score::@3 -- vwuz1_lt_vbuc1_then_la1 lda.z score+1 bne !+ lda.z score cmp #$63+1 bcc __b3 !: // write_score::@4 // points[1]=buffer[0] // [363] *(points+1) = *buffer -- _deref_pbuc1=_deref_pbuc2 lda buffer sta points+1 // points[2]=buffer[1] // [364] *(points+2) = *(buffer+1) -- _deref_pbuc1=_deref_pbuc2 lda buffer+1 sta points+2 // points[3]=buffer[2] // [365] *(points+3) = *(buffer+2) -- _deref_pbuc1=_deref_pbuc2 lda buffer+2 sta points+3 // write_score::@3 __b3: // chrout(yellow) // [366] chrout::petscii = yellow -- vbuz1=vbuc1 lda #yellow sta.z chrout.petscii // [367] call chrout jsr chrout // write_score::@12 // chrout(home) // [368] chrout::petscii = home -- vbuz1=vbuc1 lda #home sta.z chrout.petscii // [369] call chrout jsr chrout // write_score::@13 // POKE // [370] *((char *) 211) = 4 -- _deref_pbuc1=vbuc2 lda #4 sta.z $d3 // m=0 // [371] m = 0 -- vbuz1=vbuc1 lda #0 sta.z m // write_score::@9 __b9: // for (m=0;m<4;m++) // [372] if(m<4) goto write_score::@10 -- vbuz1_lt_vbuc1_then_la1 lda.z m cmp #4 bcc __b10 // write_score::@return // } // [373] return rts // write_score::@10 __b10: // chrout(points[m]) // [374] chrout::petscii = points[m] -- vbuz1=pbuc1_derefidx_vbuz2 ldy.z m lda points,y sta.z chrout.petscii // [375] call chrout jsr chrout // write_score::@14 // for (m=0;m<4;m++) // [376] m = ++ m -- vbuz1=_inc_vbuz1 inc.z m jmp __b9 // write_score::@6 __b6: // points[m]='0' // [377] points[m] = '0' -- pbuc1_derefidx_vbuz1=vbuc2 lda #'0' ldy.z m sta points,y // for (m=0;m<4;m++) // [378] m = ++ m -- vbuz1=_inc_vbuz1 inc.z m jmp __b5 } // chrono_restart chrono_restart: { // asm // asm { lda#0 ldy#0 ldx#0 jsr$ffdb } lda #0 tay tax jsr $ffdb // chrono_restart::@return // } // [380] return rts } // wait // void wait(__zp(3) char n) wait: { .label n = 3 // m=0 // [382] m = 0 -- vbuz1=vbuc1 lda #0 sta.z m // [383] phi from wait wait::@4 to wait::@1 [phi:wait/wait::@4->wait::@1] // [383] phi z#25 = z#53 [phi:wait/wait::@4->wait::@1#0] -- register_copy // wait::@1 __b1: // for (m=0;mwait::@2] __b4: // [386] phi z#23 = 0 [phi:wait::@1->wait::@2#0] -- vwuz1=vbuc1 lda #<0 sta.z z_1 sta.z z_1+1 // wait::@2 __b2: // for (z=0;z<540;++z) // [387] if(z#23<$21c) goto wait::@3 -- vwuz1_lt_vwuc1_then_la1 lda.z z_1+1 cmp #>$21c bcc __b3 bne !+ lda.z z_1 cmp #<$21c bcc __b3 !: // wait::@4 // for (m=0;mwait::@2] // [386] phi z#23 = z#4 [phi:wait::@3->wait::@2#0] -- register_copy jmp __b2 } // utoa // Converts unsigned number value to a string representing it in RADIX format. // If the leading digits are zero they are not included in the string. // - value : The number to be converted to RADIX // - buffer : receives the string representing the number and zero-termination. // - radix : The radix to convert the number to (from the enum RADIX) // void utoa(__zp(5) unsigned int value, __zp($d) char *buffer, char radix) utoa: { .label __10 = $11 .label __11 = 2 .label digit_value = 9 .label buffer = $d .label digit = 3 .label value = 5 .label started = $10 // [391] phi from utoa to utoa::@1 [phi:utoa->utoa::@1] // [391] phi utoa::buffer#10 = buffer [phi:utoa->utoa::@1#0] -- pbuz1=pbuc1 lda #<@buffer sta.z buffer lda #>@buffer sta.z buffer+1 // [391] phi utoa::started#2 = 0 [phi:utoa->utoa::@1#1] -- vbuz1=vbuc1 lda #0 sta.z started // [391] phi utoa::value#3 = utoa::value#10 [phi:utoa->utoa::@1#2] -- register_copy // [391] phi utoa::digit#2 = 0 [phi:utoa->utoa::@1#3] -- vbuz1=vbuc1 sta.z digit // utoa::@1 __b1: // for( char digit=0; digit= digit_value) // [400] if(0!=utoa::started#2) goto utoa::@5 -- 0_neq_vbuz1_then_la1 lda.z started bne __b5 // utoa::@7 // [401] if(utoa::value#3>=utoa::digit_value#0) goto utoa::@5 -- vwuz1_ge_vwuz2_then_la1 lda.z digit_value+1 cmp.z value+1 bne !+ lda.z digit_value cmp.z value beq __b5 !: bcc __b5 // [402] phi from utoa::@7 to utoa::@4 [phi:utoa::@7->utoa::@4] // [402] phi utoa::buffer#15 = utoa::buffer#10 [phi:utoa::@7->utoa::@4#0] -- register_copy // [402] phi utoa::started#4 = utoa::started#2 [phi:utoa::@7->utoa::@4#1] -- register_copy // [402] phi utoa::value#7 = utoa::value#3 [phi:utoa::@7->utoa::@4#2] -- register_copy // utoa::@4 __b4: // for( char digit=0; digitutoa::@1] // [391] phi utoa::buffer#10 = utoa::buffer#15 [phi:utoa::@4->utoa::@1#0] -- register_copy // [391] phi utoa::started#2 = utoa::started#4 [phi:utoa::@4->utoa::@1#1] -- register_copy // [391] phi utoa::value#3 = utoa::value#7 [phi:utoa::@4->utoa::@1#2] -- register_copy // [391] phi utoa::digit#2 = utoa::digit#1 [phi:utoa::@4->utoa::@1#3] -- register_copy jmp __b1 // utoa::@5 __b5: // utoa_append(buffer++, value, digit_value) // [404] utoa_append::buffer#0 = utoa::buffer#10 // [405] utoa_append::value#0 = utoa::value#3 // [406] utoa_append::sub#0 = utoa::digit_value#0 // [407] call utoa_append // [432] phi from utoa::@5 to utoa_append [phi:utoa::@5->utoa_append] jsr utoa_append // utoa_append(buffer++, value, digit_value) // [408] utoa_append::return#0 = utoa_append::value#2 // utoa::@6 // value = utoa_append(buffer++, value, digit_value) // [409] utoa::value#0 = utoa_append::return#0 // value = utoa_append(buffer++, value, digit_value); // [410] utoa::buffer#4 = ++ utoa::buffer#10 -- pbuz1=_inc_pbuz1 inc.z buffer bne !+ inc.z buffer+1 !: // [402] phi from utoa::@6 to utoa::@4 [phi:utoa::@6->utoa::@4] // [402] phi utoa::buffer#15 = utoa::buffer#4 [phi:utoa::@6->utoa::@4#0] -- register_copy // [402] phi utoa::started#4 = 1 [phi:utoa::@6->utoa::@4#1] -- vbuz1=vbuc1 lda #1 sta.z started // [402] phi utoa::value#7 = utoa::value#0 [phi:utoa::@6->utoa::@4#2] -- register_copy jmp __b4 } // read_chrono read_chrono: { .label __0 = $23 .label __5 = 9 // asm // asm { jsr$ffde stal stxm } jsr $ffde sta l stx m // m*256 // [412] read_chrono::$0 = m << 8 -- vwuz1=vbuz2_rol_8 txa sta.z __0+1 lda #0 sta.z __0 // div16u8u((m*256)+l,60) // [413] div16u8u::dividend#0 = read_chrono::$0 + l -- vwuz1=vwuz1_plus_vbuz2 lda.z l clc adc.z div16u8u.dividend sta.z div16u8u.dividend bcc !+ inc.z div16u8u.dividend+1 !: // [414] call div16u8u jsr div16u8u // [415] div16u8u::return#2 = div16u8u::return#0 -- vwuz1=vwuz2 lda.z div16u8u.return sta.z div16u8u.return_1 lda.z div16u8u.return+1 sta.z div16u8u.return_1+1 // read_chrono::@2 // POKE // [416] *((char *)$1e15+c) = 7 -- _deref_pbuc1=vbuc2 lda #7 sta $1e15+c // [417] *((char *) 7701) = $b9 -- _deref_pbuc1=vbuc2 lda #$b9 sta $1e15 // if (time<10) // [418] if(div16u8u::return#2>=$a) goto read_chrono::@return -- vwuz1_ge_vbuc1_then_la1 lda.z div16u8u.return_1+1 bne __breturn lda.z div16u8u.return_1 cmp #$a bcs __breturn !: // read_chrono::@1 // POKE // [419] read_chrono::$5 = $b9 - div16u8u::return#2 -- vwuz1=vwuc1_minus_vwuz2 sec lda #<$b9 sbc.z div16u8u.return_1 sta.z __5 lda #>$b9 sbc.z div16u8u.return_1+1 sta.z __5+1 // [420] *((char *) 7701) = read_chrono::$5 -- _deref_pbuc1=vwuz1 lda.z __5 sta $1e15 // read_chrono::@return __breturn: // } // [421] return rts } // cputc // Output one character at the current cursor position // Moves the cursor forward. Scrolls the entire screen if needed // void cputc(__zp(2) char c) cputc: { .label c = 2 // if(c=='\n') // [422] if(cputc::c#0==' ') goto cputc::@1 -- vbuz1_eq_vbuc1_then_la1 lda #'\n' cmp.z c beq __b1 // cputc::@2 // conio_line_text[conio_cursor_x] = c // [423] conio_line_text[conio_cursor_x] = cputc::c#0 -- pbuz1_derefidx_vbuz2=vbuz3 lda.z c ldy.z conio_cursor_x sta (conio_line_text),y // conio_line_color[conio_cursor_x] = conio_textcolor // [424] conio_line_color[conio_cursor_x] = conio_textcolor -- pbuz1_derefidx_vbuz2=vbuz3 lda.z conio_textcolor sta (conio_line_color),y // if(++conio_cursor_x==CONIO_WIDTH) // [425] conio_cursor_x = ++ conio_cursor_x -- vbuz1=_inc_vbuz1 inc.z conio_cursor_x // [426] if(conio_cursor_x!=$28) goto cputc::@return -- vbuz1_neq_vbuc1_then_la1 lda #$28 cmp.z conio_cursor_x bne __breturn // [427] phi from cputc::@2 to cputc::@3 [phi:cputc::@2->cputc::@3] // cputc::@3 // cputln() // [428] call cputln jsr cputln // cputc::@return __breturn: // } // [429] return rts // [430] phi from cputc to cputc::@1 [phi:cputc->cputc::@1] // cputc::@1 __b1: // cputln() // [431] call cputln jsr cputln rts } // utoa_append // Used to convert a single digit of an unsigned number value to a string representation // Counts a single digit up from '0' as long as the value is larger than sub. // Each time the digit is increased sub is subtracted from value. // - buffer : pointer to the char that receives the digit // - value : The value where the digit will be derived from // - sub : the value of a '1' in the digit. Subtracted continually while the digit is increased. // (For decimal the subs used are 10000, 1000, 100, 10, 1) // returns : the value reduced by sub * digit so that it is less than sub. // __zp(5) unsigned int utoa_append(__zp($d) char *buffer, __zp(5) unsigned int value, __zp(9) unsigned int sub) utoa_append: { .label buffer = $d .label value = 5 .label sub = 9 .label return = 5 .label digit = 7 // [433] phi from utoa_append to utoa_append::@1 [phi:utoa_append->utoa_append::@1] // [433] phi utoa_append::digit#2 = 0 [phi:utoa_append->utoa_append::@1#0] -- vbuz1=vbuc1 lda #0 sta.z digit // [433] phi utoa_append::value#2 = utoa_append::value#0 [phi:utoa_append->utoa_append::@1#1] -- register_copy // utoa_append::@1 __b1: // while (value >= sub) // [434] if(utoa_append::value#2>=utoa_append::sub#0) goto utoa_append::@2 -- vwuz1_ge_vwuz2_then_la1 lda.z sub+1 cmp.z value+1 bne !+ lda.z sub cmp.z value beq __b2 !: bcc __b2 // utoa_append::@3 // *buffer = DIGITS[digit] // [435] *utoa_append::buffer#0 = DIGITS[utoa_append::digit#2] -- _deref_pbuz1=pbuc1_derefidx_vbuz2 ldy.z digit lda DIGITS,y ldy #0 sta (buffer),y // utoa_append::@return // } // [436] return rts // utoa_append::@2 __b2: // digit++; // [437] utoa_append::digit#1 = ++ utoa_append::digit#2 -- vbuz1=_inc_vbuz1 inc.z digit // value -= sub // [438] utoa_append::value#1 = utoa_append::value#2 - utoa_append::sub#0 -- vwuz1=vwuz1_minus_vwuz2 lda.z value sec sbc.z sub sta.z value lda.z value+1 sbc.z sub+1 sta.z value+1 // [433] phi from utoa_append::@2 to utoa_append::@1 [phi:utoa_append::@2->utoa_append::@1] // [433] phi utoa_append::digit#2 = utoa_append::digit#1 [phi:utoa_append::@2->utoa_append::@1#0] -- register_copy // [433] phi utoa_append::value#2 = utoa_append::value#1 [phi:utoa_append::@2->utoa_append::@1#1] -- register_copy jmp __b1 } // div16u8u // Divide unsigned 16-bit unsigned long dividend with a 8-bit unsigned char divisor // The 8-bit unsigned char remainder can be found in rem8u after the division // __zp($30) unsigned int div16u8u(__zp($23) unsigned int dividend, char divisor) div16u8u: { .label divisor = $3c .label quotient_hi = 2 .label quotient_lo = $10 .label return = $12 .label dividend = $23 .label return_1 = $30 // unsigned char quotient_hi = divr8u(BYTE1(dividend), divisor, 0) // [439] divr8u::dividend#1 = byte1 div16u8u::dividend#0 -- vbuz1=_byte1_vwuz2 lda.z dividend+1 sta.z divr8u.dividend // [440] call divr8u // [456] phi from div16u8u to divr8u [phi:div16u8u->divr8u] // [456] phi divr8u::dividend#5 = divr8u::dividend#1 [phi:div16u8u->divr8u#0] -- register_copy // [456] phi divr8u::rem#10 = 0 [phi:div16u8u->divr8u#1] -- vbuz1=vbuc1 lda #0 sta.z divr8u.rem jsr divr8u // unsigned char quotient_hi = divr8u(BYTE1(dividend), divisor, 0) // [441] divr8u::return#2 = divr8u::return#0 // div16u8u::@1 // [442] div16u8u::quotient_hi#0 = divr8u::return#2 -- vbuz1=vbuz2 lda.z divr8u.return sta.z quotient_hi // unsigned char quotient_lo = divr8u(BYTE0(dividend), divisor, rem8u) // [443] divr8u::dividend#2 = byte0 div16u8u::dividend#0 -- vbuz1=_byte0_vwuz2 lda.z dividend sta.z divr8u.dividend // [444] divr8u::rem#4 = divr8u::rem#11 // [445] call divr8u // [456] phi from div16u8u::@1 to divr8u [phi:div16u8u::@1->divr8u] // [456] phi divr8u::dividend#5 = divr8u::dividend#2 [phi:div16u8u::@1->divr8u#0] -- register_copy // [456] phi divr8u::rem#10 = divr8u::rem#4 [phi:div16u8u::@1->divr8u#1] -- register_copy jsr divr8u // unsigned char quotient_lo = divr8u(BYTE0(dividend), divisor, rem8u) // [446] divr8u::return#3 = divr8u::return#0 // div16u8u::@2 // [447] div16u8u::quotient_lo#0 = divr8u::return#3 // unsigned int quotient = MAKEWORD( quotient_hi, quotient_lo ) // [448] div16u8u::return#0 = div16u8u::quotient_hi#0 w= div16u8u::quotient_lo#0 -- vwuz1=vbuz2_word_vbuz3 lda.z quotient_hi sta.z return+1 lda.z quotient_lo sta.z return // div16u8u::@return // } // [449] return rts } // cputln // Print a newline cputln: { // conio_line_text += CONIO_WIDTH // [450] conio_line_text = conio_line_text + $28 -- pbuz1=pbuz1_plus_vbuc1 lda #$28 clc adc.z conio_line_text sta.z conio_line_text bcc !+ inc.z conio_line_text+1 !: // conio_line_color += CONIO_WIDTH // [451] conio_line_color = conio_line_color + $28 -- pbuz1=pbuz1_plus_vbuc1 lda #$28 clc adc.z conio_line_color sta.z conio_line_color bcc !+ inc.z conio_line_color+1 !: // conio_cursor_x = 0 // [452] conio_cursor_x = 0 -- vbuz1=vbuc1 lda #0 sta.z conio_cursor_x // conio_cursor_y++; // [453] conio_cursor_y = ++ conio_cursor_y -- vbuz1=_inc_vbuz1 inc.z conio_cursor_y // cscroll() // [454] call cscroll jsr cscroll // cputln::@return // } // [455] return rts } // divr8u // Performs division on two 8 bit unsigned chars and an initial remainder // Returns dividend/divisor. // The final remainder will be set into the global variable rem8u // Implemented using simple binary division // __zp($10) char divr8u(__zp(3) char dividend, char divisor, __zp($f) char rem) divr8u: { .label __1 = $11 .label rem = $f .label dividend = 3 .label quotient = $10 .label i = 7 .label return = $10 // [457] phi from divr8u to divr8u::@1 [phi:divr8u->divr8u::@1] // [457] phi divr8u::i#2 = 0 [phi:divr8u->divr8u::@1#0] -- vbuz1=vbuc1 lda #0 sta.z i // [457] phi divr8u::quotient#3 = 0 [phi:divr8u->divr8u::@1#1] -- vbuz1=vbuc1 sta.z quotient // [457] phi divr8u::dividend#3 = divr8u::dividend#5 [phi:divr8u->divr8u::@1#2] -- register_copy // [457] phi divr8u::rem#5 = divr8u::rem#10 [phi:divr8u->divr8u::@1#3] -- register_copy // [457] phi from divr8u::@3 to divr8u::@1 [phi:divr8u::@3->divr8u::@1] // [457] phi divr8u::i#2 = divr8u::i#1 [phi:divr8u::@3->divr8u::@1#0] -- register_copy // [457] phi divr8u::quotient#3 = divr8u::return#0 [phi:divr8u::@3->divr8u::@1#1] -- register_copy // [457] phi divr8u::dividend#3 = divr8u::dividend#0 [phi:divr8u::@3->divr8u::@1#2] -- register_copy // [457] phi divr8u::rem#5 = divr8u::rem#11 [phi:divr8u::@3->divr8u::@1#3] -- register_copy // divr8u::@1 __b1: // rem = rem << 1 // [458] divr8u::rem#0 = divr8u::rem#5 << 1 -- vbuz1=vbuz1_rol_1 asl.z rem // dividend & 0x80 // [459] divr8u::$1 = divr8u::dividend#3 & $80 -- vbuz1=vbuz2_band_vbuc1 lda #$80 and.z dividend sta.z __1 // if( (dividend & 0x80) != 0 ) // [460] if(divr8u::$1==0) goto divr8u::@2 -- vbuz1_eq_0_then_la1 beq __b2 // divr8u::@4 // rem = rem | 1 // [461] divr8u::rem#1 = divr8u::rem#0 | 1 -- vbuz1=vbuz1_bor_vbuc1 lda #1 ora.z rem sta.z rem // [462] phi from divr8u::@1 divr8u::@4 to divr8u::@2 [phi:divr8u::@1/divr8u::@4->divr8u::@2] // [462] phi divr8u::rem#6 = divr8u::rem#0 [phi:divr8u::@1/divr8u::@4->divr8u::@2#0] -- register_copy // divr8u::@2 __b2: // dividend = dividend << 1 // [463] divr8u::dividend#0 = divr8u::dividend#3 << 1 -- vbuz1=vbuz1_rol_1 asl.z dividend // quotient = quotient << 1 // [464] divr8u::quotient#1 = divr8u::quotient#3 << 1 -- vbuz1=vbuz1_rol_1 asl.z quotient // if(rem>=divisor) // [465] if(divr8u::rem#6divr8u::@3] // [468] phi divr8u::return#0 = divr8u::quotient#1 [phi:divr8u::@2/divr8u::@5->divr8u::@3#0] -- register_copy // [468] phi divr8u::rem#11 = divr8u::rem#6 [phi:divr8u::@2/divr8u::@5->divr8u::@3#1] -- register_copy // divr8u::@3 __b3: // for( char i : 0..7) // [469] divr8u::i#1 = ++ divr8u::i#2 -- vbuz1=_inc_vbuz1 inc.z i // [470] if(divr8u::i#1!=8) goto divr8u::@1 -- vbuz1_neq_vbuc1_then_la1 lda #8 cmp.z i bne __b1 // divr8u::@return // } // [471] return rts } // cscroll // Scroll the entire screen if the cursor is beyond the last line cscroll: { // if(conio_cursor_y==CONIO_HEIGHT) // [472] if(conio_cursor_y!=$19) goto cscroll::@return -- vbuz1_neq_vbuc1_then_la1 lda #$19 cmp.z conio_cursor_y bne __breturn // [473] phi from cscroll to cscroll::@1 [phi:cscroll->cscroll::@1] // cscroll::@1 // memcpy(CONIO_SCREEN_TEXT, CONIO_SCREEN_TEXT+CONIO_WIDTH, CONIO_BYTES-CONIO_WIDTH) // [474] call memcpy // [485] phi from cscroll::@1 to memcpy [phi:cscroll::@1->memcpy] // [485] phi memcpy::destination#2 = (void *)DEFAULT_SCREEN [phi:cscroll::@1->memcpy#0] -- pvoz1=pvoc1 lda #DEFAULT_SCREEN sta.z memcpy.destination+1 // [485] phi memcpy::source#2 = (void *)DEFAULT_SCREEN+$28 [phi:cscroll::@1->memcpy#1] -- pvoz1=pvoc1 lda #DEFAULT_SCREEN+$28 sta.z memcpy.source+1 jsr memcpy // [475] phi from cscroll::@1 to cscroll::@2 [phi:cscroll::@1->cscroll::@2] // cscroll::@2 // memcpy(CONIO_SCREEN_COLORS, CONIO_SCREEN_COLORS+CONIO_WIDTH, CONIO_BYTES-CONIO_WIDTH) // [476] call memcpy // [485] phi from cscroll::@2 to memcpy [phi:cscroll::@2->memcpy] // [485] phi memcpy::destination#2 = (void *)COLORRAM [phi:cscroll::@2->memcpy#0] -- pvoz1=pvoc1 lda #COLORRAM sta.z memcpy.destination+1 // [485] phi memcpy::source#2 = (void *)COLORRAM+$28 [phi:cscroll::@2->memcpy#1] -- pvoz1=pvoc1 lda #COLORRAM+$28 sta.z memcpy.source+1 jsr memcpy // [477] phi from cscroll::@2 to cscroll::@3 [phi:cscroll::@2->cscroll::@3] // cscroll::@3 // memset(CONIO_SCREEN_TEXT+CONIO_BYTES-CONIO_WIDTH, ' ', CONIO_WIDTH) // [478] call memset // [495] phi from cscroll::@3 to memset [phi:cscroll::@3->memset] // [495] phi memset::c#4 = ' ' [phi:cscroll::@3->memset#0] -- vbuz1=vbuc1 lda #' ' sta.z memset.c // [495] phi memset::str#3 = (void *)DEFAULT_SCREEN+(unsigned int)$19*$28-$28 [phi:cscroll::@3->memset#1] -- pvoz1=pvoc1 lda #DEFAULT_SCREEN+$19*$28-$28 sta.z memset.str+1 jsr memset // cscroll::@4 // memset(CONIO_SCREEN_COLORS+CONIO_BYTES-CONIO_WIDTH, conio_textcolor, CONIO_WIDTH) // [479] memset::c#1 = conio_textcolor -- vbuz1=vbuz2 lda.z conio_textcolor sta.z memset.c // [480] call memset // [495] phi from cscroll::@4 to memset [phi:cscroll::@4->memset] // [495] phi memset::c#4 = memset::c#1 [phi:cscroll::@4->memset#0] -- register_copy // [495] phi memset::str#3 = (void *)COLORRAM+(unsigned int)$19*$28-$28 [phi:cscroll::@4->memset#1] -- pvoz1=pvoc1 lda #COLORRAM+$19*$28-$28 sta.z memset.str+1 jsr memset // cscroll::@5 // conio_line_text -= CONIO_WIDTH // [481] conio_line_text = conio_line_text - $28 -- pbuz1=pbuz1_minus_vbuc1 sec lda.z conio_line_text sbc #$28 sta.z conio_line_text lda.z conio_line_text+1 sbc #0 sta.z conio_line_text+1 // conio_line_color -= CONIO_WIDTH // [482] conio_line_color = conio_line_color - $28 -- pbuz1=pbuz1_minus_vbuc1 sec lda.z conio_line_color sbc #$28 sta.z conio_line_color lda.z conio_line_color+1 sbc #0 sta.z conio_line_color+1 // conio_cursor_y--; // [483] conio_cursor_y = -- conio_cursor_y -- vbuz1=_dec_vbuz1 dec.z conio_cursor_y // cscroll::@return __breturn: // } // [484] return rts } // memcpy // Copy block of memory (forwards) // Copies the values of num bytes from the location pointed to by source directly to the memory block pointed to by destination. // void * memcpy(__zp($b) void *destination, __zp($d) void *source, unsigned int num) memcpy: { .label src_end = 9 .label dst = $b .label src = $d .label source = $d .label destination = $b // char* src_end = (char*)source+num // [486] memcpy::src_end#0 = (char *)memcpy::source#2 + (unsigned int)$19*$28-$28 -- pbuz1=pbuz2_plus_vwuc1 lda.z source clc adc #<$19*$28-$28 sta.z src_end lda.z source+1 adc #>$19*$28-$28 sta.z src_end+1 // [487] memcpy::src#4 = (char *)memcpy::source#2 // [488] memcpy::dst#4 = (char *)memcpy::destination#2 // [489] phi from memcpy memcpy::@2 to memcpy::@1 [phi:memcpy/memcpy::@2->memcpy::@1] // [489] phi memcpy::dst#2 = memcpy::dst#4 [phi:memcpy/memcpy::@2->memcpy::@1#0] -- register_copy // [489] phi memcpy::src#2 = memcpy::src#4 [phi:memcpy/memcpy::@2->memcpy::@1#1] -- register_copy // memcpy::@1 __b1: // while(src!=src_end) // [490] if(memcpy::src#2!=memcpy::src_end#0) goto memcpy::@2 -- pbuz1_neq_pbuz2_then_la1 lda.z src+1 cmp.z src_end+1 bne __b2 lda.z src cmp.z src_end bne __b2 // memcpy::@return // } // [491] return rts // memcpy::@2 __b2: // *dst++ = *src++ // [492] *memcpy::dst#2 = *memcpy::src#2 -- _deref_pbuz1=_deref_pbuz2 ldy #0 lda (src),y sta (dst),y // *dst++ = *src++; // [493] memcpy::dst#1 = ++ memcpy::dst#2 -- pbuz1=_inc_pbuz1 inc.z dst bne !+ inc.z dst+1 !: // [494] memcpy::src#1 = ++ memcpy::src#2 -- pbuz1=_inc_pbuz1 inc.z src bne !+ inc.z src+1 !: jmp __b1 } // memset // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. // void * memset(__zp($b) void *str, __zp($10) char c, unsigned int num) memset: { .label end = $12 .label dst = $b .label c = $10 .label str = $b // memset::@1 // char* end = (char*)str + num // [496] memset::end#0 = (char *)memset::str#3 + $28 -- pbuz1=pbuz2_plus_vbuc1 lda #$28 clc adc.z str sta.z end lda #0 adc.z str+1 sta.z end+1 // [497] memset::dst#4 = (char *)memset::str#3 // [498] phi from memset::@1 memset::@3 to memset::@2 [phi:memset::@1/memset::@3->memset::@2] // [498] phi memset::dst#2 = memset::dst#4 [phi:memset::@1/memset::@3->memset::@2#0] -- register_copy // memset::@2 __b2: // for(char* dst = str; dst!=end; dst++) // [499] if(memset::dst#2!=memset::end#0) goto memset::@3 -- pbuz1_neq_pbuz2_then_la1 lda.z dst+1 cmp.z end+1 bne __b3 lda.z dst cmp.z end bne __b3 // memset::@return // } // [500] return rts // memset::@3 __b3: // *dst = c // [501] *memset::dst#2 = memset::c#4 -- _deref_pbuz1=vbuz2 lda.z c ldy #0 sta (dst),y // for(char* dst = str; dst!=end; dst++) // [502] memset::dst#1 = ++ memset::dst#2 -- pbuz1=_inc_pbuz1 inc.z dst bne !+ inc.z dst+1 !: jmp __b2 } // File Data .segment Data // The digits used for numbers DIGITS: .text "0123456789abcdef" // Values of decimal digits RADIX_DECIMAL_VALUES: .word $2710, $3e8, $64, $a // [0..65536] 16-bit points: .byte 0, 0, 0, 0 buffer: .byte 0, 0, 0, 0 // for unexpanded. 37888-4096 color for expanded ducknumber: .byte $44, $55, $43, $4b, $3a // DUCK: chrono: .byte $54, $4d, $3a, $39 // TM:9 duck_udg: .byte $e, $1b, $3f, $1f, $f, 7, $f, $1f, 0, 0, 0, 0, 0, $c0, $70, $bc, $1f, $1d, $1e, $f, 3, 1, 1, 3, $ce, $1e, $7c, $f8, $e0, $40, $40, $e0, 0, 0, 0, 0, 0, 0, 0, 0 // POKE CODES = 0,1,2,3,4; CHROUT CODES = 64, 65, 66, 67, 68 (with previous reverse_off "chrout(146)") intro: .text @"\n\n\nDIFFICULTY\n----------\n\n\n" .byte 0 levels: .text @"1.EASIEST\n\n3.EASY\n\n5.MEDIUM\n\n7.HARD\n\n9.EXPERT\n\n\n\n\n" .byte 0 foot: .text @"PRESS: 1,3,5,7 or 9\n\n" .byte 0 game_over: .text @"\n\n\n\nGAME OVER" .byte 0 play_again: .text @"\n\n\nPlay Again (Y/N)?" .byte 0 your_score: .text @"\n\n\nYour Score: " .byte 0 high_score: .text @"\n\nHi-Score: " .byte 0